10th.u-boot——代码结构分析

Asam学习笔记 Asam学习笔记     2022-08-22     751

关键词:

简介

    U-Boot(Universal Boot Loader),通用BootLoader,一是可以引导多种操作系统,二是支持多种架构CPU。

 

    教程中是在sourcefoge网站上下载的U-boot-1.1.6源码,进行分析与移植。

 

结构分析

    U-boot-1.1.6有26个子目录,可以简单分为四类:

      1.平台相关或开发板相关

      2.通用的函数

      3.通用的设备驱动程序

      4.U-boot工具,示例程序,文档。

 

 

    

           

 

 

 

    

    目前U-boot-1.1.6支持10种架构。很容易找到与自己板子相似的配置,在上面稍作修改即可。

 

U-boot代码分析

    

    U-boot属于两个阶段的Bootloader,第一阶段的文件为cpu/arm920t/start.S和board/smdk2410/lowlevel_init.S,前者与平台相关,后者与开发板相关。

    

    第一阶段主要有以下工作:

    1. 设置为SVC模式
    2. 关闭看门狗
    3. 屏蔽所有中断
    4. 初始化SDRAM
    5. 设置栈
    6. 设置时钟
    7. 代码重定位(Flashn==>SDRAM)
    8. 清bss段
    9. 调用statr_armboot

        

 

      第二阶段主要有以下工作: 

                 

 

数据结构与算法学习笔记(10)排序(代码片段)

数据结构与算法学习笔记(10)排序review:文章目录数据结构与算法学习笔记(10)排序一.排序概述1.whatis排序2.排序方法分类学习重点存储结构二.插入排序插入排序的种类1.直接插入排序性能分析2.折半插入排序算法性能分析3.希... 查看详情

第10课struct和union分析(代码片段)

struct的小秘密:空结构体占多大内存呢? 直观的答案有两种:  1、空结构体的大小为0  2、结构体本来就是为了将不同的变量集合在一起使用的,定义空结构体会导致编译错误实例分析:1#include<stdio.h>23structTS456;78in... 查看详情

c++卷积神经网络实例:tiny_cnn代码详解(10)——layer_base和layer类结构分析

  在之前的博文中,我们已经队大部分层结构类都进行了分析,在这篇博文中我们准备针对最后两个,也是处于层结构类继承体系中最底层的两个基类layer_base和layer做一下简要分析。由于layer类只是对layer_base的一个... 查看详情

页面结构分析(代码片段)

1<!DOCTYPEhtml>2<htmllang="en">3<head>4<metacharset="UTF-8">5<title>页面结构分析</title>6</head>7<body>8<header>9<h2>页首部分</h2>10</header>11<section>12<h2>主体部分</h2>13</section>14<f... 查看详情

记一次windows10内存压缩模块崩溃分析(代码片段)

一:背景1.讲故事在给各位朋友免费分析.NET程序各种故障的同时,往往也会收到各种其他类型的dump,比如:Windows崩溃,C++崩溃,Mono崩溃,真的是啥都有,由于基础知识的相对缺乏,分析起来并不是那么的顺利,今天就聊一个Win... 查看详情

androidandroid源码及系统目录结构分析

