视频教程汇总帖:https://www.armbbs.cn/forum.php?mod=viewthread&tid=110519
分散加载在IDE开发环境中有着举足轻重的作用,通过分散加载,我们可以方便的指定程序代码和变量的存储位置。特别是像H7这种多个RAM块,外置SDRAM空间,以及内部Flash和外置内存映射的QSPI Flash。
比如我们想把时间关键代码放到ITCM里面运行,而占用空间超大,又不需要快速执行的代码放到QSPI Flash运行,都可以方便的配置。
视频(1080p):
https://www.bilibili.com/video/BV1MR4y157XS
本期视频主要分为三个部分:
第1部分,分散加载基础知识。
第2部分,通过各种实战案例学习:
(1)案例1:像使用通用SRAM一样定义使用STM32H7的所有RAM块和外部SDRAM。
(2)案例2:时间关键代码在 ITCM 执行,同时中断向量表也复制了进来
(3)案例3:STM32H7内部Flash和QSPI Flash混合运行程序的方式。
(4)案例4:字库,图库等通过MDK一键下载到外部QSPI/SPI Flash。
第3部分:AC5和AC6的异同。
(1) 官方文档。
(2) 未初始化变量分散加载配置的不同
(3) 分散加载中添加宏定义和#include头文件。
第4部分,通过官方手册,分散加载稍微深入了解.
(1)根域。
(2).ANY设置不同加载优先级。
参考资料和文件下载:
资料下载:
https://pan.baidu.com/s/1K0eSO25UTzlgqdymQ2rUxw 提取码:oh6l
ARM分散加载文档:
https://developer.arm.com/docume ... using-scatter-files
AC5和AC6未初始化变量定义方法:
https://developer.arm.com/documentation/ka003046/latest
STM32H7的MDK汇编启动代码__main,__initial_sp,__Vectors等在C里面的调用方法
https://www.armbbs.cn/forum.php?mod=viewthread&tid=100050
MDK中根域的含义
https://www.armbbs.cn/forum.php?mod=viewthread&tid=111079