打印
[技术问答]

如何在程序编译时,将数据放在Flash固定的地址?

[复制链接]
653|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 | 只看该作者
那只能是指定位置了

使用特权

评论回复
5
aoyi| | 2022-3-8 16:19 | 只看该作者
还得注意别让其他的数据给抹掉

使用特权

评论回复
6
zljiu| | 2022-3-8 16:27 | 只看该作者
将特定的数据还是所有数据啊

使用特权

评论回复
7
nawu| | 2022-3-8 16:35 | 只看该作者
我喜欢用汇编语言穿插

使用特权

评论回复
8
tfqi| | 2022-3-8 16:42 | 只看该作者
需要对相关地址进行保护吗

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

962

主题

3934

帖子

10

粉丝