下载此文档

Uboot启动流程.doc


文档分类:管理/人力资源 | 页数:约38页 举报非法文档有奖
1/38
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/38 下载此文档
文档列表 文档介绍
Uboot启动流程
Uboot启动流程
Uboot启动流程
U-Boot启动过程
(国嵌)
开发板上电后,履行U-Boot的第一条指令,然后次序履行U-Boot启动函数。看一下board/smdk2410/u-
start_armboot是U-Boot履行的第一个C语言函数,达成系统初始化工作,进入主循环,办理用户输入的命令。
3.init_sequence[]
init_sequence[]数组保留着基本的初始化函数指针。
init_fnc_t*init_sequence
[]={
cpu_init,
/*
基本的办理器有关配置--cpu/arm920t/*/
board_init,
/*
基本的板级有关配置--board/smdk2410/*/
interrupt_init,
/*
初始化中止办理--cpu/arm920t/s3c24x0/*/
env_init,
/*
初始化环境变量--common/*/
init_baudrate,
/*
初始化波特率设置--lib_arm/*/
serial_init,
/*
串口通讯设置--cpu/arm920t/s3c24x0/*/
console_init_f,
/*
控制台初始化阶段1--common/*/
display_banner,
/*
打印u-boot信息--lib_arm/*/
dram_init,
/*
配置可用的RAM--board/smdk2410/*/
display_dram_config,/*
显示RAM的配置大小--lib_arm/*/
NULL,
};
voidstart_armboot(void)
{
/*次序履行init_sequence数组中的初始化函数*/
for(init_fnc_ptr=init_sequence;*init_fnc_ptr;++init_fnc_ptr){if((*init_fnc_ptr)( )!=0){
hang( );
}
Uboot启动流程
Uboot启动流程
Uboot启动流程
}
/*配置可用的Flash*/
size=flash_init( );
display_flash_config(size);
/*_armboot_start在u-*/mem_malloc_init(_armboot_start-CFG_MALLOC_LEN);
/*配置环境变量*/
env_relocate( );
/*从环境变量中获取IP地点*/
gd->bd->bi_ip_addr=getenv_IPaddr("ipaddr");
/*以太网接口MAC地点*/
Uboot启动流程
Uboot启动流程
Uboot启动流程
/*

devices_init( );/*
jumptable_init( );
console_init_r( );/*
enable_interrupts( );/*
经过环境变量初始化*/

获取列表中的设施*/
完整地初始化控制台设施
使能中止办理*/

*/
Uboot启动流程
Uboot启动流程
Uboot启动流程
if((s=getenv("loadaddr"))!=NULL){
load_addr=simple_strtoul(s,NULL,16);
}
/*main_loop( )循环不断履行*/
for(;;)
{
main_loop( );/*主循环函数办理履行用户命令--common/*/
}
命令实现
U-Boot作为Bootloader,具备多种引导内核启动的方式。常用的go和bootm命令能够直接引
导内核映像启动。U-Boot与内核的关系主假如内核启动过程中参数的传达。
1.go命令的实现
/*common/*/
intdo_go(cmd_tbl_t*cmdtp,intflag,intargc,char*argv[])

Uboot启动流程 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数38
  • 收藏数0 收藏
  • 顶次数0
  • 上传人雨林书屋
  • 文件大小1.40 MB
  • 时间2022-05-12