幾年前,我開始學習Arm架構。我發現了Qemu,我用它的realview a8仿真板根據Armv7進行編程。該板有一個LCD控制器,一箇中斷控制器等。我可以找到他們的所有規格,並最終做一個非常非常基本的調度程序,在Arm組件中編程一切,它很酷。然後我停下來,忙於工作。Qemu Aarch64支持主板
現在我試圖回到它,這次用Armv8和AArch64。但是我找不到AArch64支持哪些板卡。查詢Qemu顯示了與qemu-system-arm和qemu-system-aarch64相同的列表。即使Armv7的a8,a9和A15板卡也出現在qemu-system-aarch64列表中。這是否意味着沒有電路板仿真,我應該針對特定的cpu編程,如A53(正如我在網上看到的一些例子)。
大約4年前的最後時間,當我接觸手臂時,我做了裸機編程。我記得我使用過這樣的命令行:** $ qemu-system-arm -M versatilepb -m 128M -nographic -kernel test.bin **在這個[https://balau82.wordpress.com/2010/02/ 28/hello-world-for-bare-metal-arm-using-qemu /]。我進一步閱讀了DTB的工作原理,所以最後一次當我在Qemu上使用-Kernel選項時,qemu在r2中爲我提供了DTB指針,但是我完全忽略它,它一切正常? – san216
此外,如果現在我必須使用一個虛擬板,我猜我必須有一個DTB解析器天氣,我使用-bios選項或-Kernel選項才能訪問由qemu模擬的外設。我想訪問一個我可以編程的中斷控制器,並執行一些基本的Aarch64異常處理。我的思路是否正確? – san216
versatilepb板是真實硬件的模型,因此QEMU模擬硬件的功能,並且可以編寫假定存在硬件的客人代碼。對於這種模型,QEMU不會生成DTB。用戶可以通過-dtb命令行選項提供一個。 –