新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > mini2440簡單的裸機led流水燈代碼

mini2440簡單的裸機led流水燈代碼

作者: 時間:2016-11-11 來源:網(wǎng)絡(luò) 收藏
MINI2440簡單的裸機led流水燈代碼

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

本文引用地址:http://butianyuan.cn/article/201611/316979.htm

language setting的ARM Assembler和ARM C Compile的Target中的Architecture or processor設(shè)置為arm920T

linker中的ARM linker中output--simple image--RO base設(shè)置為0x30000000;options--Image entry point設(shè)置為0x30000000;layout--object/symbol設(shè)置為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相應(yīng)的端口為輸出

while(1)

{

GPBDAT=GPBDAT&(0x0<<5)|(0xE<<5);//設(shè)置點亮第一個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);

}

}

這樣就實現(xiàn)了流水燈的簡單裸機運行,其實匯編代碼還可以刪除一些程序,結(jié)果可以正常運行,我不知道未來后果會怎么樣,大家可以檢查,若是你知道不能刪除的原因,請留言讓我也學(xué)習(xí)一下。那么接下來,什么用led實現(xiàn)加法,減法等等,都是比較輕松的了。



關(guān)鍵詞: mini2440led流水

評論


技術(shù)專區(qū)

關(guān)閉