- 博客(65)
- 资源 (78)
- 收藏
- 关注
转载 程序员笔试题
1. static有什么用途?(请至少说明两种) 1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。 2) 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。 3) 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用 2. 引用与指针有什么区别? 1) 引用必须被初始化,指针不必。
2011-04-12 17:10:00 66745
转载 LINUX内核信号量设计与实现
LINUX内核信号量设计与实现 taoistf just for fun taoistf@gmail.com 2008/08/18 一 LINU
2011-04-12 10:27:00 7662 1
转载 ARM-Linux内核启动的分析
1.介绍..........................................................................................2 2.相关定义介绍.......................................................................
2011-04-12 10:24:00 7682
转载 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 7064
转载 Linux内核升级LCD驱动的更换(开发板)
Linux内核升级LCD驱动的更换(开发板) 关键字 内核升级 ,更换驱动 ,LCD 概 述 本文给出了将一个已有的LCD驱动添加进一个新的linux内核中的方法 一. 概述 本文搜集整理了Linux系统编译时的主要配置选项(make config)的详细说明,供Linux裁剪特别是设备驱动和模块功能增删时使用参考。需要注意的是,每个版本linux版本的config各选项意义,命名等都可能有所差异。 1、 修改内核根目录config文件 文本方式打开config文件
2011-04-11 20:45:00 9092 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 5995
转载 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 10752
转载 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 5778
转载 s3c2410 MMU
s3c2410 MMU MMU,全称Memory Manage Unit, 中文名——存储器管理单元。 许多年以前,当人们还在使用DOS或是更古老的操作系统的时候,计算机的内存还非常小,一般都是以K为单位进行计算,相应的,当时的程序规模也不大,所以内存容量虽然小,但还是可以容纳当时的程序。但随着图形界面的兴起还用用户需求的不断增大,应用程序的规模也随之膨胀起来,终于一个难题出现在程序员的面前,那就是应用程序太大以至于内存容纳不下该程序,通常解决的办法是把程序分割成许多称为覆盖块(overlay)的片
2011-04-11 20:40:00 5240
转载 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 7243
转载 RK28-Linux I2C使用说明
RK28-Linux I2C使用说明 目 录 一、 版本号和版本说明... 2 二、 模块功能描述... 2 三、 模块软件设计思路... 2 四、 模块主体流程... 2 五、 系统资源占用情况... 2 六、 目录和文件说明... 2 七、 接口函数说明和注意事项... 2 八、 遗留问题... 2 一、 版本号和版本说明 本文给出了linux下I2C驱动的调用使用方法 二、 模块功能描述 I2C总线的驱动在linux上分多层,程序和数据结构较为复杂,这里不作介绍,只介绍在
2011-04-11 20:34:00 7973
转载 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 9238
转载 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 6085
转载 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 6625
转载 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 8799
转载 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 6146
转载 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 7845
转载 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 7105
转载 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 1183
转载 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 863
转载 bootloader技术内幕
本文详细地介绍了基于嵌入式系统中的 OS 启动加载程序 ―― Boot Loader 的概念、软 件设计的主要任务以及结构框架等内容。 一、引言 在专用的嵌入式板子运行 GNU/Linux 系统已经变得越来越流行。一个嵌入式 Linux 系统 从软件的角度看通常可以分为四个层次: 1. 引导加载程序。包括固化在固件(firmware)中的 boot 代码(可选),和 Boot Loader 两大部分。 2. Linux 内核。特定于嵌入式板子的定制内核以及内核的启动参数。 3. 文件系
2011-04-11 17:39:00 694
转载 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 502
转载 Linux中find常见用法示例
Linux中find常见用法示例 ·find path -option [ -print ] [ -exec -ok command ] {} /; #-print 将查找到的文件输出到标准输出 #-exec command {} /; —–将查到的文件执行command操作,{} 和 /;之间有空格 #-ok 和-exec相同,只不过在操作前要询用户 =============================================
2011-04-11 17:35:00 435
转载 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 798
转载 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 702
转载 Vi命令
Vi命令 文本编辑器VI Vi 是Unix世界里极为普遍的全屏幕文本编辑器,VIM是它的改进版本Vi IMproved的简称。几乎可以说任何一台Unix机器都会提供这套软体。Linux当然也有,它的 vi 其实是 elvis(版权问题),不过它们都差不多。熟悉 DOS 下的文书处理後,也许会感到 vi 并不好用;Unix 上也已经发展出许多更新、更好用的文书编辑器,但是并不一定每一台Unix机器上都会安装这些额外的软体。所以,学习 vi 的基本操作还是有好处,让你在各个不同的机器上得心应手。 Vi
2011-04-11 17:12:00 406
转载 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 580
转载 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 519
转载 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 460
转载 Linux 2.6 内核的嵌入式系统应用
Linux 2.6 内核的嵌入式系统应用 摘 要:在分析Linux2.6内核新特性的基础上,在S3C2410开发板上移植了2.6内核和新的文件系统,并成功地对H.264编解码多媒体系统提供了支持。 关键词:Linux 内核 嵌入式系统 S3C2410
2011-04-11 17:08:00 541
转载 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 392
转载 关于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 527
转载 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 677
转载 Linux操作系统内核启动参数详细解析
Linux操作系统内核启动参数详细解析 Linux内核在启动的时候,能接收某些命令行选项或启动时参数。当内核不能识别某些硬件进而不能设置硬件参数或者为了避免内核更改某些参数的值,可以通过这种方式手动将这些参数传递给内核。 如果不使用启动管理器,比如直接从BIOS或者把内核文件用“cp zImage /dev/fd0”等方法直接从设备启动,就不能给内核传递参数或选项--这也许是我们使用引导管理器比如LILO的好处之一吧。 Linux的内核参数是以空格分开的一个字符串列表,通常具有如下形式:
2011-04-11 17:05:00 450
转载 对.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 469
转载 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 885
转载 Linux2.6内核的新特性
序 做一件事情,首先要知道自己在干什么,而不是盲目得升级内核,现在升级内核有点泛滥,sigh 首先让我们先了解一下2.6内核的新特性 一、01.模块子系统(Module Subsystem)、统一设备模型(Unified Device Model)和 PnP 支持 模块子系统发生了重大变化。 02.稳定性有所提高 为了彻底避免内核加载或者导出正在被使用的内核模块,或者至少为了减少加载或者卸载模块的同时使用该模块的可能性 (这有时会导致系统崩溃),内核加载和导出内核模
2011-04-11 17:04:00 705
转载 开启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 1094
转载 FAT32文件系统详细介绍
<br />通过使用DiskEditor对硬盘的分析,现对硬盘的MBR区及FAT32文件系统做一个详细的介绍。<br /> <br />新硬盘->低格后 变化:所有扇区中的字节数据填充为0x00<br />低格后->分区后 变化:写硬盘的MBR(主引导扇区)区<br />分区后->格式华 变化:写硬盘的FAT(文件分配表)区<br /> <br />MBR区介绍:<br /> 起始位置:0柱面0磁头1扇区(硬盘的第一个扇区)<br />
2011-04-09 09:46:00 1656
转载 高手进阶 Linux系统下MTD/CFI驱动介绍
<br /> 高手进阶 Linux系统下MTD/CFI驱动介绍<br />某些Intel的FLASH芯片(如StrataFlash系列)支持多分区,也就是各个分区可以同时进行操作。应该说这是不错的特性,但是也会带来些问题。记得当初移植Linux-2.4.21,挂JFFS2文件系统的时候,经常会报一些"Magic bitmask not found"之类的错误,跟进去发现FLASH读出来的都是些0x80之类的数据,查看资料发现该款FLASH有分区的特性,而Linux的FLASH驱动只用一个状态变量表示整个FL
2011-04-09 09:44:00 788
the+Android+and+its+Impact+of+Mobile+Computings
2022-05-01
Discovering Template Method Pattern in Google Android framework
2022-05-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人