之前寫(xiě)過(guò)文章,描述在Linux環(huán)境下搭建ARM11的開(kāi)發(fā)環(huán)境,有需要的可以在ARM11標(biāo)簽中進(jìn)行查找。
目前在學(xué)習(xí)ARM11的裸機(jī)編程,不想用虛擬機(jī)跑Linux來(lái)進(jìn)行開(kāi)發(fā),因?yàn)槠綍r(shí)用的筆記本電腦的配置跑虛擬機(jī)還是有點(diǎn)困難(我的臺(tái)式機(jī)跑虛擬機(jī)還是沒(méi)問(wèn)題的),現(xiàn)在講述一下如何在Windows中搭建ARM11的裸機(jī)開(kāi)發(fā)環(huán)境,方便沒(méi)法使用虛擬機(jī)的朋友也能夠進(jìn)行ARM11的開(kāi)發(fā)。
系統(tǒng)環(huán)境:Windows 7 64位;
ARM11:Tiny6410;
1、交叉編譯工具 - GNU Tools ARM Embedded
使用這個(gè)交叉編譯工具就可以將程序編譯成能在ARM11上運(yùn)行的文件。這里將GNU Tools ARM Embedded的bin目錄添加到系統(tǒng)的環(huán)境變量中,然后打開(kāi)控制臺(tái)輸入:arm-none-eabi-gcc -v,查看環(huán)境變量配置是否成功,如果環(huán)境變量配置成功了,那么會(huì)正確的顯示arm-none-eabi-gcc的版本號(hào):
2、MSYS
MSYS是一個(gè)小型的GNU環(huán)境,包括基本的bash,make等等。對(duì)裸機(jī)程序通過(guò)Makefile文件進(jìn)行管理與編譯,并且通過(guò)MSYS的make來(lái)執(zhí)行Makefile文件的內(nèi)容。
將msys/1.0/bin目錄下的路徑添加到系統(tǒng)的環(huán)境變量中,然后打開(kāi)控制臺(tái)輸入:make -v,查看環(huán)境變量配置是否成功,如果環(huán)境變量配置成功了,那么會(huì)正確的顯示make的版本號(hào):
3、編譯程序
start.S文件的內(nèi)容如下:
/* *By:Ailson Jack *Date:2019.04.29 *Des:匯編點(diǎn)亮LED <> *LED1~LED4對(duì)應(yīng)GPK4~GPK7 *Blog:www.only2fire.com */ .global _start _start: // 把外設(shè)的基地址告訴CPU ldr r0, =0x70000000 //對(duì)于6410來(lái)說(shuō),內(nèi)存(0x00000000~0x60000000),外設(shè)(0x70000000-0x7fffffff) orr r0, r0, #0x13 //外設(shè)大小:256M mcr p15,0,r0,c15,c2,4 //把r0的值(包括了外設(shè)基地址+外設(shè)大小)告訴cpu // 關(guān)看門(mén)狗,防止程序不斷重啟 ldr r0, =0x7E004000 //看門(mén)狗控制寄存器 mov r1, #0 str r1, [r0] // 設(shè)置GPKCON0 ldr r1, =0x7F008800 ldr r0, =0x11110000 //GPK4,GPK5,GPK6,GPK7為輸出模式 str r0, [r1] mov r2, #0x1000 led_blink: // 設(shè)置GPKDAT,使GPK_4/5/6/7引腳輸出低電平,LED亮 ldr r1, =0x7F008808 mov r0, #0 str r0, [r1] // 延時(shí) bl delay // 設(shè)置GPKDAT,使GPK_4/5/6/7引腳輸出高電平,LED滅 ldr r1, =0x7F008808 mov r0, #0xf0 str r0, [r1] // 延時(shí) bl delay sub r2, r2, #1 cmp r2,#0 bne led_blink halt: b halt delay: mov r0, #0x1000000 delay_loop: cmp r0, #0 sub r0, r0, #1 bne delay_loop mov pc, lr /*子程序返回*/
Makefile文件的內(nèi)容如下:
#By:AilsonJack #Date:2019.05.01 #Des:Makefile文件 #Blog:www.only2fire.com #備注:$@--目標(biāo)文件,$^--所有的依賴(lài)文件,$<--第一個(gè)依賴(lài)文件 PREFIX?=?arm-none-eabi- #PREFIX?=?arm-linux- CC?=?$(PREFIX)gcc LD?=?$(PREFIX)ld OBJCOPY?=?$(PREFIX)objcopy OBJDUMP?=?$(PREFIX)objdump led.bin:?start.o ?$(LD)?-Ttext?0x50000000?-o?led.elf?$^ ?$(OBJCOPY)?-O?binary?led.elf?led.bin ?$(OBJDUMP)?-D?led.elf?>led_elf.dis %.o:%.S $(CC)-c-g$-o?$@ %.o?:?%.c ?$(CC)?-c?-g?$-o?$@ clean: ?rm?-rf?*.o?*.elf?*.bin?*.dis
在LED程序文件中,打開(kāi)控制終端,然后執(zhí)行make命令來(lái)編譯LED程序:
將編譯好的led.bin文件通過(guò)友善之臂提供的MiniTools下載到ARM11板子中,就可以看到核心板的4個(gè)小燈在閃爍了。
-
ARM
+關(guān)注
關(guān)注
134文章
9353瀏覽量
377606 -
Linux
+關(guān)注
關(guān)注
87文章
11511瀏覽量
213836 -
WINDOWS
+關(guān)注
關(guān)注
4文章
3614瀏覽量
91419 -
編譯
+關(guān)注
關(guān)注
0文章
679瀏覽量
34002 -
虛擬機(jī)
+關(guān)注
關(guān)注
1文章
966瀏覽量
29370
原文標(biāo)題:S3C6410學(xué)習(xí)筆記-Windows下搭建ARM11裸機(jī)開(kāi)發(fā)環(huán)境(1):工具安裝
文章出處:【微信號(hào):嵌入式那些事,微信公眾號(hào):嵌入式那些事】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
ARM11 S3c6410開(kāi)發(fā)板+GPS模塊 完美實(shí)現(xiàn)
STM32 vs S3C6410學(xué)用哪個(gè)比較好
S3C6410的JLink的調(diào)試方法--Samsung ARM11 S3C6410
S3C6410裸機(jī)開(kāi)發(fā)教程及源代碼
想知道I.MX6U和arm11 s3c6410 s3c2440等等幾個(gè)處理器能力的比較關(guān)系, 這個(gè)問(wèn)題簡(jiǎn)單,告訴別笑
三星ARM11開(kāi)發(fā)板mini6410用戶(hù)手冊(cè)

s3c6410 開(kāi)發(fā)板設(shè)計(jì)

如何選擇適合產(chǎn)品開(kāi)發(fā)的S3C6410開(kāi)發(fā)板
S3C6410開(kāi)發(fā)板S3C-U-BOOT-1.1.6的詳細(xì)資料免費(fèi)下載
基于ARM11的CES-EDU6410教學(xué)平臺(tái)

S3C6410(ARM11)嵌入式控制系統(tǒng)液晶顯示驅(qū)動(dòng)問(wèn)題研究

評(píng)論