am335x的cpu上电后,执行流程:ROM->MLO(SPL)->u-boot.img

第一级bootloader:引导加载程序,板子上电后会自动执行这些代码,如启动方式(SDcard、SPI、NOR),然后跳转至第二级bootloader。这些代码应该是存放在 176KB 的 ROM 中

第二级bootloader:MLO(SPL),用于硬件初始化,关看门狗,关中断,设置CPU时钟频率、速度、加载uboot.img、dts等操作,MLO文件应该会被映射到 64 KB的 Internal SRAM 中。

第三级bootloader:u-boot.img, C代码的入口

MLO与u-boot执行流程如下:

reset //(arch/arm/cpu/armv7/start.S)

save_boot_params_ret //(arch/arm/cpu/armv7/start.S)

|- disable interrupts

|- cpu_init_cp15 //(arch/arm/cpu/armv7/start.S)

|   |- Invalidate L1 I/D

|   |- disable MMU stuff and caches

|- cpu_init_crit //(arch/arm/cpu/armv7/start.S)

|   |- lowlevel_init //(arch/arm/cpu/armv7/lowlevel_init.S)

|       |- Setup a temporary stack

|       |- Set up global data

|       |- s_init //(arch/arm/cpu/armv7/am33xx/board.c)

|           |- watchdog_disable

|           |- set_uart_mux_conf

|           |- setup_clocks_for_console

|           |- uart_soft_reset

|- _main //(arch/arm/lib/crt0.S)

|(MLO)如果是 MLO 文件

|- board_init_f //(arch/arm/cpu/armv7/am33xx/board.c)

|   |- board_early_init_f //(arch/arm/cpu/armv7/am33xx/board.c)

|   |   |- prcm_init

|   |   |- set_mux_conf_regs

|   |- sdram_init //(board/ti/am335x/board.c) 初始化 DDR

|- spl_relocate_stack_gd

|- board_init_r //(common/spl/spl.c)                                              【完成u-boot.img  dts加载】

|- ...

|- spl_load_image //根据不同的启动方式加载 u-boot 镜像,

|- jump_to_image_no_args //进入u-boot代码运行

|(U-Boot)如果是U-Boot 镜像

|- board_init_f //(common/board_f.c)

|   |- ...

|   |- initcall_run_list(init_sequence_f)

|   |- ...

|

|- relocate_code //(arch/arm/lib/relocate.S) 代码重定位

|- relocate_vectors //(arch/arm/lib/relocate.S) 向量表重定义

|- Set up final (full) environment

|- board_init_r //(common/board_r.c)

|- initcall_run_list(init_sequence_r)//初始化各种外设

|- main_loop()

