本人菜鸟,刚刚开始学习ARM9,用的是TQ2440板子。
常常看到别人把自己学习的过程记在博客上,我觉得这个想法不错,有助于学习,所以也想这么做。
这样一来,不仅可以记录学习过程,以后可以看看。
还有就是想让高手看到,对我的不足可以指点下,让我能学到更多。
下面是程序。
不知道为什么,ARM9要用汇编才能进入C语中main,这段汇编代码是参考别人的,主要意思就是进入C语言
LED_init.s
AREA init, CODE, READONLY
start
import main
b main
end
头文件,宏定义一些寄存器
def.h
#ifndef __DEF_H__
#define GPBCON *((volatile unsigned int*) 0x56000010)
#define GPBDAT *((volatile unsigned int*) 0x56000014)
#define WTCON *((volatile unsigned int*) 0x53000000)
#endif
主函数文件
LED_mian.c
#include "def.h"
void delay(int a)
{
while (a--);
}
main()
{
GPBCON = 0x15400;
WTCON = 0; //这句话的意思是让看门狗无效,一开始我没想到,导致跑流水灯的时候过一定的时间就又重新复位,害得我不知道问题在哪,
// 百度了以后才发现有看门狗这东西,然后把这行添上,程序就不再自动复位了。
while (1)
{
int i;
int temp = 0x1e0;
for (i=0; i<16; i++)
{
GPBDAT = temp;
temp = temp - 0x20;
delay(100000);
}
}
}