- 论坛徽章:
- 0
|
我的powerpc处理器平台上有一个FPGA内的RAM空间,想在我的一个内核模块中访问该空间,如下操作始终报错:
...
Machine check in kernel mode.
...
Bus error
操作代码如下:
void TestMemRW(void)
{
int i;
unsigned short len;
unsigned long start;
void __iomem *memaddr;
/* for powerpc linux kernel */
len = 0x100;
start = COM_STC_ADD_BASE;
memaddr = ioremap(start, len);
printk("memaddr=%p\n", memaddr);
for(i=0; i<0x100; i++)
{
iowrite16(i, memaddr+i);
}
}
其中,COM_STC_ADD_BASE为0xc0001000,是FPGA内RAM空间的一块起始地址,ioremap得到的地址是0xc901a000,好像也正常;但iowrite16(i, memaddr+i)的操作就是报上述错误。
请问各位大虾,这里的操作哪里错了,应该如何操作? |
|