汇编程序用途
1.在bootloader与内核初始化时,还没有建立C语言运行环境,需要用到汇编程序
2.在对访问效率要求很高的情况下,需要用到汇编程序
ARM汇编分类
1.ARM标准汇编:适合于Windows在平台下使用
2.GUN汇编:适合于Linux在平台下使用
汇编程序框架
完整版:
.section .data 数据段
<初始化数据>
.section bss bss段
<未初始化数据>
.section .text 代码段
.global _start 通过global申明给全局标号,方便被外部引用
_start: 程序入口
<汇编代码>
简化版:
.text
.global _start
_start:
<汇编代码>
建立汇编环境
1.创建汇编文件
vim start.S
2.编写代码
.text
.global _start
_start:
mov r1,#1
mov r2,#2
mov r3,#3
3.编写Makefile
vim Makefile
all:start.o
arm-linux-ld -Ttext 0x30000000 $^ -o start.elf “-Ttext”表示不指定链接器脚本时,直接指定链接地址。”0x30000000”表示2440内存的起始地址。引用要生成elf文件直接下载到内存中调试
%.o:%.S
arm-linux-gcc -g -c $^ -o $@
clean:
rm *.o *.elf
4.连接开发板
JLinkGDBServer 启动后的窗口不要关掉
5.启动eclipse
1.创建工程
file->new->Makefile Project...
2.编译工程
project->build all
3.配置调试
1.debug->debug configurations...
2.添加调试文件 添加elf文件
3.添加调试工具 arm-linux-gdb,同时去掉stop on main选项
4.添加初始化脚本 调试器对处理器进行初始化