自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Embeded system Development

阿凡提的窝

  • 博客(8)
  • 资源 (1)
  • 收藏
  • 关注

转载 arm-linux源码分析之解压内核映像

<br />linux-2.6.20.6/arch/arm/boot/compressed/head.S <br />  <br />开头有一段宏定义,我们只看其中一段,分析一下gnu arm汇编的宏定义 <br />  <br />#elif defined(CONFIG_ARCH_S3C2410) <br />              .macro loadsp, rb <br />              mov /rb, #0x50000000 <br />     

2011-01-06 14:20:00 885

转载 arm-linux head.S 源代码分析

<br />arm-linux head.S 源代码分析<br />这是ARM-Linux运行的第一个文件,这些代码是一个比较独立的代码包裹器。其作用就是解压Linux内核,并将PC指针跳到内核(vmlinux)的第一条指令。<br />Bootloader中传入到Linux中的参数总共有三个,Linux中用到的是第二个和第三个。第二个参数是architecture id,第三个是taglist的地址。Architecture id的arm芯片在Linux中一定要唯一。Taglist是bootloa

2011-01-06 14:00:00 22432

转载 kernel 启动过程之四,start_kernel中的rest_init函数到init进程

<br /> tart_kernel ,是用来启动内核的主函数,我想大家都知道这个函数啦,而在该函数的最后将调用一个函数叫 rest_init() ,它执行完,内核就起来了,<br /><br />      asmlinkage void __init start_kernel(void)<br /><br />      {<br /><br />      ......<br /><br />      /* Do the rest non-__init'ed, we're now a

2011-01-06 13:53:00 864

转载 kernel 启动过程之五, initcall 的来由, console 的初始化

<br />参见include/linux/init.h和vmlinux.lds<br />1)<br />所有标识为__init的函数在链接的时候都放在.init.text这个区段内,<br />在这个区段中,函数的摆放顺序是和链接的顺序有关的,是不确定的。<br />2)<br />所有的__init函数在区段.initcall.init中还保存了一份函数指针,<br />在初始化时内核会通过这些函数指针调用这些__init函数指针,<br />并在整个初始化完成后,释放整个

2011-01-06 13:53:00 635

转载 kernel 启动过程之三, start_kernel()函数 概叙!init/main.c

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

2011-01-06 13:52:00 465

转载 kernel 启动过程之三, start_kernel()函数 概叙!init/main.c

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

2011-01-06 13:52:00 691

转载 kernel 启动过程之二, arch/arm/kernel/head.S

<br />从zImage头跳转进来,此时的状态MMU为off D-cache为off I-cache为dont care,on或off没有关系 r0为0 r1为machine ID r2为atags指针 <br />内核代码入口在linux-2.6.24-moko-linuxbj/arch/arm/kernel/head.S文件的83行。首先进入SVC32模式,并查询CPU ID,检查合法性 msr cpsr_c, #PSR_F_BIT | PSR_I_BIT | SVC

2011-01-06 13:51:00 877

转载 kernel 启动过程之一, uimge, zimage,arch/arm/boot/compressed/head.S

<br />这几天因为工作原因,升级 2.6.22.7 的kernel 到 Mavell 的arm 板子上去,遇到一些头疼的问题,<br />不得不分析启动代码, 郁闷阿。<br />zImage是ARM Linux常用的一种压缩映像文件,uImage是U-boot专用的映像文件,它是在zImage之前加上一个长度为0x40的“头”,说明这个映像文件的类型、加载位置、生成时间、大小等信息。换句话说,如果直接从uImage的0x40位置开始执行,zImage和uImage没有任何区别。另外,

2011-01-06 13:50:00 1172

linux-tools

asdfasdsdfasfasdfas

2008-02-13

空空如也

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

TA关注的人

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