- 主题:将DDR内存mmap后作为源使用memcpy,居然会bus error....
将一段DDR内存mmap后,将其使用memcpy接口拷贝到另外一块堆内存中,会报bus error。
实在看不出有啥问题,无奈自己手动写代码循环复制过去,暂时规避了问题。
哪位大侠知道为啥啊?
--
FROM 221.231.167.*
perhaps alignment
--
FROM 114.245.195.*
这应该mmap就出错吧
【 在 z16166 的大作中提到: 】
: perhaps alignment
: --
发自「今日水木 on iOS」
--
FROM 39.144.103.*
他的意思应该是memcpy中没有对齐访问。
memcpy的实现看来比想象的复杂。
但是这不科学啊。
【 在 RichyMong 的大作中提到: 】
: 这应该mmap就出错吧
: 发自「今日水木 on iOS」
--
FROM 221.231.167.*
不能debug一下?看看导致error的指令访问了啥
--
FROM 114.245.195.*
猜CPU指令对齐,将定义内存的地方声明为
128字节对齐,估计就可以了
【 在 elephant 的大作中提到: 】
: 将一段DDR内存mmap后,将其使用memcpy接口拷贝到另外一块堆内存中,会报bus error。
: 实在看不出有啥问题,无奈自己手动写代码循环复制过去,暂时规避了问题。
: 哪位大侠知道为啥啊?
--
FROM 223.104.39.*
最后找到根因了吗?我们也碰到了 本地环境 其他客户都没问题。但是有一个客户那边用memcpy拷贝mmap返回的地址到目标地址就报bus err。又不能debug很麻烦……
【 在 elephant (elephant) 的大作中提到: 】
: 他的意思应该是memcpy中没有对齐访问。
: memcpy的实现看来比想象的复杂。
: 但是这不科学啊。
:
--
FROM 39.144.137.*