历史上的今天
今天是:2025年01月07日(星期二)
2019年01月07日 | 关于STM32F4的IAP的一点点记录
2019-01-07 来源:eefocus
看了原子的STM32的IAP 教程,一开始还以为bootloader是啥意思,差点跟uboot搞混淆了,其实stm32的“bootloader”不需要自己写汇编和链接脚本,Boot和App都是单片机程序,只是实现的功能不同,前者是为了引导App,后者是为了实现业务逻辑。只不过boot是有写flash或者sram的功能,再加上通信口(USB/USART etc. )来接收所谓的应用程序app代码。然后跳转到该代码执行就好了,但是要重新设置一下中断向量表的位置,要不然两个程序的中断可能会混淆。也就是说boot代码的中断要进boot代码的irq handler 而 app代码的中断要进app代码的irq handler。下边就以flash iap为例来具体说说需要注意的两点:
(1)boot代码和app代码在flash中的位置
两个代码都要正常运行那肯定不能在写入app代码到flash时把boot的代码给覆盖了,要不然boot代码就失效了。
STM32F429IG支持三种启动方式
1. FLASH启动 上电复位后PC指针指向第一条指令位置——0x08000000
2. SRAM启动 上电复位后PC指针指向第一条指令位置——0X20000000
3. 系统存储器启动 上电复位后PC指针指向第一条指令位置——0X1FFF0000
程序的起始地址默认是被放在FLASH的起始地址处,即0x08000000。
下图为boot程序的flash设置:

boot程序的地址不需要更改就是用默认的地址,理论上我们只需要确保 APP 起始地址在 Boot 之后,并且偏移量为 0X200的倍数即可。
设置boot的占用64k(0x10000),就是0X08000000 ~ 0X08010000的flash区间。
该芯片flash共1M,则app占用的起始地址设置为: 0X08010000,size为:1M-64k =960K (0XF0000)。
以下为app程序的flash设置:

(2)中断向量表的重定位
我们都知道一般情况STM32复位后从0x08000000开始取指,中断向量从0x08000004开始第一个为RESET向量 那APP工程的中断向量就不能如此了 APP的向量地址要从0x08010000开始:
NVIC_SetVectorTable(FLASH_BASE, 0x10000);
这里的0x10000根据实际情况更改即可。
上一篇:STM32 IDLE中断
史海拾趣
|
讨论了利用霍尔元件在无刷电机控制系统中使用的问题,并对霍尔集成传感器进行 了探讨。介绍了2 种利 用霍 尔集成传感器组成无刷 电机控制 电路的方法。 … 查看全部问答> |
|
A Unified Calibration Algorithm for Scattering A simple algorithm which unifies the calibration procedures for Scattering and Load Pull measurements is proposed. The new technique is particulary useful when measuring non-insertable devices and for on-wafer characterization ...… 查看全部问答> |
|
在WinCE5.0下要添加哪些组件才能支持WiFi? 已经添加了: 还有就是,是不是如果支持了WiFi配置,那么在开机的时候就会弹出一个配置的对话框? 据说只支持English,是吗?有在中文下弄成功的吗?… 查看全部问答> |
|
公司的一个项目采用MIPS的CPU 发现调用intLock()无效,各中断照样产生 用IDA反汇编出来的代码如下: .text:80050524 # =============== S U B R O U T I N E ======================================= .text:80050524 .text:800505 ...… 查看全部问答> |
|
由于水利监控设备建设区域涵盖范围广泛,有些甚至会建设于偏远的山区,并且面临狂风暴雨等恶劣天候,因此,在实际应用建设上,便充满许多考验。 那么,通常工程商与使用者经常遭遇哪些问题?他们又需要哪些更好的解决方案呢? 气候恶劣 ...… 查看全部问答> |
|
钢厂照明配电用接触器触点被烧是什么原因? 我公司最近在一钢厂 照明配电采用LC1-D245M7C交流接触器,型号是按照客户要求来选的。但是,最近老是烧掉交流接触器的主触点。 请教各位高手,造成上述问题的原因是什么?该如何处 ...… 查看全部问答> |




