引子 在上篇文章中我们使用Keil MDK提供的GUI控制分散加载,实际上,工程会根据GUI中的这些设置生成一个分散加载文件(.sct),而这个文件才直接控制链接器分散加载,有时GUI提供的设置并不能满足我们的要求,就需要直接编写这个分散加载文件。 查看根据GUI设置生成的分散加载文件(.sct) 若使用GUI控制分散加载(Project – Options for Target ‘xxx’ > Linker 中已勾选Use Memory Layout From Target Dialog…
引子 某些单片机拥有多个ROM与RAM,例如STM32H750就有ITCM、DTCM、SRAM1~SRAM4等多块内存,并且他们的地址并不连续,同时某些外设也支持地址映射,例如QSPI,从而访问外部Flash的储存空间,如何管理这些地址成了一个问题。有时我们希望将某些代码加载到内存运行,以提升某些关键操作的速度。为了解决这些问题,就需要使用ARM编译器的分散加载(Scatter-loading)特性。在IAR中是由链接器配置文件(Linker configuration file(.icf))实…