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

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

3天内不再提示

如何为STM32编程节省代码空间?在IAR中配置CRC参数有窍门

STM32单片机 来源:未知 作者:电子大兵 2017-09-06 17:38 次阅读

前言

STM32全系列产品都具有CRC外设,对CRC的计算提供硬件支持,为应用程序节省了代码空间。CRC校验值可以用于数据传输中的数据正确性的验证,也可用于数据存储时的完整性检查。在IEC60335中,也接受通过CRC校验对FLASH的完整性进行检查。在对FLASH完整性检查的应用中,需要事先计算出整个FLASH的CRC校验值(不包括最后保存CRC值的字节),放在FLASH的末尾。在程序启动或者运行的过程中重新用同样的方法计算整个FLASH的CRC校验值,然后与保存在FLASH末尾的CRC值进行比较。

EWARM从v5.5版本之后开始支持STM32芯片的CRC计算。前面所说的计算整个FLASH的CRC校验值并保存在FLASH末尾的过程,可以在IAR中完成。通过配置EWARM的CRC计算参数,自动对整个FLASH空间进行CRC计算,并将计算结果放到FLASH的末尾。本文中将介绍的就是如何配置IAR的CRC参数,使之与STM32的CRC硬件模块保持一致。本文中的例子都基于STM32F072进行。

STM32的CRC外设CRC校验值的计算采用多项式除法,可以通过除数和被除数进行异或运算实现。这种方法非常适合通过硬件电路来实现。使用STM32CRC外设时,你要考虑的内容包括:采用哪个CRC生成多项式,输入数据(要进行校验的数据)和初始值。

1.生成多项式默认使用CRC32多项式:0x4C11DB7

部分芯片支持可编程的多项式,比如STM32F3,STM32F0,STM32L0

2.初始值STM32的CRC初始值默认为0xFFFFFFFF,STM32F3,STM32F0,STM32L0系列可以修改初始值

3.输入/输出数据的反转STM32F3,STM32F0,STM32L0系列还提供了对输入/输出数据进行反转的功能。默认不对输入数据和输出数据进行位反转

· 对输入数据的位反转操作可以设置为按字节/半字 /字为单元进行操作。例如输入数据为0x1A2B3C4D, o 每个字节内逐位反转,结果是0x58D43CB2 o 每半字内逐位反转,结果是0xD458B23C o 每个字长内逐位反转,结果是0xB23CD458· 对输出数据的位反转。 o 例如输出数据为0x11223344,反转后为0x22CC4488

IAR的CRC配置

1.修改Link文件指定checksum在FLASH中的存储位置,在Link文件中增加下面语句。

该语句指定将CRC的值放在FLASH的末尾位置。是整个FLASH空间的末尾,不是应用程序的代码末尾。这样,CRC值的位置就是固定的。不会随代码大小而变化。

2.配置Checksum页面的参数

IAR Checksum页说明(v6.4及以上)

IAR的checksum页面分为两个部分。第一部分,也就是红线圈出的部分。定义了FLASH中需要计算CRC的范围和空闲字节填充值。剩下的部分,就是对checksum计算参数的设定部分。 Checksum size :选择checksum的大小(字节数) Alignment:指定checksum的对齐方式。不填的话默认2字节对齐。

Algorithm:选择checksum的算法 Complement:是否需要进行补码计算。选择“Asis”就是不进行补码计算。 Bit order:位输出的顺序。MSB first,每个字节的高位在前。LSB first,每个字节的低位在前。 Reverse byte order within word: 对于输入数据,在一个字内反转各个字节的顺序。 Initial value: checksum计算的初始化值 Checksum unit size :选择进行迭代的单元大小,按8-bit,16-bit还是32-bit进行迭代。

3.STM32 CRC外设使用默认配置时IAR的配置STM32CRC外设的配置:

POLY= 0x4C11DB7(CRC32) Initial_Crc = 0Xffffffff 输入/输出数据不反转 输入数据:0x08000000~0x0801FFFB。(最后4个字节用来放计算出的CRC值)

