
嵌入式
qiaojianqj
这个作者很懒,什么都没留下…
展开
-
ARM体系结构与编程-5
GET通常用于包含定义常量的源文件。 例如:GET 2440addr.inc用AREA定义一个段,ENTRY用于指定程序的入口点,END用于告诉汇编器源文件已经结束。 例如:AREA init, CODE, READONLYENTRY......ENDEQU用于定义常量,提醒:在每条ARM指令前必须有空格,但是用EQU定义常量时,必须顶格写,否则编译器报错。LT原创 2014-06-17 15:08:30 · 736 阅读 · 0 评论 -
ARM体系结构与编程
ARM处理器的7中运行模式:usr、fiq、irq、svc、abt、und、sys。ARM处理器共37个寄存器:31个通用寄存器(未备份寄存器R0-R7,在所有模式下指的都是同一个物理寄存器;备份寄存器R8-R12,每个寄存器对应两个不同的物理寄存器。对于R13[sp]和R14[lr]来说,每个寄存器对应6个不同的寄存器;程序计数器R15[pc]),6个状态寄存器(当前程序状态寄存器[原创 2014-06-11 19:43:48 · 892 阅读 · 0 评论 -
ARM体系结构与编程-2
ARM汇编语言程序设计:ARM汇编语言源程序中的语句由指令、伪操作和宏指令组成。ARM指令已经在上一节介绍过了。ARM伪操作和宏指令分类:符号定义伪操作GBLA:声明一个全局的算术变量,并将其初始化为0。语法:GBLA variableGBLL:声明一个全局的逻辑变量,并将其初始化为FALSE语法:GBLL variableGBLS:声明一个全局的串变量,并将其原创 2014-06-11 19:45:05 · 594 阅读 · 0 评论 -
ARM体系结构与编程-3
ARM存储系统:ARM中用于存储管理的系统控制协处理器CP15:包含16个32位寄存器,其编号为0到15。实际上对于某些编号的寄存器可能对应有多个物理寄存器。访问CP15寄存器的指令:MRC、MCR。CP15中的寄存器C0和C1:C0中存放ARM相关的一些标示符;C1是一个控制寄存器,用于禁止/使能MMU、配置存储系统等。例如下面的代码序列使能MMU:MRC P15,0,R原创 2014-06-12 17:28:56 · 932 阅读 · 0 评论 -
ARM体系结构与编程-4
ARM异常中断处理:ARM体系异常中断种类:按中断的处理优先级从高到低依次为:复位、数据访问中止、快速中断请求、外部中断请求、预取指中止、未定义指令、软件中断。ARM体系中的异常中断向量表:0x0 复位0x4 未定义指令0x8 软件中断(SWI)0x0c 预取指中止0x10 数据访问中止0x14 保留0x18 外部中断请求(IRQ)0x1c 快速中断请求(F原创 2014-06-14 18:13:42 · 908 阅读 · 0 评论 -
uboot分析之第一阶段start.S
Uboot分析之start.S:.globl _start_start: b start_code///////////////////////切换到系统模式/////////////////////////////////* * the actual start code */start_code: /* * set the cpu to SVC32 mode原创 2014-11-26 15:00:35 · 466 阅读 · 0 评论 -
uboot分析之Makefile
Uboot分析之Makefile:1.uboot根目录下执行:make smdk2410_configsmdk2410_config : unconfig @$(MKCONFIG) $(@:_config=) arm arm920t smdk2410 samsung s3c24x0 unconfig: @rm -f $(obj)include/config.h $(obj)inclu原创 2014-11-26 14:56:39 · 461 阅读 · 0 评论 -
uboot分析之第二阶段
uboot分析之第二阶段:///////////////////////////////////////各部分初始化入口序列///////////////////////////////////////////////////typedef int (init_fnc_t) (void);init_fnc_t *init_sequence[] = {#if defined(CONFIG_原创 2014-11-27 16:04:44 · 466 阅读 · 0 评论