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
同学聚会文化衫标语03-15
四川省成都市都江堰市2016届高三11月调研考试数学(文)试题12-15
容易望文生义的成语集锦12-18
贵阳市交通拥挤现状及解决途径的研究报103-18
刹车油正确更换方法08-12
中国铁路电气化线路器材市场运行态势调研及投资前景预测报告04-19
矮个子的烦恼作文800字06-17
狼性团队(演讲版)08-16
NAMD入门教程(二) - 图文12-05
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 流程
- 启动
- uboot
- 铁佛镇2010年上半年平安创建工作总结
- 关于认真做好当前职称工作有关问题的通知川职改办37号
- 水泵检修复习题库(技师)
- 西方经济学网上作业和期末考试答案(02 - 06)
- 新版标准日本语单词初级上
- 部编版三年级语文上册《24.司马光》教学设计及反思
- 信用社工作会议精神贯彻落实情况的汇报
- 年产200万盒中药功能红参及其它长白山道地药材饮片生产基地建设
- 局领导班子民主生活会发言记录
- 2016年度井下煤质管理实施细则
- 东风标致307路传输培训教材 - 图文
- 思修第八章教案
- 砌体施工技术交底 - 图文
- 实验三 数据库和表的创建与管理
- 200道物理学难题
- 毕业论文( 石家庄近年来的环境质量变化) - 图文
- 风险管理 教学大纲
- 施工管理报告(定)
- 2014年九年级英语全册单词表人教版新目标英汉全(附音标)
- 发票管理办法及细则练习题