android深度探索——第十章读书笔记及心得

author author     2022-07-31     161

关键词:

嵌入式linux的调用技术

——第10章读书笔记及心得

通过本章的学习了解了printk函数。该函数与printf函数类似,用于打印内核调试信息。只是前者运行在内核空间,后者运行在用户空间。即linux驱动这样的linux内核程序只能使用printk函数输出调试信息。Printk函数的原型:asmLinkKage int printk(const char *fmt,…)。Printk文件是一个简单的有4个数字组成的文本文件,该文件的默认值问6 4 1 7。6代表将消息输出到控制台的级别,只有高于该级别的输出信息才会输出到控制台。4代表默认的消息日志级别。如果不在printk函数中制定日志级别,就会使用该值作为默认的级别。1表示控制台日志级别可被设置的最小值(最高优先级别)。7表示控制台日志级别的默认值。

查询日志消息的命令为:

       #dmesg

       #cat /var/long/syslog

       #cat /proc/kmsg

       #dmesg | grep printk

        cat /var/log/syslog |grep printk

        tail –n 10 /var/log/syslog

       大量使用printk函数操作日志文件或控制台设备文件会严重影响linux驱动的性能。因此,这就要求linux驱动只能在开发阶段使用printk函数输出消息。

       在linux文件系统中,/proc经常被用来作为内核空间与用户空间进行数据交互的工具。/proc文件系统的行为方式与设备文件系统类似。/proc是虚拟文件系统,是内存映射。所有的读写/proc的操作都是对内存的读写。所以读写/proc文件系统的速度要远比读写/dev文件系统的速度快。因此,/proc文件系统也可作为linux驱动与用户空间程序交互的工具。

        

android深度探索——第八章读书笔记及心得

蜂鸣器驱动——第8章读书笔记及心得      通过本章的学习,学会了pwm的驱动实验,知道了蜂鸣器实现的原理。蜂鸣器是开发板上的一个硬件设备,可以通过向寄存器写入特定的值来控制蜂鸣器发出尖... 查看详情

android深度探索--hal与驱动开发----第十章读书笔记

printk函数的用法于-printf函数类似,只不过printk函数运行在内核空间,printf函数运行在用户空间。也就是说,像Linux驱动这样的Linux内核程序只能使用printk函数输出调试信息虽然使用printk函数可以很方便地将消息写入日志文件或控... 查看详情

《android深度探索》第十章心得体会

   《Android深度探索》第十章讲的是嵌入式Linux的调试技术。对于复杂的Linux驱动及HAL等程序库,需要使用各种方法对其进行测试。printk函数的用法和printf函数类似,只不过printk函数运行在内核空间,printf函数运行在用... 查看详情

andriod深度探索(卷1)hal与驱动开发第十章读书心得

对于复杂的Linux驱动以及HAL等程序库,需要使用各种方法对其进行调试。例如,设置断点、逐步跟踪代码、输出调试信息等。 Printk函数的用法与printf函数类似,只不过printk函数运行在内核空间,printf函数运行在用户空间。也... 查看详情

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

看了本书第十章,我学习到了:1.printk函数:运行在内核空间,linux驱动只能用printk来打印内核调试信息。函数原型:asmlikageintprintk(constchar*fmt)。第一个参数表示格式字符串,后面是可变参数,第一个参数若为KERN_DEBUG和KERN_WARNING... 查看详情

android深度探索(卷1)hal与驱动开发第十章 嵌入式linux的调试技术读书笔记

...码,输出调试信息等。本章主要讲述了如何利用开发板、Android模拟器以及一些函数、工具调试嵌入式Linux内核模块、可执行程序和共享库。1.打印内核调试信息:printk该函数的用法和printf函数类似,只不过printk函数运行在内核空... 查看详情

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

   代码的重用分为静态重用跟动态重用。静态重用:采用标准的c程序的方式,将要重用的代码放在其他的文件中,如果要使用相应的某些功能,include相应头文件即可。动态重用:也就是一个linux驱动可以使用另外一个lin... 查看详情

