主题中讨论的其他器件:TMDS570LS31HDK、 TMDX570LC43HDK、 HALCOGEN、 UNIFLASH
您好!
我已经根据 SPNA241在 TMDS570LS31HDK 和 TMDX570LC43HDK 上实现了 CAN 总线引导加载程序。 示例已在 TMDS570LS31HDK 上完全实现。 但在 TMDX570LC43HDK 上、我在将应用程序加载到闪存后遇到了软件复位问题。 软件复位后、CPU 看起来像挂起。
为了探讨此问题、创建了一个简单的测试。 软件复位前、LED 闪烁三次。
int main (void) { /*用户代码 begin (3)*/ int i、j; //配置为输出 hetREG1->DIR =(1 << 5); while (1) { //重置前三次闪烁 对于(j = 0;j < 6;j++) { gioToggleBit (hetPORT1、5); for (i = 0;i<5000000;i++); } //软件复位 systemREG1->SYSECR =(0x10)<<14; }; /*用户代码结束*/ 返回0; }
在 TMDS570LS31HDK 上、LED 持续闪烁、但在 TMDX570LC43HDK 上仅闪烁三次。 只需通过 POWERON_RESET 即可初始化 TMDX570LC43HDK 上三次闪烁的新周期。
在软件复位后首次运行 gioToggleBit()函数会导致数据中止异常。 具体而言、以下代码中的最后一条指令。
gioToggleBit(): 00002c40:E24DD008 子部分 R13、R13、#8 00002c44:E58D1004 结构 R1、[R13、#4] 00002c48:E58D0000 结构 R0、[R13] 381 if ((port->DIN &(uint32)(uint32) 1U << bit)!= 0U) 00002c4c:E59D0000 LDR R0、[R13] 00002c50:E59DC004 LDR R12、[R13、#4] 00002c54:E3A01001 MOV R1、#1 00002c58:E5900004 LDR R0、[r0、#4]
我使用的 CCS 版本:10.0.00010、HALCoGen 04.07.01
您能帮助解决 TMDX570LC43HDK 的问题吗?
此致、
Sergey

