ZYNQ7000 EMMC SD硬體測試

2021-10-23 13:10:54 字數 2891 閱讀 9802

vivado生成.bit,匯入sdk,分別建硬體測試工程

1.emmc裸機讀寫測試

方法:使用了 xilinx sdk 庫函式實現讀寫,先往 emmc 裡面寫 1024 個資料,然後讀出來對比

#include #include "xparameters.h"

#include "xil_exception.h"

#include "xsdps.h"

#include "xil_printf.h"

static xsdps ps7_emmc;

xsdps_config * emmc_config;

u8 wr_buf[1024];

u8 rd_buf[1024];

u8 emmc_extcsd[1024];

int main()

status=xsdps_mmccardinitialize(&ps7_emmc);

if (status != xst_success)

status=xsdps_change_clkfreq(&ps7_emmc,50000000);

status=xsdps_select_card(&ps7_emmc);

status=xsdps_setblksize(&ps7_emmc,xsdps_blk_size_512_mask);

status=xsdps_get_mmc_extcsd(&ps7_emmc,emmc_extcsd);

for(i=0;i2.sd卡裸機讀寫測試

實現了建立乙個 text.txt 的檔案,並且開啟,只有往裡面寫 0~1023~共計 1024 個資料,之後再讀這個檔案,讀出 1024 個資料,最後對比資料內容是否和寫入的一致。使用者可以可以直接複製以上程式到自己的工程使用。除此之外,要讓自己新建的工程可以正常編譯,還要設定 bsp 庫:選單欄xilinx->board support package setting勾選 xilffs 庫,以支援 sd 卡的裸機檔案系統支援。

#include #include "xparameters.h"

#include "xsdps.h"

#include "xil_printf.h"

#include "ff.h"

static fatfs sd_dev; // file system instance

char *sd_path = "0:/"; // string pointer to the logical drive number

static char filename[32] = "test.txt"; // name of the log

u8 wr_buf[1024] __attribute__ ((aligned(32))); // buffer should be word aligned (multiple of 4)

u8 rd_buf[1024] __attribute__ ((aligned(32))); // buffer should be word aligned (multiple of 4)

int sd_init()

return xst_success;

}int sd_read(char *filename,u8 *destinationaddress,u32 bytelength)

result = f_lseek(&file, 0);

if(result)

result = f_read(&file, (void*)destinationaddress,bytelength,&bytesrd);

if(result)

result = f_close(&file);

if(result)

return xst_success;

}int sd_write(char *filename,u8 *sourceaddress,u32 bytelength)

result = f_lseek(&file, 0);

if(result)

result = f_write(&file,(void*) sourceaddress,bytelength,&byteswr);

if(result)

result = f_close(&file);

if(result)

return xst_success;

}int main()

//-----------------------write test data to file-----------------------------------

result=sd_write(filename, wr_buf, buffer_size);

if (result!=0)

xil_printf("sd card written successfully\r\n");

//-----------------------read test data ------------------------------------------

result=sd_read(filename, rd_buf, buffer_size);

if (result!=0)

xil_printf("sd card data read successfully\r\n");

//-----------------------check data-----------------------------------------------

for(i=0; i}if(sd_error)

xil_printf("sd card data checked error\r\n");

else

xil_printf("sd card data checked successfully\r\n");

return 0;

}

ZYNQ7000效能分析

提到自動駕駛,機械人視覺,高畫質攝像機,都要想到攝像頭這個單元,先前本俠也講過一些fpga應用在高畫質攝像頭和機器視覺中的深度攝像頭以及雙目攝像頭等,fpga在裡面的作用主要是對採集的影象進行處理,對影象的處理需要硬體有著很好的並行的效能,那麼它處理速度跟arm的cpu比起來有沒有優勢呢?本俠今天就...

Zynq7000晶元內部介紹

基於arm雙核coretexa9 arm v7架構 高達1ghz 單雙精度浮點單元 neon多 處理引擎 高速緩衝,中斷,dma,定時器,rtc,ent,3個看門狗 快取每個cpu 32kb 1級指令和資料快取 512kb 2級快取 2個cpu共享 支援8位奇偶校驗 片內儲存 片上boot rom ...

Zynq 7000能幹什麼

zynq 7000能幹什麼 1背景知識 2應用概述 2.1汽車 圖1 汽車系統 左 輔助駕駛系統 右 道路標識識別 現在的汽車裡都有大量的電子裝置,從引擎管理到車窗 倒車輔助系統 駕駛員輔助系統 後視鏡和燈光等控制功能,以及導航和資訊娛樂系統都有。先進駕駛輔助系統 advanced driver a...