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

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

3天内不再提示

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

IAR爱亚系统 来源:IAR爱亚系统 2024-01-05 12:33 次阅读

在前面的文章“使用IAR Embedded Workbench和MCU的CRC模块来检查代码的完整性”中介绍了如何在IAR Embedded Workbench中配置生成对应代码区域的CRC校验码。但是在IDE里面的Linker > Checksum选项里面只能配置一个地址区间并且只能生成一个Checksum。如果有多个地址空间,那么IDE里面的Linker > Checksum选项没有办法满足需求,需要使用命令行的方式。

本文主要介绍如何在IAR Embedded Workbench中计算多个地址区间的Checksum。

两个地址区间生成两个Checksum

假设对应的两个地址空间分别为0x08000000-0x0801FFFB(对应Checksum放到0x0801FFFC)和0x08030000-0x0803FFFB(对应Checksum放到0x0803FFFC)。

不使能Linker > Checksum选项中的配置:

8f362860-ab7f-11ee-8b88-92fbcf53809c.png

在Linker > Extra Options中添加对应的命令:

--place_holder __checksum1,4,.checksum1,4
--place_holder __checksum2,4,.checksum2,4

8f5b587e-ab7f-11ee-8b88-92fbcf53809c.png

ICF文件中添加对应的命令:

define exported symbol __checksum_begin1 =0x08000000;
define exported symbol __checksum_end1   =0x0801FFFB;
define exported symbol __checksum_begin2 =0x08030000;
define exported symbol __checksum_end2   =0x0803FFFB;




place at address mem: 0x0801FFFC { section .checksum1 };
place at address mem: 0x0803FFFC { section .checksum2 };

在Build Actions里面添加对应生成Checksum的命令:

ielftool --fill 0xFF;0x08000000-0x0801FFFB --fill 0xFF;0x08030000-0x0803FFFB --checksum 
__checksum1:4,crc32:Li,0xffffffff;0x08000000-0x0801FFFB --checksum 
__checksum2:4,crc32:Li,0xffffffff;0x08030000-0x0803FFFB --verbose "$TARGET_PATH$" "$TARGET_PATH$"    

8f7246f6-ab7f-11ee-8b88-92fbcf53809c.png

8f837eda-ab7f-11ee-8b88-92fbcf53809c.png

Build并查看对应的Build Log和MAP文件检查Checksum相关的信息

8f97a914-ab7f-11ee-8b88-92fbcf53809c.png

8fb29daa-ab7f-11ee-8b88-92fbcf53809c.png

两个地址区间生成一个Checksum

假设对应的两个地址空间分别为0x08000000-0x0801FFFF和0x08030000-0x0803FFFB(对应Checksum放到0x0803FFFC)。

不使能Linker > Checksum选项中的配置:

8fd1020e-ab7f-11ee-8b88-92fbcf53809c.png

在Linker > Extra options中添加对应的命令:

--place_holder __checksum,4,.checksum,4

91088de0-ab7f-11ee-8b88-92fbcf53809c.png

在ICF文件中添加对应的命令:

define exported symbol __checksum_begin1 =0x08000000;
define exported symbol __checksum_end1   =0x0801FFFF;
define exported symbol __checksum_begin2 =0x08030000;
define exported symbol __checksum_end2   =0x0803FFFB;
 
place at address mem: 0x0803FFFC { section .checksum };
在Build Actions里面添加对应生成Checksum的命令:
ielftool--fill0xFF;0x08000000-0x0801FFFF--fill0xFF;0x08030000-0x0803FFFB--checksum
__checksum:4,crc32:Li,0xffffffff;0x08000000-0x0801FFFF;0x08030000-0x0803FFFB --verbose "$TARGET_PATH$" "$TARGET_PATH$"  

9128bf7a-ab7f-11ee-8b88-92fbcf53809c.png

914069e0-ab7f-11ee-8b88-92fbcf53809c.png

Build并查看对应的Build Log和MAP文件检查相关Checksum的信息:

9158ff5a-ab7f-11ee-8b88-92fbcf53809c.png

9175abd2-ab7f-11ee-8b88-92fbcf53809c.png

总结

本文通过两个例子介绍了如何在IAR Embedded Workbench中计算多个地址区间的Checksum,包括多个地址区间生成多个Checksum和多个地址区间生成一个Checksum。

审核编辑:汤梓红

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

    关注

    5

    文章

    319

    浏览量

    36282
  • 文件
    +关注

    关注

    1

    文章

    540

    浏览量

    24402
  • 代码
    +关注

    关注

    30

    文章

    4555

    浏览量

    66767
  • 命令行
    +关注

    关注

    0

    文章

    75

    浏览量

    10344

原文标题:在IAR Embedded Workbench中计算多个地址区间的Checksum

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

