自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(159)
  • 资源 (78)
  • 收藏
  • 关注

转载 how to remove file and commit from history(如何移除 commit 歷史紀錄)

今天在 commit 程式碼到 github 網站,不小心把 Plurk 帳號密碼給 commit 上去,發生這種事情,所以趕快上網查了一下如何移除 commit 歷史紀錄:假設我們的 commit tree 如下:R–A–B–C–D–E–HEAD接下來要移除 B 跟 C 的 commit tree,變成R–A–D’–E–HEAD有兩種方式可以移除 B

2011-11-18 14:51:33 5370

原创 archermind

1、介绍主要工作经历2、v4l2架构、原理3、linux主要同步机制4、udelay和usleep区别5、液晶和触摸驱动实现过程6、如何实现定时休眠500ms7、如何申请大块内存8、android上层工作介绍9、工作偏好(地点、工作职责分配)

2011-05-06 16:42:00 6303

转载 程序员笔试题

1. static有什么用途?(请至少说明两种)     1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。     2) 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。     3) 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用 2. 引用与指针有什么区别?     1) 引用必须被初始化,指针不必。

2011-04-12 17:10:00 61172

转载 LINUX内核信号量设计与实现

LINUX内核信号量设计与实现 taoistf just for fun [email protected] 2008/08/18 一 LINU

2011-04-12 10:27:00 7630 1

转载 ARM-Linux内核启动的分析

  1.介绍..........................................................................................2 2.相关定义介绍.......................................................................

2011-04-12 10:24:00 7657

转载 Linux学习指南与书籍推荐

1:  首先熟悉linux平台     会使用vi/vim工具 熟练使用linux命令 了解meakefile文件的编写 shell文件的编写     相关文文档在“/linux资料/linux基础工具”目录下   推荐阅读该目录下的《GNU MAKE》或者《跟我一起学makefile》     《vi.doc》《LINUX与UNIXSHELL编程指南》《linux常见指令全集》 2: linux bootloader学习     学习bootloader的启动流程以及boo

2011-04-11 20:53:00 7048

转载 Linux内核升级LCD驱动的更换(开发板)

Linux内核升级LCD驱动的更换(开发板) 关键字 内核升级 ,更换驱动 ,LCD 概 述 本文给出了将一个已有的LCD驱动添加进一个新的linux内核中的方法 一. 概述 本文搜集整理了Linux系统编译时的主要配置选项(make config)的详细说明,供Linux裁剪特别是设备驱动和模块功能增删时使用参考。需要注意的是,每个版本linux版本的config各选项意义,命名等都可能有所差异。 1、 修改内核根目录config文件 文本方式打开config文件

2011-04-11 20:45:00 9000 1

转载 Linux入门-开发环境建立

Linux 开发入门 关键字 Linux 开发环境 概 述 本文是linux开发的一个入门文档,介绍了环境的建立,编译等相关步骤。 一. 概述 应其他组的要求,本文给出了一个在windows XP上建立linux开发环境的步骤。可按照本步骤建立linux开发环境,本文不包括Android开发环境搭建。有关错误和遗漏有待后续补充修正 1、 安装虚拟机软件 虚拟机安装软件位于 ftp://server28/共享软件/开发用软件/,一般先安装6.0,再升级到6.5。升级到6.5是为了使

2011-04-11 20:43:00 5979

转载 Linux系统中ARM体系的内存分页认识

RK28平台Linux系统中ARM体系的内存分页认识 关键字 ARM,内存管理,分页,MMU,虚拟地址 概 述 Linux系统下ARM芯片内存分页 的一个认知文档, 阅读本文前认为读者了解MMU 目 录 1. 概述... 5 2. LINUX的内存分页管理... 5 3. ARM的分页模式... 5 4. 内存分页相关的数据结构... 5 5. 重要的系统函数调用... 5 6.物理内存的定制... 5 7.虚拟空间到物理空间的映射... 5 8.几个相关问题的

2011-04-11 20:42:00 10718

转载 SVN操作简要说明

