本原創教程由芯驛電子科技(上海)有限公司(ALINX)創做,版權歸本公司全部,如需轉載,需受權並註明出處。html
AXU2CGA/AXU2CGB/AXU3EG/AXU4EV-E/AXU4EV-P/AXU5EV-E/AXU5EV-P /AXU9EG/AXU15EG緩存
vivado工程目錄爲「ps_hello/vivado」函數
vitis工程目錄爲「ps_sd/vitis」網站
本章介紹使用FatFs文件系統模塊讀取SD卡的BMP圖片,並經過DP顯示。spa
FatFs是一個通用的文件系統模塊,用於在小型嵌入式系統中實現FAT文件系統。FatFs的編寫遵循 ANSI C,所以不依賴於硬件平臺。它能夠嵌入到便宜的微控制器中,如 8051, PIC, AVR, SH, Z80, H8, ARM等等,不須要作任何修改。3d
應用程序經過API函數來調用FatFs系統模塊,從而來控制SD卡這些存儲設備。orm
FatFs 系統提供了不少 API 函數,咱們在下面列舉了如下咱們例程中會用的的 API 函數。htm
f_mount - 註冊/註銷一個工做區域(Work Area)blog
f_open - 打開/建立一個文件教程
f_close - 關閉一個文件
f_read - 讀文件
f_write - 寫文件
關於 API 函數的介紹和說明,你們能夠參考如下的網站進行更深一步的瞭解,這個網站上
給出來了每一個 API 函數的使用說明和例子。
http://elm-chan.org/fsw/ff/00index_e.html
1)打開Vitis軟件,咱們已經爲你們生成了一個sd_bmp的工程。這裏須要配置BSP支持包的屬性,在Board Support Package Settings裏選擇xilffs項,使能項目支持xilffs文件系統。
關於xilffs庫是Xilinx提供的FAT文件系統支持包,用戶能夠調用庫裏的API函數實現對
SD/eMMC等設備的操做。xilffs庫裏主要包含FAT的文件系統(File System Files)和驅動層文件(Glue Layer Files)。
2) 關於xilffs庫的介紹和應用,你們能夠參考如下Xilinx官網連接:
http://www.wiki.xilinx.com/xilffs
3) 接下來咱們來看sd_bmp的工程代碼。在工程代碼裏,咱們須要把 SD 卡里存儲的 bmp格式的圖像數據讀出來,去掉圖像頭後放到DP的顯示緩衝區中,而後實現圖像在DP顯示器的顯示。
4)在bmp.c 文件裏,咱們添加了一個 bmp_read 的函數,在這個函數裏首先用f_open函數打開一個 SD 卡里的bmp的圖片文件。而後讀取這個文件的前面 54 個字節,由於BMP圖像文件的前面54個字節爲圖像頭文件,裏面包含了圖像的像素大小信息。再一行一行的讀取圖像數據存到DP的 frame 顯示緩衝區中。
因爲BMP的存儲是上下顛倒的,所以在bmp_read函數中調整了順序,存入frame緩存區。
5)同時咱們也準備了BMP文件頭結構體,以及一些經常使用分辨率的圖像頭設置,放在bmp.h文件中。
6) 結合以前小貓圖片的顯示,將小貓圖片保存成bmp格式,保存到SD卡里,在bmp_write函數中,結合bmp頭和bmp數據,保存到SD卡。
7) 在main函數裏,調用bmp_read函數實現一副圖像從SD卡讀取到DP顯示緩衝的存儲,這裏的 BMP 圖像的文件名1.bmp須要和存儲在SD卡里的文件名同樣。用bmp_write,將小貓圖片寫入SD卡。
1) 首先須要先存一副1920*1080像素,24bit的BMP文件到SD卡里,文件名爲1.bmp(文件在工程目錄下),開發板斷電狀況下,把SD卡插入卡座裏。
2) 開發板鏈接DP顯示器,而後上電,下載程序運行以後咱們能夠在DP顯示器上顯示SD卡里存儲的1.bmp文件的圖像。
3) 以後可將開發板斷電,將SD卡插到電腦上,能夠看到多了CAT.BMP