2014-09-05 167 views
1

我努力學習手臂assemly,這將是第一個編程語言,其實我可以說我也知道。實際上現在我正在學習機器語言,因爲它對我來說更簡單。ARM彙編,第一個指令上傳

我的問題是:如何將我的第一個指令加載到處理器?

我的編程平臺進行實驗是GameBoy Advance的。它有一個arm7tdmi處理器,我沒有閃存卡,所以我打算用我的arduino通過鏈接端口(連接到芯片的d,di,do,dc引腳)上傳代碼。我只需要幫助計算出如何上傳任何程序。除了使用arduino以外的任何其他軟件以及gameboy bios。

所以我的問題是: 如果我把bios芯片帶出gba,我還能通過這些引腳上傳指令嗎,或者是否有另一個地方,處理器通常會在指示一次後才尋找指令?它又如何接受溝通,我怎樣一次上傳一條指令?

回答

3

使用該端口稱爲多重引導的機制,你的arduinio是要必須符合正確的協議,使這項工作,毫無疑問,有人已經做到了。

現在取出BIOS,如果你能難道不爲你必須有你的數據在BIOS的開始正確的簽名,以允許它然後運行GBA你帶來任何好處

運行您的第一個指令在那個你需要在那裏跳躍的記憶中的第一個單詞。

基本上GBA是學習裸機一個很好的平臺,但你這樣做或談論這樣做的方式是不是要爲這種學習的最佳途徑。

如果你想使用gba使用visualboyadvance模擬器/模擬器,並克服啓動和運行你可能需要在該環境中繪製像素的第一個程序的障礙(在gba閃爍電池電量低的情況下是最簡單的,但沒有閃光燈的車,不要打擾了)。

對於視覺男孩提前你可能或可能不需要有正確的簽名,但有信息和示例的gobs和gobs在那裏顯示標題需要工作和/或工具,如果你離開右邊的空間會修補你的二進制文件使其工作。

爲真正的硬件不僅做到,你必須得到該串行端口上的時間和上拉和這樣的權利,但你也必須有正確的頭獲得多重程序運行。這絕對不是gba的初學者東西。找到一個閃光車,他們仍然在那裏,我最喜歡的一段時間是閃光燈3合1 gba大小的一個不是ds大小的,但你需要ds閃存車加載一些東西。 ds閃存手推車要容易得多(但ds開發有點難,但不是那麼多)。也有一些m3或任何他們被稱爲sdcard或基於microSD卡的,你不需要一個花哨的程序員(他們的軟件很難快速過時)。

你可能會考慮一個DS精簡版(較老的)和一個購物車的,他們很容易通過

來或者只是得到一個全憑靜脈麻醉ç啓動板或其他一些$ 5或$ 10個分枝板

最好只是先使用一個指令集模擬器,免費,你可以在閱讀本文後開發幾分鐘。例如,在github上搜索thumbulator。或者在gdb中使用armulator。

簡短的回答你有錯誤的硬件,你正在嘗試做的事情。但用於學習裸機編程的非常好的硬件(只要你可以得到一個非常痛苦的閃存)。我最喜歡的解決方案是在閃存推車上放置一個引導程序,然後將該頂端端口轉換爲8n1串行端口,該端口需要一根鏈接電纜,以減少一半的電線並將它們連接到串行電路板的ftdi usb。那麼如果您發現我的或其他人,只需要加載一次引導加載程序,並且很長時間不需要刪除或重新編程盒式磁帶。只需重新啓動電源(或重新設置,如果您添加重置按鈕)並連續下載並運行程序。

+0

或者如果你可以找到引導舞會,你可以刪除它,並用套接字替換它,爲舞會獲得一個舞蹈程序員(可能必須購買另一個舞會取決於條件得到它,如果它是一個otp或不),這些套接字不會持續很長時間。 arduino不參與。 – 2014-09-05 02:35:57

+0

也記得,arduinos通常是5V而不是3.3,在gba模式下,端口是3.3v,所以如果你使用沒有電壓轉換器的5v arduino,你可以對gba或arduino或兩者都做一些損害,因爲我認爲一個引腳是雙向的在嘗試進行電壓轉換時讓生活更加痛苦的多重啓動模式,更容易購買3.3v arduino。 – 2014-09-05 02:39:22

+0

嗯,我在考慮卸下bios芯片,因爲我對處理器本身更感興趣,並且編寫了我自己的bios。雖然可能比它的價值更麻煩。是的,我知道有一個電壓差異,並已建立分壓電路 – 2014-09-05 02:44:44