SC0097—AT32F415 MSC IAP SpiFlash As Disk
示例目的 提供USB外挂SPI FLASH模拟U盘,在通过U盘存储固件进行升级。 注:本示例代码是基于雅特力提供的V2.x.x板级支持包(BSP)而开发,对于其他版本的BSP,需要注意使用上的区别。
支持型号列表: AT32F415xx
主要使用外设列表: USB_device SPI1
设计简介 通过外部SPI FLASH模拟U盘,PC将设备固件拷贝到U盘,IAP程序启动之后会检查是否存在需要更新的固件,如果存在,则通过FATFS读取固件进行升级。另外IAP的FATFS只支持FAT文件格式读取。 目前仅支持bin文件升级。
外设使用 Samp code SPI外设使用 SPI1 (SCKB3, MISOB4, MOSI: PB5, CSA15),使用者可根据需求修改。 外部SPI FLASH使用W25Q128FV,对应不同的SPI FLASH,使用者可以根据具体使用型号和大小进行修改配置(包括FLASH命令,flash size, sector size等)
程序地址空间 IAP使用地址空间: 0x08000000~0x08008000 总共 32K APP使用地址空间: 0x08008000~
升级 bin文件名称 升级的bin文件名称固定为 app.bin. 固件名称不要超过11个字节(主要为了节省IAP使用空间)
升级状态 升级成功之后会将app.bin 改名为 success.bin 升级失败之后会将 app.bin 改名为 error.bin
升级具体流程 1. 进入 IAP程序 如果没有使用IAP进行升级过,将自动进入 IAP 如果有进行升级过,需要重新升级,需要按住AT-START上的 USER按键,然后复位设备 2. 将 USB接入 PC会看到对应磁盘 3. 将新固件 app.bin拷贝到磁盘 4. 拷贝完成之后,复位设备 5. 复位设备后 IAP进行固件升级 6. IAP升级结束之后可通过两种方式判断是否升级成功: 方式1:如果 LED4亮表示,升级成功。如果 LED3亮,表示升级失败 方式2:升级完成之后,如果磁盘里是 success.bin,表示升级成功。如果是 error.bin,表示升级失败。 (注意在升级完成之后,默认会先删除上一次的升级状态 bin 然后才会将当前的 app.bin改 为对应的状态)。 7. 如果升级成功,重新复位设备,将跳转到 app执行
快速使用方法 硬件资源 1) AT-START-F415 V1.0开发 板 (其他 型号请使用对应的开发板 图1. AT-START-F415 V1.0开发 板 软件资源 1) SourceCode MSC_IAP_SpiFlash_As_Disk 源程序 注: 所有project都是基于keil 5而建立,若用户需要在其他编译环境上使用,请参考雅特力提供的BSP_V2.x.x\project\xxx\templates中各种编译环境(例如IAR6/7/8,keil 4/5)进行简单修改即可。
示例使用 1) 打开 MSC_IAP_SpiFlash_As_Disk工程 ,并下载到开发板 (按住 USER按键,然后复位) 然后将开发板 usb接口 连接到 PC机 。 PC端 设备管理器会出 一个 U盘 设备 ;格式化 此优盘后 ,然后拷 贝固件到 U盘,拷贝完成之后,复位设备。 IAP会检查是否有固件更新,如果存在,则进行固件更新。 注: 本demo使用的外部SPI FLASH为华邦W25Q128FV系列,所以code所支持的命令是依照此FLASH编写的,若使用其他外部存储设备,需要修改底层驱动。
附件:
SC0097_AT32F415_MSC_IAP_SpiFlash_As_Disk_V2.0.0.zip
(3.17 MB, 下载次数: 3)
|