首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >系统重置后STM32F7挂起

系统重置后STM32F7挂起
EN

Stack Overflow用户
提问于 2018-12-24 01:42:07
回答 1查看 448关注 0票数 0

我有以下问题:

STM32F7闪存从0x0800 0000开始。我的程序运行得很好。然后,我将闪存中的代码移到0x0802 0000,以便为将来的引导加载程序留出空间。我更改了MemoryMap.xml文件:

代码语言:javascript
复制
<MemorySegment start="0x08020000" name="FLASH" size="0x80000" access="ReadOnly"/>

和相应的flashplacement.xml文件:

代码语言:javascript
复制
<ProgramSection alignment="0x100" load="Yes" name=".vectors" start=" 0x8020000"/>

启动debuging....Program运行良好,直到发生链接错误,从而通过调用HAL_NVIC_SystemReset触发系统重启。结果是一个挂起的应用程序,这不是当我的代码驻留在闪存的开始(0x0800 0000)的情况下,有人知道为什么会发生这种情况吗?

问候

/Kostas

EN

回答 1

Stack Overflow用户

发布于 2018-12-24 06:53:13

答案很简单。你不能只是移动内存的起始地址。您的micro将从与通常相同的地址获取堆栈指针值和重置处理程序例程地址。您需要已经刷新了这个引导加载程序(至少是向量表和重置处理程序,它们将设置新的向量表、设置应用程序堆栈指针并将控制传递给您的应用程序重置处理程序

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53905789

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档