这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
icore4t_58 [2020/04/01 09:46] zgf [三、 实验原理] |
icore4t_58 [2022/04/01 10:57] (当前版本) sean |
||
---|---|---|---|
行 2: | 行 2: | ||
|技术支持电话|**0379-69926675-801**||| | |技术支持电话|**0379-69926675-801**||| | ||
|技术支持邮件|Gingko@vip.163.com||| | |技术支持邮件|Gingko@vip.163.com||| | ||
- | |技术论坛|http://www.eeschool.org||| | ||
^ 版本 ^ 日期 ^ 作者 ^ 修改内容 ^ | ^ 版本 ^ 日期 ^ 作者 ^ 修改内容 ^ | ||
| V1.0 | 2020-04-01 | gingko | 初次建立 | | | V1.0 | 2020-04-01 | gingko | 初次建立 | | ||
行 103: | 行 102: | ||
- 装有WIN XP(及更高版本)系统的计算机。 | - 装有WIN XP(及更高版本)系统的计算机。 | ||
==== 三、 实验原理 ==== | ==== 三、 实验原理 ==== | ||
- | === 1.介绍 === | ||
* 绝大部分 STM32 系列芯片内部都具有 FLASH 存储器用于存储程序,安装芯片包后即自带相应的 FLASH 下载算法,在工程里直接选择即可。而 STM32H750 系列芯片内部只有一个 128KB 的 FLASH 存储器, 代码量稍微大一点就放不下了,所以其程序代码需要存放在外部的存储器中,使用时需要自己提供对应FLASH 的下载算法给 KEIL 软件。 | * 绝大部分 STM32 系列芯片内部都具有 FLASH 存储器用于存储程序,安装芯片包后即自带相应的 FLASH 下载算法,在工程里直接选择即可。而 STM32H750 系列芯片内部只有一个 128KB 的 FLASH 存储器, 代码量稍微大一点就放不下了,所以其程序代码需要存放在外部的存储器中,使用时需要自己提供对应FLASH 的下载算法给 KEIL 软件。 | ||
* 外部闪存的使用提供了更高的存储能力,并且具有类似的性能水平,同时提供了经济高效的解决方案来满足增加的闪存空间的需求。 | * 外部闪存的使用提供了更高的存储能力,并且具有类似的性能水平,同时提供了经济高效的解决方案来满足增加的闪存空间的需求。 | ||
行 112: | 行 110: | ||
* 外部存储器启动应用程序负责初始化所需的资源,以使外部存储器可用。该应用程序根据用户配置初始化所需的资源。 | * 外部存储器启动应用程序负责初始化所需的资源,以使外部存储器可用。该应用程序根据用户配置初始化所需的资源。 | ||
* 外部存储器启动应用程序必须设置主堆栈指针,并配置要在外部存储器上执行的应用程序。 这种类型的引导方案支持大量的用户应用程序。外部存储器引导应用程序可确保在设置之后不再需要任何资源都可以重置或释放,然后再跳转到用户应用程序。下图说明了该引导方案。 | * 外部存储器启动应用程序必须设置主堆栈指针,并配置要在外部存储器上执行的应用程序。 这种类型的引导方案支持大量的用户应用程序。外部存储器引导应用程序可确保在设置之后不再需要任何资源都可以重置或释放,然后再跳转到用户应用程序。下图说明了该引导方案。 | ||
- | {{ :icore4t:icore4t_arm_hal_58_1.png?direct |}} | + | {{ :icore4t:icore4t_arm_hal_58_1.png?direct&700 |}} |
* 控制器直接识别,所以这些信号会经过一个“电平转换芯片”转换成控制器能识别的“TTL 校准”的电平信号,才能实现通讯。 | * 控制器直接识别,所以这些信号会经过一个“电平转换芯片”转换成控制器能识别的“TTL 校准”的电平信号,才能实现通讯。 | ||
* **XiP:** | * **XiP:** | ||
* XiP模型基于直接从用于代码存储的外部非易失性存储器执行代码。此执行模型需要内存映射支持,以授予CPU对执行代码用户应用程序的直接访问权限。通过FMC / QSPI接口可在外部NOR / QSPI闪存上使用XiP模型。 | * XiP模型基于直接从用于代码存储的外部非易失性存储器执行代码。此执行模型需要内存映射支持,以授予CPU对执行代码用户应用程序的直接访问权限。通过FMC / QSPI接口可在外部NOR / QSPI闪存上使用XiP模型。 | ||
* 以下流程图说明了XiP模型的操作流程。 | * 以下流程图说明了XiP模型的操作流程。 | ||
- | {{ :icore4t:icore4t_arm_hal_58_2.png?direct |}} | + | {{ :icore4t:icore4t_arm_hal_58_2.png?direct&700 |}} |
* **BootROM:** | * **BootROM:** | ||
* BootROM模型基于所选易失性存储器中的代码执行。 当二进制数据存储在没有内存映射接口的内存中时(例如对于SDCARD),此执行模型是合适的。 当二进制数据以低吞吐量存储在存储器中时(例如SPI-NOR(使用带有1行的QSPI模拟),该模型也适用。 | * BootROM模型基于所选易失性存储器中的代码执行。 当二进制数据存储在没有内存映射接口的内存中时(例如对于SDCARD),此执行模型是合适的。 当二进制数据以低吞吐量存储在存储器中时(例如SPI-NOR(使用带有1行的QSPI模拟),该模型也适用。 | ||
* 以下流程图说明了BootROM模型的操作流程。 | * 以下流程图说明了BootROM模型的操作流程。 | ||
- | {{ :icore4t:icore4t_arm_hal_58_3.png?direct |}} | + | {{ :icore4t:icore4t_arm_hal_58_3.png?direct&700 |}} |
* **用户配置由以下定义定义:** | * **用户配置由以下定义定义:** | ||
* •DATA_AREA:用于指定用于数据保存的易失性存储器。支持的内存(取决于所使用的板)是: | * •DATA_AREA:用于指定用于数据保存的易失性存储器。支持的内存(取决于所使用的板)是: | ||
行 446: | 行 444: | ||
* 3、打开 Keil MDK 开发环境,并打开bootloader_flash工程; | * 3、打开 Keil MDK 开发环境,并打开bootloader_flash工程; | ||
* 4、烧写程序到 iCore4T内部FLASH上; | * 4、烧写程序到 iCore4T内部FLASH上; | ||
- | {{ :icore4t:icore4t_arm_hal_58_3.png?direct |}} | + | {{ :icore4t:icore4t_arm_hal_58_4.png?direct |}} |
* 5、把FLM文件复制到 KEIL 的安装目录,如:D:\Keil_v5\ARM\Flash; | * 5、把FLM文件复制到 KEIL 的安装目录,如:D:\Keil_v5\ARM\Flash; | ||
* 6、选择下载算法; | * 6、选择下载算法; | ||
- | {{ :icore4t:icore4t_arm_hal_58_3.png?direct |}} | + | {{ :icore4t:icore4t_arm_hal_58_5.png?direct |}} |
* 7、设置算法空间,取消校验; | * 7、设置算法空间,取消校验; | ||
- | {{ :icore4t:icore4t_arm_hal_58_3.png?direct |}} | + | {{ :icore4t:icore4t_arm_hal_58_6.png?direct |}} |
* 8、烧写程序到 iCore4T 的QSPI FLASH上; | * 8、烧写程序到 iCore4T 的QSPI FLASH上; | ||
* 9、也可以进入Debug 模式,单步运行或设置断点验证程序逻辑。 | * 9、也可以进入Debug 模式,单步运行或设置断点验证程序逻辑。 |