[技术问答] 如何在程序编译时,将数据放在Flash固定的地址?

[复制链接]
1226|7
 楼主| laocuo1142 发表于 2022-2-25 15:00 | 显示全部楼层 |阅读模式
  • 在Keil开发环境中
    可以使用以下语句:

    const uint32_t Buf[1] __attribute__((at(0x1000))) = {0x12345678};

    将数据0x12345678写入到地址0x1000。


  • 在IAR开发环境中
    首先程序必须先定义常数SIG,常数值0x12345678放在“Flash Address”指定的地址:

    /* Declaration of signature. Location of it is specified in scatter file. */

    const uint32_t SIG @ "Flash_Address";

    /* Definition of SIG signature. */

    const uint32_t SIG = 0x12345678;

    在link file(*.scf)必须定义Flash_Address确定的地址。如下列为例,定义“Flash_Address”的地址为0x1000:

    place at address mem:0x1000  {section Flash_Address };



产品:
微控制器 ,Arm Cortex-M0 微控制器 ,M051 系列 ,M0518 系列 ,M0519 系列 ,Mini51 系列 ,Nano100 / 102 系列 ,Nano103 Base 系列 ,Nano110 / 112 LCD 系列 ,Nano120 USB 系列 ,Nano130 USB+LCD 系列 ,NUC029 系列 ,NUC100 / 200 系列 ,NUC120 / 122 / 123 / 220 USB 系列 ,NUC130 / 230 CAN 系列 ,NUC131/NUC1311 CAN 系列 ,NUC140 / 240 USB+CAN 系列 ,Arm Cortex-M4 微控制器 ,M451 Base 系列 ,M451M 系列 ,M452 USB 系列 ,M453 CAN 系列 ,M4TK 触摸 IC 系列 ,NUC442 / 472 系列 ,NUC505 系列
应用:
功能:
Peripherals,Memory,APROM,Data Flash,LDROM,Software and Tools,Development-Environment,IAR,Keil

sadicy 发表于 2022-3-4 14:06 | 显示全部楼层
如果是拟合系数呢?需要校准验证,确定系数
怎么处理
foxsbig 发表于 2022-3-7 11:33 | 显示全部楼层
是不是真多的存入的默认参数之类的
qcliu 发表于 2022-3-8 16:12 | 显示全部楼层
那只能是指定位置了
aoyi 发表于 2022-3-8 16:19 | 显示全部楼层
还得注意别让其他的数据给抹掉
zljiu 发表于 2022-3-8 16:27 | 显示全部楼层
将特定的数据还是所有数据啊
nawu 发表于 2022-3-8 16:35 | 显示全部楼层
我喜欢用汇编语言穿插
tfqi 发表于 2022-3-8 16:42 | 显示全部楼层
需要对相关地址进行保护吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1296

主题

6239

帖子

15

粉丝
快速回复 在线客服 返回列表 返回顶部