这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » STM32 » KeilMDK的sct分散加载文件初步认识

共4条 1/1 1 跳转至

KeilMDK的sct分散加载文件初步认识

院士
2025-11-04 19:19:30     打赏

以工程名命名的后缀为 *.sct 文件是Keil MDK生成的分散加载文件 (Linker Control File,scatter loading)。链接器根据该文件的配置分配各个节区地址,生成分散加载代码。

我们在构建工程时,Keil MDK会根据我们选择的芯片型号,按照预置的芯片内部Flash及内部SRAM的容量大小来初始化sct文件。通过图形化方式显示出来如下图所示:

版主这里选择的是STM32F407VE。

默认情况下,Linker页面的Usw Menory Layout from Target Dialog是勾选上的,意思是以前面Target页面的内存布局为准。可以看到下图中的Scatter File是没有文件的,因为这时候内存布局是依靠前面Target页面设置为准,这里有没有这个分散加载文件无所谓。

其实,这时候细心的网友应该可以觉察到此时在工程的配置目录里并没有.sct文件。我们通过下面的步骤操作就可以让Keil自动生成一个sct文件了。

  1. 去掉勾选Usw Menory Layout from Target Dialog,这时Scatter File自动生成一个sct文件在Objects文件夹的输出路径下


打开后的sct文件如下面所示:


; *************************************************************
; *** Scatter-Loading Description File generated by uVision ***
; *************************************************************

LR_IROM1 0x08000000 0x0001B000  {    ; load region size_region
  ER_IROM1 0x08000000 0x0001B000  {  ; load address = execution address
   *.o (RESET, +First)
   *(InRoot$$Sections)
   .ANY (+RO)
   .ANY (+XO)
  }
  RW_IRAM1 0x20002000 0x00020000  {  ; RW data
   .ANY (+RW +ZI)
  }
}

嘿嘿,是不是看着这些标识符与数字有点懵圈!?没事,本帖子内容只是初步认识一下sct链接文件。下一篇帖子我们将仔细研究一下sct文件里面这些标识符与数字的具体含义。




关键词: sct     分散加载    

高工
2025-11-04 22:11:11     打赏
2楼

期待版主后续的作品


助工
2025-11-05 09:58:40     打赏
3楼

平时没有使用过个sct链接文件。


专家
2025-11-05 10:00:36     打赏
4楼

一篇不够,期待下一篇


共4条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]