打印

求助:arm9-linux用户程序下通过数据总线读取外部数据

[复制链接]
2899|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Napoleon1987|  楼主 | 2011-9-27 22:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
RT,手头有块arm9的板子,上了linux系统,现在我想编一个应用程序,通过系统的数据总线把外部送来的16位并行数据读进来,求思路!在用户空间可以直接读取数据总线吗?是用mmap函数实现的吗?求思路,有程序为例更好,先谢了!

相关帖子

沙发
delin17| | 2011-9-28 13:40 | 只看该作者
先在底层实现对数据部线取外部16倍数据的驱动,然后再通过应用程序通过驱动来取数据

使用特权

评论回复
板凳
Napoleon1987|  楼主 | 2011-9-29 09:09 | 只看该作者
谢谢楼上答复,请问:只能通过这一种途径吗?这样是不是要重新编译系统?这个底层驱动好写吗,没写过ARM底层驱动,心里没底啊!

使用特权

评论回复
地板
wangkj| | 2011-9-29 11:56 | 只看该作者
第一条可行,我花一个月功夫搞定的。

使用特权

评论回复
5
wangkj| | 2011-9-29 11:57 | 只看该作者
后来,所有的外设,都是用户程序读写硬件。跟裸奔没区别了。
反复查了很多资料,但不太适合公开,是公司的产品。你的思路没问题,自己去琢磨吧。

使用特权

评论回复
6
Napoleon1987|  楼主 | 2011-9-29 15:27 | 只看该作者
谢谢4楼,你说的第一条可行,是指“在用户空间可以直接读取数据总线”吗?为什么我的程序一运行就会死机,我是先用mmap函数把存储器控制器的寄存器地址映射到虚拟空间配置好,然后把一个BANK的物理地址映射到虚拟空间,直接读,请问这样做是否正确?望不吝赐教!

使用特权

评论回复
7
wangkj| | 2011-9-29 16:53 | 只看该作者
好像最多能映射4k,我不记得了,死机我没碰到过,你看看那里死掉的。吧。

使用特权

评论回复
8
Napoleon1987|  楼主 | 2011-10-10 23:10 | 只看该作者
为什么只能映射4K啊?直接在用户区读总线数据会不会和内核层的外设驱动冲突呀,然后导致死机的?不知该怎么解决,继续求指点...........

使用特权

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

本版积分规则

0

主题

19

帖子

2

粉丝