查看: 11125|回复: 2

memcpy函数 发生Data abort?

2

主题

1

回帖

2

积分

ifmeteor 发表于 2010-12-1 19:25:11 | 显示全部楼层 |阅读模式
板是OK6410,使用RVDS2.2 编译LWIP 与UCGUI都出现 内存拷贝错误,问题都出现在RVDS自带的C库memcpy中,出现Data abort错误,内存非对齐访问。UCGUI只要修改一下数据类型(U16 改为U32)就不会了,但LWIP却没办法。按道理,memcpy会自动处理非对齐部分数据,可为什么还会出错呢?请大虾们帮忙。。

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

使用道具 举报

2

主题

1

回帖

2

积分

楼主| ifmeteor 发表于 2010-12-1 20:35:23 | 显示全部楼层
已解决。。ETH_PAD_SIZE设置为2即可,看来还是要仔细看下内存对齐的问题
回复 支持 反对

使用道具 举报

9

主题

7117

回帖

0

积分

飞凌-alexlee 发表于 2010-12-2 08:09:23 | 显示全部楼层
:handshake
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则