STM32 IAP 必要关注的一些事

[复制链接]
发表于 2026-2-21 00:37:50 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
1、起重要知道STM32的步伐是怎样分布在FLASH中的。
2、升级的时间涉及到两个步伐,一个是bootloader,一个是user步伐,这两个步伐的功能分别的什么作用的?
3、编译的固件是怎么分布的?通过谁人设置文件去引导编译器去排布代码的放置?
在编译的时间一样平常有一个.ld文件去引导,代码是怎样分布在固件中,包罗堆栈的指定,比如STM32在工程中就有这个文件STM32F100RB_FLASH.ld,用来设置代码编译天生的固件怎样分布在谁人所在。

4、startup_stm32f100xb.s文件是什么作用的?
用于芯片启动的时间还没有跑到main函数之前的初始化作用,指定停止函数的所在。

5、那里下载工程
git clone https://github.com/ferenc-nemeth/stm32-bootloader.git
6、bootloader和user步伐有两个停止向量表,user步伐必要装备停止向量表和bootloader的不一样。
方法一可以在代码启动的时间调用库函数设置偏移:
NVIC_SetVectorTable(NVIC_VectTab_FLASH,0x5000);__ASM(“CPSIE  I”);  //将停止向量表偏移0x5000个字节,原始的位置为0x08000000,偏移后位置为0x080005000。
方法二 修改system_stm32f1xx.c文件中的宏界说#define VECT_TAB_OFFSET  0x00005000U
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表