(原創) 如何在Nios II使用Zip File System? (IC Design) (Nios II) (DE2)

Abstract
有時候必須在程式中讀取文字檔或影像檔,此時該將檔案放在哪裡呢?Nios II提供了Zip File System的機制,只要將檔案放在沒有壓縮的zip檔內,就可以使用C語言的fopen()對檔案作讀取。

使用環境:Quartus II 7.2 SP1 + Nios II 7.2 SP1 + DE2(Cyclone II EP2C35F627C6)

Introduction
Nios II EDS本身就有提供Zip File System這個project template,若要使用Zip File System,可根據這個template做修改,但過程中有個小地方若不注意,整個template就無法成功執行,特別在此說明。

Hardware
Step 1:
使用友晶科技提供的reference design

硬體部分就不用使用SOPC Builder重新建立了,直接使用友晶科技所提供的reference design即可,下載

http://www.terasic.com/downloads/cd-rom/de2/DE2_System_v1.4b.zip

Step 2:
建立DE2_Zip_File_System目錄

將DE2_System_v1.4b.zip解壓縮,接著將\DE2_System_v1.4b\DE2_demonstrations\SOPC_Builder\Reference_Design\DE2_NIOS\目錄複製到c:\,並將目錄名稱改成[DE2_Zip_File_System]

Step 3:
使用Quartus II 7.2開啟\DE2_Zip_File_System\DE2_NIOS.qpf

友晶科技已經編譯了DE2_NIOS.sof,可以直接燒入至DE2,當然你想用Quartus II重新編譯也行。

Software
Step 1:
使用Zip File System project template建立一個新的Nios II專案

按<Finish>下一步。

zip_01

Step 2:
將files.zip燒入至flash

Tools -> Flash Programmer

zip_02

第一次按右上角New建立新configuration。

zip_plus_00.gif

在project處填入本專案名稱zip_filesystem_0,會自動帶出Debug/zip_filesystem_0.elf。

zip_plus_01.gif

選擇欲載入flash的Zip File System檔案,本template預設zip檔案為\DE2_Zip_File_System\software\zip_filesystem_0_syslib\files.zip,另外memory要選cfi_flash_0,最重要的,Offset要填0x100000,我就在這邊卡了一段時間,最後按下<Program Flash>將zip檔傳進flash。

zip_00

成功寫入flash後,出現以下訊息,最後雖然會出現『Leaving target processor paused』訊息,但不用擔心,此屬正常。

zip_03

Step 3:
執行程式

最後結果如下所示

zip_04

完整程式碼下載
DE2_Zip_File_System.7z

Conclusion
友晶科技有一個範例,在Nios II平台實作出一個簡單的web server,那HTML要放在哪裡呢?就是放在Zip File System內。我本身正在做QR code的解碼,圖片也是放在Zip File System,這樣就可以簡單的使用C語言的fopen()作開檔的動作了,至於詳細的fopen()使用方法,在template中的範例程式都很清楚,我就不再多做說明。

See Also
(原創) 如何解決No CFI table found at address的錯誤訊息? (SOC) (Nios II) (DE2)
(原創) 如何在Nios II EDS 8.0使用Host File System與Zip File System? (SOC) (Nios II)
(原創) 如何在Nios II對Flash進行讀寫? (SOC) (Nios II) (DE2) (DE2-70)

Reference
Nios II Software Developer's Handbook Ch.15 Read-Only Zip File System

posted on 2008-02-24 19:34  真 OO无双  阅读(6265)  评论(42编辑  收藏  举报

导航