L9-D12GPIO实验

该文详细介绍了GPIO的概念,包括其在芯片中的作用以及如何通过GPIO寄存器控制LED。具体步骤涉及电路原理图分析,找到LED与Exynos4412的连接,以及通过GPX2CON和GPX2DAT寄存器控制LED的开关。文中还给出了一个使用汇编语言实现LED闪烁的程序示例,并提供了Makefile进行编译。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

12.1GPIO简介

12.2GPIO寄存器分析

12.3GPIO编程及LED实验

作业


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闪烁实验

见上

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值