SVN操作简要说明 1. Window下SVN操作... 2 1.1. 安装SVN的WINDOWS客户端软件... 2 1.2. Checkout服务器上文件... 3 1.2.1. 选择checkout选项... 3 1.2.2. 填写checkout参数... 3 1.2.3. Checkout标识... 4 1.3. CheckIn修改后文件... 5 1.3.1. 选择checkIn选项... 5 1.3.2. 填写checkIn参数... 5 2. Linux下SVN操作说明.

2011-04-11 20:41:00 5759

转载 s3c2410 MMU

s3c2410 MMU MMU,全称Memory Manage Unit, 中文名——存储器管理单元。 许多年以前,当人们还在使用DOS或是更古老的操作系统的时候,计算机的内存还非常小,一般都是以K为单位进行计算,相应的,当时的程序规模也不大,所以内存容量虽然小,但还是可以容纳当时的程序。但随着图形界面的兴起还用用户需求的不断增大,应用程序的规模也随之膨胀起来,终于一个难题出现在程序员的面前,那就是应用程序太大以至于内存容纳不下该程序,通常解决的办法是把程序分割成许多称为覆盖块(overlay)的片

2011-04-11 20:40:00 5222

转载 Ubuntu-Vmware系统安装和Smaba共享设置

Ubuntu系统安装 2009-8-1,FZ 1, 安装虚拟机(该过程与一般的软件安装过程一样)。 2, 运行虚拟机后在File->New->Virtual Machine菜单建立一个新的虚拟机。通常选择第二种安装方式,即从镜像文件安装(选择镜像文件所在位置ubuntu-8.10-desktop-i386.iso): 然后直接按下一步就可以完成Ubuntu的安装。 按照上面的步骤安装完之后的Ubuntu系统还存在以下问题: 1, 虚拟机的分辨率需要调整。 2, 虚拟机与主机之间需要来回切换

2011-04-11 20:38:00 7225

转载 RK28-Linux I2C使用说明

RK28-Linux I2C使用说明 目 录 一、 版本号和版本说明... 2 二、 模块功能描述... 2 三、 模块软件设计思路... 2 四、 模块主体流程... 2 五、 系统资源占用情况... 2 六、 目录和文件说明... 2 七、 接口函数说明和注意事项... 2 八、 遗留问题... 2 一、 版本号和版本说明 本文给出了linux下I2C驱动的调用使用方法 二、 模块功能描述 I2C总线的驱动在linux上分多层,程序和数据结构较为复杂,这里不作介绍,只介绍在

2011-04-11 20:34:00 7947

转载 Linux系统config各配置项说明

Linux系统config各配置项说明 关键字 Make munuconfig 项目说明 概 述 搜集整理的有关make config各配置项的详细说明 目 录 1. 概述... 5 1、Processor type and features: 处理器配置 2、General setup: 常规内核选项 3、Code maturity level options: 代码成熟等级 4、Loadable module support: 对模块的支持 5、Memory Techn

2011-04-11 20:31:00 9120

转载 linux2.6内核Makefile详解

linux2.6内核Makefile详解 熟悉内核的Makefile对开发设备驱动、理解内核代码结构都是非常重要的 linux2.6内核Makefile的许多特性和2.4内核差别很大,在内核目录的documention/kbuild/makefiles.txt中有详细的说明。给大家一个中文版的翻译 === 目录         === 1 概述     === 2 用户与作用         === 3 Kbuild文件        --- 3.1 目标定义           --- 3

2011-04-11 19:35:00 6062

转载 Linux 内核启动分析

Linux 内核启动分析 1. 内核启动地址 1.1. 名词解释 ZTEXTADDR 解压代码运行的开始地址。没有物理地址和虚拟地址之分,因为此时MMU处于关闭状态。这个地址不一定时RAM的地址,可以是支持读写寻址的flash等存储中介。 Start address of decompressor. here's no point in talking about virtual or physical addresses here, since the MMU will be off at th

2011-04-11 19:34:00 6595

转载 Linux2.6编译记录

