S5PV210的LED应用(二)

准备分析

        这次用C语言实现LED的控制,要设置堆栈指针,这里的start.S好比是有操作系统的helloworld程序中的crt0.o--是一个启动代码。
        堆栈指针设置到了0xD003_7D80处。

资源工具

        同《  S5PV210的LED应用(一)

着手写程序

@******************************************************************************
@ File:start.S
@ 功能:通过它转入C程序
@******************************************************************************

.text
.global _start
_start:
	ldr     sp, =0xD0037D80     	@ 设置堆栈,以便调用c函数
                                
	bl      main                  @ 调用C程序中的main函数
halt_loop:
	b       halt_loop

@******************************************************************************

/******************************************************************************
/* File: led.c
/* 点亮LED1
/******************************************************************************/

#define 	GPJ2CON 	(*(volatile unsigned long *) 0xE0200280)
#define 	GPJ2DAT		(*(volatile unsigned long *) 0xE0200284)


int main()					
{
	GPJ2CON = 0x00000001;			//设置GPJ2_O为输出
	GPJ2DAT = 0;				      // LED1 on
	while(1);
	return 0;
	
}

Makefile:

led_sp.bin: start.o led.o
	arm-linux-ld -Ttext 0x0 -o led_sp.elf $^
	arm-linux-objcopy -O binary led_sp.elf led_sp.bin
	arm-linux-objdump -D led_sp.elf > led_sp_elf.dis
	gcc mkv210_image.c -o mkv210
	./mkv210 led_sp.bin 210.bin
	
%.o : %.S
	arm-linux-gcc -o $@ $< -c

%.o : %.c
	arm-linux-gcc -o $@ $< -c 

clean:
	rm *.o *.elf *.bin *.dis mkv210 -f

下载运行

        同《  S5PV210的LED应用(一)

运行调试
       
        程序简单,运行正常。

遗留问题
  
        1.了解到iROM的程序已经将看门狗初始化好,就先不自己实现了。日后再说看门狗。


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

袁保康

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值