?? fpga_load.c
字號:
/* 用8031加載ALtera的FPGA,也可用于Xilinx的FPGA的加載 */
void load_epld(void)
{
unsigned char data i;
unsigned int data j;
unsigned char xdata * data pt;
SCON = 0x0; /* 設置8031工作在方式0,同步串行方式 */
CONFIG = 0; /* 初始化FPGA */
i=4; /* 注意8031的工作頻率和速度,對于Xilinx的FPGA,初始化的時間要長一些,具體查下各個FPGA的參數 */
while(STATUS!=0) {
i--;
if(i==0) {
CONFIG = 0;
FPGA_Init_Error(); /* FPGA初始化錯誤處理程序,自己編制 */
}
}
CONFIG = 1; /* 初始化FPGA完畢 */
i=10; /* 注意8031的工作頻率和速度,各個FPG的初始化的時間不一樣,具體查下各個FPGA的參數 */
while(STATUS!=1) {
i--;
if(i==0) {
CONFIG = 0; /* 錯誤時,使FPGA處于初始化狀態,保證電路處于安全狀態 */
FPGA_Init_Error(); /* FPGA初始化錯誤處理程序,自己編制 */
}
}
pt=(unsigned char xdata *)EPLD_DATA; /* EPLD_DATA為FPGA的存放地址 */
for(j=0; j < EPLD_Number; j++) { /* EPLD_Number為FPGA的加載字節數,當大于64K */
SBUF = *pt++; /* 字節時,要采用頁面切換的方式 */
while(!TI); /* 等待1個字節加載完畢 */
TI=0;
if(STATUS!=1) { /* 加載過程中,檢查加載是否正確 */
CONFIG = 0; /* 錯誤時,使FPGA處于初始化狀態,保證電路處于安全狀態 */
FPGA_Load_Error(); /* FPGA加載錯誤處理程序,自己編制 */
}
}
if(CFG_DOWN!=1) { /* FPGA數據加載完畢,檢查加載是否正確 */
CONFIG = 0; /* 錯誤時,使FPGA處于初始化狀態,保證電路處于安全狀態 */
FPGA_Done_Error(); /* FPGA加載錯誤處理程序,自己編制 */
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -