读书笔记第七章

控制发光二极管:

对于Linux驱动来说,需要直接与硬件交互,本章会完成一个真正意义的Linux驱动,用来控制开发板上的4个LED小灯,称为LED驱动,也就是说通过想Linux驱动发送数据可以控制LED小灯的开光。

LED驱动:

1.创建LED驱动的设备文件:

1.使用cdev_init函数初始化cdev;

2.指定设备号,Linux设备文件的设备号分为主设备号和次设备号,设备号可以直接在代码中指定,也可以动态分配;

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

4.使用class_create宏创建struct class;

第5步:使用device_create函数创建设备文件。

当需要卸载LED驱动的设备文件时,需要依次调用device_destroy、class_destroy和unregister_chrdev_region方法。

控制LED,LED驱动可以通过字符串控制和I/O命令控制。

通过本章,我们了解了LED驱动是真正与硬件打交道的Linux驱动,虽然驱动并不复杂,只是控制4个LED,但LED驱动已经包括了Linux驱动所有的必要部分,一个完整的Linux驱动主要有内部处理和与硬件交互两部分组成。

时间: 2024-10-07 05:45:47

读书笔记第七章的相关文章

In-memory Computing with SAP HANA读书笔记 - 第七章:Business continuity and resiliency for SAP HANA

本文为In-memory Computing with SAP HANA on Lenovo X6 Systems第七章Business continuity and resiliency for SAP HANA的读书笔记. Overview of business continuity options 业务连续性有不同的级别,采用何种级别取决于需求 Developing a business continuity plan highly depends on the type of busi

《深入理解计算机系统》读书笔记 第七章 链接

第七章链接 链接(linking)是将各种代码和数据部分收集起来并组合成为一个单一文件的过程,这个文件可被加载(或被拷贝)到存储并执行. 链接的时机 编译时,也就是在源代码被翻译成机器代码时 加载时,也就是在程序被加载器加载到存储器并执行时. 运行时,由应用程序执行. 在现代系统中,链接是由链接器自动执行的. 链接器的关键角色:使分离编译称为可能. 7.1 编译器驱动程序 驱动程序的工作:1.运行C预处理器,将C源程序(.c)翻译成一个ASCⅡ码中间文件(.i):2.运行C编译器,将.i文件翻译

《深入理解计算机系统》读书笔记第七章——链接

<深入理解计算机系统>第七章 链接是将各种代码和数据部分收集起来并组合成为一个单一文件的过程,这个文件可被加载(或拷贝)到存储器并执行. 链接的时机 编译时,也就是在源代码被翻译成机器代码时 加载时,也就是在程序被加载器加载到存储器并执行时. 运行时,由应用程序执行. 在现代系统中,链接是由链接器自动执行的. 7.1 编译器驱动程序 编译系统提供编译驱动程序——调用语言预处理器.编译器.汇编器和链接器. (1)运行C预处理器:源程序main.c->ASCII码中间文件main.i (2)

《利用python进行数据分析》读书笔记--第七章 数据规整化:清理、转换、合并、重塑(二)

3.数据转换 介绍完数据的重排之后,下面介绍数据的过滤.清理.以及其他转换工作. 去重 #-*- encoding: utf-8 -*- import numpy as np import pandas as pd import matplotlib.pyplot as plt from pandas import Series,DataFrame #DataFrame去重 data = DataFrame({'k1':['one']*3 + ['two'] * 4, 'k2':[1,1,2,3

《Microsoft Sql server 2008 Internals》读书笔记--第六章Indexes:Internals and Management(1)

<Microsoft Sql server 2008 Internals>索引目录: <Microsoft Sql server 2008 Internals>读书笔记--目录索引 在第五章主要学习了table的内部存储结构,第七章<Special storage>中将继续深入学习存储机制,那将是本书最难理解的一章.第六章主要介绍index的基础知识,第八章是<query Optimizer>,下面我们先来看看第六章:Indexes:Internals an

《Java编程那点事儿》读书笔记(七)——多线程

1.继承Thread类 通过编写新的类继承Thread类可以实现多线程,其中线程的代码必须书写在run方法内部或者在run方法内部进行调用. public class NewThread extends Thread { private int ThreadNum; public NewThread(int ThreadNum){ this.ThreadNum = ThreadNum; } public void run(){ try{ for(int i = 0;i < 10;i ++){ T

SQL Server2012 T-SQL基础教程--读书笔记(5-7章)

SQL Server2012 T-SQL基础教程--读书笔记(5-7章) SqlServer T-SQL 示例数据库:点我 Chapter 05 表表达式 5.1 派生表 5.1.1 分配列别名 5.1.2 使用参数 5.1.3 嵌套 5.1.4 多个引用 5.2 公用表表达式 5.2.1 分别列别名 5.2.2 使用参数 5.2.3 定义多个CTE 5.2.4 CTE的多次引用 5.2.5 递归CTE 5.3 视图 5.3.1 视图和ORDER BY 子句 5.3.2 视图选项 5.4 内嵌表

《Unix环境高级编程》读书笔记 第7章-进程环境

1. main函数 int main( int argc, char *argv[] ); argc是命令行参数的数目,包括程序名在内 argv是指向参数的各个指针所构成的数组,即指针数组 当内核执行C程序时(使用exec函数),在调用main前先调用一个特殊的启动例程.可执行程序文件将此启动例程指定为程序的起始地址——这是由连接器设置的,而连接器则是由C编译器调用.启动例程从内核取得命令行参数和环境变量值,然后按上述方式调用main函数做好安排. 2. 进程终止 有8种方式使进程终止,其中5种

MySQL Cookbook读书笔记第三章

1,查询指定列/从指定列中查询 若需要指定每一列在查询结果中出现的先后顺序,可以在select语句中指定(dstuser在dsthost之后): 查询显示用户所关注的列: 2,指定查询行 使用where关键字可以查询符合条件限制的数据例如:查找srchost为venus或者srchost以s开头的行记录: 使用操作符like进行模式匹配,其中%表示通配符,代表一个差多为任意值的字符串. where使用操作符and可以查询多个条件: 条件并集: 3,格式化显示查询结果 当查询语句中没有重命名列名,