[其他ST产品] 如何在STM32中实现自定义的Bootloader来更新固件?

[复制链接]
2896|29
风凉 发表于 2024-4-12 14:00 | 显示全部楼层
一般就是指针的设置,跳转,就是BootLoader
西洲 发表于 2024-4-12 16:00 | 显示全部楼层
你得有变量标记的,标记这个固件是否是新的
ccook11 发表于 2024-4-12 17:54 | 显示全部楼层
应该能够将固件文件转换为Bootloader可以理解的格式,并通过UART、SPI等接口发送给STM32。
捧一束彼岸花 发表于 2024-4-12 18:00 | 显示全部楼层
你想用什么方式升级APP的固件?
未说出口的像你 发表于 2024-4-12 20:00 | 显示全部楼层
一般都要写代码的,就是MCU原来的ISP不要用,自己再写一套IAP的
月亮一键变蓝 发表于 2024-4-12 22:00 | 显示全部楼层
网上搜搜在线升级呗,应该有好多的吧
将爱藏于深海 发表于 2024-4-13 02:00 | 显示全部楼层
你可以在程序初始运行BootLoader,然后检查是否有新固件,有的话跳转升级,没有就直接跳转到固件里
一只眠羊 发表于 2024-4-13 06:00 | 显示全部楼层
自定义的BootLoader?能细说说吗?是怎么个自定义?
温室雏菊 发表于 2024-4-13 12:00 | 显示全部楼层
一般用BootLoader的话就是自己写个跳转指针程序吧
mollylawrence 发表于 2024-4-15 20:06 | 显示全部楼层
如果需要远程升级,可以实现OTA(Over-The-Air)技术,通过无线网络接收新固件。这通常需要一个服务器来存放固件镜像,并通过串口或其他通信方式与客户端设备进行数据传输。
hilahope 发表于 2024-4-16 13:29 | 显示全部楼层
在完成Bootloader的编写后,需要进行充分的测试和验证,确保Bootloader能够正确地识别新固件、下载固件、切换到新固件运行,并且在更新失败时能够回滚到旧版本或进入安全模式。
uptown 发表于 2024-4-16 15:31 | 显示全部楼层
在最终部署前,需要对Bootloader进行彻底的测试,以确保它能够正确地接收、验证和编程固件图像,并且在更新过程中保持设备的稳定性。
uiint 发表于 2024-4-16 21:31 | 显示全部楼层
在上电或复位后,STM32会从Flash的前4个字节开始执行程序,这通常是Bootloader的入口点。Bootloader随后可以执行各种任务,如检查固件完整性、更新固件等。
jkl21 发表于 2024-4-17 10:50 | 显示全部楼层
将固件映像烧写到Flash中主应用程序的区域。
macpherson 发表于 2024-4-17 16:33 | 显示全部楼层
编写Bootloader程序,它将在设备的Boot模式下运行。Bootloader的主要任务是接收固件更新数据,验证其完整性,并将固件加载到内存中执行。
tifmill 发表于 2024-4-19 23:09 | 显示全部楼层
编程完成后,Bootloader需要更新必要的指针,如栈顶指针和Reset_Handler指针,然后跳转到新固件的开始处执行。
belindagraham 发表于 2024-4-20 13:24 | 显示全部楼层
编写代码以接收固件更新数据。这可以通过UART、SPI、I2C等接口实现。
实现闪存写入逻辑。STM32 HAL库提供了闪存编程函数,如HAL_FLASH_Unlock(), HAL_FLASH_Program(), 和 HAL_FLASH_Lock()等。
usysm 发表于 2024-4-20 20:05 | 显示全部楼层
在Bootloader中,初始化必要的硬件,如时钟、GPIO、串口等,以便与外部世界进行通信。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部