FL2440开发板上应用程序-----LED实验

本次试验主要是针对fl2440开发板实验的,实现的功能是实现开发板上的四个LED间隔的闪烁,实验环境,虚拟机,开发板,ubuntu11.04

头函数:int.s主要功能实现main函数的导入

.text
.global _star
_star:
        ldr r0,=0x53000000
        mov r1,#0x0
        str r1,[r0]
        ldr sp,=1024*4
        bl main
loop:
        b loop

main函数:

 

#define GPBCON (*(volatile unsigned *)0x56000010)
#define GPBDAT (*(volatile unsigned *)0x56000014)
#define GPBUP  (*(volatile unsigned *)0x56000018)

///////////////////////////////////////////////////////////////////////////////////////////////////////////

延时函数,主要实现LED间隔闪烁(具体延时时间尽量长点,否则效果不明显)

///////////////////////////////////////////////////////////////////////////////////////////////////////////

void delay(int i)
{
for(;i>0;i--);
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////

int main(void){

        GPBCON = 0xddd7fd; //set GPB0、GPB5、GPB6、GPB8、GPB10 as output

        GPBUP  = 0x00;     //use pull up function
        GPBDAT = (1<<5|1<<6|1<<8|1<<10);
        GPBDAT &= 0xffe;         //shut buzzer 
        while(1) {         //light all leds

                        GPBDAT = (1<<5|1<<6|1<<8|1<<10);
                        delay(300000);
                         delay(300000);
                        GPBDAT &= ~(1<<5|1<<6|1<<8|1<<10);
                        delay(300000);
                         delay(300000);

}

return 0;
}

Makefile文件:

led.bin:int.s led.c
        arm-linux-gcc -g -c -o int.o int.s
        arm-linux-gcc -g -c -o led.o led.c
        arm-linux-ld -Ttext 0x00300000 -g int.o led.o -o led_elf
        arm-linux-objcopy -O binary -S led_elf led.bin
        #arm-linux-gcc -o led.bin int.o led.o
clean:
        rm -rf int.o led.o led_elf

 


 

成功的图片

 

你可能感兴趣的:(FL2440开发板上应用程序-----LED实验)