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

uboot——初始化阶段的更多相关文章

  1. uboot启动阶段修改启动参数方法及分析

    作者:围补 本来启动方式这节不是什么复杂的事儿,不过想简单的说清楚明白,还真是不知道怎么组织.毕竟文字跟有声语言表达有别.但愿简单的东西别让我讲的太复杂! Arm板系统文件一般有三个——bootloa ...

  2. 【ARM-Linux开发】 uboot启动阶段修改启动参数方法及分析

    作者:围补 本来启动方式这节不是什么复杂的事儿,不过想简单的说清楚明白,还真是不知道怎么组织.毕竟文字跟有声语言表达有别.但愿简单的东西别让我讲的太复杂! Arm板系统文件一般有三个--bootloa ...

  3. React组件生命周期-初始化阶段的函数执行顺序

    <!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="UTF-8& ...

  4. junit源码解析--初始化阶段

    OK,我们接着上篇整理.上篇博客中已经列出的junit的几个核心的类,这里我们开始整理junit完整的生命周期. JUnit 的完整生命周期分为 3 个阶段:初始化阶段.运行阶段和结果捕捉阶段. 这篇 ...

  5. react初始化阶段

    初始化阶段可以使用的函数:getDefaultProps:只调用一次,实例之间共享引用.只有在组件的第一个实例被初始化的时候,才会调用他,然后react会把这个函数的返回结果保存起来,从第二个实例开始 ...

  6. uboot第一阶段关键位置分析

    /* * the actual reset code */ reset: /* * set the cpu to SVC32 mode */ mrs r0,cpsr bic r0,r0,#0x1f o ...

  7. 深入理解JVM-类加载初始化阶段-类的主动与被动引用

    JVM的类加载阶段中初始化阶段 P210 虚拟机规定的五种情况必须对类的“初始化”情况 1.遇到new.getstatic.putstatic.或invokestic 四条字节码指令时,如果类没有经过 ...

  8. openresty开发系列32--openresty执行流程之1初始化阶段

    openresty开发系列32--openresty执行流程之初始化阶段 一)初始化阶段 1)init_by_lua   init_by_lua_block     init_by_lua_file语 ...

  9. JVM 初始化阶段的重要意义分析

    1.创建一个Mytest6类和Singleton类 public class MyTest6 { public static void main(String[] args) { Singleton ...

随机推荐

  1. 机器学习 KNN算法原理

    K近邻(K-nearst neighbors,KNN)是一种基本的机器学习算法,所谓k近邻,就是k个最近的邻居的意思,说的是每个样本都可以用它最接近的k个邻居来代表.比如:判断一个人的人品,只需要观察 ...

  2. python 登陆三次错误退出

    登陆出现三次错误,退出程序 1 #登陆 2 def Login(): 3 a = input() 4 if a == 'Kate': 5 b = input() 6 if b == '666666': ...

  3. Zookeeper(1)---初识

    一.ZK简述 Zookeeper,它是一个分布式程序的协调服务,它主要是用来解决分布式应用中的一些数据管理问题,比如集群管理,分布式应用配置,分布式锁,服务注册/发现等等. 它是一个类似于文件系统的树 ...

  4. selenium基础--登录简单的网站

    import time from selenium import webdriver from lxml import etree from selenium.webdriver import Act ...

  5. Java8中Stream 的一些用法

    数据结构和数据准备 @Data @AllArgsConstructor @NoArgsConstructor static class StreamItem { Integer id; String ...

  6. C# 将DataTable里面的数据导出到excel

    //需要在bin里面添加 Interop.Microsoft.Office.Interop.Excel.dll 的引用 //添加引用 using System.Data; /// <summar ...

  7. 使用浏览器抓取QQ音乐接口(排行榜篇)

    前言 最近手头比较空闲,再加上看到其他人的博客都差不多有个类似的播放控件,手就会闲不下来,说干就干,所以我们开始吧! 来到QQ音乐的官网,我们就直奔着目标去,寻找排行榜 我们主要用的是最近比较热的歌, ...

  8. 雨露均沾的OkHttp—WebSocket长连接的使用&源码解析

    前言 最近老板又来新需求了,要做一个物联网相关的app,其中有个需求是客户端需要收发服务器不定期发出的消息. 内心OS:

  9. centos7源码编译安装LNMP+ZABBIX4.0LTS(1)——nginx

    环境:192.168.117.132--zabbix server192.168.117.133--zabbix proxy 安装路径为/zabbix 安装nginx 1.安装包下载http://ng ...

  10. poco对象生成的几种方式根据你使用不同的ui决定

    androidpoco定义方法 from poco.drivers.android.uiautomation import AndroidUiautomationPoco dev = connect_ ...