start.S

|-------------设置cpu状态

|--------------开cache

|--------------获得启动方式

|--------------------------------------lowlevel_init

|              |---------------关看门狗

|              |---------------PS_HOLD

|              |---------------初始化时钟

|              |---------------初始化DDR

|              |---------------初始化uart 并打印 ok

|------------设置C栈

|------------重定向

|-----------开MMU

|------------设置栈

|------------清BSS

|-------------bl start_armboot

start.S 有两点重要:

  (1)打印OK

  (2)能获得物理和虚拟的内存地址和栈顶地址

start_armboot

|------------定义变量 gd

|------------init_sequence

|    |-----------------board_init

|    |      |--------------初始化网卡,获得arh_number 和 内核传参基地址

|    |-----------------interrupt_init

|    |      |--------------初始化PWM定时器

|    |------------------env_init

|    |      |---------------定义环境变量

|    |------------------init_baudrate

|    |      |---------------获得波特率

|    |------------------display_banner

|    |      |---------------显示版本信息

|    |------------------print_cpuinfo

|    |      |----------------显示cpu时钟信息

|    |------------------dram_init

|    |      |-----------------记录DDR起始地址和大小

|-------------初始化堆

|-------------初始化存储介质

|-------------环境变量重定位

|-------------从环境变量中读取自己的IP地址和MAC地址

|-------------初始化控制台,中断

|-------------main_loop

这部分主要工作是初始化外设和完成软件层的初始化

main_loop

查找命令

  find_cmd

  根据输入的命令名称,遍历__u_boot_cmd_start 到 __u_boot_cmd_end 段,找到对应的cmd_tbl_t 定义。

执行命令

rcode = (cmdtp->cmd)
(cmdtp, flag,child->argc-i,&child->argv[i]);

  前两个参数cmdtp flag没什么用

  后两个参数为 该命令的 argc, argv

最新文章

  1. 60. Insert Interval && Merge Intervals
  2. 使用Nginx负载均衡搭建高性能.NETweb应用程序一
  3. Java基础-字面值
  4. VS2010+OpenCV2.4.6永久性配置方法
  5. 20145227《Java程序设计》第1次实验报告
  6. 常见的XMLHttpRequest.status状态码
  7. GOOGLE 离线完整安装包下载地址
  8. sublime text3使用心得及个人配置 sublime常用快捷键大全
  9. PHP:错误 Deprecated: Function split() is deprecated in ... 解决办法
  10. Android 内核常见目录的作用
  11. CRM实施目标、需求、策略、厂商、流程等基本介绍全解
  12. java多线程(7)---Condition
  13. Git自学笔记
  14. 遇到的web请求错误码集合与解释
  15. enumerate()用法
  16. mac电脑使用,开发环境配置指南
  17. P4390 [BOI2007]Mokia 摩基亚(cdq分治)
  18. C/C++ 类成员函数指针 类成员数据指针
  19. python opencv 按一定间隔截取视频帧
  20. Python——getpass

热门文章

  1. 初试Python
  2. 互不侵犯(洛谷P1896)
  3. rabbitmq 交换机模式一 直连模式 direct
  4. centos8平台使用strace跟踪系统调用
  5. shell脚本在后台运行以及日志重定向输出
  6. form单提交后按钮变成失效变灰
  7. Docker学习笔记之-通过Xshell连接 CentOS服务
  8. 正式班D14
  9. 用node.js给C#写一个数据表的实体类生成工具
  10. centos7安装oracle版本的jdk