微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > mini2440简单的裸机led流水灯代码

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

时间:11-11 来源:互联网 点击:
MINI2440简单的裸机led流水灯代码

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

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实现加法,减法等等,都是比较轻松的了。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top