这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 后一修订版 两侧同时换到之后的修订记录 | ||
sd_iap_arm实验_更新升级stm32 [2020/07/11 17:15] zgf |
sd_iap_arm实验_更新升级stm32 [2020/07/11 17:16] zgf |
||
---|---|---|---|
行 20: | 行 20: | ||
==== 二、 实验设备及平台 ==== | ==== 二、 实验设备及平台 ==== | ||
- | - iCore4 双核心板。 | + | - iCore4 双核心板[[https://item.taobao.com/item.htm?spm=a1z10.1-c-s.w4004-22598974120.15.5923532fsFrHiE&id=551864196684|点击购买]]。 |
- | - JLINK(或相同功能)仿真器。 | + | - JLINK(或相同功能)仿真器[[https://item.taobao.com/item.htm?id=554869837940|点击购买]]。 |
- Micro USB线缆。 | - Micro USB线缆。 | ||
- SD卡。 | - SD卡。 | ||
行 63: | 行 63: | ||
* FATFS的这些特点,加上免费、开源的原则,使得FATFS应用非常广泛。 | * FATFS的这些特点,加上免费、开源的原则,使得FATFS应用非常广泛。 | ||
=== 5、FATFS模块的层次结构图 === | === 5、FATFS模块的层次结构图 === | ||
- | {{ :icore4:icore4_arm_hal_33_1.png?direct |}} | + | {{ :icore4:icore4_arm_hal_33_1.png?direct&600 |}} |
* 最顶层是应用层,使用者无需理会FATFS的内部结构和复杂的FAT协议,只需要调用FATFS模块提供给用户的一系列应用接口函数,如f_open,f_read,f_write和f_close等,就可以像在PC上读/写文件那样简单。 | * 最顶层是应用层,使用者无需理会FATFS的内部结构和复杂的FAT协议,只需要调用FATFS模块提供给用户的一系列应用接口函数,如f_open,f_read,f_write和f_close等,就可以像在PC上读/写文件那样简单。 | ||
行 69: | 行 69: | ||
* 需要我们编写移植代码的是FATFS模块提供的底层接口,它包括存储媒介读/写接口(diskI/O)和供给文件创建修改时间的实时时钟。 | * 需要我们编写移植代码的是FATFS模块提供的底层接口,它包括存储媒介读/写接口(diskI/O)和供给文件创建修改时间的实时时钟。 | ||
=== 6、原理图 === | === 6、原理图 === | ||
- | {{ :icore4:icore4_arm_hal_33_2.png?direct |}} | + | {{ :icore4:icore4_arm_hal_33_2.png?direct&600 |}} |
* STM32具有IAP(在应用编程)功能,实现用户程序在运行的过程中对User Flash部分区域进行烧写来实现固件程序的更新升级,本实验有两部分代码(Bootloadert程序和APP程序),第一部分代码不执行正常的功能操作,来执行对第二部分代码的更新,第二部分代码才是真正的功能代码,将第二部分代码产生的bin文件存放在SD卡中供STM32更新升级。如果直接上电则执行第二部分代码,如果按下ARM-KEY上电,则执行第二部分代码的更新升级。 | * STM32具有IAP(在应用编程)功能,实现用户程序在运行的过程中对User Flash部分区域进行烧写来实现固件程序的更新升级,本实验有两部分代码(Bootloadert程序和APP程序),第一部分代码不执行正常的功能操作,来执行对第二部分代码的更新,第二部分代码才是真正的功能代码,将第二部分代码产生的bin文件存放在SD卡中供STM32更新升级。如果直接上电则执行第二部分代码,如果按下ARM-KEY上电,则执行第二部分代码的更新升级。 | ||
==== 四、 实验程序 ==== | ==== 四、 实验程序 ==== |