資料介紹
描述
繼續(xù)我的上一個(gè)項(xiàng)目,該項(xiàng)目涉及如何為帶有 TE0701 基板的 TE0711 SoM 編寫嵌入式 C 應(yīng)用程序,最后一步是將應(yīng)用程序編程為存在于 TE0711 的非易失性存儲(chǔ)器中。
TE0711 配備了一個(gè) 32MByte 的 Cypress S25FL256S 外部閃存芯片,供其 Artix FPGA 使用。這是板上唯一用于存儲(chǔ)應(yīng)用程序和用戶數(shù)據(jù)的非易失性存儲(chǔ)器,它將在板的電源循環(huán)之間保留。
與 FPGA/Vivado 領(lǐng)域中的幾乎所有東西一樣,通常有幾種不同的方法可以對外部閃存芯片進(jìn)行編程。通常我使用 Vitis 的閃存芯片,但使用 TE0711 的特定電路板布局和 Cypress(又名 Spansion)芯片,我發(fā)現(xiàn)在 Vivado 中生成 MCS 并使用硬件管理器對閃存進(jìn)行編程是我能得到它的唯一方法工作。
在 Vivado 中關(guān)聯(lián) ELF
首先,將來自 Vitis 的所需目標(biāo)應(yīng)用程序的 ELF 文件添加為 Vivado 中的設(shè)計(jì)源(Flow Navigator > Add Sources > Add or create design sources )。我喜歡使用它在 Vitis 工作區(qū)中的相對路徑,因此當(dāng)我在 Vitis 中重建應(yīng)用程序時(shí),我不必手動(dòng)將 Vivado 看到的 ELF 文件替換為在 Vitis 中編譯的新文件。
將 ELF 文件添加到 Vivado 項(xiàng)目后,需要將其與模塊設(shè)計(jì)相關(guān)聯(lián),以便 Vivado 在生成下一個(gè)比特流時(shí)知道使用它。右鍵單擊 Sources 選項(xiàng)卡中的塊設(shè)計(jì)并選擇Associate ELF Files...選項(xiàng)。

默認(rèn)情況下,Vivado 中關(guān)聯(lián)的 ELF 文件是為實(shí)際設(shè)計(jì)和仿真自動(dòng)生成的 MicroBlaze 引導(dǎo)循環(huán)。通過將設(shè)計(jì)源中的關(guān)聯(lián) ELF 從 Vitis 切換到目標(biāo)應(yīng)用程序,生成的比特流將導(dǎo)致 FPGA 在啟動(dòng)時(shí)執(zhí)行應(yīng)用程序。
生成具有關(guān)聯(lián) ELF 的新比特流
在 Vivado 綜合和實(shí)現(xiàn)中添加并關(guān)聯(lián)目標(biāo)應(yīng)用的 ELF 文件后,需要重新運(yùn)行,并且需要生成新的比特流。
旁注:每次在 Vivado 中添加和關(guān)聯(lián) ELF 文件后在 Vitis 中構(gòu)建應(yīng)用程序時(shí),一旦運(yùn)行初始的新綜合和實(shí)現(xiàn),就會(huì)導(dǎo)致比特流過時(shí)。

一旦生成了新的比特流,就需要生成實(shí)際存在于外部存儲(chǔ)器中的 MCS 文件。這就是成功生成比特流后出現(xiàn)的對話框中的Generate Memory Configuration File選項(xiàng)。也可以隨時(shí)從 Vivado 中的“工具”菜單選項(xiàng)訪問它。
在 Vivado 中確定閃存的部件號(hào)
TE0711 通過 Cypress S25FL256S 芯片配備了 32MBytes 的外部閃存。根據(jù)部件號(hào) S25FL256S,在 Vivado 和 Vitis 中有兩個(gè)支持的選項(xiàng):s25fl256sxxxxxx0-spi-x1_x2_x4和s25fl256sxxxxxx1-spi-x1_x2_x4 。