具体使用中我们可以根据实际应用需求参照上面介绍做相应配置即可。

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

    关注

    2229

    文章

    10640

    浏览量

    347659
  • IAR
    IAR
    +关注

    关注

    4

    文章

    317

    浏览量

    36262
  • C语言编程
    +关注

    关注

    6

    文章

    90

    浏览量

    20976

原文标题:如何在IAR中配置CRC参数

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

收藏 人收藏

    评论

    相关推荐

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

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

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

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

    STM32CRC外设如何设置

    本文中将介绍的就是如何配置IARCRC参数,使之与STM32CRC硬件模块保持一致。本文中的
    的头像 发表于 09-28 06:05 1.6w次阅读

    如何在IAR配置CRC参数

    前言STM32全系列产品都具有CRC外设,对CRC的计算提供硬件支持,为应用程序节省代码空间
    发表于 09-06 16:01

    请问如何在IAR配置CRC参数

    前言 STM32全系列产品都具有CRC外设,对CRC的计算提供硬件支持,为应用程序节省代码空间
    发表于 07-02 02:32

    IAR没有F303RE的构建配置

    使用STM32303C-EVAL_SINGLEDRIVE作为选项在下拉菜单中进行构建,请参见附图。为什么IAR下拉菜单没有F303RE的构建配置?当构建
    发表于 06-28 15:07

    请问IAR如何直接查看任务使用多少栈空间

    使用IAR调试freertos任务IAR自带了一个调试插件,启用这个插件会得到任务名、优先级、栈起始空间和栈顶位置,但是如何计算出每个
    发表于 06-10 09:25

    STM32L4R9如何节省空间和成本

    STM32L4R9:利用 HyperBus 扩展微型物联网和可穿戴式设计的存储器以节省空间和成本
    发表于 12-31 07:42

    STM32F407+Cube配置+IAR和Keil编程简析

    用cubeMX学习STM32的过程, 希望能对想用Cube快速入门STM32的同学帮助 STM32F407+Cube配置+
    发表于 01-24 08:24

    探讨一下stm32软件编程

    参数设置的外围和中间件模式和初始化。CubeMX生成的代码可以KEIL、IAR、GCC等编程软件上面使用。简单理解,就是CubeMX软件是
    发表于 02-21 07:34

    何为uboot配置STM32MP151?

    我想用STM32MP151换个环境。但我找不到有关此信息的信息,1)如何为uboot配置STM32MP151?双核怎么改成单核?2)如何为l
    发表于 01-06 07:36

    stm32IAR程序项目模板

    stm32IAR程序项目模板源代码,下来看看。
    发表于 05-20 16:29 33次下载

    CRC校验 、STM32CRC计算单元、 CRC应用

    CRC校验、STM32CRC计算单元、CRC应用
    的头像 发表于 03-04 13:54 5293次阅读

    如何配置IARCRC参数STM32)资料下载

    电子发烧友网为你提供如何配置IARCRC参数STM32)资料下载的电子资料下载,更有其他相关的电路图、源
    发表于 04-07 08:54 15次下载
    如何<b class='flag-5'>配置</b><b class='flag-5'>IAR</b>的<b class='flag-5'>CRC</b><b class='flag-5'>参数</b>(<b class='flag-5'>STM32</b>)资料下载

    iar stm32_吃透单片机编程软件,IAR单片机编程软件创建stm32工程

    Keil和IAR单片机编程软件,是当前流通度庞大的两款单片机编程软件。而对于单片机编程软件的使用,各自存在一定区别。本文中,将为大家讲解IAR
    发表于 11-30 10:21 15次下载
    <b class='flag-5'>iar</b> <b class='flag-5'>stm32</b>_吃透单片机<b class='flag-5'>编程</b>软件,<b class='flag-5'>IAR</b>单片机<b class='flag-5'>编程</b>软件创建<b class='flag-5'>stm32</b>工程