通過前面3節内容,我們知道了:
Xilinx ZYNQ的内部結構PL端FPGA的開發過程ZYNQ啟動過程及固化
?那麼ZYNQ包含CortexTM-A9核,那麼它的ARM資源應用主要就落在嵌入式linux上。ZYNQ的嵌入式Linux開發流程是本節介紹的重點。
嵌入式linux底層開發主要工作是:
bootloader
核心檔案系統
核心和檔案系統都是編譯好或制作好的檔案,一般固化在flash上等待uboot加載或核心挂載。是以上電要確定運作的ARM端程式就是uboot。
u-boot啟動核心的過程可以分為兩個階段,兩個階段的功能如下:
1)第一階段的功能
? 硬體裝置初始化
? 加載 u-boot 第二階段代碼到 RAM 空間
? 設定好棧,跳轉到第二階段代碼入口
2)第二階段的功能
? 初始化本階段使用的硬體裝置
? 檢測系統記憶體映射
? 将核心從 Flash 讀讀到 RAM 中
? 為核心設定啟動參數
? 調用核心
? ? ? ?這是一個過程,主要是完成FPGA端資源的設計,同時完成ARM bootloader的開發,這樣保證了上電後FPGA功能被正常配置,且uboot可以引導起後期的核心。最終就是完成boot.bin的開發。
? ? ? ?重點之一FPGA端資源的驅動及功能實作。完成後需要更新boot.bin。
? ? ? ?重點之一就是完成外設的驅動。此部分不需要重新編譯boot.bin,隻需要覆寫新開發好的核心即可。