5.下载flash驱动程序,34 36 37服务。因为bootloader里是不带驱动程序的,防止意外操作导致flash改变,程序出现异常,所以只在刷写的时候才允许操作flash。下载完成后一般还需要例程控制31服务进行完整性检查(CRC32校验)和依赖性检查(ecu指定,DID为FF01-14229-1规定)(该步骤暂时不做) 6.擦除内存,由31服务执行,具体的D...
硬件初始化:BootLoader首先进行硬件初始化,包括配置时钟、GPIO、中断等。检测固件版本:BootLoader可以通过...
我们的Bootloader做好以后需要烧录到MCU里面,可以直接用Keil uVison来下载,也可以用J-Flash或者其他,这个都没关系,但是要注意内存的分配,要把固件烧到对应的内存地址上。 我这里做出来的bootloader bin只有8K,不过为了方便后续在这部分增加新功能,我实际分配了12K的空间,地址区间是0x08000000-0x08003000。 如果是用keil...
在APP程序中利用板载按键来调用下面的函数进入系统bootloader,不需要配置boot0脚为高电平。 void System_Jump2Bootloader(void) { uint32_t i = 0; /** 声明一个函数指针 */ void (SysJump2Boot)(void); /** STM32F4的系统BootLoader地址 */ __IO uint32_t BootloaderAddr = 0x1FFF0000; /** 关闭全...
01 bootloader 简介 bootloader其实就是一段启动程序,它在芯片启动的时候最先被执行,可以用来做一些硬件的初始化或者用作固件热更新,当初始化完成之后跳转到对应的应用程序中去。 bootloader程序需要通过下载器烧写到芯片中,而APP则可以通过有线方式的UART、IIC、USB、SPI等总线来通过bootloader来更新,视所设计的bootloade...
下面是整个Customer BootLoader支持的指令,其中比较重要的是0x55(BL跳转固定地址),0x56(指定擦除扇区),0x57(在不同内存写数据)。后续将详细介绍整个Customer BootLoader的方案实现和代码实现。 主机发送命令码BootLoader回复备注 BL_GET_VER 0x51 BootLoader版本号(1 byte) 从MCU中读BootLoader的版本号 BL_GET_HELP ...
这个bootloader的主要功能是按照下载的升级包类型升级应用程序,然后跳转到应用程序区运行。 支持非压缩的固件。 支持lzma压缩后的固件,解压大概需要30K的SRAM空间,如果需要其他压缩方式,可自行改造。 支持差分升级包,极大减少升级包体积。 所有升级包均附加64字节包头,用来保存升级包名称,长度,校验等信息,类似u-boot镜像...
基于STM32F4和RT-Thread通用BootLoader使用经验 硬件资源 正点原子stm32f407zgt6探索者开发板,片上Flash(ROM)大小为1024KB,RAM大小为192KB,板载一个SPI Flash W25Q128。 BootLoader配置 根据官方文档: https://www.rt-thread.org/document/site/application-note/system/rtboot/an0028-rtboot/...
1) 先把上面的工程stm32 Bootloader下载到目标板中; 2) 打开超级终端 或SecureCRT,设置波特特115200,停止位1,数据位8,效验无。 3) 先按下‘C’再给目标板上电;(注意先后顺序) 4) 选择1,然后使用YModem, YModem-G协议发送"stm32目标板程序.bin"文件。