ARM LED裸机实验(gun汇编)
2013-09-15 14:34
423 查看
开发环境OPENJTAG+2440+ECLIPSE
GPxCON每两个位控制一个一个引脚:00输入,01输出,10特殊功能
初始化三个寄存器:rGPxCON,rGPxUP,rGPxDAT
crt0.S
Makefile
led.lds
如果想要在eclipse下进行仿真调试还需要一个init文件用于初始化内存时钟等
将crt0.s Makefile 和led.lds三个文件放到Linux下即可编译,注意编译前讲Makefile中的elf改为GCC
工程下载地址http://download.csdn.net/detail/wyc7425/6270603
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-gcc LD = arm-elf-ld AR = arm-elf-ar OBJCOPY = arm-elf-objcopy OBJDUMP = arm-elf-objdump CFLAGS := -Wall -O2 CPPFLAGS := -nostdinc objs := crt0.o @汇编后的文件添加到此处 all:led.bin led.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 lib rm -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裸机程序--GPIO实验 LED(2)
- mini2440(4) 我的第一个ARM汇编程序---LED灯裸机硬件控制程序
- ARM裸机程序--GPIO实验 LED(1)
- GUN ARM的汇编的.balignl 16,0xdeadbeef 实验
- mini2440(6) 我的第一个ARM汇编程序---LED灯裸机硬件控制程序(2)
- GUN汇编格式以及与ARM汇编的转换
- arm汇编实验-arm指令集的应用
- ARM GUN汇编
- 【iCore4 双核心板_ARM】例程四:USART实验——通过命令控制LED
- ARM裸机编程需要知道的汇编知识1---可编程逻辑器件
- ARM裸机程序开发——按键控制LED灯
- 《基于Linux嵌入式原理与应用开发》总结_ARM裸机程序_汇编程序
- ARM裸机基础学习--汇编语法和指令
- 1.点亮一盏LED(ARM汇编实现)
- GUN ARM汇编中标号的引用在汇编和C语言中区别
- ARM裸机程序之LED灯
- tiny6410裸机实验第1章--------------ARM汇编和编程基础(C与ARM汇编混合编程)
- ARM 裸机程序学习 01 - 点亮LED
- arm汇编按键控制led灯
- ARM裸机开发(一)LED控制