资料介绍
前言
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,
- 每个字节内逐位反转,结果是0x58D43CB2
- 每半字内逐位反转,结果是0xD458B23C
- 每个字长内逐位反转,结果是0xB23CD458
• 对输出数据的位反转。
- 例如输出数据为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值)
具体使用中我们可以根据实际应用需求参照上面介绍做相应配置即可。
本文转载自
转载地址:
声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有,如涉及侵权,请联系小编进行处理。
(mbbeetchina)
下载该资料的人也在下载
下载该资料的人还在阅读
更多 >
- STM32 CRC使用详解
- 在STM32系列中使用CRC外设
- 没想到,CRC校验原来这么简单资料下载
- TF协同优化参数配置策略(附厂家配置方案参数)资料下载
- STM32 APB1总线时钟配置问题资料下载
- 5G站点网优参数配置教程资料下载
- IAR 开发STM32 ARM 版本不兼容 解决办法资料下载 0次下载
- USB 3.0中的CRC校验原理及实现资料下载
- STM32F030_LED详细配置总结资料下载
- STM32F030_USART的常用应用和功能配置资料下载
- 如何在STM32中配置PWM死区时间资料下载
- 16位CRC验证码生成VI工具下载 54次下载
- STM32软件开工具IAR KeyGenYYC的应用程序免费下载 4次下载
- STM32 IAR的库函数资料免费下载 43次下载
- 如何使用IAR开发STM32配置详细资料说明
- 在IAR Embedded Workbench中计算多个地址区间的Checksum 1197次阅读
- STM32基于标准外设库的外部中断配置 1406次阅读
- 如何在IAR Embedded Workbench中配置生成对应代码区域的CRC校验码 1260次阅读
- N32G45x硬件CRC计算Modbus的CRC16 883次阅读
- S32K3基于IAR IDE环境下使用JLINK调试 4763次阅读
- 从原理到代码理解CRC循环冗余校验 1779次阅读
- 基于STM32CubeIDE的调试配置 3652次阅读
- 细说CANFD CRC段带来的变化 1480次阅读
- CC2530(zigbee)开发: IAR新建工程并编译下载 3870次阅读
- CRC校验和STM32中CRC计算单元相关内容 6260次阅读
- 开发STM32除了MDK-ARM和IAR,还可以选择哪些软件? 2.5w次阅读
- STM32之软件CRC和硬件CRC速度测试 6309次阅读
- IAR在STM32的配置方法 1.8w次阅读
- STM32在IAR的开发步骤 2.3w次阅读
- 《振南电子STM32视频教程》第二讲:STM32固件库说明 1444次阅读
下载排行
本周
- 1TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 2开关电源基础知识
- 5.73 MB | 6次下载 | 免费
- 3100W短波放大电路图
- 0.05 MB | 4次下载 | 3 积分
- 4嵌入式linux-聊天程序设计
- 0.60 MB | 3次下载 | 免费
- 5基于FPGA的光纤通信系统的设计与实现
- 0.61 MB | 2次下载 | 免费
- 6基于FPGA的C8051F单片机开发板设计
- 0.70 MB | 2次下载 | 免费
- 751单片机窗帘控制器仿真程序
- 1.93 MB | 2次下载 | 免费
- 8基于51单片机的RGB调色灯程序仿真
- 0.86 MB | 2次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33564次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21548次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6653次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537796次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420026次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191185次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183278次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多