⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fpga-test.c

📁 基于PXA270-S linux的FPGA实现
💻 C
字号:
/*
	fpga-test.c, need insmod s3c2410-fpga.o first.
	author: wb <wbinbuaa@163.com>
	date:   2005-6-13 21:05
*/

#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <pthread.h>
#include <sys/mman.h>

//FPGA is on bank 4
#define oFPGA_IOP1L		0
#define oFPGA_IOP1H		2
#define oFPGA_IOP2L		4
#define oFPGA_IOP2H		6
#define oFPGA_IOP3L		8
#define oFPGA_IOP3H		0xA
#define oFPGA_LED_CTRL		0xC
#define oFPGA_RESET		0x3E

static void help_menu()
{
	printf("\n");
	printf("DESCRIPTION\n");
	printf("      Fpga test program. Writing the register of the fpga loaded in        \n");	
	printf("      the Bank4, it can control the frequency of leds on the fpga board. \n");	
	printf("OPTIONS\n");
	printf("      -h or --help:    this menu\n");
	printf("\n");
}

int main(int argc, char **argv)
{
	int fd;
	unsigned char *iobase;
	int cnt=0,tn=0;
	char ch;
/*	
	if(argc >= 2){
		if(strncmp(argv[1],"-h")==0 ||strncmp(argv[1],"--help")==0 ){
			help_menu();
		}	
		exit(0);
	}
*/	
	fd = open("/dev/fpga",O_RDWR);
	if(fd < 0){
		printf("####fpga  device open fail####\n");
		return (-1);
	}

	iobase = (unsigned char *)mmap(0, 4096,PROT_READ | PROT_WRITE, MAP_SHARED,fd,0);

	while(1){
		usleep(300000);
      		if(cnt>=30){
			cnt=0;
			printf("\n"); 
			fflush(stdout);
		}	
       
        
		*(iobase+oFPGA_LED_CTRL)=cnt++;
		printf(" 0x%x", *(iobase+oFPGA_LED_CTRL)); 
                fflush(stdout);
	}
	
	close(fd);
	return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -