-
大小: 66KB文件類型: .rar金幣: 2下載: 1 次發(fā)布日期: 2021-05-05
- 語(yǔ)言: 其他
- 標(biāo)簽: linux??驅(qū)動(dòng)程序??imx??
資源簡(jiǎn)介
EIM總線用于ARM芯片快速訪問(wèn)外部存儲(chǔ)器。本文件包含iMX6開發(fā)板EIM總線驅(qū)動(dòng)程序(fpga.c)、調(diào)試程序(eim_test.c)及調(diào)試方法。程序僅供參考學(xué)習(xí)。

代碼片段和文件信息
#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秒,查看映射前的內(nèi)存圖cat?/proc/pid/maps?
//????mapBuf=(unsigned?char?*?)mmap(NULL16*1024PROT_READ|PROT_WRITEMAP_SHAREDfd0);//映射16k
????????//內(nèi)存映射,會(huì)調(diào)用驅(qū)動(dòng)的mmap函數(shù)
//????for(i=0;i1024*16;i++)
//?????????printf(“mapBuf[%d]=%x\n“imapBuf[i]);
//???sleep(15);//睡眠15秒,在命令行查看映射后的內(nèi)存圖,如果多出了映射段,說(shuō)明映射成功
????????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);
}
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件???????2521??2020-01-16?10:07??EIM驅(qū)動(dòng)\eim_test.c
?????文件??????16551??2020-08-28?11:16??EIM驅(qū)動(dòng)\fpga.c
?????文件??????67579??2020-08-28?11:12??EIM驅(qū)動(dòng)\驅(qū)動(dòng)調(diào)試方法.pdf
?????目錄??????????0??2020-08-28?11:24??EIM驅(qū)動(dòng)
-----------?---------??----------?-----??----
????????????????86651????????????????????4
評(píng)論
共有 條評(píng)論