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
您好、 Vamsi!
感谢您的回答、 但关闭看门狗不起作用。
我开始比较 DriverLib 和常规示例、并注意到一些问题。
如果我从工程中排除 f28004x_headers_nonbios.cmd 文件、则工程启动并进入 main。 但是、这种操作当然是不可接受的、因为在这种情况下没有外设工作。
我不明白使用 DriverLib 的项目是如何理解外设的位置的。
大家好、Turnaev、
感谢您尝试禁用看门狗。
我们会在一天内回来。
谢谢、此致、
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
您好、Veena!
真的很不错,谢谢!
此致、
Sergey Turnaev
您好 Sergey,
以下两项建议中、您的案例中有哪些适用-
此致、
Vivek Singh
您好、 Sergey、
很抱歉、这是我对您的问题。 在这两种方法中,您使用哪一种方法来解决问题?
此致、
Vivek Singh
我修改了文件 f28004x_headers_nonbios.cmd、将所有"page = 1"替换为"type=NOINIT"
未设置选项"Project properties->C2000 Linker->Advanced options->Miscalleneous->--zero_init"。
文件排除 f28004x_headers_nonbios.cmd 是不可接受的、它完全中断了所有寄存器的工作。