ifmeteor 发表于 2010-11-30 21:56:59

rvds memcpy 发生Data abort?

使用RVDS2.2 编译LWIP 与UCGUI都出现 内存拷贝错误,问题都出现在RVDS自带的C库memcpy中,出现Data abort错误,内存非对齐访问。UCGUI只要修改一下数据类型(U16 改为U32)就不会了,但LWIP却没办法。按道理,memcpy会自动处理非对齐部分数据,可为什么还会出错呢?请大虾们帮忙。。

flagyan 发表于 2010-12-1 13:07:35

memcpy如果参数没有指向不能读写的区域应该不会出现data abort吧。

lz怎么确定是这个函数出的问题的?

ifmeteor 发表于 2010-12-1 19:04:56

用串口一步步跟踪到的。。。到memcpy就出错了。
UCGUI里将U16改为U32了,编译代码不会生成memcpy,而是用LDM STM 代替了,所以没有出错。。
唉,找不到原因

ifmeteor 发表于 2010-12-1 20:35:00

已解决。。ETH_PAD_SIZE设置为2即可,看来还是要仔细看下内存对齐的问题
页: [1]
查看完整版本: rvds memcpy 发生Data abort?