打印
[STM32F4]

关于STM32F407的IAP编程调试问题

[复制链接]
939|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xxmmi|  楼主 | 2020-9-1 22:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近写了一个IAP转APP程序,烧写调试出现了如下问题:**JLink Warning: T-bit of XPSR is 0 but should be 1. Changed to 1.
单独烧写App程序可正常运行,BOOTLOAD程序也正常。

使用特权

评论回复
沙发
pangb| | 2020-9-1 23:01 | 只看该作者
楼主程序可以公开吗?贴程序看下吧,这么说看不出什么原因

使用特权

评论回复
板凳
xxmmi|  楼主 | 2020-9-1 23:04 | 只看该作者

IAP程序配置:
#define ApplicationAddress     0x8008000        
#define STM32_FLASH_BASE  0x08000000         
NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);

APP程序配置:
NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x8000);

使用特权

评论回复
地板
xxmmi|  楼主 | 2020-9-1 23:07 | 只看该作者

KEIL中的IROM地址已经修改成相应的地址。
调试了几天找不出问题,想问一下有大佬遇过这样的问题么

使用特权

评论回复
5
ousj| | 2020-9-1 23:11 | 只看该作者
KEIL的Options for Target ... 的 Linker 选项下的USE Memory Layout from Target Dialog 选项勾上

使用特权

评论回复
6
supernan| | 2020-9-1 23:14 | 只看该作者
JLink警告:XPSR的T位是0,但应该是1。改为1。

使用特权

评论回复
7
pangb| | 2020-9-1 23:19 | 只看该作者

如果碰到下面的错误:

**JLink Warning: T-bit of XPSR is 0 but should be 1. Changed to 1.

可能是你烧录程序的时候,设置的起始地址不对

使用特权

评论回复
8
zyf部长| | 2020-9-1 23:22 | 只看该作者
对, 把其他地址的数据覆盖掉了

使用特权

评论回复
9
wangpe| | 2020-9-1 23:26 | 只看该作者
请仔细检查地址偏移。

使用特权

评论回复
10
huwr| | 2020-9-1 23:29 | 只看该作者
是神马错误呀

使用特权

评论回复
11
llia| | 2020-9-1 23:33 | 只看该作者
大神 我还没有接触过这个领域

使用特权

评论回复
12
xxmmi|  楼主 | 2020-9-1 23:37 | 只看该作者

唉,还是没有什么结果,算了,多谢大家啦

使用特权

评论回复
13
香水城| | 2020-9-2 15:38 | 只看该作者
本帖最后由 香水城 于 2020-9-2 15:40 编辑

这个过程不复杂。
首先 将两个工程BOOT\APP分别调试好。

跳转前将开启过的所有中断使能都禁用掉,不是简单地关总中断的响应。这个很关键。
保证跳转时清清爽爽,不带走一片云

另外,记得APP里的VTOR调整过来,你这里对应8008000.

其它也没啥了。

使用特权

评论回复
14
yizushijie| | 2020-9-2 17:29 | 只看该作者
这两天刚把F1的iap写好

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

369

主题

4278

帖子

2

粉丝