nuan11nuan 发表于 2024-8-12 13:25

AT32F407有什么方法弄个U盘更新固件的操作?

这种APP的话是可以bin的吗?还是必须是hex带地址这种呢?

muyichuan2012 发表于 2024-8-12 16:37

可以看看这份sample code:
AT32F403A/407 MSC IAP SpiFlash As Disk
提供USB外挂SPI FLASH模拟U盘,在通过U盘存储固件进行升级。
https://www.arterytek.com/file/download/1187

Rxxkles 发表于 2024-8-12 16:47

AN0030_AT32F415_IAP USB作为主机接U盘升级AN0030_AT32F415_IAP USB作为主机接U盘升级这个贴子有

y1n9an 发表于 2024-12-4 22:16

Bootloader 是在设备启动时首先运行的一段代码,其主要作用是初始化硬件、加载操作系统或应用程序等。通过编写一个支持 U 盘读取和固件更新功能的 Bootloader 程序,就可以实现从 U 盘更新固件的功能

q1ngt12 发表于 2024-12-5 09:49

使用 AT32F407 的开发环境,如 Keil 等,编写 Bootloader 代码。在 Bootloader 中,需要实现对 U 盘的检测、文件系统的支持以及固件文件的读取和写入等功能。首先要初始化 USB 接口,使其能够与 U 盘进行通信。然后,使用文件系统库来解析 U 盘的文件系统,找到存储固件的文件.

liu96jp 发表于 2024-12-5 10:30

我觉得可以将 Bootloader 的入口地址设置为中断向量表的复位向量地址,这样在设备复位时,首先执行的就是 Bootloader 程序。

lamanius 发表于 2024-12-5 13:14

一般来说可以将应用程序的二进制文件与 Bootloader 程序进行合并,生成一个完整的固件文件。这个固件文件将被烧录到 AT32F407 的 Flash 存储器中。

zhizia4f 发表于 2024-12-5 16:33

利用 USB 大容量存储设备类的方法,一般也是可以的啦

b5z1giu 发表于 2024-12-5 18:19

将 AT32F407 配置为 USB 大容量存储设备,使它能够模拟成一个 U 盘,这样就可以通过计算机将固件文件直接复制到这个模拟的 U 盘中,然后在设备内部实现固件的更新.

cen9ce 发表于 2024-12-5 19:58

使用 AT32F407 的相关库函数或开发工具,配置 USB 模块为大容量存储设备类。这包括设置 USB 的端点、描述符等参数,使设备能够被计算机识别为一个 U 盘设备.

ex7s4 发表于 2024-12-5 20:19

在设备内部实现 FAT32 等常见的文件系统,以便能够正确地存储和读取固件文件。可以使用开源的文件系统库,如 FATFS 等,来简化文件系统的开发.

g0d5xs 发表于 2024-12-5 21:48

一般可以用U盘的方式,其实当计算机将固件文件复制到模拟的 U 盘中后,设备需要能够检测到文件的到来,并启动固件更新程序。这包括读取固件文件、验证文件的完整性、擦除旧的固件以及将新固件写入 Flash 存储器等操作

lix1yr 发表于 2024-12-5 22:01

其实你自己写个BootLoader一般就可以了,不过USB更新感觉没有串口更新来的方便呢
页: [1]
查看完整版本: AT32F407有什么方法弄个U盘更新固件的操作?