linux --- 一切皆文件
发布时间:2013-10-11 22:58:48
首先说下如果在裸机的情况下硬件中断是如何到来的:首先中断有内部中断和外部中断两种,中断一共有64个中断源1:内部中断的中断银角是直接和VIC(向量中断控制器)相连的,一个中断占用一个中断源,比如:wdt、网卡等设备程序可以直接通过中断控制器中存放的中断处理函数来执行,因为某个内部中断号产生的源头是唯一的,.........【阅读全文】
发布时间:2013-10-10 23:08:29
通过数据的传输方式,可以大致的分为三类驱动: 字符设备驱动:字节流 快设备驱动:数据块硬盘块叫block 512B,flash的块叫page 4K 网络设备驱动:数据包 首先学.........【阅读全文】
发布时间:2013-10-09 20:28:59
static int __init my_init(void)__init 宏展开是 .init.text __attribute__ ((__section__(#S))),这是编译器的一个属性,就是将有这个前缀的函数代码放到一个代码段中,.init.text段,在内核启动的时候会把这个代码段中的所有函数都执行一遍。__attribute__只适用于GNU C,因为内核都是用GNU C的标准写的备注:.........【阅读全文】
发布时间:2013-10-08 21:53:52
拿到内核,首先进行编译选项配置,make menuconfig,对内核编译选项作配置,最后保存的结果会存放在源码目录下的.config文件下。对应的模块的值被赋值成Y,N,MY表示要编译进内核,N表示不编译进内核也不编译成模块,M将代码编译成模块通过insmod插入使用。这个配置界面是专门有个系统维护的,如果我们要把自己的东西添加.........【阅读全文】