你的浏览器版本过低,可能导致网站不能正常访问!为了你能正常使用网站功能,请使用这些浏览器。
举报
查看全部评分
队长shiwo 发表于 2017-8-29 18:02 跳转前要关全局中断
moyanming2013 发表于 2017-8-29 20:44 1.别忘了重定位向量表。 2.参考STM32CUBE示例程序,你相信ST官方还是小作坊? ...
freeelectron 发表于 2017-8-30 09:15 1、首先要确认是跳转了没成功,还是没跳转? 2、跳转之后要重新设置堆栈 3、跳转之前要关闭中断,同时要检 ...
wt13568089592 发表于 2017-8-30 17:01 我重新设置了中断向量表的SCB->VTOR = FLASH_BASE | 0x10000;
moyanming2013 发表于 2017-8-30 17:25 编译出的固件(比如bin文件)没下载对。 对于IAP程序是从flash的第0扇区开始的位置,即是FLASH_BASE;对 ...
2.参考STM32CUBE示例程序,你相信ST官方还是小作坊?
2、跳转之后要重新设置堆栈
3、跳转之前要关闭中断,同时要检查栈顶地址是否合法
评分
查看全部评分
怎么关全局中断?我用的HAL库
我重新设置了中断向量表的SCB->VTOR = FLASH_BASE | 0x10000;
跳转了,app没运行
__asm void INTX_DISABLE()
{
CPSID I
BX LR
}
//开启所有中断
__asm void INTX_ENABLE(void)
{
CPSIE I
BX LR
}
这样开关中断对不对?
编译出的固件(比如bin文件)没下载对。
对于IAP程序是从flash的第0扇区开始的位置,即是FLASH_BASE;对于APP程序,则需要修改为FLASH_BASE+0x10000。
如果使用MDK-ARM的话配置非常简单,每次配置完成后rebuild再下载或调试。或者添加item区分。
IAP项目时,配置start为flash起始地址,大小为合适的大小(我的大小是0x8000):
APP项目时,配置配置start为flash合适的起始地址(我的是0x800C000),大小为合适的大小(我的大小是0xF4000):
评分
查看全部评分
我设置好了的
1.是否跳转成功
2.是否是因为应用程序产生中断而产生的重启
对于1问题加个打印看看是否跳进去,另外程序写进的格式是否正确,对于问题2如果由于应用程序中断产生重启,要改你代码的中断向量表位置,如图所示