AT32F407有什么方法弄个U盘更新固件的操作?
这种APP的话是可以bin的吗?还是必须是hex带地址这种呢?可以看看这份sample code:
AT32F403A/407 MSC IAP SpiFlash As Disk
提供USB外挂SPI FLASH模拟U盘,在通过U盘存储固件进行升级。
https://www.arterytek.com/file/download/1187
AN0030_AT32F415_IAP USB作为主机接U盘升级AN0030_AT32F415_IAP USB作为主机接U盘升级这个贴子有 Bootloader 是在设备启动时首先运行的一段代码,其主要作用是初始化硬件、加载操作系统或应用程序等。通过编写一个支持 U 盘读取和固件更新功能的 Bootloader 程序,就可以实现从 U 盘更新固件的功能
使用 AT32F407 的开发环境,如 Keil 等,编写 Bootloader 代码。在 Bootloader 中,需要实现对 U 盘的检测、文件系统的支持以及固件文件的读取和写入等功能。首先要初始化 USB 接口,使其能够与 U 盘进行通信。然后,使用文件系统库来解析 U 盘的文件系统,找到存储固件的文件.
我觉得可以将 Bootloader 的入口地址设置为中断向量表的复位向量地址,这样在设备复位时,首先执行的就是 Bootloader 程序。
一般来说可以将应用程序的二进制文件与 Bootloader 程序进行合并,生成一个完整的固件文件。这个固件文件将被烧录到 AT32F407 的 Flash 存储器中。
利用 USB 大容量存储设备类的方法,一般也是可以的啦
将 AT32F407 配置为 USB 大容量存储设备,使它能够模拟成一个 U 盘,这样就可以通过计算机将固件文件直接复制到这个模拟的 U 盘中,然后在设备内部实现固件的更新.
使用 AT32F407 的相关库函数或开发工具,配置 USB 模块为大容量存储设备类。这包括设置 USB 的端点、描述符等参数,使设备能够被计算机识别为一个 U 盘设备.
在设备内部实现 FAT32 等常见的文件系统,以便能够正确地存储和读取固件文件。可以使用开源的文件系统库,如 FATFS 等,来简化文件系统的开发.
一般可以用U盘的方式,其实当计算机将固件文件复制到模拟的 U 盘中后,设备需要能够检测到文件的到来,并启动固件更新程序。这包括读取固件文件、验证文件的完整性、擦除旧的固件以及将新固件写入 Flash 存储器等操作 其实你自己写个BootLoader一般就可以了,不过USB更新感觉没有串口更新来的方便呢
页:
[1]