• 大小: 66KB
    文件类型: .rar
    金币: 2
    下载: 1 次
    发布日期: 2021-05-05
  • 语言: 其他
  • 标签: linux  驱动程序  imx  

资源简介

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;i< 1024*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;i< 1024*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


评论

共有 条评论