- UID
- 79720
- 性别
- 男
|
我在4510上跑uclinux,接上了一个键盘。开始翻了一个uclinux的书。
准备用中断来实现写用户应用程序,看了标准linux,觉得中断还不是很难,直接用req
uest_irq 就行了,但是到了uclinux下,才知道有问题了。arm的交叉编译器根本就找不到中断。
交叉编译器对具体的硬件根本就不支持。后来一想觉得也很正确,这个交叉编译器
既然能对那么多的arm都行,肯定对具体的硬件不行了。我仔细去找一下交叉编译器的
库函数,果然是这样。一些网络的库函数就用,像协议比较高层,这些有很正常。
我觉得应该有两种方法可以解决这种问题(不知道正确不),一种是不按照环境变
量的中的路径(交叉编译路径) 来编译,加上参数(uclinux的硬件库函数)来编译。另外就是写设备驱动程序,后来上
网查了一下,一般都都是 写设备驱动程序。
我就写了一个设备驱动程序。尝试了写了一个字符驱动程序(调用4510的第四个外
部中断).在mem.c中加了预编译,在makefile中也加了.o文件。因为我是把这个程序直接放到cha
r中(不用加访问目录)。 然后再char文件夹下的config文件加了这一项。在make menuconfig编译的时候,选配置
内核选中了这个驱动。 一路编译完,载倒板子上就是找不到这个驱动,我在文件系统romfs的dev文件夹下能看
到@test,c,254,0。在板子上的uc 就是看不到这个驱动(romfs/dev文件夹的其他的驱动都能在板子上的dev文件夹看到)
,然后再看了板子上的proc/device 文件夹也没有发现这个驱动,不知道出了什么问题。
大家帮帮小弟,这个问题已经搞了两天了,有没有什么好资料看阿。 |
|