This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
当查看此部分 GPREG2用法和 MPOST 配置的详细信息时。
我想启用 MPOST。 但我只有一个 F28386D 电路板、我担心下面的问题。
Z1-GPREG2寄存器是 OTP? Z2-GPREG2寄存器是 Z1-GPREG2寄存器的超级区域。
这是否意味着我只有两次用于配置运行 MPOST 的模式?
(一次配置 Z1-GPREG2、另一次配置 Z2-GPREG2 )
0x0 = MPOST 在启用 PLL 的情况下运行以实现高速(110MHz)。
0xC = MPOST 在启用 PLL 的情况下以中速(80MHz)运行。
0x3 = MPOST 在启用 PLL 的情况下以低速运行(60MHz)。
0x9 =在禁用 PLL (10MHz)的情况下使用 INTOSC2运行 MPOST。
任何其他值= MPOST 不运行。
另一个问题:
我可以使用 TI 提供的任何示例尝试此 MPOST、如下所示。
以 adc_ex3_temp_sensor 为例
#pragma DATA_SECTION (Z1_GPREG_VALUE、"otp_Z1_gpreg")
CONST uint64_t Z1_GPREG_VALUE = 0x5AFFFF0F;//0x0 = MPOST 运行时启用 PLL 以实现高速(110MHz)。
#pragma Retain (Z1_GPREG_VALUE)
在 adc_ex3_temp_sensor.c 的开头、如下所示添加
并在 link.cmd 文件中添加以下代码、
内存
{
OTP_Z1_GPREG:origin = 0x0007 800A、length = 0x00000002
部分
{
OTP_Z1_GPREG:> OTP_Z1_GPREG
在将设置写入 OTP 之前、可以使用 EMUBOOT 模式来测试这些设置。 如您所说、您有两个机会可以使用 Z1配置或 Z2配置来修改它。 下面来自 TRM 的第714页
就在 OTP 中写入 GPREG 而言、如果您向下滚动位以显式对这些位置进行编程、CCS 在其闪存工具中具有此功能。
如果您希望从.out 文件中加载文件、那么您的选择就对了、我将与其他人进行核实、以确保使用的字长正确无误。 我"认为"您的 uint_t 64应该是32;但我还想确保我们传递到闪存 API 的地址边界没有限制。
此致!
马修
您可以在将设置写入 OTP 之前使用 EMUBOOT 模式来测试这些设置。
使用 EMUBOOT 模式进行测试非常棒。 但我不知道如何使用 EMUBOOT 模式执行这种类型测试。
是否有我可以参考的文档?
就在 OTP 中写入 GPREG 而言,如果您向下滚动某个位来显式地对这些位置进行编程,CCS 的闪存工具中就具备此功能。
这意味着什么? 显式地对这些位置编程。 如何执行?
我发现、在 片上闪存中调试期间、似乎也可以更改 OTP 设置。 这种方法是否有效?
wz、
正确、您可以使用它直接对值进行编程。
我被误认为能够将 EMUBOOT 区域用于 MPOST、它有其他的 GPREG 用于引导引脚和引导模式、但没有控制 MPOST 的 GPREG2。
您之前演示的如何通过向项目中添加来进行编程的示例是正确的、闪存一次对64位/ECC 进行编程、因此我们要将其定义为64位值。
我认为在链接器中、您应该将其定义为4个字与2个字、因为即使我们没有对高32位进行编程、我们也会将64位常量传递到该空间。
在任何情况下、闪存工具都会为您完成上述操作。
此致!
马修