前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >6200 uboot测试版分析(四)

6200 uboot测试版分析(四)

作者头像
全栈程序员站长
发布2022-07-05 09:06:48
2220
发布2022-07-05 09:06:48
举报
文章被收录于专栏:全栈程序员必看

include/autoconf.mk中COFIG_LOAD_ADDR=0x40008000

common/do_boom.c 中潜入了U_BOOT_CMD(bootm,CONFIG_SYS_MAXARGS,1,do_bootm)因此在default_environment中将会找到的bootm最终将执行do_bootm函数,do_bootm调用同文件下的bootm_start函数,在bootm_start函数中将会通过boot_get_kernel获得uImage的头部并且录入images(bootm_headers_t结构体类型)中(此处会将头部搬移,以使得头部信息原地址空间在解压时可以被覆盖),在函数bootm_start中对image.ep进行复制,回去kernel的入口地址,在do_bootm函数中继续执行bootm_load_os,在该函数中会执行重定位.在do_bootm中的boot_fn=boot_os[image.os.so]获取相应系统的启动函数,例如是linux则被赋值为do_bootm_linux,而后执行boot_fn(0, argc, argv, &images);arch/unicore/lib/bootm.c下的函数do_bootm_linux中将images->ep强制转换成函数地址kernel_entry = (void (*)(int, int, uint))images->ep;而后开始启动kernel_entry(0, machid, bd->bi_boot_params); 6200 的板子时(0,0x9fc,0x40000100 0x9fc是板子硬件设计代号,40000100是传递参数的地址)

uboot最终的配置会录入include/configs/SEP0611.h中

在该文件中又含有了include/asm/arch/hardware.h(地址分布)

board/seuic/SEP0611/include/board.h中含有板级配置

include/config_cmd_default.h配置命令

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/110422.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021年8月1,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档