8-10总结

Android深度探索8-10章总结

蜂鸣器是S3C6410自带的一个硬件设备。通过像寄存器写入特定的值控制蜂鸣器发出尖叫,其实现原理以及完整实现一个蜂鸣器驱动。驱动安装失败的解决方法,在本章的前言中首先提到,在遇到无法卸载Linux驱动时通过直接修改linux驱动相应的内存地址,删除Linux驱动。编译由多个文件组成的Linux驱动,在main.c文件会有两个宏(_init)(_exit),在以前程序中没有用过,用来标识Linux驱动初始化函数和驱动卸载函数,来提高运行效率。在product.c

文件中有extern关键字,其作用是告诉编译器该函数的函数名、参数个数、参数类型和返回值类型。当驱动包含多个文件时需要module-y或者module-objs来指定所有的目标文件。代码重用分为静态和动态,本节使用第二种模块依赖也称为导出符号,也就是在一个驱动模块里使用另一个驱动模块里被导出的符号。

HAL硬件抽象层,他是属于linux内核层之上的应用层,解释了在Android中加入HAL的原因是Google为了满足不想开源的Linux驱动作者的要求,在Android层次结构中的系统运行库层增加了一个HAL,来统一硬件的调用接口,解决GPL版权问题以及一些特殊要求。接下来再以前第七章中的LED程序中加入HAL,应用程序不需要再关心Linux驱动和设备文件的交互方式,只需要像访问普通API一样可以和Linux启动进行交互。

精简LED驱动,去掉了所有与读写寄存器规则相关的代码,只保留了创建设备文件及寄存器交互的代码,在设备文件的read和write函数中读写指定的寄存器。在与LED交互时,只要向设备文件读取或者发送五个字节的数据就可以读写指定的寄存器。LED驱动程序的设备文件接收的不是字符串。而是字节类型的数据,需要一个单独程序像设备文件写入字节形式的数据,或者从设备文件中读取字节类型的数据。

最后主要学习到如何利用开发板、Android模拟器以及一些函数、工具(gdb、gdbserver、以及kgdb)调试嵌入式Linux内核模块、可执行程序和共享库。

打印内核调试信息:printk,Printk 函数的用法和printf函数类似,但是printk函数运行在内核空间,而printf运行在用户空间,printk函数在printk.c文件中实现,路径为/root/lernel/linux_kernel_2.6.36/kernel/printk.c.他有自己的函数原型,其中第一个参数的值不加信息级别,默认值是KERN_WARNING。此函数既可以将日志信息写到日志文件,也可以将日志信息写到控制台。Printk文件是一个简单的有4个数字组成的文本文件,默认值如下:6 4 1 7,其中6将消息输出到控制台的级别,只有高于该级别的输出信息才会输出到控制台,4默认的信息日志级别。1控制台日志级别可被设置的最小值,即最高优先级别。7控制台日志级别的默认值。

调试技术要根据实际情况决定使用哪一种或哪几种,例如,当发现某段程序代码的bug太多或者很难通过printk函数输出信息找出,可以考虑使用kgdb用step by step的方式定位bug。虽然有很多调试技术,但是需要根据自己的经验,来好好利用这些技术。

http://www.cnblogs.com/xxyue/

时间: 2024-08-11 06:24:14

8-10总结的相关文章

百度粉红色风科技上来看积分

http://www.ebay.com/cln/508gua_gvqjq/-/167266747010/2015.02.10 http://www.ebay.com/cln/jhu2290/-/167423283013/2015.02.10 http://www.ebay.com/cln/cha.m22/-/167166250017/2015.02.10 http://www.ebay.com/cln/fenyu56/-/167382503016/2015.02.10 http://www.eb

百度附件是分开就爱死了开发了

