·ChinaUnix首页 ·论坛 ·博客 
Linux首页 | Linux新闻 | Linux文档 | Linux论坛 | Linux下载 | Linux博客 | Linux搜索
新手入门 | 安装启动 | 管理员指南 | 开发者手册 | 桌面应用 | 程序开发 | 数据库 | 网络技术| CentOS | Fedora | RHEL | Ubuntu | Apache | MySQL | PHP
  Linux时代 >> 技术文档 >> 安装启动
 
Linux kernel CS8900网卡驱动的移植
来源: ChinaUnix博客  日期: 2008.05.11 16:38 (共有条评论) 我要评论
 

作者:Ronnie 手机:13761598350 E-mail:
ghnghnghnghn@163.com
网络传输是当今世界的一大主流,因此网卡驱动也自然而然在各类驱动中占领了一席之地。下面我们就简短地来说一下CS8900网卡驱动移植到Linux kernel的一些问题。
首先要说的是函数入口。一般来说,我们在编译kernel时,设备驱动的选择有两种方式:一种是直接编译到kernel里,另一种是以模块方式挂接。CS8900网卡驱动如果以模块方式挂接,函数init_module就是入口;如果是直接编译到kernel里,那么函数cs89x0_probe才是入口。
在此入口函数中,将完成网卡驱动的各项初始化。如注册虚拟地址,设备号,中断号,以及各个相关寄存器的初始化。
其次,在kenel里面,任何物理地址都要通过MMU转化成虚拟地址,因此在kernel里,我们真正去操作的寄存器的地址其实是和每个寄存器的物理地址一一对应的虚拟地址。我们在定义完我们所要用到的寄存器后,都必须使用一个函数将我们所要用到的寄存器的物理地址转换成为在kernel里可以操作的虚拟地址,然后才能将他们用以具体的操作,否则一切都是徒劳。
第三,CS8900网卡的寄存器都是16位的,所以在选择读写函数时也必须选择16位寄存器的读写函数。
第四,CS8900网卡驱动在kernel里的收发数据方式是基于中断方式的。因此,我们在初始化函数里必须将相应寄存器的中断控制位激活,使CS8900网卡在收发数据时可以采用中断方式。当然,中断号的正确设置也是必不可少的。
最后,关于中断还要说一点。网卡不可能也不需要时时刻刻都处于中断状态,合理的中断触发时机是一个必要条件。
以上便是Linux kernel CS8900网卡驱动移植所需注意的内容。Kernel里面涉及和兼容的东西非常多,去除容易产生冲突的部分,添加自己需要实现的功能,可以使得移植工作能够顺利得进行。

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/31/showart_684433.html
  发表评论 查看评论(共有条评论)
 
 


最新资讯更多>> 
· 发行版发布:Ubuntu 8.04.1
· Ubuntu Tweak 0.3.4正式发布
· 哪一个 Linux 发行版最流行?
· 开源运营引发中小网游厂商运营..
· Core 2 Duo E8400 Ubuntu性能全..
· Linux下Wine中文对话框乱码解决法
· 采用Linux系统的车载GPS开发中
· 多种选择:9个Linux下的浏览器
· Adobe 发布 Flash Player 10 b..
· Novell为超级计算机提供SUSE L..
论坛热点更多>> 
· 新装的服务器有报警声,不知道..
· 70后和80后 的婚姻
· 系统时钟比硬件时钟快很多,..
· LINUX字符界面下 ( 结束讨论)
· 闲啊闲~闲啊闲
· [转贴]热词“俯卧撑”风靡网络
· crontab内容无法启动
· 好儿呢。。。
· @@
· 原来我也是一个小心眼得女人
文档更新更多>> 
· [转]几种linux内核文件的区别
· Debian 在线播放
· epoll入门
· yum出现Existing lock /var/run/..
· RPM 的介绍和应用
· SSH客户端命令的使用
· Unix/Linux下文件基本操作
· vmstat命令列出的属性详解
· linux学习笔记分享 (Linux入门绝佳)
· squid 命令行选项分类
 
关于我们 | 联系方式 | 广告合作 | 诚聘英才 | 网站地图 | 友情链接 | 免费注册

Copyright © 2001-2008 ChinaUnix.net All Rights Reserved

感谢所有关心和支持过ChinaUnix的朋友们