linux内核是一种可以被内核动态加载(insmode)和卸载(rmmod)的可执行二进制代码
最简单的内核
#include <linux/module.h>
#include <linux/init.h>
//用来实现模块的初始化
static int_init hellomodule_init(void)
{
printk(“Hello World module init 9k!\n”);
return 0;
}
//用来实现模块的退出
static void__exit hellomodule_exit(void)
{
printk(“Hello World module exit od\n”);
return 0;
}
module_init(lellomodule_init);
module_exit(hellomodule_exit);
MODULE_LICENSE(“GPL”);
嵌入式linux设备驱动程序是一个软件,用来操作硬件控制器(硬件上通常都有一个自己的芯片,这个芯片生产商为程序员提供了一些操作硬件的接口,驱动程序就是调用这些接口以实现在某个特定的操作系统上运行这个硬件)。这个软件主要完成以下功能:
- 对设备初始化和释放
- 对设备进行管理
- 读取应用程序传递给设备的数据或者请求
- 检查设备出现的错误
在linux上所有的硬件设备能够被分成这几种类型:
- 字符设备:以字节为单位,直接往设备发送 (鼠标、键盘、串行口)
- 块设备:在内存中有个缓存区大小为512或1024个字节,从内存到设备发送数据(各种磁盘、闪存)