安卓移植和驱动开发第十章心得体会

对于复杂的 Linux 驱动及 HAL等程序库,需要使用各种方法对其进行调试。 例如,设置断点、 逐步跟踪代码、-输出调试值息等。虽然嵌入式Linux在调试方面并没有 Visual Studio、 Delphi、 Eclipse 这些可视偌工其荒便,但学习一些这方面的技术无疑更奇脚手亮发强款而稳定的 Linux 内核模块←对 于嵌入式 Linux 内核模块、对于嵌入式的调试可能要更复杂一些。因为有时候需要至 少两台机器(开发机和-目标机)用于调试将主要介绍如何利用开发板之 Android模拟器以及 一些函接、工具(gdb、 gdoserver 以及 kgdb)调试嵌入式 Linux-内核模侠、 可执行序和共享库。

如果想让 printk 函数将消息输出 ; 到控制台.还需要另外一个条件,就是要求在字符界面下操作.如果读者使用 Ubuntu,会进入字符界面的控制台,这时再执行 build基础脚本 的文件,就会在控制台输出相应的消息了了。printk 函数在控制台(也称为终端)显示消息是通过/dev/console 设备文件实现 ,该设备文件只在字符界面的控制台下才起作用p,所以 printk 函数只有用在字符界面的控制台上才能正常输出消息。

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

Linux内核调试一直被很多人认为是非常困难的。大多数人宁愿直接使用printk 函数输出调试信息也不愿意使用各种命令  (gdb、 gdbserv~r.、.kgdb等)进行调试。因为这样做并不一定能换来更多的好处。’除了介绍传统的 printk 函数调试技术外,也介绍了其他的调试技术。这些调试技术并不一定都要用到,可根据实际f青况决定使用其中的一种或几种。希望在以后的实验中可以用到这些技术。

http://www.cnblogs.com/suntao123/

时间: 2024-10-11 05:05:10

安卓移植和驱动开发第十章心得体会的相关文章

安卓移植和驱动开发第二章心得体会

第二章我们学习了安卓系统与嵌入式开发,我们都知道安卓操作系统是基于Linux内核的,从系统移植和驱动开发的角度来说,安卓的底层开发移植,和传统嵌入式Linux系统的开发关系非常密切,两者的驱动在开发上几乎保持了完全一致,另外,安卓的底层开发和移植也与Linux嵌入式的环境保持了一致,嵌入式在我们生活中应用非常广泛,在消费电子,网络,航空航天,军事国防,医疗设备等都有非常大的应用,嵌入式系统主要由软件和硬件组成,硬件是基础,软件是核心与灵魂,而在硬件设备中,包括了嵌入式处理器和外围设备,而嵌入式的

安卓移植和驱动开发第九章心得体会

