搜索
bottom↓
回复: 7

请教 如何在rt_thread中使用STM32内置的硬件的CRC计算模块

[复制链接]

出0入0汤圆

发表于 2011-10-15 11:54:28 | 显示全部楼层 |阅读模式
正在用rt_thread做以太网通讯,通讯数据需要用到32位CRC校验,查到STM32中有内置的硬件的CRC计算模块,可不知在rt_thread如何使用,找不到CRC_CR 、CRC_DR在哪定义,如没有定义,要使用的话该在哪定义?请各位前辈指点一二。

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

发表于 2011-10-15 11:58:10 | 显示全部楼层
SVN中的STM32F107/207的以太网驱动已经打开了硬件校验,可以直接关闭LWIP的校验.

如果不使用内置的以太网MAC.则自己用硬件CRC取代LWIP的校验函数.

出0入0汤圆

 楼主| 发表于 2011-10-15 13:44:51 | 显示全部楼层
多谢aozima指点,不过我用的是STM32F103,应该如何处理?

出0入0汤圆

发表于 2011-10-15 14:34:38 | 显示全部楼层
去看STM32的参考手册,硬件用法与RT-Thread无关,原来怎么用现在一样用.
如果有多个线程可能会同时使用CRC计算单元,则还需要做资源互斥.
如果是使用DM9000AEP或是AX88796等硬件MAC,则可以使能其硬件checksum.

如果网络全速收发,使用硬件checksum在STM32上面有10%左右的性能提升.

出0入0汤圆

 楼主| 发表于 2011-10-15 14:54:17 | 显示全部楼层
非常感谢,我再看看参考手册,刚开始用STM32,惭愧。

出0入0汤圆

 楼主| 发表于 2011-10-15 16:24:30 | 显示全部楼层
貌似把CRC->DR错写为CRC_DR了,试一下是否正常计算。

出0入0汤圆

发表于 2013-1-2 15:42:36 | 显示全部楼层
aozima 发表于 2011-10-15 11:58
SVN中的STM32F107/207的以太网驱动已经打开了硬件校验,可以直接关闭LWIP的校验.

如果不使用内置的以太网MA ...

RTT 1.1.0  stm32f20x  MDK  LWIP DP83848 当打开#define CHECKSUM_BY_HARDWARE宏时,ping不通,抓包如下


当关闭#define CHECKSUM_BY_HARDWARE宏,可以ping通了。
查阅网络资料有的人的情况和我相反,他打开硬件校验宏就会出问题。请问版主,这会是原因啊?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2013-1-2 16:00:26 | 显示全部楼层
wangpeng_521 发表于 2013-1-2 15:42
RTT 1.1.0  stm32f20x  MDK  LWIP DP83848 当打开#define CHECKSUM_BY_HARDWARE宏时,ping不通,抓包如下 ...

可以对比一下107和20x,40x的网络驱动,看里面ICMP的校验清掉了没有。
硬件校验要求校验值位置必须为0,而LWIP的ICMP的校验是没有开关的,所以需要人工清掉。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-25 21:18

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表