資料介紹
描述
繼續(xù)我的上一個項目,該項目涉及如何為帶有 TE0701 基板的 TE0711 SoM 編寫嵌入式 C 應用程序,最后一步是將應用程序編程為存在于 TE0711 的非易失性存儲器中。
TE0711 配備了一個 32MByte 的 Cypress S25FL256S 外部閃存芯片,供其 Artix FPGA 使用。這是板上唯一用于存儲應用程序和用戶數(shù)據(jù)的非易失性存儲器,它將在板的電源循環(huán)之間保留。
與 FPGA/Vivado 領域中的幾乎所有東西一樣,通常有幾種不同的方法可以對外部閃存芯片進行編程。通常我使用 Vitis 的閃存芯片,但使用 TE0711 的特定電路板布局和 Cypress(又名 Spansion)芯片,我發(fā)現(xiàn)在 Vivado 中生成 MCS 并使用硬件管理器對閃存進行編程是我能得到它的唯一方法工作。
在 Vivado 中關聯(lián) ELF
首先,將來自 Vitis 的所需目標應用程序的 ELF 文件添加為 Vivado 中的設計源(Flow Navigator > Add Sources > Add or create design sources )。我喜歡使用它在 Vitis 工作區(qū)中的相對路徑,因此當我在 Vitis 中重建應用程序時,我不必手動將 Vivado 看到的 ELF 文件替換為在 Vitis 中編譯的新文件。
將 ELF 文件添加到 Vivado 項目后,需要將其與模塊設計相關聯(lián),以便 Vivado 在生成下一個比特流時知道使用它。右鍵單擊 Sources 選項卡中的塊設計并選擇Associate ELF Files...選項。
默認情況下,Vivado 中關聯(lián)的 ELF 文件是為實際設計和仿真自動生成的 MicroBlaze 引導循環(huán)。通過將設計源中的關聯(lián) ELF 從 Vitis 切換到目標應用程序,生成的比特流將導致 FPGA 在啟動時執(zhí)行應用程序。
生成具有關聯(lián) ELF 的新比特流
在 Vivado 綜合和實現(xiàn)中添加并關聯(lián)目標應用的 ELF 文件后,需要重新運行,并且需要生成新的比特流。
旁注:每次在 Vivado 中添加和關聯(lián) ELF 文件后在 Vitis 中構建應用程序時,一旦運行初始的新綜合和實現(xiàn),就會導致比特流過時。
一旦生成了新的比特流,就需要生成實際存在于外部存儲器中的 MCS 文件。這就是成功生成比特流后出現(xiàn)的對話框中的Generate Memory Configuration File選項。也可以隨時從 Vivado 中的“工具”菜單選項訪問它。
在 Vivado 中確定閃存的部件號
TE0711 通過 Cypress S25FL256S 芯片配備了 32MBytes 的外部閃存。根據(jù)部件號 S25FL256S,在 Vivado 和 Vitis 中有兩個支持的選項:s25fl256sxxxxxx0-spi-x1_x2_x4和s25fl256sxxxxxx1-spi-x1_x2_x4 。
根據(jù)TE0711 的 TRM,連接到 Cypress S25FL256S 芯片的所有四條 SPI 數(shù)據(jù)線都已連接,因此支持所有不同的總線寬度進行閃存。但是,我找不到任何解釋xxxxxx0和xxxxxx1 之間區(qū)別的文檔。記錄 Vivado 編程和調(diào)試的 UG908 識別了這兩個選項,但仍然沒有說明區(qū)別,如下面附錄 E 的屏幕截圖所示:
在瀏覽了 Trenz 的支持論壇后,我發(fā)現(xiàn)了一篇關于 TE0710 SoM 的帖子,其中 Trenz 工程師確認在 Vitis 中選擇的適當閃存類型是s25fl256sxxxxxx0-spi-x1_x2_x4。
然后我花了一些時間檢查 TE0710 的原理圖并將其與 TE0711 的原理圖進行比較。這表明 TE0710 和 TE0711 使用相同的部件號賽普拉斯 S25FL256S 芯片 (S25FL256SAGBHI20) 和相同的電路配置,并證實了我的懷疑s25fl256sxxxxxx0-spi-x1_x2_x4也是 Vivado 和 Vitis 中用于 TE0711 的部件號對閃存進行編程。
生成內(nèi)存配置文件
在選擇Generate Memory Configuration File選項后出現(xiàn)的對話框中,將輸出文件的格式設置為 MCS,因為 TE0711 上的 Cypress S25FL256S 芯片需要將比特流轉(zhuǎn)換為 .MCS 文件類型進行存儲。在文件名框中為生成的 MCS 文件指定所需的文件名和目錄路徑。會生成。
鑒于 Vivado 支持 Cypress S25FL256S 芯片,選擇Memory Part選項,單擊 Memory Part空白框右側(cè)的三個點,然后從列表中選擇s25fl256sxxxxxx0-spi-x1_x2_x4 。
正如我之前提到的,連接到賽普拉斯 S25FL256S 芯片的所有四條 SPI 數(shù)據(jù)線都已連接,因此支持所有不同的總線寬度進行閃存。TE0711 的約束文件將總線寬度具體指定為 4,因此需要將Interface選項設置為SPIx4 。
set_property BITSTREAM.CONFIG.SPI_BUSWIDTH 4 [current_design]
最后,由于比特流現(xiàn)在包含所需應用程序的 ELF 文件,因此它是唯一需要存在于閃存中的文件。選中Load bitstream files復選框,將Start address保留在 00000000 并指向位于
添加配置存儲設備
將 TE0711 + TE0701 連接到主機 PC 并在 Vivado 中啟動硬件管理器。選擇自動連接選項以建立與 TE0711 的連接。
右鍵單擊硬件窗口中 localhost 下的 xc7a35t_0 部分,然后選擇添加配置內(nèi)存設備...選項。使用過濾器導航到列表中的 s25fl256sxxxxxx0-spi-x1_x2_x4 部件并從中選擇。
程序配置存儲設備
添加閃存芯片并被硬件管理器識別后,在“硬件”窗口中右鍵單擊它并選擇“程序配置存儲設備...”選項。
對于Configuration file ,指向前面步驟中生成的 MCS,位于Write Memory Configuration File對話框窗口的 F??ilename 框中指定的目錄路徑。在該步驟中還生成了一個 PROM 文件,并以相同的文件名保存在指定位置,指向該文件以獲取PRM 文件。
至少,檢查Erase 、Program和Verify選項,然后單擊Apply和OK以最終對 TE0711 進行編程。
編程可能需要幾分鐘。
重啟和測試
出現(xiàn)指示閃存已成功編程的對話框后,關閉 Vivado 中的硬件管理器并重啟 TE0711 + TE0701。
重新啟動后,使用您選擇的終端應用程序連接到電路板(我只是在 Vitis 中使用串行終端,因為我通常已經(jīng)打開了 Vitis)。
我選擇在應用程序的循環(huán)中添加“Hello TE0711”的打印輸出,這樣控制臺中就會立即看到一些東西,同時仍然保持 UART 上的字符回顯功能:
/*
* Just sits in this loop of echoing characters back to the terminal until
* ESC key is pressed.
*/
while(RecvChar != EscChar){
ReceivedCount = XUartLite_Recv(&UartLite, RecvChar, 1);
if (ReceivedCount != 0){
XUartLite_Send(&UartLite, RecvChar, 1);
} else {
xil_printf("Hello TE0711\n\r");
for(int i=0;i<3000000;i++){};
}
}
就是這樣!TE0711 已編程并準備就緒。如上面的屏幕截圖所示,周期性的“Hello TE0711”正在打印到控制臺,并回顯它接收到的字符。此應用程序的 UART 中的緩沖區(qū)仍設置為默認的較小大小,因此一次可以回顯的字符長度存在限制。
- 博雅微電子機械系列NOR閃存BY25D80 42次下載
- EV-21569-SOM手冊
- EV-21569-SOM Manual
- EV-21569-SOM Schematic
- SOM-TLZ7x工業(yè)核心板的數(shù)據(jù)手冊免費下載 41次下載
- 如何將外部SPI Flash加載到FPGA內(nèi)部ram然后復位MC8051
- TB3015中文手冊之使用PIC32引導閃存擴展程序存儲器
- SAMA5D27 SOM1 Kit1基礎知識及操作指南
- TMS320VC5505 DSP外部存儲器接口(EMIF)操作的詳細概述 9次下載
- 如何從NAND閃存啟動達芬奇EVM 9次下載
- TMS320F28x 外部接口(XINTF)參考指南 13次下載
- TMS320F2812學習總結 13次下載
- TMX320F2810/F2812阿爾法閃存編程工具 6次下載
- 支持多種閃存啟動的U_Boot實現(xiàn)方法的改進_卞蕓 0次下載
- LPC900外部晶體啟動應用規(guī)格書 AN10289 data
- 基于瑞薩Arm Cortex-M85 MCU Feather SOM的解決方案 289次閱讀
- 軟啟動器的啟動方式有哪些 714次閱讀
- PY25Q128HA串行接口閃存設備產(chǎn)品概述 756次閱讀
- PY25Q64HA串行接口閃存設備產(chǎn)品概述 865次閱讀
- i.MX RT1xxx從SD/eMMC啟動 1130次閱讀
- 如何從外部優(yōu)化降壓穩(wěn)壓器ICS的頻率響應 854次閱讀
- I.MXRT1170從FLEXSPI2啟動 1228次閱讀
- 從網(wǎng)絡啟動linux系統(tǒng)如何做調(diào)試 1571次閱讀
- 使用ICAP在SPI模式下執(zhí)行Spartan-3AN多重啟動 676次閱讀
- 一文了解window電腦控制面板的快速啟動 8.3w次閱讀
- dfrobot3.5" TFT觸摸屏 4MB閃存簡介 1722次閱讀
- 如何使用高速NOR閃存配置FPGA 3153次閱讀
- 怎么從USB驅(qū)動器加載運行Windows 10 2003次閱讀
- ZYNQ-7000如何生成從Flash和SD卡啟動的鏡像文件 7505次閱讀
- 串行SPI Nor Flash啟動流程 2w次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發(fā)指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數(shù)字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅(qū)動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多