目录
12.1GPIO简介
GPIO(General-purpose input/output)即通用型输入输出,GPIO可以控制连接在其之上的引脚实现信号的输入和输出芯片的引脚与外部设备相连,从而实现与外部硬件设备的通讯、控制及信号采集等功能。
LED实验步骤
1. 通过电路原理图分析LED的控制逻辑
2. 通过电路原理图查找LED与Exynos4412的连接关系
3. 通过数据手册分析GPIO中哪些寄存器可以控制LED
4. 通过程序去操控对应的寄存器完成对LED的控制
12.2GPIO寄存器分析
LED实验步骤
1. 通过电路原理图分析LED的控制逻辑 - 高电平点亮、低电平熄灭
2. 通过电路原理图查找LED与Exynos4412的连接关系 - GPX2_7
3. 通过数据手册分析GPIO中哪些寄存器可以控制LED - GPX2CON、GPX2DAT
4. 通过程序去操控对应的寄存器完成对LED的控制
12.3GPIO编程及LED实验
创建.s文件
.text
_start:
MAIN:
BL LED_CONFIG
LOOP:
BL LED_ON
BL DELAY
BL LED_OFF
BL DELAY
B LOOP
LED_CONFIG:
LDR R2, =0x11000c40
LDR R1, =0x10000000
STR R1, [R2]
MOV PC, LR
LED_ON:
LDR R2, =0x11000c44
LDR R1, =0x00000080
STR R1, [R2]
MOV PC, LR
LED_OFF:
LDR R2, =0x11000c44
LDR R1, =0x00000000
STR R1, [R2]
MOV PC, LR
DELAY:
LDR R1, =100000000
L:
SUB R1, R1, #1
CMP R1, #0
BNE L
MOV PC, LR
STOP:
B STOP
.end
vi Makefile:
TARGET = led-asm
CROSS_COMPILE = arm-none-linux-gnueabi- //编译器
CC = $(CROSS_COMPILE)gcc //
LD = $(CROSS_COMPILE)ld
OBJCOPY = $(CROSS_COMPILE)objcopy
all:
$(CC) -c $(TARGET).s -o $(TARGET).o
$(LD) $(TARGET).o -Ttext 0x40008000 -o $(TARGET).elf //-Ttext 0x40008000重定向代码在内存起始地址
$(OBJCOPY) -O binary -S $(TARGET).elf $(TARGET).bin
clean:
rm $(TARGET).o $(TARGET).elf $(TARGET).bin
将led-arm.bin文件放到Windows,打开SecureCRT软件,
作业
1.使用汇编语言实现LED3闪烁实验
见上