# I2C BootLoader V0.1 IAP开发流程
须知bootloader和app是两个独立的固件,只是烧写到了FLASH的不同地址处。
- step1:
首先划分好main flash空间, 以本项目为例,将main flash划分成bootloader(addr: 0x08000000 - 0x0800DBFF)和app(addr: 0x0800DC00 - 0x0800FFFF)两部分;
- step2:
准备一份app固件,要求在该app固件中的.ld链接文件中将MEMORY中的FLASH按此处样式修改FLASH (rx) : ORIGIN = 0x0800DC00, LENGTH = 9K, 即ORIGIN修改为step1中app存储起始地址,LENGTH修改为step1中的存储需要的FLASH空间大小, 重新编译固件,生成.bin文件(此处为gd32e23x.bin);
- step3:
要实现i2c烧写固件,同时需要上位机软件和下位机硬件的支持,本项目中上位机软件为host.py,主要实现Serial串口发送接收读写指令,此处因下位机MCU板支持USB通信,所以此处Serial串口即是实现USB串口收发命令功能。本项目中下位机硬件是一块STM32F103C8T6核心板,USB2I2C文件夹下即是该核心板的驱动源码文件,主要实现USB串口驱动和I2C读写,即可认为此时的STM32F103C8T6核心板是一个USB转I2C设备。
- step4:
要实现i2c批量烧写固件,待烧写设备须提前烧写支持i2c烧写功能的bootloader固件,本项目中BootLoader文件夹下即是bootloader固件工程。即该bootloader支持I2C烧写固件到GD32E232K8Q7待编程设备中,项目中的GD32E23
2025-09-26 16:21:01
16.71MB
上位机源码
1