根據(jù)TE0711 的 TRM,連接到 Cypress S25FL256S 芯片的所有四條 SPI 數(shù)據(jù)線都已連接,因此支持所有不同的總線寬度進(jìn)行閃存。但是,我找不到任何解釋xxxxxx0和xxxxxx1 之間區(qū)別的文檔。記錄 Vivado 編程和調(diào)試的 UG908 識(shí)別了這兩個(gè)選項(xiàng),但仍然沒有說明區(qū)別,如下面附錄 E 的屏幕截圖所示:

在瀏覽了 Trenz 的支持論壇后,我發(fā)現(xiàn)了一篇關(guān)于 TE0710 SoM 的帖子,其中 Trenz 工程師確認(rèn)在 Vitis 中選擇的適當(dāng)閃存類型是s25fl256sxxxxxx0-spi-x1_x2_x4。
然后我花了一些時(shí)間檢查 TE0710 的原理圖并將其與 TE0711 的原理圖進(jìn)行比較。這表明 TE0710 和 TE0711 使用相同的部件號(hào)賽普拉斯 S25FL256S 芯片 (S25FL256SAGBHI20) 和相同的電路配置,并證實(shí)了我的懷疑s25fl256sxxxxxx0-spi-x1_x2_x4也是 Vivado 和 Vitis 中用于 TE0711 的部件號(hào)對閃存進(jìn)行編程。

生成內(nèi)存配置文件
在選擇Generate Memory Configuration File選項(xiàng)后出現(xiàn)的對話框中,將輸出文件的格式設(shè)置為 MCS,因?yàn)?TE0711 上的 Cypress S25FL256S 芯片需要將比特流轉(zhuǎn)換為 .MCS 文件類型進(jìn)行存儲(chǔ)。在文件名框中為生成的 MCS 文件指定所需的文件名和目錄路徑。會(huì)生成。
鑒于 Vivado 支持 Cypress S25FL256S 芯片,選擇Memory Part選項(xiàng),單擊 Memory Part空白框右側(cè)的三個(gè)點(diǎn),然后從列表中選擇s25fl256sxxxxxx0-spi-x1_x2_x4 。
正如我之前提到的,連接到賽普拉斯 S25FL256S 芯片的所有四條 SPI 數(shù)據(jù)線都已連接,因此支持所有不同的總線寬度進(jìn)行閃存。TE0711 的約束文件將總線寬度具體指定為 4,因此需要將Interface選項(xiàng)設(shè)置為SPIx4 。
set_property BITSTREAM.CONFIG.SPI_BUSWIDTH 4 [current_design]

最后,由于比特流現(xiàn)在包含所需應(yīng)用程序的 ELF 文件,因此它是唯一需要存在于閃存中的文件。選中Load bitstream files復(fù)選框,將Start address保留在 00000000 并指向位于
添加配置存儲(chǔ)設(shè)備
將 TE0711 + TE0701 連接到主機(jī) PC 并在 Vivado 中啟動(dòng)硬件管理器。選擇自動(dòng)連接選項(xiàng)以建立與 TE0711 的連接。

右鍵單擊硬件窗口中 localhost 下的 xc7a35t_0 部分,然后選擇添加配置內(nèi)存設(shè)備...選項(xiàng)。使用過濾器導(dǎo)航到列表中的 s25fl256sxxxxxx0-spi-x1_x2_x4 部件并從中選擇。

程序配置存儲(chǔ)設(shè)備
添加閃存芯片并被硬件管理器識(shí)別后,在“硬件”窗口中右鍵單擊它并選擇“程序配置存儲(chǔ)設(shè)備...”選項(xiàng)。
對于Configuration file ,指向前面步驟中生成的 MCS,位于Write Memory Configuration File對話框窗口的 F??ilename 框中指定的目錄路徑。在該步驟中還生成了一個(gè) PROM 文件,并以相同的文件名保存在指定位置,指向該文件以獲取PRM 文件。
至少,檢查Erase 、Program和Verify選項(xiàng),然后單擊Apply和OK以最終對 TE0711 進(jìn)行編程。