HOST:WinXP VM:6.5 VMOS:Ubuntu 8.04.1TLS 安装VMwareTools后,可以通过共享拷贝文件 拷贝linux-2.6.25.tar.bz2到$HOME $tar xvf linux-2.6.25.tar.bz2 $cd linux-2.6.25 拷贝2.6.25-at91.patch.gz到$HOME/linux-2.6.25 打补丁:AT91SAM9261EK for linux2.6.25 $zcat 2.6.25-at91.patch.gz |

2011-04-11 19:33:00 8757

转载 Linux虚拟盘制作简易方法实践

Linux虚拟盘制作简易方法实践 关键字 Ramdisk VFS 虚拟盘 busybox 概 述 使用busybox制作linux虚拟盘的方法,以及Andoid虚拟盘的整合 一. 概述 1、 安装busybox工具 Busybox有多个版本,一般都可用,此处用的是1.7.3,位于ftp://server28/共享软件/linux下应用软件目录下busybox-1.7.3.tar.gz 拷贝到用户目录后解压缩:tar –zxvf busybox-1.7.3.tar.gz 打开包中

2011-04-11 19:32:00 6124

转载 Linux 移植流水账

Linux 移植流水账 首先,要看芯片的核Linux是否支持,如果不支持,那么工作量极其大,放弃吧。 如果cpu核linux支持的话,移植linux,主要是根据SOC所集成的外围模块,将驱动完成。 下面以一款ARM926ejs的芯片为例,在linux 26.22.5上的移植 。 假设芯片叫 MYCHIP 第一步 环境的建立 : 1 在config文件中添加你的芯片支持   a)  mkdir arch/arm/mach_mychip, 添加Kconfig和Makefile

2011-04-11 19:31:00 7799

转载 start_kernel()函数

Start_kernel()中调用了一系列初始化函数,以完成kernel本身的设置。这些动作有的是公共的,有的则是需要配置的才会执行的。 在start_kernel()函数中, 输出Linux版本信息(printk(linux_banner)) 设置与体系结构相关的环境(setup_arch()) 页表结构初始化(paging_init()) 使用"arch/alpha/kernel/entry.S"中的入口点设置系统自陷入口(trap_init()) 使用alpha_mv结构和en

2011-04-11 19:28:00 7075

转载 Linux 嵌入式启动以及优化

Linux 嵌入式启动以及优化 以前写了一篇Linux PC启动过程的日记,最近项目中,想优化一下启动过程,减少启动时间.因此研究了我们项目的启动全过程. 第一步: BootLoader -- U boot   1 在cpu/arm926ejs/start.s中    a) b reset ; //jump to reset    b) set cpsr ;svc mode ,disable I,F interrupt    c)调用lowlevel_init  (在board/xxxx/lo

2011-04-11 19:27:00 1168

转载 S3C2410 vivi阅读笔记

S3C2410 vivi阅读笔记 建议读一读《嵌入式系统Boot Loader技术内幕》(詹荣开著),google一下就会找到一片。什么是Bootloader就不再这里废话了,看看上面的文章就明了了。 Bootloader有很多种,如本文将要阅读的vivi,除此之外还有uboot,redboot,lilo等等。Vivi 是韩国mizi公司专门为三星s3c2410芯片设计的Bootloader。 先来看看vivi的源码树: vivi-+-arch-+-s3c2410 |-Documenta

2011-04-11 18:31:00 809

转载 bootloader技术内幕

本文详细地介绍了基于嵌入式系统中的 OS 启动加载程序 ―― Boot Loader 的概念、软 件设计的主要任务以及结构框架等内容。 一、引言 在专用的嵌入式板子运行 GNU/Linux 系统已经变得越来越流行。一个嵌入式 Linux 系统 从软件的角度看通常可以分为四个层次: 1. 引导加载程序。包括固化在固件(firmware)中的 boot 代码(可选),和 Boot Loader 两大部分。 2. Linux 内核。特定于嵌入式板子的定制内核以及内核的启动参数。 3. 文件系

2011-04-11 17:39:00 673

转载 ARM linux启动的流程

