Linux
文章平均质量分 68
yili_xie
曾梦想仗剑走天涯
展开
-
Note for linux dirver study
Linux kernel building system :00-INDEX - this file: info on the kernel build processkbuild.txt - developer information on kbuildkconfig.txt - usage help for make *configkconf原创 2010-01-11 22:05:00 · 1747 阅读 · 0 评论 -
note for tty
暂时先这么理解linux下的TTY(终端) :TTY是linux下的一种字符设备,用于输入和输出,分为3种:1、串口 对应/dev/ttyS 通过打开这个设备来与串口进行通信2、pty 对应于/dev/pty 这要用在远程连接的时候,实际上是连接在虚拟设备上3、console 实际上是我们的屏幕,对应于/dev/ttyN原创 2010-01-07 11:01:00 · 1290 阅读 · 1 评论 -
Arm处理器模式与寄存器分配
ARM处理器状态 ARM微处理器的工作状态一般有两种,并可在两种状态之间切换: 第一种为ARM状态,此时处理器执行32位的字对齐的ARM指令; 第二种为Thumb状态,此时处理器执行16位的、半字对齐的Thumb指令。 在程序的执行过程中,微处理器可以随时在两种工作状态之间切换,并且,处理器工作状态的转变并不影响处理器的工作模式和相应寄存器中的内容。但ARM微处理器在开始执行代码时转载 2009-12-29 09:46:00 · 5387 阅读 · 0 评论 -
第一个驱动的小过程 [LCD]
作者:YiLi Xie([email protected])日期:2010/04/07欢迎转载,请注明出处 首先要感谢程大胖给咱这次机会入门驱动,领导交待的任务嘛,有压力才有动力~~再次感谢公司可爱的同事们,对咱初始化过程的一堆幼稚问题总是耐心的给予解答,谢谢谢谢啦~~ 在此之前总是对驱动报着一种畏惧之心,不说别的,就是因为那电路图看不懂。。。在加上上原创 2010-03-11 10:16:00 · 4789 阅读 · 5 评论 -
Cygwin的一点理解
这几天编译QC的source碰到很多问题,因为RVCT2.2是windows版本,所以不得不在windows机器上进行编译,使用cygwind的过程碰到了一些问题,好记性不如烂笔头,总结一下方便以后查阅~~ Cygwin提供了在windows上一个模拟的Linux环境,安装好以后打开Cygwin.bat,发现其实Cygwin是在dos上运行了一个bash: @ec原创 2009-12-23 13:44:00 · 5442 阅读 · 2 评论 -
The ELF Object File Format by Dissection
The Executable and Linking Format has been a popular topic lately, as people ask why the kernel configuration script asks whether or not to configure loading ELF executables. Since ELF will eventually转载 2010-04-17 17:25:00 · 1580 阅读 · 0 评论 -
Qc FB驱动 以及 LCD调试过程
作者:YiLi Xie([email protected])日期:2010/04/07欢迎转载,请注明出处 首先说说QC的片子,QC这块片子使用MDP3.0作为图像处理器,下面支持MDDI,LCDC,以及EBI3种显示接口,MDP3.0不支持overlay,因为不管是camera或者视频播放都必须使用surfaceflinger来进行处理。3种接口这里我们使用到的原创 2010-04-07 17:46:00 · 9167 阅读 · 20 评论 -
GNU-ld链接脚本浅析
<br />0. Contents<br /><br />1. 概论<br />2. 基本概念<br />3. 脚本格式<br />4. 简单例子<br />5. 简单脚本命令<br />6. 对符号的赋值<br />7. SECTIONS命令<br />8. MEMORY命令<br />9. PHDRS命令<br />10. VERSION命令<br />11. 脚本内的表达式<br />12. 暗含的连接脚本<br /><br /><br />1. 概论<br />每一个链接过程都由链接脚本(lin转载 2010-06-24 16:47:00 · 21412 阅读 · 0 评论 -
QC AMSS BUILD SYSTEM
<br /> 总算把AMSS这套Makefile整完了,比起Android来QC这套Makefile还是比较烂的,架构不清晰,很多重复的规则,一个模块要不要加入需要判断三次,模块的路径上判断一次,模块的*.min要判断一次,模块的OBJ文件上还要判断一次,而且基本target都加了强制目标作为依赖,导致很多目标每次编译时都被强制更新,间接导致了每次编译的时间都特别的长。<br /> AMSS把QCSBL/OEMSBL/CFG_DATA/PARTITION/AMSS/FLASH_TOOL用MAK原创 2010-06-08 20:08:00 · 9769 阅读 · 15 评论 -
Arm linux kernel 启动之start_kernel (一)
了解完kernel启动以前的汇编之后我们来看看正式的c语言启动代码,也就是我们的start_kernel函数了。start_kernel相当大,里面每一个调用到的函数都足够我们伤脑筋了,我这里只是浅尝辄止的描述一下函数的功能,从而对kernel启动的过程有一个比较直观的了解。很多函数真正理解需要对linux相关体系有很深的了解,暂时没有时间深入,留待以后了。 说实话启动的代码看到现在唯一的感觉就是kernel的全局变量实在太多了,要了解一个过程跟踪一个变量的值的变化相当痛苦啊,不过耐原创 2010-07-20 19:53:00 · 18365 阅读 · 2 评论 -
Android arm linux kernel启动流程(二)
<br /> 写这个总结的时候咱的心情是沉重的,因为还有好多东西没弄明白。。。感叹自己的知识还是浅薄得很,前途钱途漫漫阿~~不过基本脉络是清楚的,具体的细节只能留在以后有时间再啃了。这里的第二部分启动流程指的是解压后kernel开始执行的一部分代码,这部分代码和ARM体系结构是紧密联系在一起的,所以最好是将ARM ARCHITECTURE REFERENCE MANUL仔细读读,尤其里面关于控制寄存器啊,MMU方面的内容~ <br /> 前面说过解压以后,代码会跳到解压完成以后的vmlin原创 2010-07-14 18:24:00 · 22777 阅读 · 5 评论 -
LCD 细节调整的一点体会
这次调整背光和初始化加速真是让咱自尊心受挫啊,不过意气激昂的时候浇盆冷水也算是件好事,也许是经验不足的问题,但更多的还是自己看问题的眼光比较狭窄啊。 首先说背光调整的问题,那真是九曲回肠,一曲悲歌啊。任何细节都是有原因的,出现问题的时候没有想原因,或者肤浅得自认为的原因,然后去瞎调整,结果总是不对,然后就这样陷入了while(1)循环。很明显白屏是因为suspend和上层的背原创 2010-05-13 09:51:00 · 7070 阅读 · 0 评论 -
Splash screen in USBloader
Qc片子的启动是比较九曲十八湾的,从QCPBL,到QCSBL,再到OEMSBL,最后到启动android的USBloader。在这里我的版本是Android1.6 donut,Google在后面的版本中加入了LK,不过对于在bootloader中加入Splashscreen道理都是一样的。开始没有在OEMbootloader添加主要是因为OEMbootloader不方便打log,不好调原创 2010-05-14 16:35:00 · 9104 阅读 · 7 评论 -
arm-eabi-gcc: error
同事编kernel的时候总是会报下面的错误~~最后发现是交叉编译工具的权限问题,chmod -R 777 * 就可以了arm-eabi-gcc: error trying to exec cc1: execvp: No such file or directory 总结一下:1、确认CROSS-COMPILE的目录在PATH里面2、确认cc1是存在的3、确认交叉编译工具原创 2009-12-03 16:03:00 · 4832 阅读 · 0 评论 -
source性能分析工具Oprofile详细解析
Oprofile Introduction 内容概要 * oprofile 介绍 * .oprofile 安装及 Linux 内核编译 * oprofile 使用 * oprofile 实例演示及性能分析 * gprof 介绍 * Kprof 分析 * gcov 简介 一、 oprofile 介绍 oprofile 是 Linux 平台原创 2009-12-02 17:17:00 · 15588 阅读 · 3 评论 -
关于内存泄露追踪函数mtrace
关于mtrace调查内存泄露的过程,mtrace是glibc的一个函数,他的机制实际上是把内存泄露信息打印到环境变量到MALLOC_TRACE设 置的文件里,然后使用mtrace命令来查看log信息,因为mtrace调用会增加系统开销,所以一般放在debug宏定义中:比如说下面的函数:#include#include#ifdef D原创 2009-11-12 16:58:00 · 1931 阅读 · 0 评论 -
关于静态链接库和动态链接库
在通常情况下,对函数库的链接是在编译的时候完成的,所有的objcet file和相关的libraty被链接成一个可执行文件,程序运行时已经与库没有关系,因为objcet file中所有对库的调用,已经使用库中的相应代码代替,这叫静态链接,libray叫做静态链接库,在linux中是类似于*.a的文件。 其实我们也可以在程序运行时(run time)对原创 2009-11-12 16:57:00 · 1039 阅读 · 0 评论 -
command持续更新中。。。。
1、grep -nr string menugrep是在输入流里面寻找指定的字符串的命令,-n显示keyword在文件中的行数,-r为递归子目录,string为要寻找的keyword,menu为要寻找的目录,比如说当前目录 ./比如:grep -nr helloword ./比如: ps -rf |grep bootp2、在ubuntu原创 2009-11-12 17:26:00 · 707 阅读 · 0 评论 -
Ubuntu的小美化
本帖总结了一下桌面美化的设置。包括GRUB背景图片,USPLASH,GDM登录界面,图标主题等等。如果你经常捣鼓这些东西,甚至还从系统的配置文件层次上捣鼓,那就不要看了。本菜菜还没上升到那样的高度。所以本篇只适合那些不想碰命令行以及显得冗长的配置文件的朋友,所以我的目标定位在连鼠标都不大会用的层次上,也可以说是刚转载 2009-11-12 17:00:00 · 1214 阅读 · 0 评论 -
Linux 内存关系
一提到内存管理,我们头脑中闪出的两个概念,就是虚拟内存,与物理内存。这两个概念主要来自于linux内核的支持。Linux在内存管理上份为两级,一级是线性区,类似于00c73000-00c88000,对应于虚拟内存,它实际上不占用实际物理内存;一级是具体的物理页面,它对应我们机器上的物理内存。这 里要提到一个很重要的概念,内存的延迟分配。Linu转载 2009-11-12 16:56:00 · 2053 阅读 · 1 评论 -
linux驱动概述和常用串行总线
基础知识:1、没有操作系统的时候,工程师可以根据硬件设备的特点来自行定义接口,有操作系统的情况下,设备驱动的架构由操作系统定义,驱动工程师必须按照相应的架构来设计驱动。2、一个无限循环中包含了对设备驱动的检测以及设备的轮询是无操作系统设备驱动的典型方式。3、在操作系统中,linx驱动扮演着连接linux内核和硬件的角色,而操原创 2009-11-12 17:56:00 · 1673 阅读 · 0 评论 -
安装tftp和nfs
1.正确安装好tftp和nfs。2.tftp的安装: (1)首先在Ubuntu下安装server与client 打开Ubuntu的终端,输入以下命令: sudo apt-get install tftpd-hpa tftp-hpa (2)删除standalone的启动方式 update-r原创 2009-11-12 17:54:00 · 786 阅读 · 0 评论 -
Posix线程基础
POSIX 线程基础 在传统的UNIX进程模型中,每个进程只有一个控制线程,或者也可以说一个进程只有一个线程,实质上在这个地方进程就等同于线程。在POSIX线程中,程序运行时它也是由单进程中的单个控制线程启动的,在创建多个线程之前,程序行为和传统的进程没有什么区别。一、线程的创建和消亡1、线程创建 :#includeint原创 2009-11-12 17:30:00 · 1033 阅读 · 0 评论 -
原理图和时序分析
1、硬件原理图分析的主要内容是通过阅读电路板的原理图获得各种存储器和外设所使用的硬件资源,包括存储器和外设控制芯片所使用的片选,中断和DMA资源,通过分析片选得出芯片所使用的内存,I/O基地址,通过分析中断和DMA信号来获得芯片所使用的中断号和DMA通道。2、原理图的分析方法是以CPU为中心向存储器和外设辐射。首先阅读CPU部分,获知CPU的那些片选、中断和集成的外设控制器被使用原创 2009-11-12 17:57:00 · 2381 阅读 · 1 评论 -
Ubuntu启动时候黑屏的解决
单位的电脑是集成显卡的,以前没有碰到这样的情况,装好ubuntu后,装ati的驱动,可一重启就整一个黑屏,系统已经启动好了,可就是看不到x界面。。。 在网上查了一堆攻略,失败了无数次后总算成功了,现在把偶的血泪过程总结下: 1、安装完ubuntu后,直接安装:系统--》系统管理--》硬件驱动,选择原创 2009-11-12 16:59:00 · 8786 阅读 · 0 评论 -
进程与线程的区别
进程(process)和文件(files)是UNIX/Linux操作系统两个最基本的抽象。进程是处于执行期的程序和它所包含的资源的总和,也就是说一个进程就是处于执行期的程序。一个线程(thread)就是运行在一个进程上下文中的一个逻辑流,不难看出,线程是进程中最基本的活动对象。在转载 2009-11-12 17:30:00 · 1460 阅读 · 0 评论 -
prelink
预处理:把#开头的代码进行处理,包括#define #include等编译:将code编译成二进制代码链接:将二进制代码链接成可执行的程序 Prelink是预链接的意思,用来提高程序的效率,它预先将动态链接的信息写入二进制代码,这样就不需要在动态链接库载入以后还需要花大量的时间去解析,寻找函数 ; 静态链接库只是把一系列的.o打了一个包而已,它不像动态链接库,动态链原创 2009-11-30 17:28:00 · 1776 阅读 · 0 评论 -
Writing Linux LCD drivers
Writing Linux LCD drivers Abstract 1 LCD Module/Driver/Controller 2 Linux Frame Buffer Driver 2.1 Why Frame Buffer? 2.2 What is Frame Buffer Devices? 2.3 How to Write Frame Buffer Device D转载 2010-01-27 18:09:00 · 5803 阅读 · 1 评论 -
Makefile Debugging: Tracing Macro Values
In the first of these articles I showed a technique for printing thevalue of any Makefile macro by defining a special rule called print-%.Now Im going to show how to trace where a macro is used转载 2009-11-20 14:24:00 · 1334 阅读 · 0 评论 -
Android build System
[First written by Steve Guo, please keep the mark if forwarding.]Device/docs/design/build-system.htmlis a good start point to understand Android build system. In thistopic, I will转载 2009-11-18 20:07:00 · 2861 阅读 · 0 评论 -
Android Build System
Android Build SystemStatus: Draft (as of May 18, 2006) Contents<!-- this div expands out to a list of contents based on the H2 and H3 headings.Believe it! -->Objectiv转载 2009-11-18 20:06:00 · 3184 阅读 · 2 评论 -
Linux Platform Device and Driver
作者 : YiLi Xie [email protected]日期 : 2010-1-13欢迎转载,请注明出处 从Linux 2.6起引入了一套新的驱动管理和注册机制:Platform_device和Platform_driver。Linux中大部分的设备驱动,都可以使用这套机制, 设备用Platform_dev转载 2010-01-13 21:28:00 · 15046 阅读 · 2 评论 -
Linux driver model ----- platform
作者 : YiLi Xie [email protected]日期 : 2010-1-25欢迎转载,请注明出处 Platform Device and Drivers从我们可以了解Platform bus上面的驱动模型接口:platform_device,platform_driver。和PCI和USB这些大结构的总线不同,虚拟总线Platform bus使用最小翻译 2010-01-15 14:41:00 · 13725 阅读 · 6 评论 -
linux内核简析
1、linux内核主要由进程调度(SCHED),内存管理(MM),虚拟文件系统(VFS),网络接口(NET)和进程间通信(IPC)构成。进程调度控制系统中多个进程对CPU的访问,使得多个进程在CPU中微观串行,宏观并行。内存管理主要控制多个进程安全地共享主内存区域,当CPU提供MMU单元的时候,linux内存原创 2009-11-12 17:58:00 · 1753 阅读 · 2 评论 -
ubuntu关于aptitude和apt-get
起初GNU/Linux系统中只有.tar.gz。用户必须自己编译他们想使用的每一个程序。在Debian出现之後,人们认为有必要在系统中添加一种机 制用来管理安装在计算机上的软件包。人们将这套系统称为dpkg。至此着名的‘package’首次在GNU/Linux上出现。不久之後红帽子也开始着 手建立自己的包管理系统 ‘rpm’。GNU/Linux的创造者转载 2009-11-12 16:58:00 · 21236 阅读 · 0 评论