FPGA中SPI Flash存儲器的復用編程方法的實(shí)現
1.2 SPI Flash存儲器的復用
復用SPI Flash是指既用它來(lái)保存硬件配置文件、Bootloader引導程序還用來(lái)保存用戶(hù)應用程序。在加載階段,FPGA自動(dòng)從SPI Flash中讀取硬件配置bit文件及Bootloader程序進(jìn)行配置到片內BRAM中運行。當完成加載后,FPGA內部邏輯啟動(dòng),通過(guò)運行的Bootloader程序讀取SPI Flash中的用戶(hù)應用程序,并寫(xiě)到外部SDRAM的相應位置,最后Bootloader程序切換指令指針到SDRAM指定位置,在外部的SDRAM中開(kāi)始執行應用程序。
圖3給出了本系統中復用SPI Flash嵌入式系統結構圖,用EDK中的opb_sdram連接外部SDRAM,用opb_spi連接SPI Flash(AT45DB161D),通過(guò)Bootloader軟件程序實(shí)現從SPI Flash中復制用戶(hù)應用程序到SDRAM中,然后在SDRAM中運行。但是,Boot-loader在系統上電時(shí)會(huì )通過(guò)FP-GA芯片的配置引腳首先加載到BRAM中運行,這樣就可以實(shí)現上電自動(dòng)加載啟動(dòng)程序。
2 Bootloader引導程序的設計
在工程代碼編寫(xiě)之前要求對硬件器件有所了解,主要需要了解FPGA所需要的配置文件空間,還有Flash存儲結構。例如:XC3S500E配置文件空間為2 270 208位,所以要根據它計算存儲應用程序的基地址。AT45DB161D是串行接口的閃存芯片,它包含有17 301 504位,被組織為4 096頁(yè),每頁(yè)512/528字節。除了主存儲器,AT45DB161D還包括2個(gè)SRAM數據緩沖區,每個(gè)緩沖區512/528字節。在主存儲器正在編程時(shí),緩沖區是允許接收數據的,并且支持數據流式寫(xiě)入。(此處為528字節/頁(yè))
AT45DB161D的存儲器陣列分為3個(gè)級別的粒度,分別為扇區、塊與頁(yè)。圖4對各個(gè)級別進(jìn)行了分析,詳細說(shuō)明了每個(gè)扇區與塊的頁(yè)數。所有的編程操作都是針對頁(yè)的。擦除操作可以作用于芯片、扇區、塊或頁(yè)。
最后利用定義的空函數int(*boot_app_jump) (void);”將地址指針指向內存的應用程序基地址,使其從此處開(kāi)始運行程
存儲器相關(guān)文章:存儲器原理
評論