ARM linux启动的流程 首先,porting linux的时候要规划内存影像,如小弟的系统有64m SDRAM, 地址从0x 0800 0000 -0x0bff ffff,32m flash,地址从0x0c00 0000-0x0dff ffff. 规划如下:bootloader, linux kernel, rootdisk放在flash里。 具体从 0x0c00 0000开始的第一个1M放bootloader, 0x0c10 0000开始的2m放linux kernel

2011-04-11 17:37:00 476

转载 Linux中find常见用法示例

Linux中find常见用法示例 ·find   path   -option   [   -print ]   [ -exec   -ok   command ]   {} /; #-print 将查找到的文件输出到标准输出 #-exec   command   {} /;      —–将查到的文件执行command操作,{} 和 /;之间有空格 #-ok 和-exec相同,只不过在操作前要询用户 =============================================

2011-04-11 17:35:00 425

转载 Arm linux 内核启动流程

Arm linux 内核启动流程 还是从编译链接生成vmlinux的过程来看吧,由一大堆.o文件链接而成,第一个就是 kernel/arch/arm/kernel/head-armv.o ,而且我们还看到了 lds链接文件kernel/arch/arm/vmlinux.lds,先把它分析一下 ENTRY(stext) //入口点是stext 应该就在head-armv.s中了 SECTIONS { . = 0xC0008000;  //基址,是内核开始的虚拟地址

2011-04-11 17:31:00 778

转载 busybox的init

busybox的init 除了基本的命令之外,BusyBox还支持init功能,如同其它的init一样,busybox的init也是完成系统的初始化工作,关机前的工作等等,我们知道在Linux的内核被载入之后,机器就把控制权转交给内核,linux的内核启动之后,做了一些工作,然后找到根文件系统里面的init程序,并执行它,BusyBox的init进程会依次进行以下工作:(参考> p201) 1.       为init设置信号处理过程 2.       初始化控制台 3.       剖析/etc/

2011-04-11 17:12:00 670

转载 Vi命令

Vi命令 文本编辑器VI Vi 是Unix世界里极为普遍的全屏幕文本编辑器,VIM是它的改进版本Vi IMproved的简称。几乎可以说任何一台Unix机器都会提供这套软体。Linux当然也有,它的 vi 其实是 elvis(版权问题),不过它们都差不多。熟悉 DOS 下的文书处理後,也许会感到 vi 并不好用;Unix 上也已经发展出许多更新、更好用的文书编辑器,但是并不一定每一台Unix机器上都会安装这些额外的软体。所以,学习 vi 的基本操作还是有好处,让你在各个不同的机器上得心应手。 Vi

2011-04-11 17:12:00 394

转载 start_kernel分析

