ARM LED裸机实验(gun汇编)
来源:互联网 发布:宿城区网络问政 编辑:程序博客网 时间:2024/04/29 02:08
开发环境OPENJTAG+2440+ECLIPSE
GPxCON每两个位控制一个一个引脚:00输入,01输出,10特殊功能
初始化三个寄存器:rGPxCON,rGPxUP,rGPxDAT
crt0.S
@******************************************************************************@ File:crt0.S@ 功能:LED点灯程序,点亮LED1@****************************************************************************** .text.global _start_start: LDR R0,=0x56000050 @ R0设为GPfCON寄存器。此寄存器 @ 用于选择端口B各引脚的功能: @ 是输出、是输入、还是其他 MOV R1,#0x00000400 STR R1,[R0] @ 设置GPf5为输出口, 位[10:9]=0b01 LDR R0,=0x56000054 @ R0设为GPfDAT寄存器。此寄存器 @ 用于读/写端口f各引脚的数据 MOV R1,#0x00000000 @ 此值改为0x00000020, @ 可让LED1熄灭 STR R1,[R0] @ GPB5输出0,LED1点亮MAIN_LOOP: B MAIN_LOOP
Makefile
CC = arm-elf-gccLD = arm-elf-ldAR = arm-elf-arOBJCOPY = arm-elf-objcopyOBJDUMP = arm-elf-objdumpCFLAGS := -Wall -O2CPPFLAGS := -nostdinc objs := crt0.o @汇编后的文件添加到此处all:led.binled.bin: $(objs)${LD} -Tled.lds -Ttext 0x00000000 -o led_elf $^${OBJCOPY} -O binary -S led_elf $@${OBJDUMP} -D -m arm led_elf > led.dis%.o:%.c${CC} -g -c -o $@ $<%.o:%.S${CC} -g -c -o $@ $<clean:make clean -C librm -f led.bin led_elf led.dis *.o
led.lds
OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")OUTPUT_ARCH(arm)ENTRY(_start)SECTIONS{. =0x00000000; @运行地址内部4Kram. = ALIGN(4);.text :{crt0.o(.text)*(.text)}. = ALIGN(4);.rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) }. = ALIGN(4);.data : { *(.data) }. = ALIGN(4);.got : { *(.got) }. = .;__u_boot_cmd_start = .;.u_boot_cmd : { *(.u_boot_cmd) }__u_boot_cmd_end = .;. = ALIGN(4);__bss_start = .;.bss (NOLOAD) : { *(.bss) . = ALIGN(4); }_end = .;}
如果想要在eclipse下进行仿真调试还需要一个init文件用于初始化内存时钟等
将crt0.s Makefile 和led.lds三个文件放到Linux下即可编译,注意编译前讲Makefile中的elf改为GCC
工程下载地址http://download.csdn.net/detail/wyc7425/6270603
- ARM LED裸机实验(gun汇编)
- ARM裸机程序--GPIO实验 LED(1)
- ARM裸机程序--GPIO实验 LED(2)
- ARM GUN汇编
- GUN ARM 汇编语法
- ARM GUN汇编标准
- GUN ARM的汇编的.balignl 16,0xdeadbeef 实验
- ARM裸机点LED
- tiny6410裸机实验第1章--------------ARM汇编和编程基础(ARM汇编简介)
- ARM裸机实验
- s5pv210裸机实验之led
- ARM LED实验
- 裸机_GPIO实验_汇编
- tiny6410裸机实验第1章--------------ARM汇编和编程基础(C与ARM汇编混合编程)
- gec210 led裸机开发 汇编指令
- GUN汇编格式以及与ARM汇编的转换
- 一.ARM裸机学习之ARM汇编
- arm裸机程序--LED程序设计
- python 装饰器
- 大数加法,华为 程度2
- TreeView图片添加
- 找春天春天的飞鸽传书
- 在排序数组中查找和为给定值的两个数字
- ARM LED裸机实验(gun汇编)
- IOS随笔——页面跳转
- 为什么要用存储过程
- 动态加载JQUERY
- 创建连接
- VS2012编译兼容XP程序的方法
- LINUX定时任务(crontab用法)
- Jump Game
- c++ primer 第二章变量与基本类型学习总结