0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Keil、IAR中如何让程序存储在指定的偏移地址?

strongerHuang 来源:strongerHuang 作者:strongerHuang 2021-04-02 11:10 次阅读

有时候,我们不想让程序存储在起始的位置,比如我们有一段bootloader,对应的app(应用程序)存储的位置就会有一个偏移地址。

那么,我们如何让程序存储在指定的偏移地址呢?

下面结合STM32,讲述在Keil和IAR开发环境中设置起始地址0x08010000的方法。

1

Keil配置方法

打开工程目标选项:

Project -》 Options for Target -》 Target。

修改目标ROM起始地址。如下图:

5691fd5c-92ed-11eb-8b86-12bb97331649.png

说明:1.勾选的IROM即对应的存储区域;2.起始地址(Start)和大小(Size)根据你实际情况进行配置;

1

IAR配置方法

类似方法,进入配置界面:

A.进入配置界面:Pooject -》 Options -》 Linker -》 Config;B.勾选上“Override default”;C.点击“Edit”,修改ROM起始地址为;D.点击“Save”保存(第一次修改后,xxx.icf文件名和路径都选择默认)。具体如下图:

56bec436-92ed-11eb-8b86-12bb97331649.png

3

验证代码存储地址

对于STM32芯片来说,可以直接使用STM32 ST-LINK Utility工具读取FLASH数据验证代码是否存储在相应地址位置,其他芯片也可以使用对应可以读取FLASH数据的工具来验证。

如下图:

56dda1f8-92ed-11eb-8b86-12bb97331649.png

从上图可以看见,代码是从0x08010000 起始存储的。查看前面的存储区域,可以发现数据全是0xFFFF,也就是说没有被代码占用这些扇区。

原文标题:Keil、IAR改变代码(程序)存储地址的方法

文章出处:【微信公众号:strongerHuang】欢迎添加关注!文章转载请注明出处。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • STM32
    +关注

    关注

    2239

    文章

    10665

    浏览量

    348518
  • keil
    +关注

    关注

    68

    文章

    1195

    浏览量

    165254

原文标题:Keil、IAR改变代码(程序)存储地址的方法

文章出处:【微信号:strongerHuang,微信公众号:strongerHuang】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    TC277如何指定该全局数组变量的存储地址的对齐方式?

    定义全局数组变量,如何指定该全局数组变量的存储地址的对齐方式
    发表于 02-19 07:37

    为什么无法将数据放入指定地址

    如下图所示,部分在 lsl 文件定义,变量.c 文件定义。 该变量通过 #pragma 部分指定存储位置,但该变量不在.map 文件
    发表于 01-25 07:42

    KEIL中使用C对M0编程时怎样对函数指定地址呢?

    KEIL中使用C对M0编程时怎样对函数指定地址呢?对变量和常数的定位没问题,就是函数总搞不好。谢谢。
    发表于 01-18 07:14

    如何固定以太口地址指定IP?

    实际应用中,有时需要一旦有网线插入,就需要该地址设置为指定IP地址
    的头像 发表于 10-30 16:10 533次阅读
    如何固定以太口<b class='flag-5'>地址</b>为<b class='flag-5'>指定</b>IP?

    如何在Keil中将函数或变量编译到指定地址

    如何在Keil中将函数或变量编译到指定地址Keil 中将函数或变量编译到指定
    发表于 10-19 06:51

    KEIL如何程序RAM运行

    STM32F411Nucleo 的一个例子来介绍几种程序 RAM 运行的方法。该例子
    发表于 09-28 08:19

    IAR下如何将程序拷贝RAM运行

    这部分程序拷贝到RAM 运行。本文中所有例子都是 IAR v7.2 下,基于 STM32F334 完成的。
    发表于 09-28 06:50

    IAR的工程怎么移植到keil

    IAR的工程怎么移植到keil
    发表于 09-21 07:48

    为什么KeilIAR更受欢迎

    说起KeilIAR,你可能觉得这种集成开发环境界面比较古老,又不好用。但这里告诉大家一个事实: 不管是单片机初学者、还是开发者,使用KeilIAR的占比相对其他工具都要高,而且,不
    的头像 发表于 08-01 11:05 850次阅读
    为什么<b class='flag-5'>Keil</b>比<b class='flag-5'>IAR</b>更受欢迎

    基于STM32的Keil偏移地址程序存储

    ”; 3、点击“Edit”,修改ROM起始地址为; 4、点击“Save”保存(第一次修改后,xxx.icf文件名和路径都选择默认)。
    发表于 07-10 10:38 579次阅读
    基于STM32的<b class='flag-5'>Keil</b>和<b class='flag-5'>偏移</b><b class='flag-5'>地址</b><b class='flag-5'>程序</b><b class='flag-5'>存储</b>

    如何让程序存储指定偏移地址呢?

    有时候,我们不想让程序存储在起始的位置,比如现在有一段bootloader,对应的app(应用程序存储的位置就会有一个偏移
    发表于 07-10 10:38 588次阅读
    如何让<b class='flag-5'>程序</b><b class='flag-5'>存储</b>在<b class='flag-5'>指定</b>的<b class='flag-5'>偏移</b><b class='flag-5'>地址</b>呢?

    Keil为啥比IAR更受欢迎?

    其实,还有一个现象可以说明KeilIAR是单片机的主力开发工具,那就是很多MCU厂商推荐使用的IDE,或者提供代码例程就是Keil,或者IAR的工程,特别是国产32位MCU(这里自己
    的头像 发表于 06-26 15:23 1040次阅读
    <b class='flag-5'>Keil</b>为啥比<b class='flag-5'>IAR</b>更受欢迎?

    基于IAR指定RL78程序地址空间说明

    介绍 基于IAR实现C文件指定地址存放函数指定地址存放,定义变量指定
    的头像 发表于 06-19 15:25 541次阅读
    基于<b class='flag-5'>IAR</b><b class='flag-5'>指定</b>RL78<b class='flag-5'>程序</b><b class='flag-5'>地址</b>空间说明

    基于IAR指定RL78程序地址空间说明

    基于IAR实现C文件指定地址存放&函数指定地址存放,定义变量指定
    的头像 发表于 06-19 15:24 1544次阅读
    基于<b class='flag-5'>IAR</b><b class='flag-5'>指定</b>RL78<b class='flag-5'>程序</b><b class='flag-5'>地址</b>空间说明

    IAR如何设置LDROM为程序存储空间?

    IAR如何设置LDROM为程序存储空间
    发表于 06-19 11:31