s3c2410不带系统的硬件测试程序(LED控制)
2016-12-02 来源:eefocus
s3c2410的LED端口定义如下;
GPF7 GPF6 GPF5 GPF4
nLED_8 nLED_4 nLED_2 nLED_1
GPF的IO端口控制寄存器包括:GPFCON(0x56000050)、GPFDAT(0x56000054)、GPFUP(0x56000050),分别是GPF端口控制寄存器、数据寄存器、上拉使能寄存器。
对四个LED灯的汇编控制程序如下:
area init,code,readonly
;熄灭D9-D12
ldr r0,=0x56000050
mov r1,#0x00005500 ;output
str r1,[r0]
ldr r0,=0x56000054
mov r1,#0x000000f0
str r1,[r0]
loop
b loop
end
C语言程序如下:
控制LED显示的C代码必需要由汇编跳转来执行
汇编程序如下:
“init.s”
import Main
area init,code,readonly
entry
bl Main
end
C程序如下
“main.c”
#define GPFCON (*(volatile unsigned long*)0x56000050)
#define GPFDAT (*(volatile unsigned long*)0x56000054)
int Main()
{
GPFCON = 0x00005500;
GPFDAT = 0x000000f0;
while(1);
return(0);
}
注意事项:测试程序必须有一个死循环代码。否则程序运行完会继续往下去取指,造成未定义指令中止。(这些程序在CodeWarrior中编译通过,并在ARM上成功运行)
上一篇:S3C2440上触摸屏驱动
下一篇:ARM的中断产生到处理过程