求助!STM32 107C的IAP升级跳转失败问题

沧海一粟大头菜 2017-08-02 10:19:19
开发平台是stm32 107c的平台,现在IAP程序中的配置以及代码如图:


另关于应用程序APP的编译配置以及代码如图:



为了能快速验证升级跳转,省略了通过通信协议传递数据这一步,直接用烧写器将APP程序烧到对应的FLASH地址,让IAP程序启动之后一个打印完成后就直接开始跳转。
预期成功的情况是在IAP程序启动后,跳转到APP程序启动打印出对应的“app system up”,但在实际测试时,IAP在实现打印后运行到跳转指令一步后程序卡死,没跳转成功。
请教各位大大帮忙看看那里配置存在问题!!!
...全文
888 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
alca_bigV 2017-08-08
  • 打赏
  • 举报
回复
引用 4 楼 jack_ruanjian 的回复:
[quote=引用 3 楼 baidu_39576528 的回复:] [quote=引用 2 楼 jack_ruanjian 的回复:] 1> 对于IAP的地址空间在配置里 看的到 给了12K的,可以考虑开大一些尝试。 2>对于APP程序有没有方法可以查看代码段被烧器更改了,或者在IAP程序运行时能通过什么方法可以查看当前IAP所占的FLASH空间大小?
第二个,还真不好在iap运行的时候查看...是否被更改. 不过如果 是想查看iap所占flash空间大小?map文件吧. 但就像这问题本身,map文件理论上是那些,但通过 串口自己烧录的 和 通过仿真器(或者烧录器)烧录的,有些差别的.至少我上次调试感觉是有差别,或者还有我不知道的原因.. [/quote] 首先我将IAP所占程序的地址空间 分别扩大到24K 32K 64K 对应的APP相关的配置大小也跟着变动往后偏移,依然未实现跳转. 另外,在网上查到资料说在IAP程序跳转前要关闭所有的中断,请教下 这个关闭中断操作怎么实现的?[/quote] __disable_irq(); 跳转前,置msp,置pc,while(1)..... 写入了 app后,能不能用flash读写器 读出,看看对应要跳转的地址,数据对不对?一般前四个是msp值,再后就是reset地址,,如果 有.. 再写个简单的随意 程序,最后死循环,前面手动去改msp和pc..执行,如果正常,应该也能跳转的..... 再替换成你自己的load程序 .....(比起上面的,也就是多了些自己的其他操作,然后跳转,跳转的操作上前面一样) 如果涉及到mmc,可能还要麻烦些,我的m0,没有mmc.
  • 打赏
  • 举报
回复
引用 3 楼 baidu_39576528 的回复:
[quote=引用 2 楼 jack_ruanjian 的回复:] 1> 对于IAP的地址空间在配置里 看的到 给了12K的,可以考虑开大一些尝试。 2>对于APP程序有没有方法可以查看代码段被烧器更改了,或者在IAP程序运行时能通过什么方法可以查看当前IAP所占的FLASH空间大小?
第二个,还真不好在iap运行的时候查看...是否被更改. 不过如果 是想查看iap所占flash空间大小?map文件吧. 但就像这问题本身,map文件理论上是那些,但通过 串口自己烧录的 和 通过仿真器(或者烧录器)烧录的,有些差别的.至少我上次调试感觉是有差别,或者还有我不知道的原因.. [/quote] 首先我将IAP所占程序的地址空间 分别扩大到24K 32K 64K 对应的APP相关的配置大小也跟着变动往后偏移,依然未实现跳转. 另外,在网上查到资料说在IAP程序跳转前要关闭所有的中断,请教下 这个关闭中断操作怎么实现的?
alca_bigV 2017-08-04
  • 打赏
  • 举报
回复
引用 2 楼 jack_ruanjian 的回复:
1> 对于IAP的地址空间在配置里 看的到 给了12K的,可以考虑开大一些尝试。 2>对于APP程序有没有方法可以查看代码段被烧器更改了,或者在IAP程序运行时能通过什么方法可以查看当前IAP所占的FLASH空间大小?
第二个,还真不好在iap运行的时候查看...是否被更改. 不过如果 是想查看iap所占flash空间大小?map文件吧. 但就像这问题本身,map文件理论上是那些,但通过 串口自己烧录的 和 通过仿真器(或者烧录器)烧录的,有些差别的.至少我上次调试感觉是有差别,或者还有我不知道的原因..
  • 打赏
  • 举报
回复
1> 对于IAP的地址空间在配置里 看的到 给了12K的,可以考虑开大一些尝试。 2>对于APP程序有没有方法可以查看代码段被烧器更改了,或者在IAP程序运行时能通过什么方法可以查看当前IAP所占的FLASH空间大小?
alca_bigV 2017-08-03
  • 打赏
  • 举报
回复
前不久我也在调iap,当我用仿真器想烧app进去时,有些空的地方会被修改掉,即使那地址不被代码占用.... so. 1)你的iap代码空间和app代码空间 留的位置足够大? 2)确认 你的iap运行的时候,这两部分没有被烧录器或者仿真器 改掉?

27,373

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