你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

stm32l4 IAP无法跳转问题

[复制链接]
wt13568089592 提问时间:2017-8-29 17:43 /
最近搞stm32l433ccu6,移植了原子的IAP,但是发现无法大多时候无法跳转到APP(偶尔能跳转到APP),求解啊。

  1. //跳转到应用程序段
  2. //appxaddr:用户代码起始地址.
  3. void iap_load_app(u32 appxaddr)
  4. {
  5.         INTX_DISABLE();
  6.         jump2app=(iapfun)*(vu32*)(appxaddr+4);    //用户代码区第二个字为程序开始地址(复位地址)
  7.         __set_MSP(*(__IO uint32_t*)appxaddr);
  8.         //        MSR_MSP(*(vu32*)appxaddr);     //初始化APP堆栈指针(用户代码区的第一个字用于存放栈顶地址)
  9.                 jump2app();                       //跳转到APP
  10. }
复制代码


收藏 评论12 发布时间:2017-8-29 17:43

举报

12个回答
队长shiwo 回答时间:2017-8-29 18:02:42
跳转前要关全局中断
moyanming2013 回答时间:2017-8-29 20:44:13
1.别忘了重定位向量表。
2.参考STM32CUBE示例程序,你相信ST官方还是小作坊?
freeelectron 回答时间:2017-8-30 09:15:11
1、首先要确认是跳转了没成功,还是没跳转?
2、跳转之后要重新设置堆栈
3、跳转之前要关闭中断,同时要检查栈顶地址是否合法

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

wt13568089592 回答时间:2017-8-30 17:00:16
队长shiwo 发表于 2017-8-29 18:02
跳转前要关全局中断

怎么关全局中断?我用的HAL库
wt13568089592 回答时间:2017-8-30 17:01:15
moyanming2013 发表于 2017-8-29 20:44
1.别忘了重定位向量表。
2.参考STM32CUBE示例程序,你相信ST官方还是小作坊? ...

我重新设置了中断向量表的SCB->VTOR = FLASH_BASE | 0x10000;
wt13568089592 回答时间:2017-8-30 17:01:59
freeelectron 发表于 2017-8-30 09:15
1、首先要确认是跳转了没成功,还是没跳转?
2、跳转之后要重新设置堆栈
3、跳转之前要关闭中断,同时要检 ...

跳转了,app没运行
wt13568089592 回答时间:2017-8-30 17:03:05
freeelectron 发表于 2017-8-30 09:15
1、首先要确认是跳转了没成功,还是没跳转?
2、跳转之后要重新设置堆栈
3、跳转之前要关闭中断,同时要检 ...

__asm void INTX_DISABLE()
{
        CPSID   I
        BX      LR          
}
//开启所有中断
__asm void INTX_ENABLE(void)
{
        CPSIE   I
        BX      LR  
}
这样开关中断对不对?
moyanming2013 回答时间:2017-8-30 17:25:33
wt13568089592 发表于 2017-8-30 17:01
我重新设置了中断向量表的SCB->VTOR = FLASH_BASE | 0x10000;

编译出的固件(比如bin文件)没下载对。
对于IAP程序是从flash的第0扇区开始的位置,即是FLASH_BASE;对于APP程序,则需要修改为FLASH_BASE+0x10000。
如果使用MDK-ARM的话配置非常简单,每次配置完成后rebuild再下载或调试。或者添加item区分。
IAP项目时,配置start为flash起始地址,大小为合适的大小(我的大小是0x8000):
QQ截图20170830171917.jpg

APP项目时,配置配置start为flash合适的起始地址(我的是0x800C000),大小为合适的大小(我的大小是0xF4000):
QQ截图20170830172401.jpg


评分

参与人数 1ST金币 +5 收起 理由
zero99 + 5

查看全部评分

wt13568089592 回答时间:2017-8-31 10:50:05
moyanming2013 发表于 2017-8-30 17:25
编译出的固件(比如bin文件)没下载对。
对于IAP程序是从flash的第0扇区开始的位置,即是FLASH_BASE;对 ...

我设置好了的
12下一页

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版