ARM裸机——001汇编程序点亮LED1

本人使用的是韦东山老师的JZ2440开发板

点亮LED1,原理图如下:

1,看原理图可知LED1对应GPF4;

ARM裸机——001汇编程序点亮LED1_第1张图片

2, 看上图可知LED1为低电平使能:GPF4 = 0,LED1 亮;GPF4 = 1,LED1 灭;

3,查看数据手册:

 ARM裸机——001汇编程序点亮LED1_第2张图片

  ARM裸机——001汇编程序点亮LED1_第3张图片

  ARM裸机——001汇编程序点亮LED1_第4张图片

   设置GPFCON[9:8] = 0b01时,GPF4配置为输出;(把0x100写入GPFCON,即写到地址0x56000050上)

   设置GPFDAT[4] = 0时,GPF4输出低电平,LED1点亮(把0写到地址0x56000054上)

 

汇编源代码如下led_on.S:

/*
 * 点亮LED1: gpf4
 */

.text
.global _start

_start:

/* 配置GPF4为输出引脚
 * 把0x100写到地址0x56000050
 */
	ldr r1, =0x56000050
	ldr r0, =0x100	/* mov r0, #0x100 */
	str r0, [r1]


/* 设置GPF4输出高电平 
 * 把0写到地址0x56000054
 */
	ldr r1, =0x56000054
	ldr r0, =0	/* mov r0, #0 */
	str r0, [r1]

	/* 死循环 */
halt:
	b halt

Makefile文件如下:

all:
	arm-linux-gcc -c -o led_on.o led_on.S
	arm-linux-ld -Ttext 0 led_on.o -o led_on.elf
	arm-linux-objcopy -O binary -S led_on.elf led_on.bin
clean:
	rm *.bin *.o *.elf

make得到led_on.bin,烧写到nandflash,LED1亮。

你可能感兴趣的:(嵌入式linux学习笔记)