uboot启动流程
更新时间:2024-04-07 15:48:01 阅读量: 综合文库 文档下载
Uboot在MPC860架构下的启动流程:
『运行在BOOTROM中』 (汇编S) 设置immr—> 设置msr—>
初始化I-cache和D-cache(unlockall— invalidall— disable-D-cache—enable-I-cache)—> 初始化mmu的tlb—> 重定位PC指针—> 设置栈指针r1 —>
设置r3为immr,调用cpu_init_f(immr)函数—> (汇编E)
(C代码S)
配置通过immr映射的CPU内部寄存器—>
配置BAx和ORx,使相关的bootrom或cpld等的片选可用—> (C代码E)
(汇编S)
设置r3为bootflag,调用board_init_f(type)函数—> (汇编E)
(C代码S) board_init_f()
执行init_sequence[]数组中的所有初始化函数,主要有以下内容,可根据实际情况添加: env_init(初始化enviroment变量相关的数据结构) init_baudrate(在数据结构上设置波特率) serial_init(初始化串口硬件)
console_init_f(从此处开始,可以使用串口,输出打印信息了) display_options
init_func_ram(配置SDRAM控制器,使SDRAM可用)—>
分配SDRAM内存空间;R1为特殊用途保留区;uboot存放uboot代码;malloc用作malloc函数的分配空间;bd_t存放单板信息;gd_t存放全局信息;R2为栈顶保留区;addr指向uboot代码区;id指向全局数据区;addr_sp指向栈顶;
R1ubootaddrmallocbd_tgd_tidaddr_spR2
—>
为bd_t和gd_t区设置初始数据—>
调用汇编代码段relocate_code,把addr_sp,id和addr作为参数传入 —> (C代码E)
(汇编S)
分别从r3,r4,r5中获取从C函数中传递过来的addr_sp,id和addr三参数—> 从bootrom向sdram的addr处,搬运uboot代码—> 『运行在SDRAM中』
在sdram中,重新定位代码中的全局符号表—>
设置r3和r4为gd指针和dest_addr,作为向调用函数传递的两个参数,调用board_init_r()函数—> (汇编E)
(C代码S) board_init_r()
重定位cmd_table[]表中的所有命令—> 调用flash_init()初始化flash设备—>
调用cpu_init_r(),根据需要初始化CPU的一些高级特性—>
调用mem_malloc_init()初始化malloc功能,此后,可以调用malloc()分配堆空间—>
调用env_relocate(),根据代码中的默认env值或bootrom中存放的env值,初始化内存中由env_ptr指向的env值—>
从env_ptr指向的环境变量中,获取ethmac地址和IP地址—>
调用device_init()初始化设备链表devlist,并把单板上的所有设备注册在这个链表上—> 调用jumptable_init()初始化全局数据gd_t中的jt表,以供后续应用程序调用—> 调用console_init()初始化stdin,stdout,stderr—>
调用interrupt_init()安装中断处理程序,复位减法计数器,开启中断功能—>
调用set_timer()设置时间戳timestamp为0,减法计数器中断会修改它的值—> 从环境变量中获取loadaddr和bootfile值—> 调用eth_initialize()初始化网口设备—> 通过永久for循环进入main_loop() (C代码E)
正在阅读:
uboot启动流程04-07
初级会计实务考前押题3(巅峰)10-10
2018年天津大学建筑学院728建筑理论综合之外国建筑史(19世纪末叶以前)考研冲刺五套模拟题05-07
2022-2022年鄂州市医院市场前景调查及投融资战略研究报告04-18
自贡市小学数学六年级西师版上册期末考试题09-09
第二届防震减灾知识竞赛答案02-02
会计实习日记500字01-06
【数学中考真题】2018年湖北省襄阳市初中毕业生学业水平考试语文03-08
毕业实习日记02-17
芯片版图面积的设计优化08-06
- 必修一物理寒假作业
- 2019-201X年5月大学生入党积极分子思想汇报-word范文模板(3页)
- 药物分析习题五
- 重拾应用意识 体会数学价值(沈建军)
- 2017全国高校辅导员结构化面试题集及参考答案
- 广东徐闻县实验中学2014届高三第二次月测地理试题
- 今天你共鸣了么?
- 2018-2019正能量读后感1000字-推荐word版(6页)
- 2018年中国截切型盖板针布行业专题研究分析报告目录
- 中国移动业务处理流程大全
- 公文写作常用词汇和句子集锦2016
- ARM课程设计说明书
- 教师资格证教育学论文
- 中考试卷分析
- 环境监测试卷(五)
- 党风廉政建设广播稿1
- 快速制作香香宫煮麻辣烫教程
- 《国际金融学》习题
- 文明施工保障措施方案
- 春兰维修资料故障代码
- 流程
- 启动
- uboot
- 铁佛镇2010年上半年平安创建工作总结
- 关于认真做好当前职称工作有关问题的通知川职改办37号
- 水泵检修复习题库(技师)
- 西方经济学网上作业和期末考试答案(02 - 06)
- 新版标准日本语单词初级上
- 部编版三年级语文上册《24.司马光》教学设计及反思
- 信用社工作会议精神贯彻落实情况的汇报
- 年产200万盒中药功能红参及其它长白山道地药材饮片生产基地建设
- 局领导班子民主生活会发言记录
- 2016年度井下煤质管理实施细则
- 东风标致307路传输培训教材 - 图文
- 思修第八章教案
- 砌体施工技术交底 - 图文
- 实验三 数据库和表的创建与管理
- 200道物理学难题
- 毕业论文( 石家庄近年来的环境质量变化) - 图文
- 风险管理 教学大纲
- 施工管理报告(定)
- 2014年九年级英语全册单词表人教版新目标英汉全(附音标)
- 发票管理办法及细则练习题