STM32的CRC32 实现代码 -- Ether
uint32_t reverse_32( uint32_t data )
{
asm("rbit r0,r0");
return data;
}
; uint32_t crc32_ether( char *buf, int len, int clear )
{
uint32_t *p = (uint32_t*) buf;
uint32_t crc, crc_reg;
if ( clear )
CRC_ResetDR( );
while ( len >= )
{
crc_reg = CRC_CalcCRC( reverse_32( *p++ ) );
len -= ;
}
crc = reverse_32( crc_reg );
if ( len )
{
CRC_CalcCRC( crc_reg );
switch ( len )
{
case :
crc_reg = CRC_CalcCRC( reverse_32( ( *p & 0xFF ) ^ crc ) >> );
crc = ( crc >> ) ^ reverse_32( crc_reg );
break;
case :
crc_reg = CRC_CalcCRC( reverse_32( ( *p & 0xFFFF ) ^ crc ) >> );
crc = ( crc >> ) ^ reverse_32( crc_reg );
break;
case :
crc_reg = CRC_CalcCRC( reverse_32( ( *p & 0xFFFFFF ) ^ crc ) >> );
crc = ( crc >> ) ^ reverse_32( crc_reg );
break;
}
}
return ~crc;
}
STM32的CRC32 实现代码 -- Ether的更多相关文章
- STM32的CRC32 测试代码
// STM32 CRC32 Test App - sourcer32@gmail.com #include <windows.h> #include <stdio.h> DW ...
- STM32的CRC32 软件实现代码
对于STM32的32位CRC,如果假定它的一个主要目的是为了校验往内部FLASH存储数据的可靠性,那么(余数)初值是全1当然是比较合理的.由于STM32的32位CRC是纯32位,即每次必须输入32位的 ...
- STM32 软件模拟 IIC 代码,标准库、HAL库可用
#ifndef _IIC_H #define _IIC_H #include "stdio.h" #include "stm32f1xx_hal.h" /* 定 ...
- STM32 ~ ili9341 横屏驱动代码
void ili9341_Initializtion(void) { u16 i; RCC->APB2ENR|=<<; //使能PORTB时钟 GPIOB->CRH&= ...
- STM32 CRC32与对应的软件CRC32(转)
源:STM32 CRC32与对应的软件CRC32 简单实现STM32 CRC32使用 使用前记得使能STM32 CRC时钟 //STM32硬件CRC32 byte数据计算,将数据移到最高位,低位补上F ...
- STM32_IAP详解(有代码,有上位机)
Iap,全名为in applacation programming,即在应用编程,与之相对应的叫做isp,in system programming,在系统编程,两者的不同是isp需要依靠烧写器在单片 ...
- stm32之keil开发环境搭建
只要按照下面的一步步来,绝对能从0开始建立一个STM32工程.不仅包括工程建立过程,还有Jlink设置方法.本文使用芯片为STM32F103CB. 1 下载stm32F10x的官方库 http://w ...
- JS 工具函数 方法(其中js的crc32和php的crc32区别)
var util = {}; util.indexOf = function (array, item) { for (var i = 0; i < array.length; i++) { i ...
- 移植 uC/OS-III 到 STM32
首先,打开 Micrium 公司官方网站(http://micrium.com/),点击“Downloads”选项卡进入下载页面,在“Brouse by MCU Manufacturer”栏目展开“S ...
随机推荐
- UI渲染回顾简单笔记
UI渲染的简单过程: CPU,GPU,显示器协同工作,CPU 中计算显示内容,比如视图的创建.布局计算.图片解码.文本绘制等,然后将计算结果提交给GPU,由 GPU 进行变换.合成.渲染.随后 GPU ...
- tf.Session()和tf.InteractiveSession()的区别
官方tutorial是这么说的: The only difference with a regular Session is that an InteractiveSession installs i ...
- Chrome插件:gitlab activity dashboard background-color
背景 我一般都是在activity dashboard页看同事的提交记录,这样只要我有权限的项目有人提交了我就能够知道,虽然提交的具体代码压根不看.......但至少能够了解各个项目的开发情况(如果大 ...
- string替换所有指定字符串(C++)
C++的string提供了replace方法来实现字符串的替换,但是对于将字符串中某个字符串全部替换这个功能,string并没有实现,我们今天来做的就是这件事. 首先明白一个概念,即string替换所 ...
- nagios报警延迟的解决--flapping state
这个问题是在测试中发现的.因为要在服务器上布置nagios用来监控oracle,可是发现手动shutdown数据库后能够很快报警,但是再startup后就不是很及时,有时会延迟很久.经过研究发现了这个 ...
- .NET C# Tostring format 格式化字符串
一.数值型 formatCode 是可选的格式化代码字符串.必须用“{”和“}”将格式与其他字符分开.如果恰好在格式中也要使用大括号,可以用连续的两个大括号表示一个大括号,即: “{{”或者“}}”. ...
- easyui tree:根据属性格式化树节点名称
$('#resourceTree').tree({ method : 'post', animate : true, onContextMenu : function(e, node) { e.pre ...
- 五、vue状态管理模式vuex
一.vuex介绍 Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化. 即data中属性同时有一 ...
- 2018-2019-2 网络对抗技术 20165301 Exp4 恶意代码分析
2018-2019-2 网络对抗技术 20165301 Exp4 恶意代码分析 实验内容 系统运行监控 使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里.运行一段时间并分 ...
- 关于Ocelot 网关结合Consul实现服务转发的坑爹问题
下面是我的网关配置来验证下Ocelot的问题,如果只是做网关转发应该还ok,但是要是结合Consul来检查并健康的转发有效服务器还是有很多弊端 关键在于通过设置 DeregisterCriticalS ...