摘要: 第十章 读书笔记 一、打印内核调试信息:printk printf函数运行在用户空间。执行完相关的命令后,会要求选择在Ubuntu Linux上,还是在Android设备上运行。 二、通过虚拟文件系统进行数据交互 proc_mkdir函数、create_proc_entry函数、creat_proc 阅读全文
posted @ 2016-06-29 15:23 嗨,嗨嗨 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 第九章 读书笔记 本章主要学习了HAL。Android的硬件抽象层,简单来说,就是对Linux内核驱动程序的封装,向上提供接口,屏蔽低层的实现细节。也就是说,把对硬件的支持分成了两层,一层放在用户空间(User Space),一层放在内核空间(Kernel Space),其中,硬件抽象层运行在用户空 阅读全文
posted @ 2016-06-29 15:22 嗨,嗨嗨 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 第八章 读书笔记 本章主要讲蜂鸣器的驱动,蜂鸣器是S3cC6410开发板上带的一个硬件设备,本节将介绍蜂鸣器的实现原理,并实现一个完整的蜂鸣器驱动。本节讲介绍把linux驱动分成多个文件的方式。这些文件中的数据结构、函数的代码也可以被多个不同的驱动使用,所以这也是代码重用 的重要方法。Linux代码 阅读全文
posted @ 2016-06-29 15:20 嗨,嗨嗨 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 第七章 LED灯将为我闪烁:控制发光二极管 尽管linux驱动直接与硬件打交道,但并不是linux驱动直接向硬件中的内存写数据,而是与本机的I/O内存进行交互。每一个连接linux的硬件在I/O内存中都会有映射首地址。在使用ioread32、iowreat32等函数读写I/O内存时需要制定这些首地址 阅读全文
posted @ 2016-06-29 15:19 嗨,嗨嗨 阅读(105) 评论(0) 推荐(0) 编辑
摘要: 第六章 第一个Linux程序:统计单词个数 编写linux驱动程序的步骤: 1、建立linux驱动骨架(装载和卸载linux驱动):基本骨架是module_init和module_exit宏指定以及指定这两个函数的两个宏的c程序文件。 2、注册和销毁设备文件:分别使用misc_register和mi 阅读全文
posted @ 2016-06-29 15:18 嗨,嗨嗨 阅读(96) 评论(0) 推荐(0) 编辑
摘要: 第五章 配置开发板测试环境 开发板是开发和学习嵌入式技术的主要硬件设备,尽管可以在pc上开发linux驱动,然后重新编译成arm架构的linux驱动模块,但是最终都是要在开发板上进行测试。s3c6410是由三星公司推出的一款低功耗、高性价比的RISC处理器,它基于arm11内核,可广泛用于移动电话和 阅读全文
posted @ 2016-06-29 15:17 嗨,嗨嗨 阅读(119) 评论(0) 推荐(0) 编辑