新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 在ubuntu下開發(fā)ARM裸機程序--S3C6410—LED

        在ubuntu下開發(fā)ARM裸機程序--S3C6410—LED

        作者: 時間:2016-11-19 來源:網(wǎng)絡(luò) 收藏
        很多人都是在ads或者rvds或keil中開發(fā)ARM裸機程序,使用此類的開發(fā)工具雖然簡單但是卻不能使開發(fā)者很好的掌握更多程序原理,要想更好的掌握更多程序細節(jié),感覺還是最好使用arm-linux-進行開發(fā)。

        轉(zhuǎn)載請注明出處,謝謝,張同浩:http://blog.csdn.net/muge0913/article/details/15016959

        本文引用地址:http://www.104case.com/article/201611/318229.htm

        郵箱:muge0913@sina.com

        下面是一個簡單的點亮led燈的程序,在tiny6410上運行。其中set_peri_port函數(shù)是必須要添加的,這樣才能訪問到s3c6410的外設(shè)空間。

        @@ File:led_on.S@ 功能:LED點燈程序,點亮LED1@       .equ		WATCHDOGCON,	0x7e004000.equ		LEDCON,			0x7f008800.equ		LEDDAT,			0X7f008808.text.global _start_start:     bl		setup_peri_portbl		disable_watch_dogbl		setup_spbl		display_ledMAIN_LOOP:b       MAIN_LOOPdisable_watch_dog:@往WATCHDOG寄存器寫0即可ldr r0,=WATCHDOGCONmov r1,#0x0str r1,[r0]mov pc,lrsetup_sp:@目前堆棧大小不能超過8kldr	sp,=1024*8mov pc,lrsetup_peri_port:ldr r0,=0x70000013		@base addres:0x70000000,size:256MBmcr p15,0,r0,c15,c2,4mov pc,lrdisplay_led:ldr r0,=LEDCON	    @ R0設(shè)為LEDCON,即GPKCON0寄存器。此寄存器@ 用于選擇端口K各引腳的功能:@ 是輸出、是輸入、還是其他mov r1,#0x110000        str r1,[r0]             @ 設(shè)置GPK4,5為輸出口ldr r0,=LEDDAT	    @ R0設(shè)為GPKDAT寄存器。此寄存器@ 用于讀/寫端口B各引腳的數(shù)據(jù)mov r1,#0x00000000      @ 此值為0x000000,低電平點亮ledstr r1,[r0]             @ GPK4,5輸出0,LED4,5點亮mov	pc,lr


        Makefile文件如下:

        led_on.bin : led_on.sarm-linux-gcc -g -O0 -c -o led_on.o led_on.sarm-linux-ld -Ttext 0x0000000 -g led_on.o -o led_on_elfarm-linux-objcopy -O binary -S led_on_elf led_on.binclean:rm -f   led_on.bin led_on_elf *.o


        關(guān)鍵詞: ubuntuARM裸機程序S3C6410LE

        評論


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

        關(guān)閉
        主站蜘蛛池模板: 炎陵县| 新邵县| 余江县| 贵南县| 南汇区| 遵义县| 珠海市| 永兴县| 苗栗市| 云阳县| 嘉义县| 旌德县| 六盘水市| 古浪县| 黑河市| 昌邑市| 美姑县| 泸水县| 旬阳县| 乐至县| 湘乡市| 婺源县| 体育| 子长县| 六盘水市| 荆州市| 霍州市| 晋中市| 射阳县| 梓潼县| 台州市| 盈江县| 固始县| 多伦县| 榕江县| 城固县| 宝坻区| 宣恩县| 元氏县| 通化市| 双城市|