mdk keil 指定变量、函数存储位置,使用 Scatter-Loading Description File, __attribute__(("section“))...

0. 数据类型说明

主要包括4类:

  1. Code (inc. data) ,属于RO,也就是写的函数代码(包括代码中的变量)
  2. RO Data , 属于RO,使用const修饰的变量。
  3. RW Data, 属于RW,变量。
  4. ZI Data,   属于RW,没有初始化的变量。

1. mdk 设置Scatter 文件

默认情况下,片内会有两大存储块IROM(只读存储器RO,用来存常量、代码等),IRAM(读写存储器RW,用来存变量,包括被默认初始化为0的变量),如下图 "Target"选项卡。

 

来看“Linker”选项卡,下面介绍操作:

1. 默认的选项是使用的“Target”的内存分区,需要把这个勾去掉。

 

2. 去掉勾后会出现一个“.sct"文件,点击Edit就可以修改了,对文件做了注释说明如下:

LR_IROM1 0x08000000 0x00080000  {    ; load region size_region, 装载区域
                                    ; LR_IROM1, 这是一个名字,随便起。可以理解为一块存储器的名字。
                                    ; 0x08000000,这是起始地址。
                                    ; 0x00080000,代表size,也就是存储器的最大空间。

  ER_IROM1 0x08000000 0x00080000  {  ; load address = execution address, 执行区域
   *.o (RESET, +First)        ;<
  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值