收藏 人收藏

    评论

    相关推荐

    IAR Embedded Workbench中进行ARM+RISC-V多核调试

    在之前的文章中,我们介绍了如何在IAR Embedded Workbench for Arm中进行多核调试,其中所有的CPU内核都是基于ARM架构。近些年来,随着RISC-V的兴起,不少芯片集成了基于RISC-V架构的CPU内核
    发表于 06-13 17:38 628次阅读
    在<b class='flag-5'>IAR</b> <b class='flag-5'>Embedded</b> <b class='flag-5'>Workbench</b>中进行ARM+RISC-V多核调试

    如何在IAR Embedded Workbench中配置生成对应代码区域的CRC校验码

    在“使用IAR Embedded Workbench和MCU的CRC模块来检查代码的完整性”一文中,介绍了如何在IAR Embedded
    的头像 发表于 10-27 11:49 865次阅读
    如何在<b class='flag-5'>IAR</b> <b class='flag-5'>Embedded</b> <b class='flag-5'>Workbench</b>中配置生成对应代码区域的CRC校验码

    IAR Embedded Workbench for RL78版本2.21.2

    大家好,请问谁有IAR Embedded Workbench for RL78版本 2.21.2这个软件,可以发一下吗,邮箱1733517686@qq.com,谢谢了。
    发表于 10-11 17:06

    IAR Embedded Workbench中进行ARM+RISC-V多核调试

    之前的文章中,我们介绍了如何在IAR Embedded Workbench for Arm中进行多核调试,其中所有的CPU内核都是基于ARM架构。近些年来,随着RISC-V的兴起,不
    发表于 06-14 16:55

    IAR Systems发布 IAR Embedded Wor

    IAR Systems发布 IAR Embedded Workbench for ARM新版本  IAR Systems发布
    发表于 02-11 09:14 1250次阅读

    IAR_embedded_Workbench用户指南介绍

    IAR embedded Workbench for ARM 是 IAR Systems 公司为 ARM 微处理器开发的一 个集成开发环境(下面简称
    发表于 11-09 18:08 89次下载

    IAR embedded Workbench激活工具下载

    IAR embedded Workbench的激活工具下载
    发表于 06-20 10:08 13次下载

    如何在IAR Embedded Workbench中填充提高系统的健壮性

    IAR Embedded Workbench工程选项(Options)里面Linker选项里面Checksum:勾选“Fill unused code memory”, Fill p
    的头像 发表于 11-03 17:16 977次阅读

    全新 IAR Embedded Workbench for RISC-V 支持 Andes CoDense™扩展

    来源:IAR Systems IAR Embedded Workbench for RISC-V 3.11 版支持 AndeStar™ V5 RISC-V 处理器的 Andes CoD
    的头像 发表于 11-17 17:20 542次阅读

    全新IAR Embedded Workbench for RISC-V 支持 Andes CoDense扩展

    全新 IAR Embedded Workbench for RISC-V 支持 Andes CoDense™扩展 IAR Embedded
    发表于 11-18 12:29 531次阅读

    YRDKRX62N 快速入门指南(IAR Embedded Workbench)

    YRDKRX62N 快速入门指南 (IAR Embedded Workbench)
    发表于 04-12 19:14 0次下载
    YRDKRX62N 快速入门指南(<b class='flag-5'>IAR</b> <b class='flag-5'>Embedded</b> <b class='flag-5'>Workbench</b>)

    YRDKRL78G13 快速入门指南(IAR Embedded Workbench) Rev.1.01

    YRDKRL78G13 快速入门指南 (IAR Embedded Workbench) Rev.1.01
    发表于 04-13 18:49 0次下载
    YRDKRL78G13 快速入门指南(<b class='flag-5'>IAR</b> <b class='flag-5'>Embedded</b> <b class='flag-5'>Workbench</b>) Rev.1.01

    YRDKRX62N 快速入门指南(IAR Embedded Workbench)

    YRDKRX62N 快速入门指南 (IAR Embedded Workbench)
    发表于 08-04 18:30 0次下载
    YRDKRX62N 快速入门指南(<b class='flag-5'>IAR</b> <b class='flag-5'>Embedded</b> <b class='flag-5'>Workbench</b>)

    YRDKRL78G13 快速入门指南(IAR Embedded Workbench) Rev.1.01

    YRDKRL78G13 快速入门指南 (IAR Embedded Workbench) Rev.1.01
    发表于 08-10 18:31 0次下载
    YRDKRL78G13 快速入门指南(<b class='flag-5'>IAR</b> <b class='flag-5'>Embedded</b> <b class='flag-5'>Workbench</b>) Rev.1.01

    IAR推出新版IAR Embedded Workbench for Arm功能安全版

    全球知名的嵌入式系统开发软件解决方案供应商IAR Systems近日宣布,其旗舰产品IAR Embedded Workbench for Arm功能安全版已更新至最新版本9.50.3。
    的头像 发表于 02-22 17:29 583次阅读