http://www.ebay.com/cln/m_m3154/-/167249028014/2015.02.10 http://www.ebay.com/cln/zhsu412/-/167238372018/2015.02.10 http://www.ebay.com/cln/mi.han5/-/167545028015/2015.02.10 http://www.ebay.com/cln/lij5252/-/167389481016/2015.02.10 http://www.ebay.co

使用 Chrome 浏览器插件 Web Scraper 10分钟轻松实现网页数据的爬取

本文标签: WebScraper Chrome浏览器插件 网页数据的爬取 使用Chrome 浏览器插件 Web Scraper 可以轻松实现网页数据的爬取,不写代码,鼠标操作,点哪爬哪,还不用考虑爬虫中的登陆.验证码.异步加载等复杂问题. Web Scraper插件 Web Scraper 官网中的简介: Web Scraper Extension (Free!)Using our extension you can create a plan (sitemap) how a web site

Install Hyper-V on Windows 10

? Enable Hyper-V to create virtual machines on Windows 10.Hyper-V can be enabled in many ways including using the Windows 10 control panel, PowerShell (my favorite) or using the Deployment Imaging Servicing and Management tool (DISM). This documents

10.4 补充范围内丢失的值

select y.yr.coalesce(x.cnt,0) as cntfrom (select min_year-mod(cast(min_year as int),10)+rn as yrfrom (select (select min(extract(year from hreadate))from emp) as min_year,id-1 as rnfrom t10) a) yleft join(select extract(year from hredate) as yr,count

10.6 监控io性能 - 10.7 free命令 - 10.8 ps命令 - 10.9 查看网络状态 - 10.10 linux下抓包

- 10.6 监控io性能 - 10.7 free命令 - 10.8 ps命令 - 10.9 查看网络状态 - 10.10 linux下抓包 - 扩展tcp三次握手四次挥手 http://www.doc88.com/p-9913773324388.html  - tshark几个用法:http://www.aminglinux.com/bbs/thread-995-1-1.html  # 10.6 监控io性能 ![mark](http://oqxf7c508.bkt.clouddn.com/b

Windows 10 UWP程序标题栏设置

原文:Windows 10 UWP程序标题栏设置 在Windows 10程序中,以前只能用于全屏方式的Metro程序现在可以运行在窗口模式下了,并且改了个新名字,叫Windows 通用程序(Universal Windows app),简称UWP程序.新的UWP程序虽然大体上还是和以前的Metro程序差不多的,但还是引入了一点新东西的,本文这里就介绍一下它的标题栏设置的几个特性. 隐藏标题栏: 将应用界面扩展至 Titlebar 区域 CoreApplication.GetCurrentView

How to enable C development in a Windows 10 development environment VM

To enable C development in a Windows 10 development environment VM, follow these steps: Start VS in the Windows 10 development environment VM. Choose "File" -> "New" -> "Project", choose "Open Visual Studio Install

设置UWP程序自启动(Automate launching Windows 10 UWP apps)

原文:设置UWP程序自启动(Automate launching Windows 10 UWP apps) 在开发UWP程序的过程中,有时候需要设置程序的自启.本人实现的步骤如下: 1.在VS中激活Protocol (Package.appxmanifest --> Declarations --> Add Protocol),图示如下: 2.编译并发布项目(Build and Deploy) 发布之后Protocol被激活,在(控制面板 --> 程序 --> 默认程序 -->

10大APP界面框架设计模式详解

随着移动互联网的发展,移动app已经成为了每个互联网公司的标配了,那作为产品经理,我们如何设计出更加符合用户体验的app产品呢?今天和大家分享的就是10中最常见的app界面光甲设计模式,一起来看看吧. 1.标签导航 标签导航是十大界面框架设计里最常用的界面框架设计,也是被业界之内公认的一种普遍使用的页面框架设计.那么这种页面框架设计在作业方面对一个用户来说也是最常见的一种页面框架设计,比如说微博.微信.手机百度.支付宝.淘宝,这些我们所谓的超级APP都是运用的标签导航,无一例外.从这个角度也可以