am335x linux 的uboot工作流程.doc,am335x uboot2016.05 (MLO u-boot.img)执行流程(转)相关推荐

  1. MyBatis系列之浅谈SQL执行流程分析

    目录 独立使用Mybatis Mybatis执行流程 SqlSessionFactory\SqlSession MapperProxy Excutor 独立使用Mybatis 这篇文章主要以分析Myb ...

  2. DRF基本使用及执行流程分析 | APIView源码分析

    DRF基本使用及执行流程分析 介绍: # 使用的都是CBV的方式 ,继承的类为drf提供的类(提供的类很多) # 这里目前继承使用APIView类 # 因为APIView是所有类的基类,其他类可能拓展 ...

  3. 【嵌入式开发】 Bootloader 详解 ( 代码环境 | ARM 启动流程 | uboot 工作流程 | 架构设计)

    作者 : 韩曙亮 博客地址 : http://blog.csdn.net/shulianghan/article/details/42462795 转载请著名出处 相关资源下载 :  -- u-boo ...

  4. U-Boot工作过程

    U-Boot启动内核的过程可以分为两个阶段,两个阶段的功能如下: (1)第一阶段的功能 Ø  硬件设备初始化 Ø  加载U-Boot第二阶段代码到RAM空间 Ø  设置好栈 Ø  跳转到第二阶段代码入 ...

  5. AM5728 uboot 执行流程

    am5728的cpu上电后,执行流程:ROM->MLO(SPL)->u-boot.img 第一级bootloader:引导加载程序,板子上电后会自动执行这些代码,如启动方式(SDcard. ...

  6. 嵌入式linux开发uboot移植(三)——uboot启动过程源码分析

    一.uboot启动流程简介 与大多数BootLoader一样,uboot的启动过程分为BL1和BL2两个阶段.BL1阶段通常是开发板的配置等设备初始化代码,需要依赖依赖于SoC体系结构,通常用汇编语言 ...

  7. 嵌入式linux工程师 考试,嵌入式Linux工程师常见笔试题.doc

    嵌入式Linux工程师常见笔试题.doc 这些年,我既参加也组织了许多这种测试,在这过程中我意识到这些测试能为带面试者和被面试者提供许多有用信息,此外,撇开面试的压力不谈,这种测试也是相当有趣的. 从 ...

  8. linux操作系统源码分析,linux操作系统源代码详细分析.doc

    linux操作系统源代码详细分析.doc LINUX操作系统源代码详细分析内容简介LINUX拥有现代操作系统所有的功能,如真正的抢先式多任务处理.支持多用户,内存保护,虚拟内存,支持SMP.UP,符合 ...

  9. 嵌入式Linux开发-uboot常用命令介绍(上篇)

    1. 前言 U-boot是一种开源bootloader, 作用是用来引导操作,以及给开发人员提供测试调试工具.本身算是个精简的Linux系统,主要是负责硬件的初始化和引导,本身带有一些工具,作为引导程 ...

  10. 嵌入式linux之Uboot和系统移植--基础

    <uboot和系统移植-第1部分-uboot学习前传> (观看朱友鹏老师视频后整理的笔记)   1.为什么要有uboot 2.为什么是uboot 3.uboot必须解决哪些问题 4.ubo ...

最新文章

  1. WinRAR也能实现智能备份
  2. linux磁盘满时,如何定位并删除文件
  3. 自嘲尾款人、丁工人?今年双十一就没想让你做人
  4. jQuery性能优化指南(转载)
  5. 云炬随笔20190419
  6. .NET Core扩展IServiceCollection自动注册服务
  7. 马云在《赢在中国》对创业者的经典点评
  8. 实验4.2 实现客户机(CLIENT)类
  9. 蓝桥杯java 大纲,2019 第十届蓝桥杯Java省赛B组个人总结
  10. 0代码隐藏GroupedTableView上边多余的间隔
  11. java单元测试的用法及原因
  12. 没解决:如何离线更新eclipse支持的Compiler compliance level
  13. windows server 2008 R2 集成USB3.0驱动--成功实现
  14. 使用SHELLEXECUTEINFO 和 ShellExecuteEx
  15. php 过滤所有符号,php过滤所有特殊符号
  16. 查看电脑开机关机记录
  17. keil软件仿真逻辑分析仪出现了Unknown Signal
  18. LoCCS专访:后量子密码技术让Hcash走得更远
  19. 使用ROSE鉴定超级增强子
  20. 区块链+社群经济是什么样子?让「牛顿」的NewMall告诉你

热门文章

  1. leetcode174.地下城游戏
  2. 信息内容安全-《人民的名义》人物图谱分析实验
  3. nuxt实现服务端渲染查看源代码显示动态接口数据
  4. mysql .frm_mysql通过frm向mysql导入表结构及数据
  5. Win10系统下CMD命令提示符输入ipconfig命令无法使用的解决方法
  6. 2021GPLT L1-8 乘法口诀数列(JAVA语言)
  7. 蓝海卓越无线运营方案简述
  8. snakemake--我最喜欢的流程管理工具
  9. 高速计数器转RS485Modbus RTU模块IBF150
  10. 让同事主动配合工作的三点技巧|智测优聘总结