XSBase255 -linux 启动过程描述 引用自http://www.linuxeden.com/forum/blog/index.php?op=ViewArticle&articleId=230&blogId=102509
来源:互联网 发布:mac命令行快捷键 编辑:程序博客网 时间:2024/05/21 18:34
XSBase255 -linux 启动过程描述
linux启动过程
一.BootLoader
功能简单描述,屏蔽所有中断,初始化GPIO,初始化SDRAM,拷贝BootLoader到SDRAM中,加载内核映像文件,跳转到C程序,初始化串口,初始化以太网,等待外部输入,无外部输入,跳转到内核入口处。有外部输入,进入BootLoader模式,进行命令解释循环。
a) 部分头文件
处理器PXA255的地址空间为线性地址空间,处理器各部分寄存器是模块化的,可定义各功能模块的基地址,通过基地址加偏移地址的方式访问各功能寄存器。
config.h
SRAM(FLASH)的基地址为:0x0000000
SARM(FLASH)的地址大小为:0x02000000(32M)
DRAM(SDRAM)的基地址为:0xA0000000
DRAM(SDRAM)的地址大小为:0x020000000×2(64M)
Start_xscale.h
中断控制器的基地址:INTERRUPT_CONTROL_BASE―0x40D00000
时钟管理控制器的基地址:CLOCK_MANAGER_BASE-0x41300000
通用GPIO的基地址:GPIO_BASE-0x40E00000
内存控制器的基地址:MEM_CTL_BASE-0x48000000
b) 内存分配脚本文件
ld-xscale – ELF文件格式
c) 汇编语言初始化部分
d) C语言代码部分
二.内核代码部分
a) 汇编语言部分
2.4.18-rmk7-pxa1-XSBasearcharmkernelhead-armv.S文件根据2.4.18-rmk7-pxa1-XSBaseincludelinuxautoconf.h文件的配置执行相关的操作,设置处理器的模式,查询处理器的类型,创建页表等操作后跳转到2.4.18-rmk7-pxa1-XSBaseinitmain文件的start_kernel处
b) 内核入口部分
C语言代码部分对系统作第二次初始化
内核加锁
输出Linux版本信息(printk(linux_banner))
设置与体系结构相关的环境(setup_arch())
提取并分析核心启动参数(从环境变量中读取参数,设置相应标志位等待处理,(parse_options(
使用"arch/alpha/kernel/entry.S"中的入口点设置系统自陷入口(trap_init())
使用alpha_mv结构和entry.S入口初始化系统IRQ(init_IRQ())
核心进程调度器初始化(包括初始化几个缺省的Bottom-half,sched_init())
时间、定时器初始化(包括读取CMOS时钟、估测主频、初始化定时器中断等,time_init())
控制台初始化(console_init())
模块初始化init_modules()
剖析器数据结构初始化(prof_buffer和prof_len变量)
核心Cache初始化(描述Cache信息的Cache,kmem_cache_init())
延迟校准(获得时钟jiffies与CPU主频ticks的延迟,calibrate_delay())
内存初始化(设置内存上下界和页表项初始值,mem_init())
创建和设置内部及通用cache("slab_cache",kmem_cache_sizes_init())
创建页cache(内存页hash表初始化,pageable_cache_init())
检查体系结构漏洞(对于alpha,此函数为空,check_bugs())
SMP机器其余CPU(除当前引导CPU)初始化(对于没有配置SMP的内核,此函数为空,smp_init())
启动init过程(创建第一个核心线程,调用init()函数,原执行序列调用cpu_idle() 等待调度,rest_init())
三.文件系统部分
文件系统与内核相联系,在内核的配置中menuconfig中的General Setup中的配置
根据根文件系统下的linuxrc脚本文件可知,它启动了init, init进程是系统所有进程的起点,内核在完成核内引导以后,即在本线程(进程)空间内加载init程序,它的进程号是1。
init程序需要读取/etc/inittab文件作为其行为指针,inittab按照initdefault启动runlevel 3。进入rc3.d目录。在rc3.d目录下有一系列以S开始的文件,表示启动的意思,如果以K字母开头,表示Kill的意思。而这些以S开始的文件会链接到其他的脚本文件,会执行相关的链接的脚本文件。如:
rc.sysinit,network,pcmcia等脚本文件。
在init执行完成以后,会执行/bin/login文件,确认用户名以及密码以后,把控制权交给shell,进入shell命令,执行相关的配置文件.profile等,最后$出现在虚拟终端上,整个启动过程结束。
- XSBase255 -linux 启动过程描述 引用自http://www.linuxeden.com/forum/blog/index.php?op=ViewArticle&articleId=230&blogId=102509
- linux获取当前绝对路径[转自:http://www.linuxdiyf.com/viewarticle.php?id=84177]
- WebConfirm控件(转自http://www.evget.com/view/article/viewArticle.asp?article=961)
- WebConfirm控件(转自http://www.evget.com/view/article/viewArticle.asp?article=961)
- android源码分享 http://www.linuxdiyf.com/viewarticle.php?id=286513
- http://xinsheng.huawei.com/cn/forum/index.php?app=forum&mod=Detail&act=index&id=355911
- http://blog.gameres.com/show.asp?BlogID=404&column=484
- http://www.apkbus.com/forum.php?mod=viewthread&tid=19181
- http://www.eoeandroid.com/forum.php?mod=viewthread&tid=165974
- http://www.blogshares.com/blogs.php?blog=http://yourlink/
- 硬盘结构简介http://www.x86asm.com/Print.asp?BoardID=7&ArticleID=66
- http://www.ya333.com/jnr/Article_Print.asp?ArticleID=537上传图片
- j2me开发环境设置http://www.j2medev.com/Article/ShowArticle.asp?ArticleID=13
- ubuntu10.04下安装google拼音输入法 转自:http://darkranger.javaeye.com/blog/760631,http://forum.ubuntu.org.cn/viewtopic.php?f=8&t=295299&vie
- http://xinsheng.huawei.com/cn/index.php?app=forum&mod=Detail&act=index&id=140320
- http://www.longene.org/forum/viewtopic.php?p=12241
- http://www.devdiv.com/forum.php?mod=viewthread&tid=43010&highlight=%C1%A3%D7%D3
- 用XenoCode 2006 加密dll (.NET混淆 )http://www.chenjiliang.com/Article/View.aspx?ArticleID=237&TypeID=5
- 彩云在南,本命年在北(记云南之旅)
- ASP获取数据库表名,字段名以及对字段的一些操作
- CVSNT用户管理方案
- 第四次编程练习:字符串编程,将字符串S中出现的子串T1用字符串T2替代。
- 资料:Linux Device Driver 编写方法
- XSBase255 -linux 启动过程描述 引用自http://www.linuxeden.com/forum/blog/index.php?op=ViewArticle&articleId=230&blogId=102509
- 自卑是每个人都有的,人类的文明其实变相的也是即由人类的自卑感来推动的
- Asp生成HTML
- 关于单元测试的策略问题
- 孙辉老师《十年MFC经历认识的Microsoft技术》
- 在vb.net中使用webbrowser控件和mshtml以及流操作体会(vb.net内嵌IE,拆取 Web 页)(原创)
- 使用TreeView实现无限级扩展节点(原创)
- How to read?
- NET面临信任危机,根源在于目标模糊 [转自: 孟岩 's blog ]