uboot启动流程--MPC8313E-RDB
来源:互联网 发布:龙卷风收音机知乎 编辑:程序博客网 时间:2024/05/07 14:34
本文诊断MPC83XX处理器,描述uboot的启动流程。
Uboot启动过程如下:
1. Start.s,设置IMMR寄存器,复位时IMMR映射到0xFF400000,该空间与Flash的影射空间冲突,启动后重新映射到0xE0000000;
2. Start.s,设置MPC8349的E300核心;
3. Start.s,初始化MPC8349的LCS0,该位置是Flash0,存放在复位控制字和Uboot代码;
4. Start.s,设置MPC8349的BAT表,该表完成物理地址到虚拟地址的影射;
5. Start.s,使能地址译码、使能CACHE;
6. 将CACHE当作RAM,初始化C语言运行环境;
7. Start.s,调用cpu_init_f C函数;
8. cpu_init_f函数,初始化各种CPU相关的寄存器;
9. Start.s,跳转到board_init_f函数,不返回;
10. board_init_f函数,根据init_sequence表,逐个运行初始化函数;
11. init_sequence表,调用init_timebase函数,初始化时钟基准;
12. init_sequence表,调用env_init函数,初始化uboot环境参数;
13. init_sequence表,调用init_baudrate函数,初始化调试波特率;
14. init_sequence表,调用serial_init函数,初始化串口硬件;
15. init_sequence表,调用console_init_f函数,初始化控制台;
16. init_sequence表,调用display_options函数,初始化显示参数;
17. init_sequence表,调用print_clock_conf打印MPC8349板卡信息;
18. init_sequence表,调用checkcpu函数,读取CPU ID,打印CPU版本号;
19. init_sequence表,调用init_func_ram函数,初始DDR RAM;
20. board_init_f函数,在DDR RAM中建立C语言运行环境以及uboot环境;
21. board_init_f函数,代码重定位,跳转到main_loop函数,不返回;
至此,uboot启动完毕,在main_loop函数中,执行交互式的底层操作,可对用户输入的各种命令进行解析并执行。这些命令包含以下的功能:从以太网下载Linux内核映像和文件系统映像并在RAM中执行、将下载到RAM的内核和文件系统映像烧写到Flash、从Flash启动内核并加载文件系统等。
本文转自:http://blog.163.com/mcu_expert/blog/static/131245153201082810258785/
- uboot启动流程--MPC8313E-RDB
- 【原】移植uboot到MPC8313E-RDB---【一】MPC8313ERDB.h文件的配置
- 【原】移植uboot到MPC8313E-RDB---【二】512Kx8BIT接口的flash.c文件
- uboot启动流程
- uboot启动流程
- uboot 启动流程分析
- Uboot 启动流程简介
- Uboot启动流程分析
- uboot启动流程
- uboot启动流程
- Uboot启动流程分析
- Uboot启动流程
- uboot 启动流程 freescale
- uboot启动流程-s3c2410
- G870 uboot启动流程
- uboot启动流程二
- uboot 启动流程
- Uboot 启动流程简介
- 三十分钟掌握STL
- winxp 下用winscp连接虚拟机上的ubuntu
- 传递闭包问题
- 简洁至上的Web设计 - 创意要素及设计技巧
- Android 软件自动更新功能的实现
- uboot启动流程--MPC8313E-RDB
- LU 分解 (LU Decomposition)
- 约瑟夫环--数学方法实现
- JAVA性能优化内存监控的一些开源工具
- 撒东西撒
- AABB包围盒、OBB包围盒、包围球的比较
- AABB和OBB包围盒简介
- 将数据源DataSet导出成Excel表格形式
- 理解AABB包围盒算法