...环境)/bionicbionicC库(嵌入式专用的c库)/bootable启动引导相关代码/build系统编译规则(基础开发包的配置)/compatibilityAndroid兼容定义文档(cdd)/ctsCompatibilityTestSuite(Googl 查看详情

数据结构与算法排序算法附有详细动画流程分析图(代码片段)

...法排序算法(一)Tips:采用java语言,关注博主,底部附有完整代码,本篇介绍排序算法:冒泡排序选择排序插入排序基数排序排序算法对比算法名称10万次测试效果图冒泡排序10万次/20秒选择排序10万次/3秒插入排序10万次/800毫秒基数排序1... 查看详情

golangwaitgroup源码分析(代码片段)

...g1.10基本一样除了将panic改为了throw之外其他的都一样。源代码位置:sync\waitgroup.go。结构体typeWaitGroupstructnoCopynoCopy//noCopy可以嵌入到结构中,在第一次使用后不可复制,使用govet作为检测使用//位值:高32位是计数器,低32位是goroution 查看详情

《编码-代码分析》代码结构分析

1代码结构分析概述在编写代码时,要求要结构清晰、接口简单。如果代码结构过于复杂,会带来很多问题:代码很难被理解,不方便编写测试用例,容易隐藏错误,出现问题难以定位,修改代码容易产... 查看详情

java虚拟机原理class字节码二进制文件分析二(常量池位置|常量池结构|tag|info[]|完整分析字节码文件中的常量池二进制数据)(代码片段)

文章目录前言一、常量池结构分析1、常量池位置2、常量池结构3、常量池单个常量4、常量池单个常量tag标签二、常量池字节码文件分析0、常量池附加信息1、常量池#1常量分析2、常量池#2常量分析3、常量池#3常量分析4、常量池#4... 查看详情

10linux011子进程创建和多进程调度开销分析(代码片段)

1子进程创建的主要过程(1)执行int80h指令进入系统调用fork();(2)fork()[1]为子进程搜索唯一进程号(PID)和空闲的进程管理结构体(PCB,包含TSS);[2]继承父进程管理结构体部分属性,共享父进程下的... 查看详情

10linux011子进程创建和多进程调度开销分析(代码片段)

1子进程创建的主要过程(1)执行int80h指令进入系统调用fork();(2)fork()[1]为子进程搜索唯一进程号(PID)和空闲的进程管理结构体(PCB,包含TSS);[2]继承父进程管理结构体部分属性,共享父进程下的... 查看详情

王道数据结构与算法之排序算法(代码片段)

这里是【王道计算机考研】数据结构与算法最终篇*★由于数据结构开篇较早,初始是按照【2021】年大纲来记录的笔记,并且中途结合了青岛大学王卓老师的课程来辅助理解,所以大家在浏览时会发现文章标题我已经... 查看详情

golangcond源码分析(代码片段)

...等待和通知。针对Golang1.9的sync.Cond,与Golang1.10一样。源代码位置:sync\cond.go。结构体typeCondstructnoCopynoCopy//noCopy可以嵌入到结构中,在第一次使用后不可复制, 查看详情

[数据结构]排序——八大排序(代码片段)

...言排序①排序的概念②排序运用插入排序①概念②分析③代码分析④代码检验⑤插入排序的利弊希尔排序①概念②分析③代码分析④代码检验查找排序(选择排序)①概念②分析③代码分析④代码检验堆排序①概念②分... 查看详情

arraylist数据结构及主要方法分析(代码片段)

/***Sharedemptyarrayinstanceusedfordefaultsizedemptyinstances.We*distinguishthisfromEMPTY_ELEMENTDATAtoknowhowmuchtoinflatewhen*firstelementisadded.*/privatestaticfinalObject[]DEFAULTCAPACITY_EMPTY_ELEMENTDATA=;可以看出ArrayList的是基于数组的型式实现的1.ArrayList的初始空间大小... 查看详情

『软件工程10』结构化系统分析:数据流图和字典案例分析

结构化系统分析——数据流图和数据字典案例分析一、数据流图案例分析1、案例1:商店业务管理系统2、案例2:学籍管理系统3、案例3:大型企业数据中心二、数据字典案例分析1、案例1:学籍管理系统三、写在... 查看详情

ffmpeg结构体学习:avstream分析(代码片段)

在上文FFmpeg结构体学习(一):AVFormatContext分析我们学习了AVFormatContext结构体的相关内容。本文,我们将讲述一下AVStream。AVStream是存储每一个视频/音频流信息的结构体。下面我们来分析一下该结构体里重要变量的含义和作用。一... 查看详情