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.
工具/软件:Code Composer Studio
您好!
我无法理解为什么如果我在项目中将表单 COFF 切换到 EABI、程序不会运行到 main。
我尝试打开许多示例、但使用 μ СOFF 的示例不会在 EABI 模式下启动。
我想立即强调的是、它不是关于编译、我修复了库文件和汇编文件。
编译正常。 在调试期间、切换到 main 并不起作用。
EABI (不适用):
COFF (工作正常):
大家好、Turnaev、
请尝试在 F28x_codestartbranch.asm 中禁用看门狗(WD_DISABLE .set 0; 在此 asm 文件中应替换为 WD_DISABLE .set 1)。 这有助于在到达 main()之前避免看门狗复位。 如果应用程序中有很多全局变量、在到达 main 之前、cinit 例程可能需要更多的时间来初始化所有全局变量。 在此期间、看门狗可能会过期、因此建议将其禁用。 您可以根据应用程序的需要在 main()中再次启用它。
谢谢、此致、
Vamsi
大家好、 Turnaev、
我们尚未将 F28004x 器件中的位字段软件和示例(在 device_support 文件夹中提供)移动到 EABI。 位字段结构需要 f28004x_headers_nonbios.cmd 才能将寄存器映射到正确的存储器位置
COFF 和 EABI 格式之间的一个区别是、EABI 将对所有未初始化的段进行零初始化。 所有位字段结构都是未初始化的结构、应保持未初始化状态。 它只能由应用软件初始化。 通过转到 EABI 模式、编译器将为所有寄存器添加零初始化代码。
可以通过在链接器命令文件中添加 type=NOINIT 来删除它。 请参阅 f28002x device_support 中的类似文件。 也可以在链接器选项中关闭此功能。 Project properties->C2000 Linker->Advanced options->Miscalleneous->--zero_init
此致、
Veena
您好 Sergey,
以下两项建议中、您的案例中有哪些适用-
此致、
Vivek Singh
我修改了文件 f28004x_headers_nonbios.cmd、将所有"page = 1"替换为"type=NOINIT"
未设置选项"Project properties->C2000 Linker->Advanced options->Miscalleneous->--zero_init"。
文件排除 f28004x_headers_nonbios.cmd 是不可接受的、它完全中断了所有寄存器的工作。