資源簡介
EIM總線用于ARM芯片快速訪問外部存儲器。本文件包含iMX6開發板EIM總線驅動程序(fpga.c)、調試程序(eim_test.c)及調試方法。程序僅供參考學習。

代碼片段和文件信息
#include?
#include?
#include?
#include?
#include?
#include?
//buffer
unsigned?char?buffer[1024*32]={0};
int?main(int?argcchar?**argv)
{
????????int?fd=0;
????????unsigned?char?*mapBuf=0;
????????//char?*buffer;
//??????buffer?=?malloc(32?*?1024);
????????//if(buffer?==?NULL)
????????//??????????????exit(1);
????????memset(buffer032*1024);
????????int?i;
????????fd?=?open(“/dev/fpga“O_RDWR);
????????if(fd?0){
????????????????????????perror(“open?fram“);
????????????????????????exit(1);
????????}
//????sleep(15);//睡眠15秒,查看映射前的內存圖cat?/proc/pid/maps?
//????mapBuf=(unsigned?char?*?)mmap(NULL16*1024PROT_READ|PROT_WRITEMAP_SHAREDfd0);//映射16k
????????//內存映射,會調用驅動的mmap函數
//????for(i=0;i1024*16;i++)
//?????????printf(“mapBuf[%d]=%x\n“imapBuf[i]);
//???sleep(15);//睡眠15秒,在命令行查看映射后的內存圖,如果多出了映射段,說明映射成功
????????if(strcmp(“read“argv[1])?==?0){
????????????????????????while(1)
????????????????????????{
????????????????????????????if(read(fdbuffer32*1024)?0)
????????????????????????????????{
????????????????????????????????????????????????perror(“read?fram“);
????????????????????????????????????????????????exit(1);
????????????????????????????????}
????????????????????????//??for(i?=?0;i?32*1024;i++)
????????????????????????//??????{
????????????????????????//??????????if(buffer[i]?!=?(i?&?0xff))
????????????????????????//??????????????{
????????????????????????//??????????????????????printf(“buffer[%x]?=?%x\n“ibuffer[i]);
????????????????????????//??????????????}
????????????????????????//??????}
????????????????????????//??????lseek(fd0SEEK_SET);
????????????????????????}
????????}
????????else
????????{
????????//??????for(i?=?0;i?32*1024;i++)
????????//??????{
????????//??????????buffer[i]?=?i?&?0xff;
????????//??????}
????????while(1)
????????{
??????????????????????????if(write(fdbuffer32*1024)?0)
??????????????????????????{
?????????????????????????????????perror(“write?fram“);
?????????????????????????????????exit(1);
??????????????????????????}
//????????????????????????for(i=0;i1024*16;i++)
//????????????????printf(“mapBuf[%d]=%x\n“imapBuf[i]);
??????????????????????????sleep(1);
????????}
????????}
//??????free(buffer);
//??????munmap(mapBuf?16*1024);//去除映射
????????close(fd);
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????2521??2020-01-16?10:07??EIM驅動\eim_test.c
?????文件??????16551??2020-08-28?11:16??EIM驅動\fpga.c
?????文件??????67579??2020-08-28?11:12??EIM驅動\驅動調試方法.pdf
?????目錄??????????0??2020-08-28?11:24??EIM驅動
-----------?---------??----------?-----??----
????????????????86651????????????????????4
評論
共有 條評論