之前寫過文章,描述在Linux環(huán)境下搭建ARM11的開發(fā)環(huán)境,有需要的可以在ARM11標簽中進行查找。
目前在學(xué)習(xí)ARM11的裸機編程,不想用虛擬機跑Linux來進行開發(fā),因為平時用的筆記本電腦的配置跑虛擬機還是有點困難(我的臺式機跑虛擬機還是沒問題的),現(xiàn)在講述一下如何在Windows中搭建ARM11的裸機開發(fā)環(huán)境,方便沒法使用虛擬機的朋友也能夠進行ARM11的開發(fā)。
系統(tǒng)環(huán)境:Windows 7 64位;
ARM11:Tiny6410;
1、交叉編譯工具 - GNU Tools ARM Embedded
使用這個交叉編譯工具就可以將程序編譯成能在ARM11上運行的文件。這里將GNU Tools ARM Embedded的bin目錄添加到系統(tǒng)的環(huán)境變量中,然后打開控制臺輸入:arm-none-eabi-gcc -v,查看環(huán)境變量配置是否成功,如果環(huán)境變量配置成功了,那么會正確的顯示arm-none-eabi-gcc的版本號:
2、MSYS
MSYS是一個小型的GNU環(huán)境,包括基本的bash,make等等。對裸機程序通過Makefile文件進行管理與編譯,并且通過MSYS的make來執(zhí)行Makefile文件的內(nèi)容。
將msys/1.0/bin目錄下的路徑添加到系統(tǒng)的環(huán)境變量中,然后打開控制臺輸入:make -v,查看環(huán)境變量配置是否成功,如果環(huán)境變量配置成功了,那么會正確的顯示make的版本號:
3、編譯程序
start.S文件的內(nèi)容如下:
/* *By:Ailson Jack *Date:2019.04.29 *Des:匯編點亮LED <> *LED1~LED4對應(yīng)GPK4~GPK7 *Blog:www.only2fire.com */ .global _start _start: // 把外設(shè)的基地址告訴CPU ldr r0, =0x70000000 //對于6410來說,內(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)看門狗,防止程序不斷重啟 ldr r0, =0x7E004000 //看門狗控制寄存器 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] // 延時 bl delay // 設(shè)置GPKDAT,使GPK_4/5/6/7引腳輸出高電平,LED滅 ldr r1, =0x7F008808 mov r0, #0xf0 str r0, [r1] // 延時 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 #備注:$@--目標文件,$^--所有的依賴文件,$<--第一個依賴文件 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程序文件中,打開控制終端,然后執(zhí)行make命令來編譯LED程序:
將編譯好的led.bin文件通過友善之臂提供的MiniTools下載到ARM11板子中,就可以看到核心板的4個小燈在閃爍了。
-
ARM
+關(guān)注
關(guān)注
134文章
9176瀏覽量
369324 -
Linux
+關(guān)注
關(guān)注
87文章
11350瀏覽量
210462 -
WINDOWS
+關(guān)注
關(guān)注
4文章
3573瀏覽量
89349 -
編譯
+關(guān)注
關(guān)注
0文章
661瀏覽量
33060 -
虛擬機
+關(guān)注
關(guān)注
1文章
949瀏覽量
28452
原文標題:S3C6410學(xué)習(xí)筆記-Windows下搭建ARM11裸機開發(fā)環(huán)境(1):工具安裝
文章出處:【微信號:嵌入式那些事,微信公眾號:嵌入式那些事】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
ARM11 S3c6410開發(fā)板+GPS模塊 完美實現(xiàn)
S3C6410的JLink的調(diào)試方法--Samsung ARM11 S3C6410
S3C6410裸機開發(fā)教程及源代碼
想知道I.MX6U和arm11 s3c6410 s3c2440等等幾個處理器能力的比較關(guān)系, 這個問題簡單,告訴別笑
三星ARM11開發(fā)板mini6410用戶手冊
![三星<b class='flag-5'>ARM11</b><b class='flag-5'>開發(fā)</b>板mini<b class='flag-5'>6410</b>用戶手冊](https://file.elecfans.com/web2/M00/48/DC/pYYBAGKhtCmAPaIgAAAkZNhTGMg029.jpg)
s3c6410 開發(fā)板設(shè)計
![<b class='flag-5'>s3c6410</b> <b class='flag-5'>開發(fā)</b>板設(shè)計](https://file.elecfans.com/web2/M00/48/E9/pYYBAGKhtC2APUslAAAVQWUeJk8219.jpg)
如何選擇適合產(chǎn)品開發(fā)的S3C6410開發(fā)板
S3C6410開發(fā)板S3C-U-BOOT-1.1.6的詳細資料免費下載
基于ARM11的CES-EDU6410教學(xué)平臺
![基于<b class='flag-5'>ARM11</b>的CES-EDU<b class='flag-5'>6410</b>教學(xué)平臺](https://file.elecfans.com/web1/M00/AA/09/pIYBAF2gXpCAbcpiAAKq2Glvty4182.jpg)
S3C6410(ARM11)嵌入式控制系統(tǒng)液晶顯示驅(qū)動問題研究
![<b class='flag-5'>S3C6410</b>(<b class='flag-5'>ARM11</b>)嵌入式控制系統(tǒng)液晶顯示驅(qū)動問題研究](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評論