GBA嵌入式系統學習平台

2021-04-12 20:46:10 字數 3260 閱讀 3814

.為什麼要選用gba作為嵌入式系統學習平台

我們知道,任天堂公司的gameboy advance(簡稱gba)一款非常出色的掌上遊戲機,該

產品占領了全球90%以上的掌上遊戲機市場。

拋開遊戲功能不說,gba本身就是乙個很好的嵌入式系統開發學習平台,因為gba採用ar

m7 cpu(risc),擁有240×160 64k色彩色液晶、立體聲系統、按鍵、dma、通訊口、3

2k的cpu高速ram(32bit)和256k外部ram(16bit),還有可外接的遊戲卡,可擴充至2

56mbit的flash rom以及用於儲存進度的128k eeprom(或flash、帶電池記憶的sram)。

現在,許多開發者都開始學習嵌入式開發,並購買arm實驗板和jtag**器。從成本的角

度來看,arm實驗板和jtag**器**不菲,但是非常適合於擁有長期硬體開發經驗的開

發者;對於想踏入嵌入式開發殿堂的初學者而言,高昂的硬體**以及過高的硬體除錯

門檻,自然成為阻礙學習嵌入式開發的攔路虎,許多初學者正是因為入門無路而中途放

棄。從許多硬體工程師的開發經驗來看,無論是低階的微控制器開發還是高階的嵌入式系

統設計,學習重點都應該在軟體程式設計設計上,因為硬體部分都是有成熟的電路,熟悉以

後自然水到渠成。因此,對於初學嵌入式開發的開發者而言,gba也就成為最便宜、最容

易入門的硬體平台,gba可以讓初學者把煩人的硬體除錯拋開,而將注意力集中到學習軟

件開發。

開發套件 ** 使用難易程度 備註

arm實驗板+jtag**器 昂貴 困難 適合於擁有長期硬體開發經驗的工程師

gbaline+gba 便宜 容易 適合於嵌入式開發初學者

2.gba硬體平台的特點

從功能上來看,gba包括聲效處理,彩色lcd顯示,以及輸入輸出等功能。gba的顯示螢幕

是240×160畫素,可以支援8bit(256色)或16bit(64k色),帶有硬體加速能力、支援a

lpha渲染(alpha blending)、旋轉(rotation)、縮放(scaling)、鑲嵌(mosaic)

等效果。gba的螢幕模式有6種,分別為mode 0 – mode5。

從使用者的角度來看,gba涉及人的手,眼,耳等感覺器官;從開發者角度看,它是完整

的嵌入式系統。

3. 必備的硬體gbaline

gbaline是為gba精心設計的一套外設,它完成pcgba的高速資料交換,以及資料儲存

,整套的**也就百來塊錢。

關於gbaline,具體的**:http://www.sudt.com

儲存系統幫助完成最後的工作,gbaline套件正是為實現此功能而誕生的。該套件包括g

;可擦寫卡帶用於儲存編譯好的二進位制**。

4. 如何進行嵌入式開發

gba的硬體和pc完全不一樣,究竟該如何學習呢?難道還要去買gba開發工具,要學gba的

開發語言?許多開發者都會有同樣的疑問。不必緊張,只要開發者懂得c語言,會使用a

rm c的編譯系統,就可以開發gba程式,使用gba作為入門級嵌入式學習平台的優點就在

此。目前,在linux下和windows下都有免費的編譯工具,推薦的是devkitadv開發包,該

開發包使用的是gcc編譯器。當然,編譯效率比較高的有sdt2.51、ads1.2、metaware f

or arm等等,但是這些都是收費的,對此有興趣的開發者可以自己研究。源**編輯工

具推薦visual c++。

5.模擬執行環境

pc端的模擬執行環境可以採用gba模擬器,例如visualboyadvance等。編譯好的elf或bi

n檔案用模擬器開啟就模擬硬體執行arm程式。

6.硬體組成

6.1. gba系統

cpu 32位risc cpu(arm7tdmi)/16.78mhz

相容性 整合8位cisc cpu相容於gbc,但是不能和gba的cpu同時工作

記憶體 系統rom 16k位元組(gbc是2k)

工作ram 32k位元組+cpu外部256k位元組(2倍週期)

vram 96k位元組

oam 64位×128

調色盤ram 16位×512(256色用於精靈,256色用於背景)

卡帶記憶體 最多32m rom或快閃儲存器+最多512kbit sram或快閃儲存器

顯示 240×160×rgb點、32,768色模擬顯示、帶有應將加速,支援旋轉(rotation)、縮

放(scaling)、alpha渲染(alpha blending)、鑲嵌(mosaic);6種螢幕模式,分別為mod

e0-mode5。

操作 控制鍵(a、b、l、r、start、select和方向鍵)

聲音 4聲道(相應於gbc的聲道)+2個cpu直接聲道(pcm格式)

通訊 串列埠通訊(8位/32位、uart、多玩家、多用途、joy匯流排)

卡帶 同dmg和gbc一樣,gba的卡帶使用32針介面,gba自動檢測插入卡帶的型別並切換g

bc或gba模式。gb卡帶、gb/gbc雙重模式卡帶、gbc專用卡帶、gba專用卡帶都可以在gba

系統上使用。

pc端介面 lpt,自動設定

gba端介面 sio,串列埠通訊

資料傳輸率 115k byte/s(隨作業系統負荷的變化相應波動,範圍:90kb/s~115kb/s)

電源 自供電

6.3. 64mbit flash card

flash容量 64mbit

flash擦寫次數 10萬次

nv-sram 32k byte,帶電池記憶

7.編譯環境設定

devkitadv是免費的gcc開發包,目前的最新版本是r5-beta-3,下面將以此版本為例介紹

如何在windows nt、2000、xp平台下使用該開發包。

advance-r5-beta-3.lnk檔案,此時會出現藍色的console控制台視窗

在c:/devkitadv-r5-beta-3目錄下有example、testsuite等目錄,現在以testsuite目錄

為例示範如何通過命令列方式編譯檔案。

在上面的視窗中輸入命令:

cd testsuite

make

之後就開始編譯testsuite專案並生成agbmain.bin、agbmain.elf等檔案,此時就可以

sh卡中實際執行。

除了命令列方式之外,也可以自己建立visual c++的makefile工程檔案,這是強烈推薦

的方式。

最簡單的入門過程就是這樣,祝各位玩的開心! 

嵌入式系統學習

實時多工作業系統 美國的火星表面登陸的火星探測器上使用的嵌入式作業系統是vxworks c os ii是 microcontroller operating system 的縮寫,它是原始碼公開的實時嵌入式操作 vxworks的微核心wind是乙個具有較高效能的 標準的嵌入式實時作業系統核心 嵌入式...

嵌入式系統學習之路

1 window環境程式設計 2 linux環境程式設計 3 微控制器 1 c語言 第二版譚浩強 c程式語言 第二版 徐寶文譯機戒工業出版社 你能區分開指標陣列和陣列指標嗎?你知道函式指標嗎?你能區分開定義乙個變數時系統給它分配的空間與用malloc 函式給乙個變數分配的空間有什麼不一樣嗎?2 資料...

嵌入式系統學習(2)

s3c2410有四個通道的dma控制器,每個通道都有五個dma請求源 即五種不同請求方式 其中包括兩個外部請求源由引腳nxdreq0和nxdreq0接入,應答訊號引腳為nxdack0和nxdack0。s3c2410也可以直接連線外部dma控制器,匯流排請求和應答訊號引腳分別為nxbreq和nxbac...