HAL ( Hardware Abstraction Layer,硬件抽象腔,〉是建立在Linux驱动之上的一套翻字库.这套程序 j率并不属于 Linux 内核, 而是属于 Linux 内核层之上的应用层. Google 为 Android 增加 HAL 的主要目 的除了尽量避免应用程序直接访问 Linux 驱动外,还有一仓重要原因,那就是保护 “私人财产”.-对于 那些既想发布茬子·Android,的Linux驱动程序,又不想将核心业务逻辑公开的企业或个人,这时候HAL显得非常重要了. 在传统

安卓移植和驱动开发第八章心得体会

Linux 驱动的代码重用有很多种方法.可以采用标准 C程序的方式.将要重用的代码放在其他 的文件 (在头文件中声明〉中. 如果要使用某些功能, include 相应的头文件即可〈这种方式称为 静态重用〉.也可以使用另外一种动态重用的方式,也就是一个 Linux 驱动可以使用另外←个 Linux 驱动中的资源(函数.变量.宏等〉.C或E++语言中编译多个源代码文件时,如果a.c使用 Z b.c文件中的函数,需 :要在 a.c 文件中使用 extern 预先定义 b.i: 中的函数, extern

《Android深度探索》(卷1)HAL与驱动开发 第十章心得体会

本章主要讲了嵌入式Linux的调试技术. (一)打印内核调试信息:printk Printk函数用法与printf函数类似,只不过printk函数运行在内核空间,printf函数运行在用户空间,printk函数在printk.c文件中实现. Printk函数的原型如下:asmlinkage int printk(const char *fmt,...) 第1个参数表示格式字符串,后面是可变参数.第一个参数值前面加尖括号包含的数字表示输出的日志级别,共有8个级别,在linux/kernel.h头文

Android系统移植与驱动开发概述读书心得

第一章是Android系统移植与驱动开发概述,包含了Android系统架构.Android系统移植的主要工作.查看Linux内核版本.Linux内核版本号的定义规则.如何学习Linux驱动开发以及Linux设备驱动等六方面内容 Android系统架构分为四层,分别是Linux内核.C/C++代码库.Android SDK API和应用程序.Linux内核这一层主要包括Linux的驱动程序以及内存管理.进程管理.电源管理等程序. Android移植可分为两部分:应用移植和系统移植.应用移植是指将应

《Android深度探索》(卷1)HAL与驱动开发 第一章心得体会

本书的第一章讲的是Android系统移植与驱动开发概述. android的系统架构和其操作系统一样,采用了分层的架构.从架构图看,android分为四个层,从高层到低层分别是应用程序层.应用程序框架层.系统运行库层和linux核心层. 1.应用程序: Android会同一系列核心应用程序包一起发布,该应用程序包包括email客户端,SMS短消息程序,日历,地图,浏览器,联系人管理程序等.所有的应用程序都是使用JAVA语言编写的. 2.应用程序框架 开发人员也可以完全访问核心应用程序所使用的API

安卓移植和驱动开发第四章心得体会

第四章我们学习了安卓移植环境的搭建,首先构建开发是任何开发工作的基础,对于软,硬件非常丰富的嵌入式系统来说,构建高效,稳定的环境是否开展工作的重要因素之一,在构建开发环境之前,我们必须了解相关的开发流程,主要流程包括,下载安卓内核,熟悉开发环境和工具,交叉开发环境.是安卓系统移植开发的基本模型,Linux内核环境配置,GUN工具链,测试工具甚至集成开发的环境都是安卓系统移植的利器:熟悉Linux内核,因为安卓系统移植和开发需要重新制定Linux内核,所以熟悉内核配置,编译和移植很重要:熟悉目标板

安卓移植和驱动开发第三章心得体会

第三章学习了安卓移植平台工具的介绍,三星公司生产的FS -S5PC100开发平台,是基于Cortex-A8内核的S5PC100处理器设计而成的,此平台主要用于嵌入式系统教学,来适应只能操作系统的发展及市场需求,以它为例,该开发平台具有丰富的硬件资源,包括硬件加速器,比如动态视频处理,显示控制和缩放,支持多种格式的硬件编解码,其视频解码能力很强大并且省电,支持电视输出,支持2D 和3D 加速,广泛用于智能手机,平板电脑等产品,通过学习,我们还了解的该开发平台的各种功能,比如摄像头功能的展示,高清播

安卓移植和驱动开发第七章心得体会

第七章 Led为我闪烁 尽管 Linux 驱动直接与硬件打交道,但并不是 Linux 驱动直接向硬件中的内存写数据, 而是与本机的内存(νO Memory,位于内核空间〉进行交互.所谓 1/0 内存是通过各种接口(PCI.USB.蓝牙.以太网口等〉连接到主机( PC.手机〉的硬件〈网卡.声卡.摄像头等〉在主机内 存中的映射.例如,在 Ubuntu Linux 上运行的驱动只需要访问运行 Ubuntu Linux 的主机中的内存即可,然后Linux内核会利1/0内存中的数据硬件交互. 如果在不同L