s3c2410不带系统的硬件测试程序(LED控制)
扫描二维码
随时随地手机看文章
s3c2410的LED端口定义如下;
GPF7GPF6GPF5GPF4
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”
importMain
area init,code,readonly
entry
blMain
end
C程序如下
“main.c”
#define GPFCON (*(volatile unsigned long*)0x56000050)
#define GPFDAT (*(volatile unsigned long*)0x56000054)
intMain()
{
GPFCON = 0x00005500;
GPFDAT = 0x000000f0;
while(1);
return(0);
}
注意事项:测试程序必须有一个死循环代码。否则程序运行完会继续往下去取指,造成未定义指令中止。(这些程序在CodeWarrior中编译通过,并在ARM上成功运行)