Part Number:TMS320F28377D
因CPU2全局变量较多,.ebss段需要扩展,于是将GSRAM2和GSRAM3分给CPU2的.ebss段,并在cpu2启动之前在CPU1中将GSRAM2和3的权限给到CPU2。接下来就是按照程序下载步骤:编译->连接-下载-.运行。现在我改了一点CPU2的程序,将CPU1和CPU2暂停后,CPU1不复位,再次下载CPU2时就会报错
C28xx_CPU2: Error setting the GSxMSEL register for Flash operations
此时运行CPU2程序是不正常的,但是没有非法中断。
但是CPU1复位后就不不出现这个错误,下载之后的CPU2程序运行也是正常的。
已知出现的原因是:在下载CPU2程序时,GSRAM2和GSRAM3的权限是CPU2而不是CPU1
我的问题:
1、能不能在下载CPU2程序时自动复位CPU1,而不是通过手动复位的方式?
2、通过修改什么设置或者代码不出现上边的错误?
3、可以不在CPU1中将GSRAM2和3的权限给到CPU2吗?那样CPU2没有写权限是不是程序就会运行出错?
Green Deng:
你好,看一下这个帖子中的方案能否解决你的问题:
https://e2echina.ti.com/support/microcontrollers/c2000/f/c2000-microcontrollers-forum/198887/gsram-c28xx_cpu2-error-setting-the-gsxmsel-register-for-flash-operations
,
zhenguo hu:
我感觉他说的不太对,在下载CPU1程序之前只是复为了CPU1同时复位了CPU2,不过我试过GSRAM12就不会出现上述错误,我还是希望能在下载CPU2程序的时候自动复位一下CPU1和CPU2。
,
Green Deng:
C2000除了用CCS复位和手动复位之外,只有看门狗软件复位了。但是按照你的要求我也没有具体可以实施的复位方案