04-S3C2440u-boot学习之u-boot分析(5)_uboot启动内核

本文详细介绍了U-Boot启动内核的过程,包括启动命令的解析与执行、内核的读取与加载等关键步骤,并对bootm命令的具体实现进行了深入分析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考《韦东山1期视频》第09课第5节 u-boot分析_uboot启动内核.WMV

(1)启动内核主要命令:

		s = getenv ("bootcmd");

	debug ("### main_loop: bootcmd=\"%s\"\n", s ? s : "<UNDEFINED>");

	if (bootdelay >= 0 && s && !abortboot (bootdelay)) {
# ifdef CONFIG_AUTOBOOT_KEYED
		int prev = disable_ctrlc(1);	/* disable Control C checking */
# endif

# ifndef CFG_HUSH_PARSER
        {
            printf("Booting Linux ...\n");            
    	    run_command (s, 0);
        }

bootcmd

nand read.jffs2 0x30007fc0 kernal

从nand 读出内核

从哪里读:从kernal分区读

放到哪里去:放到0x30007fc0。

分区:在100ask24x0.h中定义:

#define MTDIDS_DEFAULT "nand0=nandflash0"
#define MTDPARTS_DEFAULT "mtdparts=nandflash0:256k@0(bootloader)," \
                            "128k(params)," \
                            "2m(kernel)," \
                            "-(root)"

(2)bootm 启动内核相关命令分析

1.读取头部,移动内核到加载地址

2.启动do_bootm_linux(ARMLINUX.C)

                uboot告诉内核一些参数,设置启动参数(某个地址30000100,某个格式TAG保存参数。)

调到入口地址,启动内核。








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值