嵌入式课程–––GPIO控制实验

实验目的

通过控制s5p6818的GPIPE_13的引脚控制LED发光二极管闪烁

实验环境准备

实验材料:GEC6818实验箱、电脑、
实验环境:VMware下Linux系统,windows系统、secureCRT平台

第一步:测试三个系统是否连通

  1. 禁用pc机无线网卡、关闭所有防火墙
  2. 设置pc机的IP地址(192.168.1.160)、子网掩码(255.255.255.0)、网关(192.168.1.1)
  3. 实用串口线和网线连接pc机与实验箱,开启secureCRT,然后开启实验箱并在secure CRT下按空格键进入uboot模式
  4. 设置实验箱下uboot模式的IP地址

进入到u boot模式下,
使用printenv打印所有环境变量

注意,如果存在gateway,要删除它,因为这可能是误操作的结果,实际上是没有这个变量的,使用命令进行删除:
setenv gateway

设置实验箱IP地址、网关、服务器IP地址(这里以虚拟机的Linux系统为服务器,因为等会会通过tftp服务将虚拟机编译好的文件传到实验箱中):
setenv ipaddr 192.168.1.180 setenv gatewayip 192.168.1.1 setenv serverip 192.168.1.170

  1. 在虚拟机下,设置IP地址,使之与pc机、实验箱处于同一网段下:
ifconfig eth0 192.168.1.170
  1. 三个端相互ping,看是否能ping成功,一定要 ping成功才能进行下一步
    在这里插入图片描述

第二步:编写并编译LedDemo.S文件

  1. 在虚拟机中在/home下创建一个目录LedDemoS
cd /home
mkdir LedDemoS
  1. 进入到LedDemoS目录
cd LedDemoS
  1. 编写LedDemo.S文件
.globl _start

_start:
	// 设置GPIOE[13]为输出功能
	ldr r1, =0xC001E004 					
	ldr r0, =0x2000
	str r0, [r1]

	mov r2, #0x100
led_blink:
	// 设置GPIOe的bit[13],使GPIOE_13引脚输出低电平,LED亮
	ldr r1, =0xC001E000 					
	mov r0, #0
	str r0, [r1]

	// 延时
	bl delay							

	// 设置GPIOe的bit[13],使GPIOE_13引脚输出高电平,LED灭
	ldr r1, =0xC001E000					
	mov r0, #0x2000
	str r0, [r1]

	// 延时
	bl delay	

	sub r2, r2, #1
	cmp r2,#0
	bne led_blink


halt:
	b halt


delay:
	mov r0, #0xF0000000
delay_loop:
	cmp r0, #0
	sub r0, r0, #1
	bne delay_loop
	mov pc, lr
  1. 编写Makefile文件
led.bin: LedDemo.o 
	arm-linux-ld -Ttext 0x40000000 -o led.elf $^
	arm-linux-objcopy -O binary led.elf led.bin
	arm-linux-objdump -D led.elf > led_elf.dis
%.o : %.S
	arm-linux-gcc -o $@ $< -c

clean:
	rm *.o *.elf *.bin *.dis
  1. make一下:
make
  1. 在当前目录找到刚才生成的led.bin文件,并复制到tftp下,以作者目录为例:
cp led.bin /tftp

第三步:将led.bin文件传到实验箱当中,并测试运行

  1. 在secureCRT里的uboot模式下,输入命令:
tftp 0x40000000 led.bin
  1. 执行程序:
go 0x40000000

然后看到实验箱上对应的LED灯D7有规律闪烁

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值