DSP论坛
直播中

田先森

7年用户 5经验值
擅长:接口/总线/驱动 控制/MCU
私信 关注

关于TMS320F28035的二次Bootloader下载完成后,APP无法正常工作

我现在在使用TMS320F28035做二次Bootloader,APP已经写入FLASH里(Bootloader和APP属于不同的FLASH),已经验证过写入并没有问题。

跳转的方式是在APP里把MAIN的地址固定存储在0x3e8000,在需要跳转的时候读取0x3e8000里的内容,当做跳转的地址(测试过,能实现跳转)。

void main()

{

os_init();

os_run();

}

APP的MAIN函数格式

——————————————————————————————————————————

现在问题来了,跳转到APP里程序会出现复位,又从头开始执行,或者程序的运行指针还在os_run中(里面是个死循环),但是APP得功能却不正常。


现在我认为可能出现的原因有两个:

1.跳转的方式不对。这次方式是我自己想出来的,也不知道是否很好,有没有缺陷。

2.内存分配有问题。我只对FLASH进行分配(Bootloader程序和APP程序存储的位置不重叠),其余的并未作出分配。


希望大家能给我解决困惑。


回帖(4)

电子微创意

2018-5-7 15:15:54
先确保裸机可以正常跳转运行,排除是OS移植的问题。
举报

田先森

2018-5-7 15:45:30
引用: 电子微创意 发表于 2018-5-7 15:15
先确保裸机可以正常跳转运行,排除是OS移植的问题。

单独APP程序烧录和HEX烧录都测试过了,APP程序和生成HEX都没有问题。我在BOOT自己写了程序(里面涉及CPU/GPIO/TIMER)完全没有问题,就是BOOT公司电机项目的APP程序就不行了。
举报

电子微创意

2018-5-14 10:32:15
把你的map文件附上,大家可以分析一下。
举报

6100309120

2018-7-4 13:59:05
检查下你CMD 中begin 和 reset 的地址。如果仿真能跑APP的话
应该就是你CMD设置有误。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分