- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
5 实验五 GNU-ARM裸奔程序设计实验
实验五 GNU-ARM裸奔程序设计
【实验目的】
1 了解在linux下编写ARM裸奔程序的步骤
2 掌握GNU下arm汇编程序设计的方法
3 了解链接脚本的作用
4 了解arm-linux-objdump, arm-linux-objcopy等工具的使用方法
【实验内容】
1 编写汇编程序led.s--闪烁开发板上的LED灯
2 编写链接脚本
3 编写一个包含多文件的Makefile。
4 烧写到开发板中,运行查看情况
【实验步骤】
1 LED灯的裸奔程序
新建一个项目目录:
$ mkdir led
$ cd led
(2)编写汇编程序文件
ed.s 内容如下:
.text
.global _start
_start:
b reset
b .
b .
b .
b .
b .
b .
b .
reset:
@close dog
ldr r0,=0 mov r1,#0
str r1,[r0]
@ldr sp,=(04096)
.extern _delay
ldr r0,=0x2fff
bl _delay
@set gpf4,5,6,7 output
ldr r0,=0
ldr r1,=0x5500
str r1,[r0]
@set up off
ldr r0,=0 ldr r1,=0xf0;
loop:
ldr r0,=0 ldr r1,=0x0
str r1,[r0]
ldr r0,=0x2ffff
bl _delay
ldr r0,=0 ldr r1,=0xff
str r1,[r0]
ldr r0,=0x2ffff
bl _delay
b loop
b .
.end 编写另一汇编文件:
gedit delay.s
.global _delay
.text
_delay:
sub r0,r0,#1
cmp r0,#0x0
bne _delay
mov pc,lr
.end 编写连接脚本
OUTPUT_FORMAT(elf32-littlearm)
OUTPUT_ARCH(arm)
ENTRY(_start)
SECTIONS
{ . = 0
.text :{
led.o(.text)
*(.text)
}
.data :{
*(.data)
}
.bss :{
*(.bss)
}
} ()编写Makefile
led.bin:delay.o led.o led.lds
arm-linux-ld -Tled.lds delay.o led.o -o led.elf
arm-linux-objcopy -O binary led.elf led.bin
delay.o:delay.s
arm-linux-gcc -c delay.s -o delay.o
led.o:led.s
arm-linux-gcc -c led.s -o led.o
()编译,得到led.bin
烧写到开发板中,查看LED灯
文档评论(0)