FlyMcu串口下载
串口下载原理
- 主程序储存在Flash存储器中(起始地址: 0x0800 0000)
- BootLoader程序存储在系统存储器中 (起始地址: 0x1FFF F000)
- BootLoader程序是一个辅助程序用于串口下载
串口下载原理: 将编译的程序写入Flash存储器中, 单片机就会执行这一程序, 但是写入程序(接收并转存数据) 的过程本身也是一个程序,因此需要一个辅助程序来完成写入程序这一过程,也就是BootLoader程序。更新过程中,BootLoader接收USART1数据并刷新到Flash存储器中(此时主程序处于瘫痪状态), 更新好后, 再启动主程序, 执行新程序
可类比于手机的刷机模式或者电脑的PE系统
启动配置
- BOOT0为0时, 启动的是Flash存储器, 也就是从0x0800 0000的位置开始运行(运行的是保存在里面的主程序)
- BOOT0为1, BOOT1为0时, 启动系统存储器, 也就是从0x1FFF F000的位置开始运行(也就是BootLoader程序)
- 每次切换BOOT引脚后,都需要按下复位
FlyMcu下载步骤
1. Output选项卡中勾选上Create Hex File(生成十六进制文件)
2. 打开FlyMcu 在对应项目的Objects文件夹中找到生成的Hex文件
3. 选择合适引脚和波特率
4. 切换跳线帽, 将单片机上Boot引脚配置为BOOT0为1, BOOT1为0
注意: 还需要按下复位按钮才能成功配置
5. 点击开始编程按钮, 等待程序烧录进去
6. 将Boot引脚切回(运行主程序)
也需要按下复位键
FlyMcu的其他功能(仅简单介绍)
- 一键下载电路,就不需要频繁切换跳线帽和按复位键(若硬件没有一键下载电路, 则无法使用)
- 读Flash, 可以读取单片机的程序并保存为.bin文件
- 设定选项字节(设置读写保护、用户数据字节等)
- 设置读保护后将不能读出Flash的内容; 解除读保护时stm32会自动擦除整篇Flash;如果想再次烧录代码,需要解除保护
- 上位机可以很方便修改用户数据字节, 可以作为配置参数
- 具体可以看江科大的课程