免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1748 | 回复: 2
打印 上一主题 下一主题

请教内核模块访问外部存储空间问题,在线等 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-05-04 14:46 |只看该作者 |倒序浏览
我的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)的操作就是报上述错误。

请问各位大虾,这里的操作哪里错了,应该如何操作?

论坛徽章:
0
2 [报告]
发表于 2009-05-04 15:14 |只看该作者

回复 #1 zhenfeng 的帖子

顶一下。
望各位不吝赐教!

论坛徽章:
0
3 [报告]
发表于 2009-05-04 22:32 |只看该作者
查一下mmap吧,好像不用ioremap吧。访问ram不能用io吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP