X210之uboot启动内核分析

uboot——启动内核分析

内核启动的步骤

  1. 第一步是将内核镜像从启动介质中加载到DDR中。

    movi read kernel 0x30008000 //这条指令就是从SD卡中的kernel分区中将kernel读取到DDR的链接地址0x30008000中
    
  2. 第二步是去DDR中启动内核镜像。

    bootm 0x30008000 //这条指令用来启动kernel
    

**注意:**内核代码不需要考虑重定位,因为内核知道会有uboot之类的把自己加载到DDR中链接地址处的,所以内核直接就是从链接地址处开始运行的。

内核的链接地址

uboot启动内核时将内存从SD卡读取放到DDR中(其实就是个重定位的过程),不能随意放置,必须放在内核的链接地址处,否则启动不起来。譬如我们使用的内核链接地址是0x30008000。

do_bootm函数分析

CONFIG_ZIMAGE_BOOT
/*
	代码196行定义了一个宏,这个宏用条件编译来控制一段代码;
	这段代码(196-225行)用来支持zImage格式的内核启动。
*/

你可能感兴趣的:(arm,mcu,linux)