android深度探索读书笔记

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android深度探索读书笔记相关的知识,希望对你有一定的参考价值。

 

Android深度探索(1)HAL与驱动开发读书笔记

  第五章的搭建S3C6410开发板的测试环境可以划分为以下几部分:

1使用cdev_init初始化cdev

2指定设备号

3使用cdev_add函数将字符设备添加到内核中的字符设备组中

4使用class_creat宏创建struct class

5使用device_creat函数创建设备文件

然后卸载led驱动的设备文件卸载LED驱动的设备文件:

void device_destory(sruct class *class,dev_t devt)

void clss_dsetroy(struct class *class)

void unregister_chrdex_region(dev_t from,unsigned count)

设置寄存器与初始化LED驱动时了解到,LED有两个引脚:GPB0和GPB1。其中一个引脚连接到了ARM处理器的GPI0端口,另一个引脚经过一个限流电阻连接到电源。控制LED需要通过3个寄存器来完成,分别为GPMCON、GPMDAT、GPMPUD。每一个寄存器可以使用4个字节。

  第六章的第一个linux个程序:统计单词个数主要讲了如何设计一个统计单词个数的程序,以下是步骤:

第 1 步:建立 Linu x 驱动骨架 (装载和卸载 Linu x 驱动);第 2 步:注册和注销设备文件;第 3 步指定与驱动相关的信息;第 4 步指定回调函数 ;第 5 步编写业务逻辑 ;第 6 步:编写 Makefile文件 ;第 7 步z 编译 Linux 驱动程序 ;第 8 步2 安装和卸载 Linux 驱动;

Printf函数运行在用户空间,printk函数运行在内核空间。

测试linux驱动步骤

第一步:导入test_count.c文件第二步:设置include路径第三步:建立target第四步:build工程第五步:运行测试程序

使用Android NDK测试

使用Java代码直接操作设备文件测试:需要拥有root权限。

  第七章的控制发光二极管可以分为以下几个部分:

 1、 一个完整的Linux驱动主要由内部处理和硬件交互两部分组成,其中内部处理主要是指Linux驱动的装载、卸载、与设备文件相关的动作处理以及业务逻辑等;与硬件交互主要是指通过函数与硬件中的寄存器进行数据交互。

2、LED驱动的实现原理:尽管Linux驱动直接与硬件打交道,但并不是Linux驱动直接向硬件中的内存写数据,而是与本机的I/O内存进行交互。每一个连接Linux的硬件在I/O内存中都会有映射的首地址。

3、LED有两个引脚:GPB0和GPB1;控制LED需要通过3个寄存器来完成,3个寄存器分别是GPMCON,GPMDAT和GPMPUD;每个寄存器可以使用4个字节;使用GPMCON寄存器的低16位将LED的两个端口的属性设为output;使用GPMDAT寄存器的低4位控制4个LED的亮灭;使用GPMPUD寄存器的低8位分别打开4个LED的上拉电路。

4、创建LED驱动的设备文件的步骤:第一步,使用cdev_init函数初始化cdev;第二步,指定设备号,设备号有两种指定方式分别是直接在代码中指定和动态分配;第三步,使用cdev_add函数将字符设备添加到内核中的字符设备数组中;第四步,使用class_create宏创建struct class;第五步,使用device_create函数创建设备文件。       http://www.cnblogs.com/xcswdd/ 

 

     

以上是关于android深度探索读书笔记的主要内容,如果未能解决你的问题,请参考以下文章

《Android深度探索》读书笔记10

Android深度探索读书笔记 第十章

Android深度探索——第五章读书笔记及心得

Android深度探索HAL读书笔记9

Android深度探索读书笔记 第八章

Android深度探索——第六章读书笔记及心得