大家好!
我通过自编写boot升级程序下载应用程序数据流,但是跳转不到应用程序去,不知道原因何在?
我验证我的跳转程序段方法如下:
首先通过仿真器执行应用程序,可以在线跑,去掉仿真器时,程序不能跑(程序的入口地址在FLASH扇形区B);
其次设置debug让其在加载自编写boot程序时不擦除FLASH扇形区B,由boot程序可直接跳转到应用程序正常执行,去掉仿真器也是可以正常跑的;
我也比对了自编写boot下载的应用程序数据流和通过仿真器下载的应用程序的数据流是一样的,但应用程序就是跑不起来?
有哪位大神指点下呗!
Eric Ma:
Nvshi,
其次设置debug让其在加载自编写boot程序时不擦除FLASH扇形区B,由boot程序可直接跳转到应用程序正常执行,去掉仿真器也是可以正常跑的;
上面这句话怎么跟你的问题有矛盾,不容易理解。
升级结束后,检查一下boot to flash的起始地址处是否放有跳转指令跳转去执行_C_INT00.
Eric
大家好!
我通过自编写boot升级程序下载应用程序数据流,但是跳转不到应用程序去,不知道原因何在?
我验证我的跳转程序段方法如下:
首先通过仿真器执行应用程序,可以在线跑,去掉仿真器时,程序不能跑(程序的入口地址在FLASH扇形区B);
其次设置debug让其在加载自编写boot程序时不擦除FLASH扇形区B,由boot程序可直接跳转到应用程序正常执行,去掉仿真器也是可以正常跑的;
我也比对了自编写boot下载的应用程序数据流和通过仿真器下载的应用程序的数据流是一样的,但应用程序就是跑不起来?
有哪位大神指点下呗!
nvshi li:
回复 Eric Ma:
呵呵,你好,
我的意思是用仿真器下载和用自己编写的boot程序分别下载应用程序。
我把应用程序的中断关掉之后,可以正常跳转;所以我现在想修改自己的跳转代码,但是老是进入 User Defined trap 12,找不出来具体问题在哪里了?之前的话,我是直接用LB 0x3f6ffe,跳转的。现在是采用内部boot的_ExitBoot退出汇编程序,这样做的话有什么问题啊?
大家好!
我通过自编写boot升级程序下载应用程序数据流,但是跳转不到应用程序去,不知道原因何在?
我验证我的跳转程序段方法如下:
首先通过仿真器执行应用程序,可以在线跑,去掉仿真器时,程序不能跑(程序的入口地址在FLASH扇形区B);
其次设置debug让其在加载自编写boot程序时不擦除FLASH扇形区B,由boot程序可直接跳转到应用程序正常执行,去掉仿真器也是可以正常跑的;
我也比对了自编写boot下载的应用程序数据流和通过仿真器下载的应用程序的数据流是一样的,但应用程序就是跑不起来?
有哪位大神指点下呗!
nvshi li:
回复 Eric Ma:
但现在的问题是我应用程序中有中断的话,就是跳转不过去啊?
大家好!
我通过自编写boot升级程序下载应用程序数据流,但是跳转不到应用程序去,不知道原因何在?
我验证我的跳转程序段方法如下:
首先通过仿真器执行应用程序,可以在线跑,去掉仿真器时,程序不能跑(程序的入口地址在FLASH扇形区B);
其次设置debug让其在加载自编写boot程序时不擦除FLASH扇形区B,由boot程序可直接跳转到应用程序正常执行,去掉仿真器也是可以正常跑的;
我也比对了自编写boot下载的应用程序数据流和通过仿真器下载的应用程序的数据流是一样的,但应用程序就是跑不起来?
有哪位大神指点下呗!
nvshi li:
回复 nvshi li:
TI工程师您好!
用LB0x3f7ffe是可以跳转的,但出现了一个很怪异的问题就是我在扇形区D从地址0x3F4FFD开始写入1个数据,2个数据,3个数据,都是跳转不了的,其他情况都是可以的;同理我在扇形区C从地址0x3F5FFD开始写入1个数据,2个数据,3个数据,也是可以跳转的;
请问是什么原因啊?
大家好!
我通过自编写boot升级程序下载应用程序数据流,但是跳转不到应用程序去,不知道原因何在?
我验证我的跳转程序段方法如下:
首先通过仿真器执行应用程序,可以在线跑,去掉仿真器时,程序不能跑(程序的入口地址在FLASH扇形区B);
其次设置debug让其在加载自编写boot程序时不擦除FLASH扇形区B,由boot程序可直接跳转到应用程序正常执行,去掉仿真器也是可以正常跑的;
我也比对了自编写boot下载的应用程序数据流和通过仿真器下载的应用程序的数据流是一样的,但应用程序就是跑不起来?
有哪位大神指点下呗!
nvshi li:
回复 Eric Ma:
工程师您好!
我用LB 0x3f6ffe 直接跳转之后,应用程序的输出不正确了,什么原因呢?难道是按照内部的Bootloader退出程序那样吗?不能直接跳转到应用程序入口?