- 论坛徽章:
- 0
|
主要目标是完成和fpga的高速通信
程序如下所示:
#include <sys/types.h>
#include <stdio.h>
#include <sys/ioctl.h>
#include <sys/mman.h>
#include <fcntl.h>
#include <memory.h>
#define ARM_SYS 0x30000000
#define INT *(volatile unsigned int*)
void * map_base;
FILE *f;
int n,fd;
int main(int argc,char *argv[])
{
if((fd=open("/dev/mem",O_RDWR|O_SYNC))==-1){
return(-1);
}
map_base=mmap(0,0xff,PROT_READ|PROT_WRITE,MAP_SHARED, fd, ARM_SYS);
int i;
for(i=0;i<10;i++)
{
if(atoi(argv[1])==1)
{
INT (map_base)=0xFFFFFFFF;
printf("0xFFFFFFFF\n");
}
else if(atoi(argv[1])==0)
{
INT (map_base)=0xF0F0F0F0;
printf("0xF0F0F0F0\n");
}
else
{
printf("Error!\n");
break;
}
else if(atoi(argv[1])==0)
{
INT (map_base)=0xF0F0F0F0;
printf("0xF0F0F0F0\n");
}
else
{
printf("Error!\n");
break;
}
sleep(1);
}
close(fd);
munmap(map_base,0xff);//解除映射关系
}
用root权限,程序在arm运行后,没有报错误,正常运行,我用万用表测量总线接口的数据
和地址管脚,没有发现任何变化,都是低电平0V,不知道正确的做法应该是什么? |
|