天天看點

04-ZYNQ學習之FPGA+Linux開發的流程

  通過前面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 中

  ? 為核心設定啟動參數

  ? 調用核心

  

04-ZYNQ學習之FPGA+Linux開發的流程

  ? ? ? ?這是一個過程,主要是完成FPGA端資源的設計,同時完成ARM bootloader的開發,這樣保證了上電後FPGA功能被正常配置,且uboot可以引導起後期的核心。最終就是完成boot.bin的開發。

  ? ? ? ?重點之一FPGA端資源的驅動及功能實作。完成後需要更新boot.bin。

  ? ? ? ?重點之一就是完成外設的驅動。此部分不需要重新編譯boot.bin,隻需要覆寫新開發好的核心即可。