android深度探索读书笔记第九章

   HAL是建立在linux驱动之上的一套程序库,这套程序库属于linux内核层之上的应用层。编写一款支持HAL的linux驱动程序:1、在为linux驱动添加HAL,要想尽量保护敏感数据。Linux驱动的代码就要尽量简洁,尽可能将业务逻辑... 查看详情

android深度探索--hal与驱动开发第十章读后感

...代码,输出调试信息等。本章主要介绍如何利用开发板、android模拟器以及一些函数、工具调试嵌入式linux内核模块、可执行文件和共享库。Printk函数的用法与printf函数类似,只不过printk函数运行在内核空间,printf函数运行在用户... 查看详情

andriod深度探索(卷1)hal与驱动开发第九章读书心得

...在Linux驱动之上的一套程序库。刚开始介绍了为什么要在Android中加入HAL,目的有三个,一,统一硬件的调用接口。二,解决了GPL版权问题。三,针对一些特殊的要求。可以利用位于用户空间的HAL代码来辅助Linux驱动完成一些工作... 查看详情

android深度探索第十章

Android模拟器只能通过端口映射的方式使用kgdbserver调试程序。但开发板除了可以通过ip连接到kgdbserver外还可以通过串口进行连接。开发板同样也带了kgdbserver程序,可直接运行。大多数开发人员认为kgdb是最好的内核调试工具。Kgdb... 查看详情

android深度探索hal读书笔记9

...议,该协议要求源代码必须开源,即linux驱动必须开源。Android增加HAL的目的:①避免应用程序直接访问linux驱动②保护私人财产,满足不想开 查看详情

android深度探索(卷一)hal与驱动开发第十章

通过学习Android深度探索(卷一)HAL与驱动开发的第十章让我知道了嵌入式Linux的调试技术和调试工具有哪些。Printk可以打印内核调试信息,该函数的用法与printf函数类似,只不过printk函数运行在内核空间,printf函数运行在用户空... 查看详情

android深度探索hal读书笔记8

看了本书第八章,我学习到了:蜂鸣器是开发板自带的一个硬件设备,控制蜂鸣器发声是通过向寄存器写入特定的值实现的。PWM驱动不同于LED驱动,其由多个文件组成,在编译时将这些文件进行联合编译。蜂鸣器也称为PWM(脉冲... 查看详情

android驱动开发第十章心得笔记

第十章主要讲了对于复杂的Linux驱动以及HAL等程序库,需要使用各种方法对其进行调试。例如,设置断点、逐步跟踪代码、输出调试信息等。 Printk函数的用法与printf函数类似,只不过printk函数运行在内核空间,printf函数运行... 查看详情

第十章读书笔记

本章主要讲述了对于复杂的Linux驱动及HAL等程序库,需要使用各种方法对其进行调试。例如,设置断点、逐步跟踪代码、-输出调试值息等。虽然撒入式Linux在调试方面并没有VisualStudio、Delphi、Eclipse这些可视化工具方便,但学习... 查看详情

android深度探索(卷1)hal与驱动开发第九章 硬件抽象层:hal读书笔记

HAL是建立在Linux驱动之上的一套程序库。这套程序库并不属于Linux内核,而是属于Linux内核层之上的应用层。HAL的主要目的一个是用来保护"私人财产",另一个是尽量避免应用程序直接访问Linux驱动程序。传统的Linux系统中Linux驱动... 查看详情

android深度探索(卷1)hal与驱动开发第六章 第一个linux驱动程序:统计单词个数读书笔记

本章是一个具体的例子,来详细的介绍开发和测试Linux驱动程序的完整过程。尤其是测试Linux驱动。在这个统计单词个数的实例中,重点是该算法的实现技术:即Linux驱动,而不是如何统计的。6.1Linux驱到底是什么Linux驱动的工作... 查看详情