阅读:2983回复:5
急 !急! ioremap () 的问题???
小弟用的是intel 公司的sitsang 开发板 想读它的 物理地址 0x1400,0010 上的数 同时把数 储存起来
现在问题是我怎么去读这个地址上的数 在它的 tatic struct map_desc sitsang_io_desc[] __initdata = { /* virtual physical length domain r w c b */ { 0xf0000000, 0x08000000, 0x00100000, DOMAIN_IO, 0, 1, 0, 0 }, { 0xf1000000, 0x04000000, 0x00100000, DOMAIN_IO, 0, 1, 0, 0 }, { 0xf1100000, 0x04800000, 0x00100000, DOMAIN_IO, 0, 1, 0, 0 }, { 0xf4000000, 0x10000000, 0x02000000, DOMAIN_IO, 0, 1, 0, 0 }, 里面没有0x14000010的映射 于是我用 下面的代码: int *addr: int i; addr=ioremap(0x14000000,0x0100); i=readl(addr+0x0010); printk(data=%x\n",i); 来读它的数 结果读出来的是不对 请问是不是用ioremap映射不行 啊? 急!急! |
|
沙发#
发布于:2004-08-19 23:18
呵呵,好多天没来看贴了。
你说的那个问题我好像遇到过,后来多试了几次就搞定了,具体怎么回事我也忘了。 好像不是ioremap()的问题,大概是c语言中数据长度换算的问题,如果不是,再看看big-edian和little-edian,实在不行就把地址的值也打出来看看,和/proc/iomap中的值对照一下,要有点耐心 |
|
板凳#
发布于:2004-08-23 22:23
先向系统申请资源,然后再映射内存!!!
申请资源request_region() 映射ioremap() 这样才能使用物理资源!!!!! |
|
地板#
发布于:2004-08-28 13:24
先向系统申请资源,然后再映射内存!!! nod |
|
|
地下室#
发布于:2004-09-01 10:06
先向系统申请资源,然后再映射内存!!! 如果还不行,那就要看看firmware的映射是不是对了 |
|
5楼#
发布于:2004-09-17 10:13
先向系统申请资源,然后再映射内存!!! 这位兄弟能否把代码示范一下啊 :)多谢了 |
|
|