完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
见两张调试的图:
能跑到黄箭头这个语句,但这个语句就是跑不过去,调试信息里CRC2的值也能看到了,是正确的,但就是没法赋值给CRC3,这个函数跑在STM32F103上却是好的,相同的编译环境(RVMDK5.23),然后用我注释掉的那个for循环一个个字节搬过去也是OK的,这玩意是不是可以认为这个CPU的RAM控制器有BUG啊。 也有可能是我学差了,忽视了一些细节,毕竟还是个门外汉,希望有高手能解我的疑惑,感激不尽! |
|
相关推荐
8个回答
|
|
补充:在STM32F103上面并没有直接运行这个程序,只是有类似的操作,F103上面的程序部分如下:
{ uint8_t i; uint32_t temp; IRDA_txbuffer[0]=serial; IRDA_txbuffer[1]=size; for(i=0;i temp=crc32((uint32_t*)IRDA_txbuffer,size+2); *(uint32_t*)&IRDA_txbuffer[size+2] =temp; } |
|
|
|
沉得真快,顶贴
|
|
|
|
|
|
|
|
本帖最后由 battery609 于 2018-7-30 15:29 编辑
还是我自己来回答吧,出问题的MCU为STM32L011,不支持内存非对齐访问,所以地址必须是4的整数倍,例程中有地址+2的操作,会直接导致死机。而F103支持非对齐访问,所以就很幸运。平时这个当做兴趣爱好来玩的,门外汉就是门外汉。去年做的小东西又拿出来完善,再次遇到这个问题,硬啃了两天,总算找到原因了。 add:103也不叫非对齐访问,只是支持半字长访问,正好+2满足条件,所以没有问题。 |
|
|
|
|
|
|
|
在有关M0+内核的内存控制器中能找到相关的内存访问指令。使用memcpy不会出现问题是因为该函数考虑了对齐问题 |
|
|
|
好好看看手册哦
|
|
|
|
很简单的东西
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
238 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
734 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
1128 浏览 1 评论
LL库F030进行3个串口收发,2个串口为232,一个为485,长时间后,会出现串口1停止运行,另外两个正常,只有重启复原
1600 浏览 1 评论
538 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-8 18:33 , Processed in 2.101788 second(s), Total 86, Slave 69 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号