c语言温度高于40度点亮led,嵌入式Linux学习(四)用c语言点亮LED

硬件初始化

1、关闭看门狗

2、初始化时钟

3、初始化SDRAM

启动文件需要完成的任务

1、设置main函数的返回地址

2、调用main函数

3、设置栈(将sp指针指向某块内存)

4、清理工作

自行编写启动文件

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

.text

.global _start

_start:

LDR R0,=0x53000000 @WATCHDOG寄存器地址

MOV R1,#0x0

STR R1,[R0] @写入0,禁止看门狗,防止CPU不断重启

LDR sp,=1024*4 @设置堆栈

BL main @调用c程序中的main函数,并将返回地址保存在lr寄存器中

halt_loop:

B halt_loop @死循环

编写.c文件

/*

* p =( unsigned long *)0x56000050

* *p = (*(unsigned long *)0x56000050) 取得改地址处的值

* volatile告诉编译器不要优化该变量

*/

#define GPFCON (*(volatile unsigned long *)0x56000050)

#define GPFDAT (*(volatile unsigned long *)0x56000054)

int main()

{

GPFCON = 0x00000100; //设置GPF4为输出口

GPFDAT = 0x00000000; //GPF4输出0,LED1点亮

return 0;

}

编写makefile文件

led_on.bin :led.c start_up.s

arm-linux-gcc -g -c -o led_on.o led.c

arm-linux-gcc -g -c -o start_up.o start_up.s

arm-linux-ld -Ttext 0x0000000 -g led_on.o start_up.o -o led_on_elf

arm-linux-objcopy -O binary -S led_on_elf led_on.bin

clean:

rm -f led_on.bin led_on_elf *.o

烧写程序验证程序

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值