为了学习嵌入式,新买tq2440开发板,并决定从裸机驱动开始学起。一开始,先写个简单的led实验。
首先,为了完成跑马灯的实验,我们需要从硬件资料上,了解以下内容:
1. tq2440上有4个led灯,分别接GPIO端口的GPB5、GPB6、GPB7以及GPB8上面。
2. 以GPIO端口portB(GPB)为例,I/O端口主要涉及三个寄存器,GPBCON、GPBDAT和GPBUP。其中,GPBCON定义引脚的功能 (输入、输出或其他)。GPBDAT定义数据。GPBUP为上拉寄存器。
3. GPBCON每2位表示一个引脚的功能,00为输入,01为输出。GPB5——GPB8分别对应10——17位。
4. GPBDAT位为0时。对应的LED亮起。
然后,我们需要了解。嵌入式裸机编程不同于PC编程的地方。
裸机上无法直接运行c语言程序,所以我们需要一个由汇编代码编写的启动代码。在这里,我们暂不考虑具体的启动代码,采用tq2440自带的启动代码。
最后,拟定我们的程序流程。
1. 初始化GPBCON,使GPIO的GPB5——GPB8为输出端口。
2. 设定变量light,初始化第5位为1(0位开始)。
3. 循环移位light,将其值赋给GPBDAT,改变该寄存器的值。从而改变led灯的显示。
代码如下: