Thread 中讨论的其他器件:CCStudio
工具/软件:Code Composer Studio
你(们)好。
我刚刚使用一个简单代码解决了一些问题、其中我使用加载在 RAM 中的 CPU1和 CLA1以及2837xD_RAM_CLA_lnk_CPU1.cmd 文件、但进行了一些更改。 主要更改包括:
(笑声)
RAMGS0 -> PAGE =1在 PAGE = 0中
(笑声)
.text:>> RAMD0|RAMD1|RAMGS0,page = 0
(笑声)
Cla1Prog:> RAMLS4_LS5,page=0
(笑声)
然后
MemCfgRegs.LSxMSEL.bit.MSEL_LS4 = 1;
MemCfgRegs.LSxMSEL.bit.MSEL_LS5 = 1;
MemCfgRegs.LSxCLAPGM.bit.CLAPGM_LS4 = 1;
MemCfgRegs.LSxCLAPGM.bit.CLAPGM_LS5 = 1;
以分配正确的 CLA RAM 所有权。
现在、当我将其加载到闪存中时、我遇到了功能问题! 我获取 ILLEGAL_ISR()暂停。 我查看了一些线程,发现问题出在 InitFlash()和 delay_US()函数上:它们必须从闪存加载到 RAM。
我在使用2837xD_FLASH_CLA_lnk_CPU1.cmd 链接器文件时、如果我在命令文件预处理链接器选项中设置_FLASH 参数就足够了。 此外,在 InitFlash()上面有以下代码段:
#ifdef __cplusplus ??? 我创建了 C 源文件
#ifdef __TI_Compiler_version__
#if __TI_Compiler_version__>=15009000 ??? 我使用 CGT 6.4.2、那么 ramfuncs 部分是否正常?
#pragma CODE_SECTION (".TI.ramfunc");
其他
#pragma CODE_SECTION ("ramfuncs");
#endif
#endif
#endif
我将 CCStudio 7与 6004002的__TI_Compiler_version__符号值一起使用(CGT 6.4.2 ->使用 TI v16.9.1.LTS 时,我遇到了很多编译问题)。 因此,有人向我解释如何在闪存中加载代码以避免 ILLEGAL_ISR()。 我想了解在监听汇编器代码和 CPU 寄存器时如何找到此错误的来源。
非常感谢您的帮助。
迭戈。