《嵌入式linux应用程序开发完全手册》LED裸板硬件编程(C语言) 学习笔记

2019-07-13 07:24发布

《嵌入式linux应用程序开发完全手册》LED裸板硬件编程(C语言) 学习笔记         刚刚学习ARM的朋友,我建议先用汇编写一段时间的程序,对基本的ARM汇编有了一个基本的掌握后再改用C语言+汇编的方式进行程序设计,我们先来看一下C语言执行的过程,主要关注它的执行需要的条件和环境,然后根据这些环境在我们的裸板上搭建这些环境,让我们的C语言可以执行。
     C语言执行的第一条指令其实并不是main函数,在生成一个C程序的可执行文件时,编译器通常会在我们的代码中加上几个称之为启动文件的的代码--- crt1.o,crti.o,crtend.o,crtn.o等,它们是标准的库文件,这些代码用来设置C程序运行所需的堆栈等,完成一些环境设置后,再调用main函数,生成的这些文件信赖于操作系统,在裸板上没有这些的编译器,这些代码根本无法运行,所以需要为我们真正的C语言写一代码环境配置的代码。以下代码都是简单的几行,就不作详细分析。
  设置堆栈的程序如下:          点亮LED的C语言 代码如下:       上面实现了依次点亮一个LED1~LED4的功能,如果你感觉这一个灯一个一个地孤单的闪烁太寂寞,那现在我们将实现一个类似跑马灯的功能,让LED1~4按计数方式循环点亮,规律如下: 以下为1的位被点亮,由于LED1~4与I/O的连接如关系为led1~4连接GPB5~8,故规律如下示。   于是这样一个类似跑马灯的程序就自然而然的出来了:     Makefile文件如下:
调试程序的方法见前面所述。