主题中讨论的其他部件:C2000WARE
工具/软件:Code Composer Studio
我使用的是LAUNCHTXL-F2.8377万S。 我的代码使用2837xS_Generic_flash_lnk.cmd的修改版本,并使用#pragma data_section()和#pragma code_section()指令复制函数和变量。 我还在100kHz运行一个中断调用,运行ISR中的代码后,剩下的周期40 % 约为-我确定了在ISR开始和结束时切换的GPIO的范围。 此时,我可以连接到主板并正常刷新它。 重置后,该板也会运行。
我通过修改c2000ware blink_band_dcSM目录中提供的样例DCSM_Z1_ZoneSelectBlock.asm来保护闪存和ram部分。 在"项目属性">"调试">"闪存设置">"安全设置">"区域1"部分中添加相关信息可让我对主板进行编程并浏览受保护区域中的内存,但在重置后内存不再运行。 在重置后,使其恢复运行的正确方法是什么?
-阅读技术参考手册2.13 .3.3 (http://www.ti.com/lit/ug/spruhx5e/spruhx5e.pdf)部分后,我发现我可以从C代码中取消区域的安全/保护。 如果我运行csmUnlock(),然后重新执行,则代码将在重置后运行。 这是使用DCSM从闪存启动的正确方式吗? 如果使用此方法,我会间歇性地收到CPU停止错误:
C28xx_CPU1:停止目标CPU时出现故障:(错误-1156 @ 0x0)设备可能在低功耗模式下运行。 是否要使其退出此模式? 选择'是'强制设备唤醒,然后重试此操作。 选择'No'(否)在不唤醒设备的情况下重试此操作。 (仿真软件包7.0 .48.0)