项目简介
本项目是基于C语言和FreeRTOS框架开发的嵌入式系统固件升级程序。其核心功能是借助UART接口接收符合YMODEM协议格式的固件文件,再通过I2C接口将文件写入到MCU的Flash存储器,从而实现单片机固件的升级。
项目的主要特性和功能
- 采用FreeRTOS实时操作系统进行多任务管理和调度,保障固件升级过程的实时性与稳定性。
- 运用YMODEM协议,通过UART接口接收固件文件。
- 利用I2C接口与MCU的Flash存储器通信,实现固件数据的写入。
- 具备错误处理机制,可在固件升级过程中处理可能出现的错误,并尝试恢复升级流程。
- 升级前计算并检查固件文件的MD5校验和,确保文件的完整性与正确性。
主要函数及功能
uart_init()
:初始化UART接口,用于接收固件文件。uart_exit()
:关闭UART接口。i2c_init()
:初始化I2C接口,用于与Flash存储器通信。i2c_write()
:向Flash存储器写入数据。Ymodem_Transmit()
:实现YMODEM协议的文件传输。get_file_md5sum2()
:计算文件的MD5值,用于验证文件完整性。
安装使用步骤
- 硬件适配:由于本程序专为特定的MCU和Flash存储器设计,需要根据具体硬件平台对代码进行调整和适配。
- 生成升级文件:完成合并文件输出后,在
jc_dg_keyboard_gd32mcu_freertos - 2023 - 505 - debug\output
目录中找到gd32f103 - iap_jc_dg_keyboard_gd32.bin
文件,用于出厂烧录到单片机;在jc_dg_keyboard_gd32mcu_freertos - 2023 - 505 - debug\temp
目录中,jc_dg_keyboard_gd32.bin
和jc_dg_keyboard_gd32.md5
会同步生成,用于在rk3399中升级单片机程序。 - 进行升级:确保系统处于安全状态,防止升级过程中受到干扰或中断。建议在特定模式(如引导模式)下进行固件升级,且确保升级过程不被中断。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】