- 博客(19)
- 资源 (1)
- 收藏
- 关注
转载 linux 启动过程分析
<br />1 关于嵌入式系统的启动(SHARE FOR ALL)<br /><br />嵌入式Linux启动分为两个部分,系统引导与Linux启动。系统引导将完成Linux装入内存前,初始化CPU和相关IO设备,并将Linux调入内存的工作。系统引导主要由BootLoader实现。在BootLoader将Linux内核调入内存之后,将权力交给LinuxKernel,进入Linux的启动部分。以下详细分析启动的过程与使用的文件。<br /><br />一、系统引导与BootLoader<br />
2011-05-13 13:28:00
556
转载 Arm核920T性能优化之Cache
程序在执行过程中会频繁的运行小范围的循环代码,而这些循环又会对数据存储器的局部区域反复访问。Cache同时使用了时间和空间的局部性原理。如果对存储器的访问受时间影响,在时间上有连续性,则这种时间上密集的访问被称为时间局部性访问;如果多次对存储器的地址访问相近,则这种空间上邻近的访问被称为空间局部性访问。一.存储层次:最顶层:存储层次的最顶层在处理器内核中,该存储器被称为寄存器文件。这些寄存器被集成在处理器内核中,在系统中提供最快的存储访问。一级存储:紧耦合存储器(TCM),一级cache和主存在这一级。二级
2011-05-04 15:31:00
1021
转载 内核中的likely和unlikely 转自优快云-rstevens
<br />在 2.6 内核中,随处可以见到 likely() 和 unlikely() 的身影,那么为什么要用它们?它们之间有什么区别? <br /><br />首先要明确:<br /> if(likely(value)) 等价于 if(value)<br /> if(unlikely(value)) 也等价于 if(value)<br />也就是说 likely() 和 unlikely() 从阅读和理解代码的角度来看,是一样的!!!<br /
2011-04-25 09:25:00
588
原创 ARM cache
<br />About CACHE1. cache introductionA cache is a small, fast array of memory placed between the processor core and main memory that stores portions of recently referenced main memory. The processor uses cache-memory instead of main-memory whenever possib
2011-04-18 19:43:00
899
原创 U-Boot usage
U-Boot源码结构<br /> 在顶层目录下有18个子目录,分别存放和管理不同的源程序。这些目录中所要存放的文件有其规则,可以分为3类。<br /> 第1类目录与处理器体系结构或者开发板硬件直接相关;<br /> 第2类目录是一些通用的函数或者驱动程序;<br /> 第3类目录是U-Boot的应用程序、工具或者文档。<br /> 平台依赖<br /> board: 存放电路板相关的目录文件,例如:RPXlite(mpc8xx)、smdk2410(arm9
2011-04-18 16:15:00
520
原创 awk usage
<br />1.什么是awk? <br /><br />你可能对UNIX比较熟悉,但你可能对awk很陌生,这一点也不奇怪,的确,与其优秀的功能相比,awk还远没达到它应有的知名度。awk是什么?与其它大多数UNIX命令不同的是,从名字上看,我们不可能知道awk的功能:它既不是具有独立意义的英文单词,也不是几个相关单词的缩写。事实上,awk是三个人名的缩写,他们是:Aho、(Peter) Weinberg和(Brain)Kernighan。正是这三个人创造了awk---一个优秀的样式扫描与处理工具。 <b
2011-04-15 19:27:00
1012
原创 How to use git in Linux
<br />从仓库中导出文件<br /><br />我们需要将文件从 Git 仓库(隐藏目录中的那些文件)中导出到工作目录中才能开始自己的 hack 过程。下面的命令会在当前目录中写入没有隐藏的目录,其中包含了 Linux 的源代码:<br /><br />$ git-checkout<br /><br /><br />如果您希望覆盖本地修改,可以使用 -f 选项导出文件,这样就可以将您带回到一个干净的状态:<br /><br />$ git-checkout -f<br /><br /><
2011-04-15 19:26:00
837
原创 U-Boot usage
U-Boot源码结构在顶层目录下有18个子目录,分别存放和管理不同的源程序。这些目录中所要存放的文件有其规则,可以分为3类。第1类目录与处理器体系结构或者开发板硬件直接相关;第2类目录是一些通用的函数或者驱动程序;第3类目录是U-Boot的应用程序、工具或者文档。平台依赖 board: 存放电路板相关的目录文件,例如:RPXlite(mpc8xx)、smdk2410(arm920t)、sc520_cdp(x86) 等目录 cpu: 存放CPU相关的目录文件,例如:mpc8xx、ppc4xx
2011-04-15 19:17:00
469
原创 Makefile
Makefile 基本命令: 目标:依赖 命令 #makefile中的命令行必须以单个TAB字符进行缩进 make [ flags ] [ macro definitions ] [ targets ] -c 在读取makefile之前改变到制定目录dir -h help文档 -w 在处理makefile之前和之后都显示工作目录makefile中的宏: $(宏名) ${宏名} $* 不包含扩展名的目标文件名称。 $+ 所有的依赖文件,以空格分开,并以出
2011-04-12 14:18:00
622
转载 Linux kernel coding style
Linux kernel coding style<br /><br />This is a short document describing the preferred coding style for the<br />linux kernel. Coding style is very personal, and I won't _force_ my<br />views on anybody, but this is what goes for anything that I hav
2011-04-08 17:38:00
545
原创 How to use svn in Linux
1、检出文件(checkout)。 使用命令:svn co http://{svn repository url} /destination 然后系统会用当前的用户名登录,提示输入密码,如果第一次密码输入错误,会提示你输入用户名; 输入正确后,就可以检出文件了。2、提交文件(commit)。 进入需要更新的目录,输入命令: svn commit -m path-to-commit,其中path-to-commit可以
2011-04-08 16:13:00
790
原创 How to write a script in Linux
1. 开头 #!/bin/sh 2. 注释 以#开头3. 变量 a = "text" echo "this is ${a}file" 特殊变量: $1包含了传递给程序的第一个参数值 $*包含了所有输入命令行的参数值4. 常用命令 echo "some text": 将文字内容打印在屏幕上 ls: 文件列表 wc –l filewc -w filewc -c file: 计算文件行数
2011-04-08 16:12:00
729
原创 vim+cscope
<br />生成索引文件:cscope -Rbkq<br /> -R: 在生成索引文件时,搜索子目录树中的代码<br /> -b: 只生成索引文件,不进入cscope的界面<br /> -k: 在生成索引文件时,不搜索/usr/include目录<br /> -q: 生成cscope.in.out和cscope.po.out文件,加快cscope的索引速度<br /><br />cscope相关命令:<br /> <br /> add :
2011-04-08 16:10:00
696
原创 some useful Linux commands
<br />cat: function: print file to screen or merger two files examples: cat file1 cat file1 file2 > file3 chmod: function:用于改变文件或目录的访问权限 syntax:chmod [who] [+ | - | =] [mode] filename chmod [mode] filename %数学设定法 option: [who]
2011-04-08 16:09:00
469
原创 How to install chrome on Ubuntu 10.10
just : $sudo apt-get install chromium-browser and $chromium-browser &
2011-04-02 13:27:00
561
原创 Using semaphore in scull - from ldd3
struct scull_dev { struct scull_qset *data; /* Pointer to first quantum set */ int quantum; /* the current quantum size */ int qset; /* the current array size */ unsigned long size; /* amount of data stored here */ unsigned in
2011-04-02 11:16:00
354
原创 Implementation of linux semaphore - from ldd3
<br />semaphore : <asm/semaphore.h><br /> <br />create a semaphore:<br /> void sema_init(strct semaphore *sem, int val); //val: the initial value of semaphore<br /> <br />semaphore is usually used as mutex mode, so it can be defined and initialize
2011-04-02 10:59:00
361
原创 基础驱动相关的3个重要内核数据结构 -from ldd3
file_operation struct file inodefile_operetion: file_operation 结构是一个字符驱动如何建立这个连接struct module *owner第一个 file_operations 成员根本不是一个操作; 它是一个指向拥有这个结构的模块的指针. 这个成员用来在它的操作还在被使用时阻止模块被卸载. 几乎所有时间中, 它被简单初始化为THIS_MODULE, 一个在 中定义的宏.loff_t (*l
2011-04-02 10:38:00
489
原创 mutex和semaphore的区别
mutex是一个二进制标志,确保在代码关键区(critical section)互相排斥semaphore的计数可以超过1,用于保护多重同类资源,N=1的semaphore称为Binary semaphore一般情况下mutex和Binary semaphore是没有区别的,而在某些系统中会有差异,表现在: mutex一定要由获得锁的进程来释放,而semaphore可以由其他进程来释放,故semaphore可以用于进程间同步 建议mutex用于保护critical section,
2011-04-02 10:19:00
660
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人