和记娱乐


网站导航

联系我们

和记娱乐

联系人: 

电 话:021-64057486

公司网址:http://www.happy123456789.com

   址:成都市松江区漕河泾松江新兴产业园区研展路丰产支路55号B座803室

邮编:201165


通信科技

您的当前位置: 和记娱乐主页 > 通信科技 >

u-boot启动Linux内核解析

发布日期:2019-09-22 09:53 来源:和记h88 发布人:和记娱乐 点击:

  一、我们从上一节命令解析可以知道,u-boot启动启动Linux内核有两种方法: 第一种u-boot等待无空格按下自启内核:

  第一条命令是从调用(do_nand)把内核把读到到一个地址上去;第二条命令是从内核里面调用相应的函数(do_bootm)来启动内核; ① 在哪里来读 从哪里读?从kernel分区读; 读到哪里去?放到指定地址(0x30007fc0)去; 在PC机上,每一个硬盘前面都有一个分区表。对于嵌入式Linux来说,flash没有分区表,显然这个分区就和PC机上不一样;既然没有分区表,这些分区怎么体现?只能在源码里面写死的; 定义分区的源码如下:(include\configs\100ask24x0.h)

  三、bootm 0x30007FC0解析 ① 在/common/cmd_bootm.c中do_bootm函数中启动内核。启动内核的时候,首先对内核的头部要进行操作,原因是在Flash中保存的内核是由两部分构成的,第一部分是头部,第二部分是真正的内核。而头部的结构如下:

  总结:do_bootm有两个作用: 作用1:读取内核头部将内核移动到合适地方,还有一些校验 作用2:启动内核,用的是do_bootm_linux函数。在跳到ih_ep入口之前还要uboot设置内核启动参数,然后才是跳到ih_ep启动内核。 ② do_bootm_linux函数有用的代码如下:

      和记娱乐,和记h88,h88平台官网