ChinaUnix.net
相关文章推荐:

ioremap mmap

#define cpld_addr 0x81000000 在一个驱动测试里: int test_init() { unsigned int i = 0; void *addr; addr = ioremap(CPE_CPLD_BASE, 0x3ff); printk("cpld addr : %x\n",addr); i = readl(addr); printk("cpld readl %d\n",i); } insmod 后地址是映射到 0xc...... 3G以后空间. 然活就不断报错 External DataAbo...

by dida_327 - 内核/嵌入技术 - 2006-12-07 14:35:47 阅读(686) 回复(0)

相关讨论

我用at91rm9200外挂一块fpga,它的读写速度最快能达到多少呢? u32 p; p=ioremap(test_add1,2); *(volatile unsigned short *)p=0x22; p=ioremap(test_add2,2); *(volatile unsigned short *)p=0x33; 写这两个地址的时候 cs有效的时间(低电平)为220ns,两个之间间隔为175us,这样太慢了, 我刚刚又测试了一下,如果 u32 p; p=ioremap(test_add1,2); *(volatile unsigned short *)p=0x22; p=ioremap(test_add2,...

by ldhhello - 内核/嵌入技术 - 2006-11-07 19:55:25 阅读(1171) 回复(3)

ioremap()的原形是void*ioremap(unsigned long offset,unsigned long size); 请问这里的offset和size是指物理地址的吗,返回值是虚拟地址对吗

by john3851 - 程序开发 - 2006-05-05 16:24:57 阅读(804) 回复(0)

由于要访问大内存(over 4G),所以要使用以上几个函数。 但是在使用过程中遇到几个问题: 1. mmap2按照man里说的,include了,但是却编不过。 在.cpp里使用,是直接报没有声明的错误。 在.c里使用,可以编译但是链接失败。而且编译时有一个warning,说是把integer赋给了pointer,明明返回的是void*怎么成integer了?搞不懂。 2. mmap64在32位系统上使用没有问题, 在64位系统上,.c编译也会有上面...

by Finasy - 程序开发 - 2007-01-08 10:58:36 阅读(738) 回复(0)

[code]/*mycp.c*/ #include #include #include #include #include #include #include #include int main(int argc,char *argv[]) { int fdin,fdout; void* src; void* dst; struct stat statbuf; if(argc != 3) { printf("please input two file!\n"); exit(1); } if((fdin=open(argv[1],O_RDONLY))<0) /*打开原文件...

by ubuntuer - C/C++ - 2009-04-07 12:26:59 阅读(957) 回复(3)

FILE* ptr; 文件是以 fd=open(tim,O_RDONLY|O_WRONLY|O_CREAT,S_IRWXU) 打开! ptr=(FILE*)mmap(NULL,sb.st_size,PROT_READ|PROT_WRITE,MAP_SHARED,fd,0); 这样使用mmap有错误没? mmap不是返回一个void*吗?

by jqx55ah - C/C++ - 2008-10-27 00:43:32 阅读(982) 回复(2)

#include #include #include #include #include #include #include int main(int argc, char **argv) { char *fname; FILE *f; unsigned long offset, len; void *address; if (argc !=4 || sscanf(argv[2],"%li", &offset) != 1 || sscanf(argv[3],"%li", &len) != 1) { fprintf(stderr, "%s: Usage ...

by 3040602024 - C/C++ - 2007-10-09 22:24:15 阅读(3013) 回复(6)

#include #include #include #include #include #include int main() { int fd=open("/myhome/study/c/1468/ttt",O_RDWR); char *p=mmap(NULL,100,PROT_READ|PROT_WRITE,MAP_SHARED,fd,0); printf("%s\n",p); char pp[100]="bianlizhi"; strcpy(p,pp); printf("%s\n",p); return 0; } ttt 中内容为12345 the result: [root@localhost 1468]# ./a.out 12345 ...

by 3040602024 - C/C++ - 2007-09-29 09:02:37 阅读(1941) 回复(13)

typedef struct{ char name[4]; int age; }people; main(int argc, char** argv) { int fd,i; int pagesize,offset; people *p_map; pagesize = sysconf(_SC_PAGESIZE); printf("pagesize is %d\n",pagesize); fd = open(argv[1],O_CREAT|O_RDWR|O_TRUNC,00777); lseek(fd,pagesize*2-100,SEEK_SET);//设置文件大小。因为mmap不能改变文件大小 write(fd," ",1); offset = 0; //此处offset = 0编译成版本1;offset = pag...

by 3040602024 - C/C++ - 2007-08-28 17:37:16 阅读(1153) 回复(0)

mmap() function和malloc() function有什么区别 呢?什么时候我们可以用mmap() function呢?它有什么好处呢?

by zhn636 - C/C++ - 2007-08-29 09:12:49 阅读(2263) 回复(8)

hi, all 我用mmap把一个elf格式的可执行文件放入内存. mmap一直返回错. 我的代码如下: stat (file, &file_stat); fd = open(file, O_RDONLY); ret_val = mmap(NULL, file_stat.st_size, PROT_READ, MAP_PRIVATE|MAP_FILE|MAP_VARIABLE, fd, getpagesize()); 为什么ret_val老是-1. 我的环境是salories. 谢谢

by cs221313 - C/C++ - 2004-09-28 16:54:14 阅读(583) 回复(2)