1, linux驱动一般分为3大类:
* 字符设备* 块设备* 网络设备
2, 开发环境构建:
* 交叉工具链构建* NFS和tftp服务器安装
3, 驱动开发中设计到的硬件:
* 数字电路知识* ARM硬件知识* 熟练使用万用表和示波器* 看懂芯片手册和原理图
4, linux内核源代码目录结构:
* arch/: arch子目录包括了所有和体系结构相关的核心代码。它的每一个子目录都代表一种支持的体系结构,例如i386就是关于intel cpu及与之相兼容体系结构的子目录。
* block/: 部分块设备驱动程序;
* crypto: 常用加密和散列算法(如AES、SHA等),还有一些压缩和CRC校验算法;
* documentation/: 文档目录,没有内核代码,只是一套有用的文档;* drivers/: 放置系统所有的设备驱动程序;每种驱动程序又各占用一个子目录:如,/block 下为块设备驱动程序,比如ide(ide.c)。如果你希望查看所有可能包含文件系统的设备是如何初始化的,你可以看 drivers/block/genhd.c中的device_se
1