GEC6818,s5p6818 第一个裸机程序(烧写为重)led和蜂鸣器 tftp和nfs传输

开发环境

粤嵌的GEC6818
ubuntu:16
gcc version 4.5.1 (ctng-1.8.1-FA)
在测试中发现在 start.S (用来启动关看门够狗,设置寄存器建立链接,再跳转到main.c)之前还有一步让sd卡和板子适配
这样裸机才能在开发板上跑,所以这里使用网络tftp传递我们的裸机程序
所以这篇文章分析的

程序分析

小意思点灯

在这里插入图片描述
上图中,开发板上电后,无需按任何按键,VCC3P3_SYS 会产生 3.3V 的电压,其中
D26 无需 GPIO 控制,为常亮状态,即我们所说的电源指示灯。对应 GPIO 如下:
LED 指示灯 GPIO 口
D22 GPIO_B26
D23 GPIO_C11
D24 GPIO_C7
D25 GPIO_C12
当对应的 GPIO 口为低电平时,相应的 LED 灯被点亮,反之会灭

所以就是作为输出端

查看我们的datasheet
先设置使能(GPIO_OUTENB) 再设置 引脚作为输出
在这里插入图片描述

程序的烧写

把程序编译----->保证有个gcc就行了

下面给程序和makefile
在这里插入图片描述

进行烧录

当文件在linux里的tftp文件夹时,开发板启动uboot
设置好 ipaddr ,serverip
在这里插入图片描述

1.用tftp进行传输

ping通虚拟机
在这里插入图片描述
用tftp 传输文件到 内存里 执行go命令 不要烧到uboot在的地方

tftp 0x41000000 led.bin
go 0x41000000

输入fastboot 就可知道 程序烧在bootloader以下就行
在这里插入图片描述

2.用nfs进行传输

让板子ping通主机
在板子里面的nfs_root 目录下存放我们的bin文件

nfs 32000000 192.168.1.123:/work/nfs_root/key.bin; bootm 32000000

源码

ledDemo.S

.globl _start

_start:
	//设置蜂鸣器
	ldr r1, =0xC001C004 					
	ldr r0, =0x4000
	str r0, [r1]
	// 设置GPIOE[13]为输出功能
	ldr r1, =0xC001E004 					
	ldr r0, =0x2000
	str r0, [r1]
	
	//ldr r1, =0xC001C004
	//ldr r0, =0x21180
	//str r0, [r1]

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

	// 延时
	bl delay							

	// 设置GPIOe的bit[13],使GPIOE_13引脚输出高电平,LED灭
	ldr r1, =0xC001E000					
	mov r0, #0x2000
	str r0, [r1]
	
	ldr r1, =0xC001C000 					
	ldr r0, =0x4000
	str r0, [r1]
	
	//ldr r1, =0xC001C000 
	//ldr r0, =0x21180
	//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


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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值