start_kernel分析 如果以为到了c代码可以松一口气的话,就大错特措了,linux的c也不比汇编好懂多少,相反到掩盖了汇编的一些和机器相关的部分,有时候更难懂。其实作为编写操作系统的c代码,只不过是汇编的另一种写法,和机器代码的联系是很紧密的。 start_kernel在 /linux/init/main.c中定义: asmlinkage void __init start_kernel(void)  {  char * command_line;  unsigned long memp

2011-04-11 17:10:00 570

转载 Linux下ARM汇编教程

Linux下ARM汇编教程 第一部分 Linux下ARM汇编语法尽管在Linux下使用C或C++编写程序很方便,但汇编源程序用于系统最基本的初始化,如初始化堆栈指针、设置页表、操作ARM的协处理器等。初始化完成后就可以跳转到C代码执行。需要注意的是,GNU的汇编器遵循AT&T的汇编语法,可以从GNU的站点(www.gnu.org)上下载有关规范。 一. Linux汇编行结构 任何汇编行都是如下结构: [:] [} @ comment [:] [} @ 注释 Linux ARM

2011-04-11 17:10:00 504

转载 linux内核启动流程

linux内核启动流程 Linux内核启动流程 arch/arm/kernel/head-armv.S 该文件是内核最先执行的一个文件,包括内核入口ENTRY(stext)到start_kernel间的初始化代码,主要作用是检查CPU ID, Architecture Type,初始化BSS等操作,并跳到start_kernel函数。在执行前,处理器应满足以下状态: r0 - should be 0 r1 - unique architecture number MMU

2011-04-11 17:09:00 444

转载 Linux 2.6 内核的嵌入式系统应用

Linux 2.6 内核的嵌入式系统应用   摘 要:在分析Linux2.6内核新特性的基础上,在S3C2410开发板上移植了2.6内核和新的文件系统,并成功地对H.264编解码多媒体系统提供了支持。 关键词:Linux 内核 嵌入式系统 S3C2410

2011-04-11 17:08:00 528

转载 Makefile 常用函数表

Makefile  常用函数表 一、字符串处理函数 1.$(subst FROM,TO,TEXT) 函数名称:字符串替换函数—subst。 函数功能:把字串“TEXT”中的“FROM”字符替换为“TO”。 返回值:替换后的新字符串。 2.$(patsubst PATTERN,REPLACEMENT,TEXT) 函数名称:模式替换函数—patsubst。 函数功能:搜索“TEXT”中以空格分开的单词,将否符合模式“TATTERN”替换为“REPLACEMENT”。

2011-04-11 17:08:00 382

转载 关于Linux Grep命令使用的详细介绍

关于Linux Grep命令使用的详细介绍 1. grep简介 grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。Unix的grep家族包括grep、 egrep和fgrep。egrep和fgrep的命令只跟grep有很小不同。egrep是grep的扩展,支持更多的re元字符, fgrep就是 fixed grep

2011-04-11 17:08:00 501

转载 Linux中阅读源代码工具Vim

“工欲善其事,必先利其器” -----《论语》 Linux中阅读源代码工具Vim xbw 2009-03-19 很多Linux的软件开发实际不使用X windows下情况下运行,于是很多图形化的代码阅读软件都不能用。在这一情况下,可用的编辑器主要是Vim, Emacs和gEdit。 这边推荐用Vim. Google上学习资料有海量,为了方便大家学习,总结下这方面资料, 很值得大家看一看哦。 1、 手把手教你把Vim改装成一个IDE编程环境 这篇文章介绍了Vim的一些扩展功能,通过有机的组

2011-04-11 17:06:00 658

转载 Linux操作系统内核启动参数详细解析

Linux操作系统内核启动参数详细解析 Linux内核在启动的时候,能接收某些命令行选项或启动时参数。当内核不能识别某些硬件进而不能设置硬件参数或者为了避免内核更改某些参数的值,可以通过这种方式手动将这些参数传递给内核。 如果不使用启动管理器,比如直接从BIOS或者把内核文件用“cp zImage /dev/fd0”等方法直接从设备启动,就不能给内核传递参数或选项--这也许是我们使用引导管理器比如LILO的好处之一吧。 Linux的内核参数是以空格分开的一个字符串列表,通常具有如下形式:

2011-04-11 17:05:00 434

转载 对.lds连接脚本文件的分析

对.lds连接脚本文件的分析 对于.lds文件,它定义了整个程序编译之后的连接过程,决定了一个可执行程序的各个段的存储位置。虽然现在我还没怎么用它,但感觉还是挺重要的,有必要了解一下。 先看一下GNU官方网站上对.lds文件形式的完整描述: SECTIONS { ... secname start BLOCK(align) (NOLOAD) : AT ( ldadr ) { contents } >region :phdr =fill ... } secname和contents是必须的,

2011-04-11 17:05:00 441

转载 linux系统2.6内核编译全过程

linux系统2.6内核编译全过程! 第一项 Code maturity level options (代码成熟度选项) 按enter进入后选项如下 Prompt for development and/or incomplete code/drivers 默认情况下是选择的,这将会在设置界面中显示还在开发或者还没有完成的代码与驱动.你应该选择它,因为有许多设备可能必需选择这个选项才能进行配置,实际上它是安全的。 Select only drivers expected to com

2011-04-11 17:05:00 811

转载 Linux2.6内核的新特性

序 做一件事情,首先要知道自己在干什么,而不是盲目得升级内核,现在升级内核有点泛滥,sigh 首先让我们先了解一下2.6内核的新特性 一、01.模块子系统(Module Subsystem)、统一设备模型(Unified Device Model)和 PnP 支持 模块子系统发生了重大变化。 02.稳定性有所提高 为了彻底避免内核加载或者导出正在被使用的内核模块,或者至少为了减少加载或者卸载模块的同时使用该模块的可能性 (这有时会导致系统崩溃),内核加载和导出内核模

2011-04-11 17:04:00 665

转载 开启Samba服务

OS:Ubuntu 8.04.1 LTS 1、 安装Samba: #apt-get install samba 2、 创建要共享的文件夹: #mkdir /root/share 3、 备份并编辑smb.conf #cp /etc/samba/smb.conf /etc/samba/smb.conf.bak #vim /etc/samba/smb.conf 修改[global]的内容如下: 修改workgroup: Workgroup = SAMBA 增加对中文的支持: displa

2011-04-11 17:03:00 1066

認識Android 應用程式(Application)

認識Android 應用程式(Application)

2022-05-01

深刻解析 Android 的 AIDL 介面

深刻解析 Android 的 AIDL 介面

2022-05-01

ubuntu下建立Android的开发环境-update

ubuntu下建立Android的开发环境-update

2022-05-01

Tom_Kao_2008_APRI_UMLChina_OK

Tom_Kao_2008_APRI_UMLChina_OK

2022-05-01

the+Android+and+its+Impact+of+Mobile+Computings

the+Android+and+its+Impact+of+Mobile+Computings

2022-05-01

Talking about Android process

Talking about Android process

2022-05-01

Talking about Android Message Queue

Talking about Android Message Queue

2022-05-01

Simple Guide for Porting Android Kernel

Simple Guide for Porting Android Kernel

2022-05-01

RK28Linux-I2C

RK28Linux-I2C

2022-05-01

android qemu

android qemu

2022-05-01

android pvplayer

android pvplayer

2022-05-01

porting android

porting android

2022-05-01

Linux development 入门

Linux development 入门

2022-05-01

launcher apk

launcher apk

2022-05-01

Discovering Template Method Pattern in Google Android framework

Discovering Template Method Pattern in Google Android framework

2022-05-01

android strategy

android strategy

2022-05-01

build android doc

build android doc

2022-05-01

Binder Frequently Asked Questions

Binder Frequently Asked Questions

2022-05-01

Android的源代码结构

Android的源代码结构

2022-05-01

Android的多媒体框架OpenCore(PacketVideo)

Android的多媒体框架OpenCore(PacketVideo)

2022-05-01

Android底层库libutils介绍

Android底层库libutils介绍

2022-05-01

Android应用程序的Life Cycle

Android应用程序的Life Cycle

2022-05-01

Android应用开发环境搭建

Android应用开发环境搭建

2022-05-01

Android中各种JAVA包的功能描述

Android中各种JAVA包的功能描述

2022-05-01

AndroidManifest.xml+G+÷

AndroidManifest.xml+G+÷

2022-05-01

Android_Dalvik_VM_Internals_Google__

Android_Dalvik_VM_Internals_Google__

2022-05-01

Android 淺探(二):系統架構

Android 淺探(二):系統架構

2022-05-01

Android 文件系统移植总结

Android 文件系统移植总结

2022-05-01

Android 应用初始化及窗体事件的分发

Android 应用初始化及窗体事件的分发

2022-05-01

Android Surface

Android Surface

2022-05-01

Android RIL introduction

Android RIL introduction

2022-05-01

Android Power Management

Android Power Management

2022-05-01

Android Porting On Real Target

Android Porting On Real Target

2022-05-01

Android on OMAP

Android on OMAP

2022-05-01

Android Message Queue

Android Message Queue

2022-05-01

Android MediaPlayer

Android MediaPlayer

2022-05-01

Android Media Scanner Process

Android Media Scanner Process

2022-05-01

Android Initialization Process

Android Initialization Process

2022-05-01

Android IBinder

Android IBinder

2022-05-01

Android Cross Compiler

Android Cross Compiler

2022-05-01

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除