2013年9月11日

GNU风格 ARM汇编语法5

摘要: 6、 GNU汇编程序中的常数 十进制数以非0数字开头,如:123和9876; 二进制数以0b开头,其中字母也可以为大写; 八进制数以0开始,如:0456,0123; 十六进制数以0x开头,如:0xabcd,0X123f; 字符串常量需要用引号括起来,中间也可以使用转义字符,如: “You are welcome!\n”; 当前地址以“.”表示,在GNU汇编程序中可以使用这个符号代表当前指令的地址; 表达式:在汇编程序中的表达式可以使用常数或者数值, “-”表示取负数, “~”表示取补,“”表示不相等, 其他的符号如:+、-、*、 /、%、... 阅读全文

posted @ 2013-09-11 18:12 屁屁侠 阅读(823) 评论(0) 推荐(0)

GNU风格 ARM汇编语法4

摘要: 4、GNU汇编语言定义入口点 汇编程序的缺省入口是_start标号,用户也可以在连接脚本文件中用ENTRY标志指明其它入口点。 例:定义入口点 .section .data .section .bss .section .text .globl _start _start: 5、 GNU汇编程序中的宏定义 格式如下: .macro 宏名 参数名列表 @伪指令.macro定义一个宏 宏体 .endm @.endm表示宏结束 如果宏使用参数,那么在宏体中使用该参数时添加前缀“\”... 阅读全文

posted @ 2013-09-11 16:50 屁屁侠 阅读(346) 评论(0) 推荐(0)

GNU风格 ARM汇编语法3

摘要: 3、 GNU汇编程序中的分段 .section伪操作 .section {,””} Starts a new code or data section. Sections in GNU are called .text, a code section, .data, an initialized data section, and .bss, an uninitialized data section. These sections have default flags, and the linker understands the default nam... 阅读全文

posted @ 2013-09-11 16:47 屁屁侠 阅读(392) 评论(0) 推荐(0)

GNU风格 ARM汇编语法2

摘要: 2、GNU汇编程序中的标号symbol(或label) 标号只能由a~z,A~Z,0~9,".",_等(由点、字母、数字、下划线等组成,除局部标号外,不能以数字开头)字符组成。 Symbol的本质:代表它所在的地址,因此也可以当作变量或者函数来使用。 1>段内标号的地址值在汇编时确定; 2>段外标号的地址值在连接时确定。 Symbol的分类:3类(依据标号的生成方式)。 基于PC的标号。基于PC的标号是位于目标指令前的标号或者程序中数据定义伪操作前的标号。 这种标号在汇编时将被处理成PC值加上(或减去)一个数字常量,常用于表示跳转指... 阅读全文

posted @ 2013-09-11 16:31 屁屁侠 阅读(474) 评论(0) 推荐(0)

GNU风格 ARM汇编语法1

摘要: 汇编源程序一般用于系统最基本的初始化:初始化堆栈指针、设置页表、操作 ARM的协处理器等。这些初始化工作完成后就可以跳转到C代码main函数中执行。1、GNU汇编语言语句格式 任何Linux汇编行都是如下结构: [:][} @comment instruction为指令 directive为伪操作 pseudo-instruction为伪指令 : 为标号, GNU汇编中,任何以冒号结尾的标识符都被认为是一个标号,而不一定非要在一行的开始。 comment为语句的注释 下面定义一个"add"的函数,最终返回两个参... 阅读全文

posted @ 2013-09-11 16:21 屁屁侠 阅读(847) 评论(0) 推荐(0)

u-boot中添加自定义命令

摘要: 1.u-boot命令机制u-boot中,每个命令都使用一个struct cmd_tbl_s结构体定义,该定义在include/command.h中实现:struct cmd_tbl_s{ char *name,//u-boot中执行的命令 int maxargs,//命令所能带的参数个数,最少为1 int repeatable,//该命令是否可重复 int (*cmd)(struct cmd_tbl_s *,int,int,char*[]),//指向该命令对应的源函数 char *usage,//命令的使用提示 char *help//在线帮助信息};u-boot中定义的命令能与具... 阅读全文

posted @ 2013-09-11 15:24 屁屁侠 阅读(683) 评论(0) 推荐(0)

基于S3C2440的U-BOOT的start.S分析

摘要: 基于S3C2440的U-BOOT的start.S分析 在了解了ARM相关的汇编指令后,同时结合网上各位大虾的提点开始阅读u-boot的启动代码,现将分析过程记录如下可执行文件及内存映射我们可以把可执行文件分为2种情况:存放态和运行态1.存放态:可执行文件经过烧到存储介质上(flash或磁盘)的分布,此时可执行文件通常有2部分组成,代码段和数据段,代码段又分为可执行代码段 (.text)和只读数据段(.rodata),数据段可以分为初始化数据段(.data)和未初始化代码段(.bss),如下:+-------------+-----------| .bss | (ZI)+----... 阅读全文

posted @ 2013-09-11 14:37 屁屁侠 阅读(514) 评论(0) 推荐(0)

UBoot启动代码第一阶段流程

摘要: http://blog.csdn.net/xautfengzi/article/details/7470134前段时间了看了UBoot的源码,放了一段时间之后忘得差不多了。现做一些注释,方便以后温习。第一阶段代码主要位于start.S中,其流程如下:1.设置中断向量表。2.设置CPU为管理员模式。3.禁狗。4.关中断。5.设置系统时钟。6.跳至cpu_init_crit。(注意bl指令,bl指令是相对跳转,绝对跳转用mov lr,pc。由于此阶段代码是位置无关代码,所以在跳至的细节部分要仔细理解)6.1.使缓存无效。6.2.禁用MMU和缓存。6.3.跳转至lowlevel_init设置内存时钟 阅读全文

posted @ 2013-09-11 09:30 屁屁侠 阅读(456) 评论(0) 推荐(0)

导航