新闻中心

EEPW首页>嵌入式系统>设计应用> mini2440简单的裸机led流水灯代码

mini2440简单的裸机led流水灯代码

作者: 时间:2016-11-11 来源:网络 收藏
MINI2440简单的裸机led流水灯代码

ADS配置target setting的post-liner为ARM formELF

本文引用地址://m.amcfsurvey.com/article/201611/316979.htm

language setting的ARM Assembler和ARM C Compile的Target中的Architecture or processor设置为arm920T

linker中的ARM linker中output--simple image--RO base设置为0x30000000;options--Image entry point设置为0x30000000;layout--object/symbol设置为Init.o(就是汇编的名字改了后缀.o文件名称)

汇编代码:Init.s

IMPORT main

AREA Init,CODE,READONLY

CODE32

ldr r0,=0x53000000

mov r1,0x0

str r1,[r0]

ldr sp,=1024*4

bl main

END

流水灯代码led.c

#define GPBCON (*(volatile unsigned long *)0x56000010

#define GPBDAT (*(volatile unsigned long *)0x56000014

void delay(int m)//延时子程序

{

int i,j;

for(i=m;i>0;i--)

{

for(j=0;j<10000);j );

}

}

int main()

{

GPBCON=GPBCON&(0x00<<10)|(0x55<<10);//配置GPB相应的端口为输出

while(1)

{

GPBDAT=GPBDAT&(0x0<<5)|(0xE<<5);//设置点亮第一个led灯

delay(100);

GPBDAT=GPBDAT&(0x0<<5)|(0xD<<5);//...依次

delay(100);

GPBDAT=GPBDAT&(0x0<<5)|(0xB<<5);

delay(100);

GPBDAT=GPBDAT&(0x0<<5)|(0x7<<5);

delay(100);

}

}

这样就实现了流水灯的简单裸机运行,其实汇编代码还可以删除一些程序,结果可以正常运行,我不知道未来后果会怎么样,大家可以检查,若是你知道不能删除的原因,请留言让我也学习一下。那么接下来,什么用led实现加法,减法等等,都是比较轻松的了。



关键词:mini2440led流水

评论


技术专区

关闭