xloader】的更多相关文章

[1],先看一下整个系统的结构(软件是灵魂,硬件是驱体,再强大的灵魂力若没有躯体终将是游魂野鬼,再强壮的驱体若没有灵魂终将是植物人) 结构 作用 备注 硬件 一切软件的载体   xloader 引导uboot uboot 启动加载或下载linux kernel   linux kernel OS,承载android   android OS,承载APP   [2],为什么需要xloader? cpu上电后会自动加载一小段程序到内部ram中运行,内部的ram资源很小,一般只有几十k的空间,比如我现…
Building bootloader and kernel Bootloader Startwith building the bootloader. To learn more about the bootloader process or toclarify details, lookin here Usethe link above for commands on how to build u-boot and MLO. Use the parametersprovided below…
在开始看Xloader_Entry的代码之前,我想先总结一下从芯片上电到开始运行Xloader的代码的过程,这是我目前理解的一个过程,可能有所出入,待以后继续完善. 当 系统上电之后,首先会将PC寄存器设置成BootRom里面的代码对应的一个地址.BootRom是芯片内部集成的一块很小的存储区,里面一般会固化一段 启动代码.至于BootRom所占用的地址空间,每个芯片的定义可能会有所不同,具体的可以参考芯片的用户手册中的Memory Map部分的说明.在spearplus中,BootRom位于从…
我们已经看完了XLOADER_ENTRY里调用的前两个标号的代码,分别是sys_init和ddr_init.对于一个嵌入式系统来说,这两 个部分的代码是在一开始就执行的,至少是在从bootrom里面的firmware出来之后最初执行的代码,也是我们自己能够控制的最初的代码(在 bootrom里面的firmware是在芯片出厂的时候就固化在芯片里面的了,一般情况下,我们是无法改变里面的代码的). 正因为如 此,对于sys_init和ddr_init来说,需要做很多与系统底层硬件相关的初始化工作.而…
这里我们来看XLOADER_ENTRY中调用的第二个标号ddr_init处的代码,这部分代码的作用是对外部内存SDRAM进行初始化,在我 spearplus开发板中,使用的是DDR SDRAM.在调用ddr_init之前,外部内存是不能用的,因为外部内存的时钟以及控制寄存器都还没有初始化,因此此时只有芯片内部的SRAM以及在 sys_init的时候已经初始化了的Serial Flash.UART以及gmac是可用的. 而ddr_init的作用就是根据板子 使用的外部SDRAM来对外部内存进行初始…
上一篇文章对XLOADER_ENTRY进行了分析,看到其中调用的第一个标号就是sys_init,本文就对这个标号对应的代码段进行粗略的分析,这里我也还有好多没有搞明白的,就先留着,日后慢慢明白,先把自己目前能够看明白的东西记下来. 另外,需要说明的是,像sys_init以及后续还要讲的ddr_init之类的代码是与体系结构高度相关的,由于我的文章针对的是SPEArPlus开发板的,因此,上面提到的所有寄存器的地址以及功能说明要需要参考相应的user manual文档. 与本文代码对应的文档是SP…
本文中的所有代码版本都是基于ST的SpearPlus开发板的. xloader是在系统上电之后,执行完ROM中的frimware后最先开始执行的用户程序,它的体积很小,执行的功能也很简单,主要是对系统时 钟以及外部SDRAM进行初始化,初始化完成之后就检查Flash中的uboot image是否准备好,如果准备好了就将Flash中的uboot image根据image header中指定的load address加载到外部SDRAM中,然后就跳转到uboot执行代码. 这里,我试图从头开始,在源…
根据上文中获得的线索,本文分析init.S中的XLOADER_ENTRY. 在init.S中,定义了好多与平台相关的寄存器地址宏以及好多其他函数,我们在用到的时候再回过头来分析,这里,我们只看其中的一个函数(其实是一个标号,我们暂且称之为函数也无妨)--XLOADER_ENTRY. 好了,废话不多说,来贴代码:  80 .global XLOADER_ENTRY  81 XLOADER_ENTRY:  82    83 /*;   IMPORT sys_init    */  84    BL…
我的机器是Nexus 5 一. 安装驱动 如何进入fastboot模式 1. 拔掉数据线,将手机关机 2. 关机后同时按住[音量减小键]和[开关机键]即可进入Fastboot模式 开启usb调试  --> 勾选usb调试 adb devices可以看到设备名即可 二. 下载刷机包 这是Android 4.4的刷机包,大家可以根据需求自己寻找指定的版本的刷机包 https://dl.google.com/dl/android/aosp/hammerhead-kot49h-factory-02006…
一,安装环境: sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev lib32z1 lib32ncurses5 lib32bz2-1.0 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32readline-gplv2-dev lib32z-dev libgl1-mesa-dev g++-multil…