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

TMS320F28069: 关于在线升级,U区和APP区跳转的相关问题

Part Number:TMS320F28069

U区是做IAP功能用,板子上电后在U区停留3秒钟后会跳入APP区,在APP区若接收到升级指令或者复位指令(通过检测某IO电平作为复位信号)会跳入U区。这是正常现象

现在发现,若是升级程序,则在升级完程序再重新启动(不断电,通过上位机指令启动),可正常运行;

但如果是下发复位指令,跳入U区正常,并且确认3秒后也重新跳入A区,但是跳入A区以后中断函数就无法进入,一直在运行main函数的for循环。

对这个问题很疑惑,如果是配置的问题,那么上电后也不会正常运行。

不知道问题出在哪里,希望可以得到TI工程师的指点。

Serenity_pjb:

A区的中断源是ADCINT1,U区的中断源是Timer0,我试了跳入U区的时候关中断,也无法解决该bug,不知道是不是还有其他需要注意的地方

,

Green Deng:

你好,我理解的,目前你的程序已经能实现二次BootLoader?

Serenity_pjb 说:现在发现,若是升级程序,则在升级完程序再重新启动(不断电,通过上位机指令启动),可正常运行;

这里是指用JTAG升级程序还是通过二次BootLoader升级程序?

Serenity_pjb 说:跳入A区以后中断函数就无法进入,一直在运行main函数的for循环。

这里无法进入中断函数的原因是中断没有触发还是因为一直处于for循环中?for循环具体是执行什么操作?

另外不太理解的是,U区的中断timer0是做什么用的?定时升级APP区?

,

Serenity_pjb:

你好,是的已经实现二次bootloader。

1. 是通过二次BootLoader升级程序,具体是通过stm32通过sci串口给dsp烧录程序。

2. 还未确定是不是中断未触发,不过可以确定的是并不是停在for循环内某一处,我在进for循环开始的地方放了个翻转信号,出现问题中描述的现象时能看到这个电平一直在翻转。for循环里具体执行的操作比较多,但是因为中断没执行,大部分函数的状态机都停在offline,基本也没法运行。

3. timer0中断一个是sci串口接收用,还有一个就是控制灯闪烁提示程序状态,处于U区但未烧录时是0.5s闪烁一次,在烧录的时候是0.1s闪烁一次,方便调试人员观察。

,

Serenity_pjb:

现在对比测试发现,如果通过看门狗触发dsp复位(现象也是先进U区等待3s直接跳A区)

那么当我上位机下发复位指令,跳入U区后再跳入A区,不会再出现无法进入中断的现象。

对比程序如下,将原来的BootToProgU()函数替换为while(1)那么不再喂狗会触发看门狗复位。

原来的BootToProgU()是一段汇编代码(这段不是我写的,我看的也不是很懂,大概意思是跳到U区的入口地址)。

在cmd文件中的分配:

不知道是不是这个BootToProgU()函数是不是有什么问题。

还有ti推荐的从A区跳入U区的方式是什么,有例程么

,

百里驽:

TI公司的跳转很麻烦,我遇到的问题类似,有些程序能顺利跳转,有些则跳转不了。

,

百里驽:

这个BootToProg函数是模拟_InitBoot写的,去掉了根据引脚来选择启动方式的函数,直接跳转到指定的地址。

,

yi zhu:

我也遇到跟你相反的现象,你那边有找到原因没

,

Serenity_pjb:

没找到具体原因,现在先保证机器能正常运行,后面再看。

,

Serenity_pjb:

哦哦,谢谢,后面我去问问写这段程序的工程师

赞(0)
未经允许不得转载:TI中文支持网 » TMS320F28069: 关于在线升级,U区和APP区跳转的相关问题
分享到: 更多 (0)