摘要:博主按:其实老早就想写这个I2C的了,期间有各种各样的事情给耽误了。借着五一放假的时间把这个写出来,供同志们参考。以后会花一些时间深入研究下内核,虽然以前对内核也有所了解,但是还不系统。I2C的硬件结构并不复杂,一个适配器加几个设备而已。Linux下驱动的体系结构看着挺复杂,实际也是比较简单的。在本文中我还是使用实际的例子,结合硬件和软件两个方面来介绍。希望能给初学的同志们一些帮助,另外抛砖引玉,希望高手能给一些指点。话不多说,开整!~本文用到的一些资源: 1. Source Insight软件 2. mini2440原理图。 下载地址http://wenku.baidu.com/view/0
阅读全文
04 2011 档案
摘要:什么是Oops?从语言学的角度说,Oops应该是一个拟声词。当出了点小事故,或者做了比较尴尬的事之后,你可以说"Oops",翻译成中国话就叫做“哎呦”。“哎呦,对不起,对不起,我真不是故意打碎您的杯子的”。看,Oops就是这个意思。在Linux内核开发中的Oops是什么呢?其实,它和上面的解释也没什么本质的差别,只不过说话的主角变成了Linux。当某些比较致命的问题出现时,我们的Linux内核也会抱歉的对我们说:“哎呦(Oops),对不起,我把事情搞砸了”。Linux内核在发生kernel panic时会打印出Oops信息,把目前的寄存器状态、堆栈内容、以及完整的Call
阅读全文
摘要:悄悄地进入Linux内核调试(一) 本文基址:http://blog.csdn.net/cugxueyu/archive/2007/12/21/1957740.aspx※ 调试工作艰苦,是内核级开发区别于用户级开发的一个显著特点。※ 驾驭内核调试的能力,很大程度上取决于经验和对整个操作系统的把握。一、调试前的准备 内核级bug具有行为不可靠,定义不清晰或者说很难再现的诸多特定,为内核级的bug跟踪和调试带来了很大的困难。 ※ 对于一些定义不清楚地bug,问题的关键就是找到bug的源头,很多时候,当你精确地重现一个bug的时候,你就离成功不远了。二、内核中的bug 从隐藏在源代码中的错误到展现在
阅读全文
摘要:结合自己的实践和网上的文章,介绍手工调试内核bug的通用方法。1.步骤1).Collect oops output, System.map, /proc/ksyms, vmlinux, /proc/modules 2).Use ksymoops to interpret oops Instructions is /usr/src/linux/Documentation/oops-tracing.txt Ksymoops(8) man page (http://www.die.net/doc/linux/man/man8/ksymoops.8.html) 2.简单分析1)Ksymoops dis
阅读全文
摘要:Android系统的移植的主要目的是为了能在特定的硬件上运行Android系统。而在移植的过程中,一个重要的方面就是把握关键要点,减少工作量。从工作的角度,首先要熟悉硬件抽象层的接口,其次要集成和复用已有的驱动程序,主要的工作量在硬件抽象层的实现中。为了更好地理解和调试系统,也应该适当地了解上层对硬件抽象层的调用情况。 移植方面主要的工作有两个部分: Linux驱动 Android系统硬件抽象层 Linux中的驱动工作在内核空间,Android系统硬件抽象层工作在用户空间,有了这两个部分的结合,就可以让庞大的Android系统运行在特定的硬件平台上。 Android移植的主要工作如...
阅读全文
摘要:linux低功耗研究也有一段时间了,基本把低功耗的实现方式想清楚了(主要分成机制和策略),这段时间的工作主要在机制上。暂时想实现的主要的机制有:cpu级,设备驱动级,系统平台级。管理颗粒度不断递增,形成三驾马车齐驱的形势。cpu级:主要实现比较容易的在系统处于目标在于频繁发生、更高粒度的电源状态改变,主要的实现方式为idle,包括今天的主要想讲的动态主频。设备驱动级:主要实现对单个设备驱动的管理(suspend,resume等),通过系统监测将闲置的设备,通过从用户态对sys文件目录动态进行单个驱动设备的管理,置于省电模式。系统平台级:目标在于管理较大的、非常见的重大电源状态改变,用于减少产品
阅读全文
摘要:博主按:虽然以前移植过,但是隔得时间太长,当时又没有记录,岁数大了记性不好,这次移植又遇到了一些问题,搞了一天才搞好。以此为鉴,特记之。此文只是备忘,不是详细的移植教程,所以新接触移植的同志们还是参考一下网上的资料,有很多非常详细的。 开发环境: 1. 开发板:杨创utu2440-S-V41 2. 原内核:Linux2.6.24 3. 原文件系统:yaffs2 Busybox1.13 4. 原交叉编译器:编译内核用3.4.1,编译Qtopia用3.3.2 5. 原图形界面:Qtopia PDA Edition Version 6. 移植内核:Linux2.6.31 7. 移植文...
阅读全文