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

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

关键词:

  U-boot的目的是为了启动内核。

  整个工作流程具体如下:

  1. 读出内核
  2. 启动内核
    1. 设置启动参数
    2. 跳到入口地址    

 

    

     环境变量bootcmd中有两个指令:

   nand read.jffs2 0x30007FC0 kernel; bootm 0x30007FC0 

 

     1.

  其中 nand read.jffs2 0x30007FC0 kernel; 一句,就是读出内核

 

     2.

  此后执行命令 bootm 0x30007FC0 ,即启动内核。

  在do_bootm命令中,会将内核放到正确的加载地址(通过Uimage)。之后再调用do_bootm_linux命令。

  在do_bootm命令中,主要做两个事情。

  一是设置启动参数,二是跳到入口地址。

  启动参数主要有四个:setup_start_tag,setup_memory_tags,setup_commandline_tag,setup_end_tag。当然中间还有其他启动参数。

 

  至此。U-BOOT完毕。

  

  

  

  

2018/11/05-dll和基本dll结构-《恶意代码分析实战》

... 动态链接库(DLL)是使用库来在多个应用程序之间共享代码的Windows特有方式。一个DLL程序是不能独自运行的可执行文件,但它可导出一些被其他应用程序使用的函数。  静态库是在DLL程序引入之前的标准方案,并且仍在使... 查看详情

数据结构和算法分析之线性表(代码片段)

1.结构目录如图:自定义数组越界异常:/***@ClassName:OutOfBoundaryException*@Description:TODO自定义的数组越界的异常*@author萨摩耶*@date2018年4月29日下午3:37:11**/@SuppressWarnings("serial")publicclassOutOfBoundaryExceptionextendsException 查看详情

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

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... 查看详情

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

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

数据结构和算法分析(11)树的简介

...线性访问时间太慢,不宜使用。我们介绍一种简单的数据结构,其大部分操作的平均时间为O(logN)。    (1)学习目标:  我们将要涉及到的数据结构叫做二叉查找树(binarysearchtree)。  我们将要了解如下内... 查看详情

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

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

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

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

面向对象的设计(11)

1.面向对象的分析与设计方法与结构化的分析设计方法有什么不同? 答:结构化系统分析方法是采用自项向下,由外到内,逐层分解\'的思想对复杂的系统进行分解化简,从而有效地控制了系统分析每一步的难度,并运用数据... 查看详情

数据结构与算法分析

1.最大子序列和的问题 输入样例:4-35-2-126-2 输出:11 1.1使用二分法递归求解代码如下(时间复杂度:O(NlogN)):GCC编译C++使用g++命令intgetMax3(inta,intb,intc){intmax=a;if(max<b)max=b;if(max<c)max=c;returnmax;}intgetMaxSum(constvector<in 查看详情

linux0.11启动过程分析(代码片段)

...head.s5、main函数一、GDB调试方案Linux0.11-调试Linux最早期的代码-36Linux内核设计艺术——1.BIOS二、启动分析1、BIOS加载  电脑启动,CPU指向0xFFFFFFF0处,这里正好是系统ROMBIOS存放的地址。即开始执行BIOS指令。为了保持向下... 查看详情

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

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

数据结构和算法leetcode11.盛最多水的容器(代码片段)

截止到目前我已经写了600多道算法题,其中部分已经整理成了pdf文档,目前总共有1000多页(并且还会不断的增加),大家可以免费下载下载链接:https://pan.baidu.com/s/1hjwK0ZeRxYGB8lIkbKuQgQ提取码:6666视频分... 查看详情

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

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

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

在上文FFmpeg结构体学习(六):AVCodecContext分析我们学习了AVCodec结构体的相关内容。本文,我们将讲述一下AVIOContext。AVIOContext是FFMPEG管理输入输出数据的结构体。下面我们来分析一下该结构体里重要变量的含义和作用。一、源码整... 查看详情

java集合与数据结构排序(代码片段)

Java集合与数据结构排序概念插入排序直接插入排序代码实现性能分析希尔排序代码实现性能分析选择排序直接选择排序代码实现性能分析堆排序代码实现性能分析交换排序冒泡排序代码实现性能分析快速排序代码实现性能分析... 查看详情

java集合与数据结构排序(代码片段)

Java集合与数据结构排序概念插入排序直接插入排序代码实现性能分析希尔排序代码实现性能分析选择排序直接选择排序代码实现性能分析堆排序代码实现性能分析交换排序冒泡排序代码实现性能分析快速排序代码实现性能分析... 查看详情

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

在上文FFmpeg结构体学习(四):AVFrame分析我们学习了AVStream结构体的相关内容。本文,我们将讲述一下AVCodec。AVCodec是存储编解码器信息的结构体。下面我们来分析一下该结构体里重要变量的含义和作用。一、源码整理首先我们先... 查看详情

zepto源码分析-代码结构转载

...相当复杂,所以决定从zepto开始,分析一个成熟的框架的代码结构及执行步骤。网上也有很多zepto的源码分析,有的给源码添加注释,有的谈与jQuery的不同,但是都没有系统的讲解zepto框架的代码结构及初始化Zepto对象的过程。准... 查看详情