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...