10th.U-boot——代码结构分析(一)

简介

    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

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

                 

时间: 2024-10-24 09:27:39

10th.U-boot——代码结构分析(一)的相关文章

nova boot代码流程分析(三):nova与neutron的交互(2)

继续<nova boot代码流程分析(三):nova与neutron的交互(1)>的分析. #/nova/virt/libvirt/driver.py:LibvirtDriver # NOTE(ilyaalekseyev): Implementation like in multinics # for xenapi(tr3buchet) def spawn(self, context, instance, image_meta, injected_files, admin_password,

nova boot代码流程分析(五):VM启动从neutron-dhcp-agent获取IP与MAC

1.   network和subnet创建代码流程 [[email protected] ~(keystone_user1)]# neutron net-create demo-net [[email protected] ~(keystone_user1)]# neutron subnet-create  demo-net 1.1.1.0/24 --name demo-subnet --gateway 1.1.1.1 --enable_dhcp true 这里,我们主要分析上面两个命令的代码流

nova boot代码流程分析(二):nova-scheduler主机选择

本篇文章将分析nova-scheduler服务在创建VM时如何进行主机的选择.完整来说,nova-scheduler主机选择的过程主要分为以下几个阶段: 1. nova.scheduler.rpcapi.SchedulerAPI发出RPC请求到nova.scheduler.manager.SchedulerManager. 2. 从SchedulerManager到调度器(类SchedulerDriver). 3. 从SchedulerDriver到Filters. 4. 从Filters到权重

nova boot代码流程分析(一):Claim机制

nova boot创建VM的流程大致为: 1. novaclient发送HTTP请求到nova-api(这里内部细节包括keystone对用户的验证及用户从keystone获取token和endpoints等信息,具体参考<keystone WSGI流程>). 2. nova-api通过rpc调用到nova-conductor. 3. nova-conductor调用rpc进入nova-scheduler进行compute节点的选择,nova-scheduler将compute节点选择的信息的

boot代码init.s

bootloader启动代码 ;========================================= ; NAME: 2440INIT.S ; DESC: C start up codes ; Configure memory, ISR ,stacks ; Initialize C-variables ; HISTORY: ; 2002.02.25:kwtark: ver 0.0 ; 2002.03.20:purnnamu: Add some functions for testi

requirejs代码结构分析

一.函数入口函数. req = requirejs = function (deps, callback, errback, optional) { //Find the right context, use default var context, config, contextName = defContextName; //“_” //deps 是对象的话,则可能是config. // Determine if have config object in the call. if (!is

jquery源码解析:代码结构分析

本系列是针对jquery2.0.3版本进行的讲解.此版本不支持IE8及以下版本. (function(){ (21, 94)     定义了一些变量和函数,   jQuery = function(){}; (96,283)   给jQuery对象添加一些属性和方法(实例方法,通过$("div")这类的jQuery实例对象来调用) (285,347)   extend : jQuery的继承方法 (349,817)   jQuery.extend():扩展一些工具方法(静态方法,直接通

Hadoop IPC的代码结构分析

与IPC相关的代码在org.apache.hadoop.ipc包下.共七个文件,其中4个辅助类: RemoteException Status VersionedProtocol ConnectionHeader 主要实现类3个: Client Server RPC 客户端Client: 如上图: 与IPC连接相关的 Client.Connection Client.ConnectionId ConnectionHeader 与远程调用Call相关的 Client.Call Client.Par

Android高仿雅虎天气(两)---代码结构分析

版本已经升级到1.0.1 源码地址: GitHub:https://github.com/way1989/WayHoo OsChina:http://git.oschina.net/way/WayHoo 本例使用了6个库代码和1个主工程代码. 一.6个库代码如下图所示: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2F5X3BpbmdfbGk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolv