亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫
12下一頁
最近訪問板塊 發(fā)新帖
查看: 7252 | 回復(fù): 11
打印 上一主題 下一主題

ioremap()函數(shù) [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2008-09-01 19:37 |只看該作者 |倒序?yàn)g覽
我將一個(gè)寄存器用ioremap函數(shù)定義到驅(qū)動(dòng)中,R_GPECON=ioremap(GPECON,4),我是不是可以這樣對(duì)這個(gè)寄存器直接賦值:
         R_GPECON=0xffffffff還是這樣*R_GPECON=0xffffffff。到底那個(gè)正確呀。
謝謝

論壇徽章:
0
2 [報(bào)告]
發(fā)表于 2008-09-02 08:11 |只看該作者
writeb/writew/readb/readw in 2.4 kernel,
writeb(內(nèi)容,地址)。
R_GPECON=ioremap(GPECON,4);
writew(0xffffffff,R_GPECON);:wink:

ioremap 將物理地址映射到內(nèi)核中的一段地址,映射之后你看到的R_GPECON跟物理地址有一段偏移,所以不能直接操作~~

就是這個(gè)樣子~~

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2008-09-04 10:01 |只看該作者
ls的,應(yīng)該是writel(0xffffffff,R_GPECON);吧?看它映射的是32位。還有,一般多用~0,而不是0xffffffff

論壇徽章:
0
4 [報(bào)告]
發(fā)表于 2008-09-04 10:02 |只看該作者
ls的,應(yīng)該是writel(0xffffffff,R_GPECON);吧?看它映射的是32位。還有,一般多用~0,而不是0xffffffff

論壇徽章:
0
5 [報(bào)告]
發(fā)表于 2008-09-04 10:40 |只看該作者
*addr = data時(shí)要用修飾詞volatile

論壇徽章:
0
6 [報(bào)告]
發(fā)表于 2008-09-04 22:40 |只看該作者
謝謝各位的指教

論壇徽章:
0
7 [報(bào)告]
發(fā)表于 2008-09-07 13:59 |只看該作者
原帖由 小瓶蓋兒 于 2008-9-2 08:11 發(fā)表
writeb/writew/readb/readw in 2.4 kernel,
writeb(內(nèi)容,地址)。
R_GPECON=ioremap(GPECON,4);
writew(0xffffffff,R_GPECON);:wink:

ioremap 將物理地址映射到內(nèi)核中的一段地址,映射之后你看到的R_GP ...


一般是推薦用writeX系列函數(shù)而不是直接用指針操作,不過原因好像不是你所說的吧?主要是這個(gè)函數(shù)經(jīng)常用于映射外設(shè)的一些地址空間到虛擬地址中,而外設(shè)的訪問有時(shí)有一些限制,而用writeX系列比較安全。如果是映射一些不用的物理內(nèi)存如系統(tǒng)啟動(dòng)時(shí)保留出來的內(nèi)存,則直接做內(nèi)存訪問即可。

論壇徽章:
0
8 [報(bào)告]
發(fā)表于 2008-09-07 16:38 |只看該作者

回復(fù) #7 Cyberman.Wu 的帖子

請(qǐng)教,如果在驅(qū)動(dòng)中~~
#define kaka      (*((volatile INT32U *) 0x01c00000))
kaka=0xfc;
可以訪問成功么?

論壇徽章:
0
9 [報(bào)告]
發(fā)表于 2008-09-07 19:36 |只看該作者
原帖由 小瓶蓋兒 于 2008-9-7 16:38 發(fā)表
請(qǐng)教,如果在驅(qū)動(dòng)中~~
#define kaka      (*((volatile INT32U *) 0x01c00000))
kaka=0xfc;
可以訪問成功么?


1、這段代碼是驅(qū)動(dòng)中的,說明執(zhí)行kaka=0xfc;時(shí)享有cpu特權(quán),此時(shí)的代碼可以做內(nèi)核能夠做得任何事情~~
2、如果有mmu的話,cpu將0x01c00000送給mmu,mmu會(huì)查表,找出0x01c00000對(duì)應(yīng)的物理地址(假設(shè)是add_temp),
3、mmu從ram中尋址add_temp
4、我也不知道到底能不能正確訪問,我是新手,請(qǐng)高人分析一下其中的過程~~

論壇徽章:
0
10 [報(bào)告]
發(fā)表于 2008-09-07 22:01 |只看該作者

回復(fù) #8 小瓶蓋兒 的帖子

你這樣的訪問編譯后的指令使用的是虛擬地址,能否訪問取決于這一地址有沒有映射吧。
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP