嵌入式爱好者

查看: 5576|回复: 2

memcpy函数 发生Data abort?

[复制链接]

2

主题

3

帖子

2

积分

扫一扫,手机访问本帖
发表于 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

主题

3

帖子

2

积分

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

使用道具 举报

0

主题

7131

帖子

0

积分

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

使用道具 举报

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

本版积分规则

QQ|小黑屋| 飞凌嵌入式 ( 冀ICP备12004394号-1 )

GMT+8, 2024-6-29 12:15

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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