breezyon
驱动牛犊
驱动牛犊
  • 注册日期2003-05-13
  • 最后登录2009-08-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2668回复:7

基于x86和ARM的linux驱动问题请教

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

返回顶部