字符设备驱动程序的概念介绍

U-BOOT的任务是启动内核;内核的任务是启动应用程序;应用的作用是读写文件电灯等等;

应用:open,read,write;驱动也相应有接口:led_open,led_read,led_write;

                                          下面以点亮led灯为例子:

下面是应用范围:
应用:open;     read;     write;  (swi val)
c库(open等等的实现怎么样到达内核呢?执行swi val;就会引发异常,就会进入内核的异常处理函数)
  下面是内核范围(驱动也属于内核):
SYSTEM call interface(根据swi发生呢中断的原因,调用处理函数sys_open,sys_read,sys_write)
(VFS层:virtual Fi'le'system虚拟文件系统)sys_open,sys_read,sys_write
驱动:led_open;led_read;led_write;
      硬件范围

                   字符设备驱动程序的框架:  1、写出led_open;led_read;led_write;

                                                                2、首先要告诉内核:

                                                                        a:定义一个file_operations的结构体。

                                                                        b:把这个结构告诉内核。register_chrdev();

                                                                        c:谁来调用,驱动的入口函数。比如:first_drv_init()...b_init()等等

                                                                         d:修饰

以一个点亮led驱动为例子:一、框架(框架如上面的总结),

                                             二、完善;

                                                          硬件操作 1、看与原理图

                                                                           2、看2440的手册

                                                                            3、写代码(单片机时,操作物理地址;驱动时:操作虚拟地址,使用ioremap函数来映射,把物理地址映射为虚拟地址)

编译busybox是:1、make menuconfig;2、make;3、make install

 

                                         

 

posted @ 2019-05-08 11:25  也许明天、  阅读(665)  评论(0编辑  收藏  举报