随笔分类 - RAM
摘要:Bootloader启动大多数都分为两个阶段。第一阶段主要包含依赖于CPU的体系结构硬件初始化的代码,通常都用汇编语言来实现;第二阶段通常用C语言完成,以便实现更复杂的功能,也使程序有更好的可读性和可移植性。U-Boot的启动代码分布在start.S、low_level_init.S、 board.c和main.c文件中。start.S 是U-Boot整个程序的入口,该文件使用汇编语言编写,不同体系结构的启动代码是不同的;low_level_init.S 是特定开发板的设置代码;board.c 包含开发板底层设备驱动;main.c 是一个与平台无关的代码,U- Boot应用程序的入口在此文件中
阅读全文
摘要:一、ARM 微处理器的指令的分类与格式 ARM微处理器的指令集是加载/存储型的,也即指令集仅能处理寄存器中的数据,而且处理结果都要放回寄存器中,而对系统存储器的访问则需要通过专门的加载/存储指令来完成。ARM微处理器的指令集可以分为跳转指令、数据处理指令、程序状态寄存器(PSR)处理指令、加载/存储指令、协处理器指令和异常产生指令六大类。下面是ARM微处理器的基本指令。助记符 指令功能描述ADC 带进位加法指令ADD 加法指令AND 逻辑与指令B 跳转指令BIC 位清零指令BL 带返回的跳转指令BLX 带返回和状态切换的跳转指令BX 带状态切换的跳转指令CDP 协处理器数据...
阅读全文
摘要:1 thumb指令集概述为兼容数据总线宽度为16位的应用系统,ARM体系结构除了支持执行效率很高的32位ARM指令集以外,同时支持16位的Thumb指令集。Thumb指令集是ARM指令集的一个子集,是针对代码密度问题而提出的,它具有16位的代码宽度。与等价的32位代码相比较,Thumb指令集在保留32位代码优势的同时,大大的节省了系统的存储空间。Thumb不是一个完整的体系结构,不能指望处理器只执行Thumb指令集而不支持ARM指令集。当处理器在执行ARM程序段时,称ARM处理器处于ARM工作状态,当处理器在执行Thumb程序段时,称ARM处理器处于Thumb工作状态(CPSR的T=0:arm
阅读全文
摘要:u-boot源码结构 在顶层目录下有18个子目录,分别存放和管理不同的源程序。这些目录中所要存放的文件有其规则,可以分为3类。 第1类目录与处理器体系结构或者开发板硬件直接相关; 第2类目录是一些通用的函数或者驱动程序; 第3类目录是u-boot的应用程序、工具或者文档。u-boot的源码顶层目录说明目 录 特 性 解 释 说 明board 平台依赖 存放开发板相关的目录文件,每一套板子对应一个目录。如RPXlite(mpc8xx)、 fsc100(arm_cortexa8)、sc520_cdp(x86) 等目录,子目录仅存放与开发板相关的c文件和配置文件, 不包含开发板CPU架构通用的实现文
阅读全文
摘要:BootLoader指系统启动后,在操作系统内核运行之前运行的一段小程序。通过BootLoader,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。通常,BootLoader是严重地依赖于硬件而实现的,特别是在嵌入式世界。因此,在嵌入式世界里建立一个通用的 BootLoader 几乎是不可能的。尽管如此,我们仍然可以对BootLoader归纳出一些通用的概念来,以指导用户特定的BootLoader设计与实现。BootLoader的操作模式一般分为自启动模式和交互模式。自启动模式:BootLoaderd从目标机上
阅读全文
摘要:算术和逻辑指令ADCADDANDBICEORMOVMVNORRRSBRSCSBCSUB指令格式ADC : 带进位的加法(Addition with Carry)ADC{条件}{S} <dest>, <op 1>, <op 2> dest = op_1 + op_2 + carryADC 将把两个操作数加起来,并把结果放置到目的寄存器中。它使用一个进位标志位,这样就可以做比 32 位大的加法。下列例子将加两个 128 位的数。128 位结果: 寄存器 0、1、2、和 3第一个 128 位数: 寄存器 4、5、6、和 7第二个 128 位数: 寄存器 8、9、1
阅读全文

浙公网安备 33010602011771号