内存访问

中文QNX 讨论: 欢迎大家灌水,讨论有关QNX 问题。

内存访问

帖子空城和出口 » 周二 11月 22, 2011 2:49 pm

我想访问ISA总线上的一段内存,从0xD0000~0xDFFFF
通过mmap_device_memory()函数映射后,直接对映射后的地址进行写操作,发现读出来的值没有变化。
我的访问方式是不是有问题?
uint32_t *ptr;
volatile uint32_t *tp;

ThreadCtl(_NTO_TCTL_IO,0);

ptr = (uint32_t *)mmap_device_memory(NULL,0x1000,(PROT_READ|PROT_WRITE),MAP_SHARED,0xd0000);
if ( ptr == MAP_FAILED ) {
perror( "mmap_device_memory for physical address 0xd0000 failed" );
exit( EXIT_FAILURE );
}
tp = ptr + 0x100;
*tp = 0;
printf("The value writen to memory is 0x%x",*tp);
*tp = 0x10;
printf("The value writen to memory is 0x%x",*tp);
请大家帮忙看看,谢谢
空城和出口
Senior Member
 
帖子: 31
注册: 周三 8月 17, 2011 11:02 am

Re: 内存访问

帖子ch0721 » 周二 11月 22, 2011 10:56 pm

用out**(base+offset,value)试试 像out32() out16() out8() 还有in**()用来读数据
ch0721
New Member
 
帖子: 9
注册: 周三 7月 13, 2011 5:09 pm

Re: 内存访问

帖子threegates » 周二 12月 06, 2011 2:53 pm

你把第一个参数有0换成0d0000试试
threegates
New Member
 
帖子: 5
注册: 周四 11月 10, 2011 4:26 pm


回到 四海同心QNX论坛

在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客

cron