編程可能需要幾分鐘。
重啟和測試
出現(xiàn)指示閃存已成功編程的對話框后,關(guān)閉 Vivado 中的硬件管理器并重啟 TE0711 + TE0701。
重新啟動(dòng)后,使用您選擇的終端應(yīng)用程序連接到電路板(我只是在 Vitis 中使用串行終端,因?yàn)槲彝ǔR呀?jīng)打開了 Vitis)。

我選擇在應(yīng)用程序的循環(huán)中添加“Hello TE0711”的打印輸出,這樣控制臺(tái)中就會(huì)立即看到一些東西,同時(shí)仍然保持 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 已編程并準(zhǔn)備就緒。如上面的屏幕截圖所示,周期性的“Hello TE0711”正在打印到控制臺(tái),并回顯它接收到的字符。此應(yīng)用程序的 UART 中的緩沖區(qū)仍設(shè)置為默認(rèn)的較小大小,因此一次可以回顯的字符長度存在限制。
- 從NAND閃存啟動(dòng)DaVinci EVM
- 博雅微電子機(jī)械系列NOR閃存BY25D80 42次下載
- EV-21569-SOM手冊
- EV-21569-SOM Manual
- EV-21569-SOM Schematic
- 如何將外部SPI Flash加載到FPGA內(nèi)部ram然后復(fù)位MC8051
- TB3015中文手冊之使用PIC32引導(dǎo)閃存擴(kuò)展程序存儲(chǔ)器
- SAMA5D27 SOM1 Kit1基礎(chǔ)知識(shí)及操作指南
- TMS320VC5505 DSP外部存儲(chǔ)器接口(EMIF)操作的詳細(xì)概述 9次下載
- 如何從NAND閃存啟動(dòng)達(dá)芬奇EVM 9次下載
- TMS320F28x 外部接口(XINTF)參考指南 13次下載
- TMS320F2812學(xué)習(xí)總結(jié) 13次下載
- TMX320F2810/F2812阿爾法閃存編程工具 6次下載
- 支持多種閃存啟動(dòng)的U_Boot實(shí)現(xiàn)方法的改進(jìn)_卞蕓 0次下載
- LPC900外部晶體啟動(dòng)應(yīng)用規(guī)格書 AN10289 data
- 基于瑞薩Arm Cortex-M85 MCU Feather SOM的解決方案 547次閱讀
- 軟啟動(dòng)器的啟動(dòng)方式有哪些 1626次閱讀
- PY25Q128HA串行接口閃存設(shè)備產(chǎn)品概述 1088次閱讀
- PY25Q64HA串行接口閃存設(shè)備產(chǎn)品概述 1221次閱讀
- i.MX RT1xxx從SD/eMMC啟動(dòng) 1356次閱讀
- 如何從外部優(yōu)化降壓穩(wěn)壓器ICS的頻率響應(yīng) 1020次閱讀
- I.MXRT1170從FLEXSPI2啟動(dòng) 1430次閱讀
- 從網(wǎng)絡(luò)啟動(dòng)linux系統(tǒng)如何做調(diào)試 1761次閱讀
- 使用ICAP在SPI模式下執(zhí)行Spartan-3AN多重啟動(dòng) 776次閱讀
- 一文了解window電腦控制面板的快速啟動(dòng) 8.3w次閱讀
- dfrobot3.5" TFT觸摸屏 4MB閃存簡介 1883次閱讀
- 如何使用高速NOR閃存配置FPGA 3272次閱讀
- 怎么從USB驅(qū)動(dòng)器加載運(yùn)行Windows 10 2082次閱讀
- ZYNQ-7000如何生成從Flash和SD卡啟動(dòng)的鏡像文件 7641次閱讀
- 串行SPI Nor Flash啟動(dòng)流程 2.1w次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費(fèi)
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費(fèi)
- 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費(fèi)
- 6迪文DGUS開發(fā)指南
- 31.67 MB | 194次下載 | 免費(fèi)
- 7元宇宙底層硬件系列報(bào)告
- 13.42 MB | 182次下載 | 免費(fèi)
- 8FP5207XR-G1中文應(yīng)用手冊
- 1.09 MB | 178次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊免費(fèi)下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德爾著
- 0.00 MB | 6656次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191187次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評論