我现在在使用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程序存储的位置不重叠),其余的并未作出分配。
希望大家能给我解决困惑。 |