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深度探索读书笔记的主要内容,如果未能解决你的问题,请参考以下文章