历史上的今天
今天是:2024年11月20日(星期三)
2018年11月20日 | 高手教你如何编写STM32 bootloader
2018-11-20 来源:eefocus
今天教大家编写STM32的bootloader,其实编写bootloader主要事项有以下:
1、为你的bootloader程序选择存储器地址,因为STM32的存储器FLASH存储程序代码空间为512K,需要进行划分。

2、如果需要使用JTAG在线调试,则需要配置区域:

3、为您的用户程序选择合适的存储空间:

同时配置在线调试区域:

4、bootloader程序编写基本流程如下:
1)检测有无需要更新的标志,用户可自定义。比如说读取flash某位置存储的字节作为标志位。
2)如需更新,则调用STM32的FLASH程序擦鞋用户代码部分。
3)将新的bin文件(即2进制文件直接烧写进去,需要将keil生成的hex文件转换为bin文件,然后存储到外扩展的flash中)写入到STM32自带的FLASH中去,记住需要与上述设置的用户代码存储区一致。
4)更新成功后再跳转至用户程序。
5、用户程序需要注意一点,需要在程序运行前重新设置中断向量表,即:NVIC_SetVectorTable()。
6、用STM32自带的烧录软件进行烧录时,需要修改项目如下:
1)打开安装后目标文件中的map文件夹,我们所用的STM32为512Kflash,所以选取STM32_High-density_512K.STmap,将其分解为两个STmap文件(此文件可用记事本 打开)
STmap文件中,扇区是以每2K为一page来显示的,所以boot区我们只需要到page7,用户区我们需要page8到最后。
修改完成后再次打开此软件会发现多出了两个flash选项,可以根据此处来选择需要存储的代码区。

然后还有一处需要修改:

史海拾趣
|
调试I2C程序的时侯无应答,可我是严格按照时序来写的啊,地址也核对过了,没有出错,请问各位有经验的I2C高手们,还有哪些情况会导致无应答信号.谢谢了..… 查看全部问答> |
|
我想在单文档MFC里面实现可移动和停靠的工具栏(就和打开我的设备里面的工具栏一样,前面有2个竖杠),可是CE下CToolBar没有EnableDocking这个方法,请问下是怎么实现的? 还有一个问题,在设置工具栏图标的时候,我是通过下面代码实现的,其中有 ...… 查看全部问答> |
|
现在能够向PC串口发送字符,但不知道如何传送浮点数据,已经试过直接发送是不行的。 串口的发送和接收好像都是按字符进行,直接发送浮点数会被强制类型转换,这个好像和驱动有关,硬件寄存器应该也不支持浮点数据,我的这个理解不知是否正确。 想 ...… 查看全部问答> |
|
“中央领导和相关部门对低成本健康已有充分认识,利用高科技手段,大幅提高基本医疗卫生服务,将成为有中国特色的“低成本健康”的必经之路。在此过程中,云计算、ICT、家用医疗电子等技术将成为低成本健康工程的最大推动力。”4月26日,由创意时代 ...… 查看全部问答> |
|
android2.3 可以和android4.0 公用一个JDK 吗? 其实就是想用以前android2.3 上装的JDK 版本,不知道android 4.0 是否直接可以用。 呵呵。先看看是否可以先,弄过的可以来讨论一下。 … 查看全部问答> |
|
【SensorTag】The third week开发环境的安装 按周计划第三周了。我应提交的是开发环境安装心得。 由于CCS54*内集成51核,又因为例程基于IAR 8051的所以我也用IAR 8051. IAR 开发环境的安装包应从IAR网站或EEW-BLE4.0蓝牙技术交流群共享里得到。 下边我写下如何破解安装的: 当IAR 8051开 ...… 查看全部问答> |




