Keil AC5/Keil AC6/IAR指定数据绝对存储地址

本文介绍了在STM32项目中如何使用Keil AC5/AC6和IAR编译器指定数据的绝对存储地址,以满足IAP升级时中断向量表存储、固件信息存储等需求。详细阐述了不同编译器下的实现方法,包括Keil AC5的__attribute__((section)), Keil AC6的__attribute__((at)), 以及IAR的__root和__no_init关键字配合地址操作符的使用。" 79138533,7420824,DBSCAN聚类与可视化:scikit-learn、plotly、visdom 实践,"['数据挖掘', '机器学习', '聚类', '可视化工具', 'Python库']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


1 前言

  编译过程中,指定数据绝对存储地址在实际项目中会经常使用到或者必须用到,这样使得项目实现某些功能可以非常灵活,常用的场景有:

  • IAP升级时候,中断向量表存储
    IAP升级,STM32F0系列Cortex-M0内核芯片,192字节中断向量表需存储在RAM起始地址(0x20000000)中

  • 在指定flash地址存储固件信息,用于查询固件信息,或者升级过程对固件进行校验
    —项目名称
    —项目唯一id号
    —版本号
    —编译时间
    —编译器版本


2 实现方法

  指定数据绝对存储地址,实现方法与编译器相关,不同编译器实现方式不一样;常用的有Keil、IAR、Gcc,Keil AC5和AC6版本编译器实现方法也不同。


  例如,定义一个u32变量data,存储起始地址在0x20010000上,不同编译器下实现如下。

  • Keil AC5编译器:
uint32_t dat
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Acuity.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值