2016-11-15 42 views
1

我正在制定一個新的大學級彙編語言/系統課程。選擇ARM皮質驅動的硬件+工具鏈來教彙編語言

  • 我熱衷於使用ARM32,因爲ARM是非常相關,並有許多板從
  • 選擇,我想給所有的學生自己的電路板搞出(預算〜$ 30每一個),因爲我有經驗的東西是讓你擁有和認同的過程
  • 得到一個開發環境設置(包括硬件的調試)應該是相當痛苦,並理想跨平臺,使他們可以在不需要雙啓動/ V的情況下在自己的筆記本電腦上四處閒逛女士
  • 我想小馬(是的,我知道一些目標在相互和權衡必須作出賠率)

我並不需要太多的板載功能(或與子板兼容等),因爲我只是想教基本知識。

在搭配一些選項(儘管他們並不都發揮很好在一起)是:

我知道現在大多數人不會爲這些板子寫裸露的asm,但是因爲目的是用真實世界的風味教基本知識,所以它似乎是一個好方法。

無論如何,對於長期&開放式的問題不好意思,任何意見和建議,歡迎。

+0

當你說「跨平臺」時,你的意思是像每進程ARM模擬的東西,所以你不需要一個完整的虛擬機,只需要模擬一個ARM二進制文件?這有效([參見我在Linux系統上設置qemu-user的步驟](http://stackoverflow.com/a/39504457/224132),但我發現它對於gdb並不完全無縫。一些奇怪的錯誤消息,但我仍然可以單步執行,基本上使用在主機上運行的cross-gdb來調試客戶進程。 –

+0

這種擁有自己的硬件的想法看起來很有趣,但似乎存在巨大的潛在缺點。硬件故障,損壞或丟失),我認爲確保課程工作*可以使用在學生選擇的主機操作系統下運行的ARM模擬器來完成是一個非常好的主意,但也許有些學生會如果他們選擇在本質上是實驗室設備費用的情況下節省30美元,那麼可以減少課程費用,除非您打算爲學生提供這些板卡。 –

+0

32位ARM聽起來像是ISA的不錯選擇。它具有現實生活中的相關性,並且在很多方面都是非常標準的RISC ISA。我學習了m68k,然後是x86,因爲這是我的桌面硬件本身運行的東西(我認爲很酷的是,我的硬件運行的機器代碼是我直接創建的,我甚至將一些LED連接到並行端口以查看他們在運行一個使用Linux'iopl()'系統調用的程序來請求執行'OUT'指令的權限後點亮。) –

回答