[STM32F1] 关于STM32F105的boot 和 应用程序跳转的问题

[复制链接]
5966|16
 楼主| jgphu 发表于 2015-8-18 14:54 | 显示全部楼层 |阅读模式
1、BOOT 没有操作系统
2、应用程序 跑 UCOS系统。

1、上电后,  BOOT 跳转到 应用程序 (成功)
2、在应用程序UCOS的一个任务中执行跳转到 BOOT程序 (成功)
3、在BOOT中执行跳到应用程序(失败)? 为什么会失败呢。

说明: 如果应用程序不跑操作系统时跳转都是没有问题的。
 楼主| jgphu 发表于 2015-8-18 20:03 | 显示全部楼层
大神在吗?
aundry 发表于 2015-8-19 08:31 | 显示全部楼层
从1到2的跳转做了什么
从2到3的跳转也做了什么,主要是中断以及堆栈等问题引起
还有为啥2到3的跳转不类似于上电的时候从BOOT到APP的跳转

评分

参与人数 1威望 +4 收起 理由
jgphu + 4 赞一个!

查看全部评分

 楼主| jgphu 发表于 2015-8-19 09:32 | 显示全部楼层
中断应该不可能,中断总开关是关的状态,我也怀疑是椎栈的问题。因为不用操作系统和在操作系统初始化之前跳到BOOT,再跳到APP都是OK的。
aozima 发表于 2015-8-19 09:34 | 显示全部楼层
单步检查跳转时的CPU状态。

评分

参与人数 1威望 +1 收起 理由
jgphu + 1 赞一个!

查看全部评分

 楼主| jgphu 发表于 2015-8-19 10:37 | 显示全部楼层
看哪些寄存器?
amanda_s 发表于 2015-8-19 11:17 | 显示全部楼层
1里面的跳转能成功,3同样从BOOT跳的应用程序就不成功。
所以看看这两个时候程序的状态有什么不同,堆栈的问题可能性比较大。
不成功具体表现是什么现象啊?

评分

参与人数 1威望 +4 收起 理由
jgphu + 4 赞一个!

查看全部评分

 楼主| jgphu 发表于 2015-8-19 11:51 | 显示全部楼层
的确是堆栈的问题,已解决, 因为只重新设置了MSP, 没有设置PSP。在跳转前设置一下PSP就可以了。
aundry 发表于 2015-8-19 14:07 | 显示全部楼层
jgphu 发表于 2015-8-19 11:51
的确是堆栈的问题,已解决, 因为只重新设置了MSP, 没有设置PSP。在跳转前设置一下PSP就可以了。 ...

终于搞定了啊,其实我好奇为啥APP到Boot之后,还要继续接着运行APP
应该重新运行App,不过可能表达产生歧义,感觉楼主是经过Boot处理后,再次运行App
不过堆栈没初始化好
m564522634 发表于 2015-8-19 14:55 | 显示全部楼层
现场保存好了吗?你重uc/os 跳转到 boot 那uc/os的现场怎么处理的。
尤彼卡 发表于 2015-8-27 16:15 | 显示全部楼层
跳转前设置一下PSP就可以
734774645 发表于 2015-8-28 09:11 | 显示全部楼层
有个朋友说,在配置里设置代码位置就可以了。
598330983 发表于 2015-8-28 12:48 | 显示全部楼层
貌似我插不上话啊,这个没接触过,跟各位大神学习一下。
mintspring 发表于 2015-8-29 16:24 | 显示全部楼层
最好用汇编指令或者GOTO语句。
天灵灵地灵灵 发表于 2015-8-29 16:46 | 显示全部楼层
操作系统跑了后,就有 了问题吗
1176144945 发表于 2016-6-3 08:24 | 显示全部楼层
jgphu 发表于 2015-8-19 11:51
的确是堆栈的问题,已解决, 因为只重新设置了MSP, 没有设置PSP。在跳转前设置一下PSP就可以了。 ...

PSP应该设置多少呢?我也遇到和你一模一样的问题
lxut2018 发表于 2017-12-8 10:18 | 显示全部楼层
你好,我的芯片是F407,boot裸机,应用程序跑ucos系统。我遇到的问题也是这样的,但是不是每次都跳转失败,当跳转失败时,应用既不在boot也不在应用。可当我用KEIL debug时,却没有出现跳转失败,这种问题怎么找?你说的要在跳转前设置PSP,如何设置呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

642

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部