打印
[ARM入门]

DM9000可执行程序LINUX运行发生段错误,求教!

[复制链接]
1263|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jxyggg|  楼主 | 2014-2-25 10:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
写了一段裸机程序,功能是读写DM9000的寄存器,是可以通过jlink仿真的,但是通过ARM-LINUX-GCC编译后,在linux系统中运行时打印信息告知“段错误”。是不是bank4和MMU需要有什么初始化之类的我没有做啊?请版主和本板的朋友帮帮忙~~谢谢!

相关帖子

沙发
john_lee| | 2014-2-25 12:32 | 只看该作者
在linux中,你不能直接访问外设的物理地址,只能访问该物理地址映射(mmap调用)到你的进程空间的虚拟地址。

使用特权

评论回复
板凳
嵌入式云终端| | 2014-2-25 20:38 | 只看该作者
楼上正解,linux的运行和单片机直接操作有区别

使用特权

评论回复
地板
未来是梦| | 2014-2-26 08:15 | 只看该作者
可以的。读写 /dev/mem

使用特权

评论回复
5
jxyggg|  楼主 | 2014-2-27 09:15 | 只看该作者
未来是梦 发表于 2014-2-26 08:15
可以的。读写 /dev/mem

请问能描述清楚一点吗?比如我需要调用什么资源才能完成映射呢?目前占用的片选是CS4,启示地址是0x2000_0300,先谢谢您啊!这方面不是特别懂,都是摸着石头过河。

使用特权

评论回复
6
jxyggg|  楼主 | 2014-2-27 09:15 | 只看该作者
john_lee 发表于 2014-2-25 12:32
在linux中,你不能直接访问外设的物理地址,只能访问该物理地址映射(mmap调用)到你的进程空间的虚拟地址 ...

请问能描述清楚一点吗?比如我需要调用什么资源才能完成映射呢?目前占用的片选是CS4,启示地址是0x2000_0300,先谢谢您啊!这方面不是特别懂,都是摸着石头过河。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

30

主题

197

帖子

0

粉丝