STM32L011E4Y6的内存操作不能赋值给CRC3

2019-07-14 14:50发布

见两张调试的图:
能跑到黄箭头这个语句,但这个语句就是跑不过去,调试信息里CRC2的值也能看到了,是正确的,但就是没法赋值给CRC3,这个函数跑在STM32F103上却是好的,相同的编译环境(RVMDK5.23),然后用我注释掉的那个for循环一个个字节搬过去也是OK的,这玩意是不是可以认为这个CPU的RAM控制器有BUG啊。
也有可能是我学差了,忽视了一些细节,毕竟还是个门外汉,希望有高手能解我的疑惑,感激不尽!

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
nmcxkwqjhd
1楼-- · 2019-07-14 22:27
沉得真快,顶贴
xieweibin
2楼-- · 2019-07-14 23:04
看上去,没有问题。
你看看汇编那里不对。

或者
你可以使用memcpy函数试试。
nmcxkwqjhd
3楼-- · 2019-07-15 01:20
本帖最后由 battery609 于 2018-7-30 15:29 编辑

还是我自己来回答吧,出问题的MCU为STM32L011,不支持内存非对齐访问,所以地址必须是4的整数倍,例程中有地址+2的操作,会直接导致死机。而F103支持非对齐访问,所以就很幸运。平时这个当做兴趣爱好来玩的,门外汉就是门外汉。去年做的小东西又拿出来完善,再次遇到这个问题,硬啃了两天,总算找到原因了。

add:103也不叫非对齐访问,只是支持半字长访问,正好+2满足条件,所以没有问题。
卿小知1
4楼-- · 2019-07-15 04:10
nnmnnm 发表于 1970-1-1 08:00

这个可以找到依据吗
nmcxkwqjhd
5楼-- · 2019-07-15 04:57
 精彩回答 2  元偷偷看……
lee_st
6楼-- · 2019-07-15 06:52
好好看看手册哦

一周热门 更多>