Linux系统 ARM开发板 启动过程

经查资料,知道Linux系统启动的一般过程为:加载BIOS-->读取MBR-->BootLoader-->加载内核-->......-->执行/bin/login程序,进... 经查资料,知道Linux 系统启动的一般过程为:加载BIOS --> 读取MBR --> Boot Loader --> 加载内核 --> ...... --> 执行/bin/login程序,进入登录状态。
而ARMLinux启动过程则:Bootloader --> 内核启动。
以S3C2440为例,则说:Arm的启动都是从0地址开始,所不同的是NAND和Nor两个Flash所地址的映射不一样。
资料总是很乱,我只想知道:
开始上电时,系统第一步做的什么?有入口不?入口是什么?
在开发板上,我以NAND Flash 或者Nor Flash 启动,最开始就是地址映射吗?映射前不用加载类似BIOS 或者Bootloader 之类用来初始硬件内存时钟等的东西吗?映射后呢?
Linux 内核是怎么被 Bootloader 启动的?内核的入口是什么?
坐等高手解析和指导!先致万分感谢!
展开
 我来答
超柏藋a2
推荐于2016-07-04 · TA获得超过184个赞
知道小有建树答主
回答量:161
采纳率:0%
帮助的人:104万
展开全部
开发板上电第一步是启动固件,固件是出厂时固化好的,固件的作用是初始化一下基本的 设备,以nand为例,固件irom初始化好sram后,将nand中的前4k的bootloader(一般为uboot)拷贝到sram中,sram再初始化另一些设备比如dram等等,然后运行剩下的bootloader,接下来就是引导linux内核的启动了。bios在开发板相当与irom部分功能和uboot的前4k,内存时钟会在uboot中初始化的。uboot先做一些准备(比如设svc模式,关看门狗、中断、mmu等),然后设置内核参数表,然后跳到内核的地址运行,内核一般是压缩的,需要先解压,入口是stext,是在arch/arm/kernel/vmlinux.lds.S中定义的
追问
你好,回答的非常清晰。请问Arm的启动都是从0地址开始?这个怎么理解?
追答
就是固件里指定arm从0地址开始,而实际上没有设备是0地址的,只是通过启动方式开关选择后,将nand或者nor的首地址映射到这里的
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式