TI中文支持网
TI专业的中文技术问题搜集分享网站

TMS320F28388D: 关于CM和CPU1程序跳转的问题

Part Number:TMS320F28388D

大家好,

我想要分别实现CM两个工程和CPU1两个工程之间的跳转,在实现过程中出现了一些问题:

CM的两个工程分别为CM_APP和CM_Bootloader,CPU1的两个工程分别为CPU1_APP和CPU1_Bootloader

在debug配置上,CM和CPU1的APP的配置为:

bootloader配置为:

问题1:在debug模式下,CPU1能正常在APP和bootloader之间跳转,而CM从一个工程跳到另一个工程会进入faultISR或者defaultISR(CM的APP移植了lwip_udp协议来实现网口通信)

问题2:exit函数不起作用

问题3:如果在CPU1的APP工程中将设置ECAT时钟函数调用后(因为app程序需要实现ECAT通信),重新上电后CPU1的APP工程中IPC_sync(IPC_CM_L_CPU1_R, IPC_SYNC)会失效

下面附上工程代码附件,可直接烧录在28388的开发板上运行

appTest.zip

Yale Li:

我已经咨询了相关工程师,请关注下方链接:

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1317671/tms320f28388d-cm-and-cpu1-program-jumping

,

MTFT:

你好,麻烦帮我回复一下。

1、我是打算通过cm的Ethernet通信来传输程序数据进行升级,所以在cm_bootloader和cm_app都要添加Ethernet功能,附件的工程只在cm_app添加了Ethernet,因为我测试过如果同时在bootloader和app添加ethernet,cm工程程序从app跳转至bootloader后,bootloader的ethernet功能无法正常使用,所以先测试两个工程是否能正常跳转,目前的问题就是即使只有app添加ethernet通信,在两个工程跳转时还是会遇到问题。

2、是的,目前还没有在bootloader工程添加烧写程序,仅仅是在测试工程跳转

使用上述指令是可以正常跳转的,但我想知道为什么使用exit函数无法跳转。

3、好的谢谢,期待您的回复

,

Yale Li:

好的,已跟进

,

MTFT:

你好,麻烦帮我回复一下。

第二个问题我去尝试一下,第一个和第三个问题能否帮我跟进一下。

,

Yale Li:

好的,已跟进

,

MTFT:

你好,麻烦帮我回复一下

关于第3个问题:

是因为在CPU1_APP工程中使用了下面这部分代码,导致在跳转过程使函数IPC_sync()失效。

为了更好说明这个问题,我重新上传一份压缩文件。

0334.appTest.zip

这份文件包含了4个工程:CPU1_APP, CM_APP, CPU1_BOOTLOADER, CM_BOOTLOADER

烧写范围

CPU1_BOOTLOADER、CM_BOOTLOADER:

sector0~sector2

CPU1_APP、CM_APP:

sector3~sector13

这份文件可直接烧写至controlCARD运行。

这里做一下简单说明:

controlCARD上电复位后先运行CPU1_BOOTLOADER和CM_BOOTLOADER,运行时CPU1_BOOTLOADER使controlCARD的LED灯D1慢速闪烁3次然后跳转至CPU1_APP,使LED灯D1快速闪烁4次然后继续跳转至CPU1_BOOTLOADER。CM核与CPU1核工作类似,使LED灯D2进行类似闪烁动作。

问题:

1、在CPU1_APP中,如果define了ETHERCAT,则CM_BOOTLOADER无法正常跳转至CM_APP

2、即使不define ETHERCAT,CM_BOOTLOADER也无法正常跳转至CM_APP,或者CM_APP跳转至CM_BOOTLOADER时会进入dafaultISR中。

,

Yale Li:

好的,我跟进过去了

赞(0)
未经允许不得转载:TI中文支持网 » TMS320F28388D: 关于CM和CPU1程序跳转的问题
分享到: 更多 (0)