阅读:2668回复:7
基于x86和ARM的linux驱动问题请教
基于x86和ARM的linux驱动是不一样的吗?如果是,那么需要改哪些东西来使x86下的驱动移植到ARM上,谢谢
|
|
沙发#
发布于:2004-04-11 11:55
你什么都不用动,现在已经有很多人帮你做好移植工作了.如果的确是有必要改,一个是改动bootloader,另一个是裁剪内核.没了.
|
|
板凳#
发布于:2004-04-11 15:57
我要加入USB无线网卡的驱动,在PC上可以用,我想让它在ARM板上也可以用,我需要怎样做呢?
|
|
地板#
发布于:2004-04-11 22:59
这个问题可把我难住了.还好我做过x86->ppc的驱动移植,有些通用的经验.在此我说说我个人的看法,不可不信,亦不可全信.
LINUX本身是个跨平台的系统,因此不管是ARM还是X86,代码的共用率是相当高的.这样,你可以先采取\"注释大法\".这是一种比法轮大法更邪门的方法,就是将你编译不过去的代码行通通注释掉.这样你就得到了一个\"跨平台\"模板了.仔细看看被注释的那些内容你会发现,这些代码都是与底层IO访问,底层内存管理以及字节序相关的,于是,你可以找一个现成的驱动,看看别人是怎么处理x86与arm的这部分内容的.接下来的事就是忍受N次的panic或core dump之后享受你的成功. 不是很难,就是麻烦. |
|
地下室#
发布于:2004-04-12 18:02
谢谢你的建议,看来接下来的工作有的烦了
|
|
5楼#
发布于:2004-04-14 05:33
去找个标准linux内核,不要用redhat里的,redhat把标准内核改得乱七八糟的,常常出现编译出错之类的问题.
|
|
6楼#
发布于:2004-04-16 12:51
太感谢了
|
|
7楼#
发布于:2004-04-16 23:36
实际上现在做移植已经很简单了,你只须给底层的接口操作换了就行了,如
#define in(memaddr) &memaddr #define out(memaddr,x) *memaddr=x 还有中断什么的 |
|
|