2. bootloader的代码流程

2.1

入口: u-boot15/board/spreadtrum/ums512_1h10_go/u-boot.lds

ENTRY(_start) //当前入口_start

.text : { *(.__image_copy_start) //入口 CPUDIR/start.o (.text*)代码段 *(.text*)

}

2.2 start.S

bl main

2.3 arch/arm/lib/crt0_64.S

设置初始化C运行环境,然后调用board_init_f(0)函数

bl board_init_f

2.4 arch/arm/lib/board.c

这是板级初始化的函数流程的集合

1) board_init(); ==> u-boot15/board/spreadtrum/ums512_1h10_go/ums512_1h10_go.c

一些列初始化: 串口,终端,gpio,led等

2) board_late_init() => ums512_1h10_go.c: 充电初始化,按键初始化

3) 进入循环

819 /* main_loop() can return to retry autoboot, if so just run it again. */

820 for (;;) {

821 main_loop();

822 }

2.5 main.c

main_loop(); 循环处理命令

准备:

include/env_default.h : default_environment默认环境变量设置

35 "bootcmd=" CONFIG_BOOTCOMMAND "\0"

==> include/configs/ums512_1h10_go.h

216 #define CONFIG_BOOTCOMMAND "cboot normal"

main_loop ==> s = bootdelay_process(); //获取环境变量,获取boot_cmd参数

==> 执行 cboot 和 normal 命令 : autoboot_command(s);

2.6 autoboot_command(s);

解析: 处理命令列表

最终: cmdtp = find_cmd(argv[0]); ==》 rc = cmd_call(cmdtp, flag, argc, argv);

2.7 uboot 命令之cboot的执行

common/cmd_cboot.c

==> do_cboot 此处,判断开机的模式

cboot, CONFIG_SYS_MAXARGS, 1, do_cboot

命令cboot 需要带一个参数, 所以cboot normal 就是执行参数。

疑问:display 的初始化和亮屏都在哪里设置呢?

cboot ==> 开机模式 ==》 正常开机模式:

normal_mode ==> vlx_nand_boot(BOOT_PART, BACKLIGHT_ON, LCD_ON);

==> _uboot_set_preload(lcd_enable, backlight_set);

==> preload->display(LOGO_NORMAL_POWER, brightness, lcd_enable);

==> ./common/loader/loader_nvm.c : .display = logo_display,

==> void logo_display(int index, int backlight_value, int lcd_enable)

==> drv_lcd_init(); //lcd 的初始化

set_backlight(backlight_value);// 设置背光

ps : drv_lcd_init ==> lcd_init(lcd_base); ==> lcd_ctrl_init(lcdbase); ==>

drivers/video/sprd/sprd_main.c : sprdfb_probe

==>

178 static int sprdfb_probe(void)

179 {

180 sprd_panel_probe();

181 sprd_dispc_probe();

182

183 return 0;

184 }

至此: uboot 流程已经分析完毕.

sprd bootloader 分析流程相关推荐

  1. bootloader启动流程分析

    bootloader启动流程分析 1.Bootloader的概念和作用 Bootloader是嵌入式系统的引导加载程序,它是系统上电后运行的第一段程序.在完成对系统的初始化任务之后,它会将Flash中 ...

  2. 高通android开源代码下载,高通平台Android源码bootloader分析之sbl1(三)

    前两篇博文分析了启动流程.代码流程.cdt,接下来就分析另外几个需要格外关注的部分. ##log系统 sbl1中的log系统也是sbl1部分调试会经常接触得部分高通平台在sbl中做的log系统并不是很 ...

  3. 生信分析流程构建的几大流派

    导言 构建生信分析流程是生物信息学从业人员必备的技能之一,对该项能力的评估常常是各大公司招录人员的参考项目之一. 在进行 ngsjs 项目时,我做了一张示意图来表示一些高通量测序数据分析项目重现性的要 ...

  4. Clumpify:能使 Fastq 压缩文件再缩小 30% 并加速后续分析流程

    由于微信不允许外部链接,你需要点击文章尾部左下角的 "阅读原文",才能访问文中链接. Clumpify 是 BBMap 工具包中的一个组件,它与其他工具略有不同的是 Clumpif ...

  5. Nature子刊:宏基因组中挖掘原核基因组的分析流程

    宏基因组中挖掘原核基因组的分析流程 从宿主相关的短读长鸟枪宏基因组测序数据中恢复原核基因组 Recovering prokaryotic genomes from host-associated, s ...

  6. MPB:亚热带生态所谭支良组-基于微生物成分数据的差异zOTU分析流程

    为进一步提高<微生物组实验手册>稿件质量,本项目新增大众评审环节.文章在通过同行评审后,采用公众号推送方式分享全文,任何人均可在线提交修改意见.公众号格式显示略有问题,建议电脑端点击文末阅 ...

  7. USEARCH — 最简单易学的扩增子分析流程(中国总代理)

    USEARCH -- 最简单易学的扩增子分析流程 USEARCH官方英文主页:http://www.drive5.com/usearch/ 本站经USEARCH作者Robert Edgar授权,由&l ...

  8. USEARCH —— 最简单易学的扩增子分析流程(中国总代理)

    USEARCH -- 最简单易学的扩增子分析流程 USEARCH中文帮助文档(USEARCH Chinese manual) USEARCH官方英文主页:http://www.drive5.com/u ...

  9. USEARCH —— 最简单易学的扩增子分析流程

    USEARCH -- 最简单易学的扩增子分析流程 USEARCH中文帮助文档(USEARCH Chinese manual) USEARCH官方英文主页:http://www.drive5.com/u ...

最新文章

  1. h5 和native 交互那些事儿
  2. 移动端自动化测试(一)appium环境搭建
  3. OSPF LSA序列号问题
  4. boost::mismatch相关的测试程序
  5. adb shell 小米手机_如何在Android手机上进行自动化测试
  6. linux怎么修改sftp默认端口,转:linux 修改sftp服务默认提供者sshd的session timeout
  7. MVC中JSON字符长度超出限制的异常处理
  8. 获取object的值
  9. unity3d android assets,Unity3D之Android同步方法读取streamingAssets(八十八)
  10. mysqljoin的原理和优化
  11. BP神经网络用于预测
  12. 龙芯pmon快速启动方法
  13. 面试必备 | 带你彻底搞懂 Python 生成器。
  14. 歌声合成理论教程(1)
  15. C语言开发工具Win-TC
  16. 网站优化提高网站关键词密度是必要的
  17. U盘量产,以及U盘“请将磁盘插入u盘”等问题。
  18. Ardupilot Pre-Arm安全检查程序分析
  19. java小基础之代码块的霸道
  20. 《零基础学Python》✍知识点整理

热门文章

  1. kafka sasl_ssl配置
  2. Hbase资源管理 Quotas
  3. 如何导入android sdk,如何导入android sdk samples
  4. Elastic:如何摄入 Websocket 数据到 Elasticsearch
  5. 华为p4不是鸿蒙吗怎么又改为安卓_华为鸿蒙系统不是为华为手机设计的 华为手机将继续使用安卓...
  6. 专为球迷准备的免费邮箱
  7. oracle 给表空间增加多个数据文件
  8. 巴比特 | 元宇宙每日必读:股价暴跌,强敌环伺,扎克伯格将如何续写元宇宙故事?...
  9. 计算机课里的余数是什么,余数
  10. u盘中的隐藏文件该怎样恢复