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
    +关注

    关注

    2270

    文章

    10900

    浏览量

    355924
  • keil
    +关注

    关注

    68

    文章

    1212

    浏览量

    166874

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

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

收藏 人收藏

    评论

    相关推荐

    GD32F103 KeilIAR pack包

    电子发烧友网站提供《GD32F103 KeilIAR pack包.rar》资料免费下载
    发表于 10-15 17:25 151次下载

    keil软件怎么运行写好的程序

    软件的安装包,然后按照安装向导进行安装。安装完成后,启动Keil软件。 创建项目 Keil软件,需要创建一个新的项目来存放编写的程序。点
    的头像 发表于 09-02 10:29 1999次阅读

    怎样将keil程序导出

    1. 准备工作 开始导出程序之前,需要确保已经完成了以下准备工作: 安装Keil MDK-ARM软件。 创建一个新的项目,并添加所需的源文件和库文件。 配置项目设置,包括芯片型号、编译器选项、链接
    的头像 发表于 09-02 10:23 1586次阅读

    如何在esp32的程序体中指定一个变量的绝对地址,或者相对于程序地址的一个固定偏移位置?

    请问一下如何在esp32的程序体中指定一个变量的绝对地址,或者相对于程序地址的一个固定偏移位置
    发表于 06-21 08:12

    求助,关于STM8S IAR程序内存的问题求解

    这是IAR编译之后的代码大小,在网上查了一下,对这三个的存储地址众说纷纭,一致的说法是内存大小等于这三个相加,所以向各位前辈请教这三个的储存地址
    发表于 05-22 08:21

    请问如何编写.bin程序使用IAR或GreenHill将文件存储到外部存储

    你好, 我们使用带有 CYT4DN 和 S25HS 外部存储器的自定义COOLDIM_PRG_BOARD 。 我们正在尝试闪存 .bin 图像 文件到外部存储。 因此,我想知道 IAR
    发表于 05-15 07:22

    存储芯片是什么样存储信息的

    存储信息时,对于动态存储器,行地址首先将RAS锁存于芯片中,然后列地址将CAS锁存于芯片中,当WE有效时,写入数据则被
    的头像 发表于 03-29 15:32 3304次阅读
    <b class='flag-5'>存储</b>芯片是什么样<b class='flag-5'>存储</b>信息的

    STM32HIAR如何实现从FLASH加载到SRAM运行程序

    如题,STM32H IAR如何实现从FLASH加载到SRAM运行程序 有没有相关的例程可供参考
    发表于 03-28 07:46

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

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

    程序的R地址都是什么意思?怎么样才能看懂?

    程序的R地址都是什么意思?怎么样才能看懂? 程序,R
    的头像 发表于 02-18 10:49 1115次阅读

    keilGD32 MCU IAPAPP的存储地址如何设置?

    前面和大家聊过什么是IAP(有不懂的小伙伴请看下前面的视频哦),那么IAPAPP的存储地址该如何设置呢?
    的头像 发表于 01-29 09:37 1062次阅读
    <b class='flag-5'>keil</b><b class='flag-5'>中</b>GD32 MCU IAP<b class='flag-5'>中</b>APP的<b class='flag-5'>存储</b><b class='flag-5'>地址</b>如何设置?

    CAD偏移命令怎么用 cad怎么偏移一条线指定距离

    CAD偏移命令是CAD软件的一项基本功能,它可以用于绘图中复制和移动几何形状,具体操作方式如下: 打开CAD软件,并创建一个新的绘图文件。 工具栏或菜单栏上找到“
    的头像 发表于 01-25 10:32 3743次阅读

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

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

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

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

    IAR Embedded Workbench中计算多个地址区间的Checksum

    在前面的文章“使用IAR Embedded Workbench和MCU的CRC模块来检查代码的完整性”中介绍了如何在IAR Embedded Workbench配置生成对应代码区域的CRC校验码
    的头像 发表于 01-05 12:33 1533次阅读
    <b class='flag-5'>在</b><b class='flag-5'>IAR</b> Embedded Workbench中计算多个<b class='flag-5'>地址</b>区间的Checksum