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

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 3779 | 回復(fù): 2
打印 上一主題 下一主題

網(wǎng)卡寄存器讀寫:X86 vs ARM [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2010-07-18 21:43 |只看該作者 |倒序瀏覽
小弟現(xiàn)在需要將基于X86寫的一段網(wǎng)卡驅(qū)動程序移植到ARM,碰到了問題,其中一個問題是X86代碼中對寄存器的讀寫在ARM板子
上無法正常運行,會產(chǎn)生隨機(jī)錯誤,導(dǎo)致Oops。

基于X86的代碼中讀寫寄存器的宏定義為:
#define EDRV_REGDW_WRITE(dwReg, dwVal) writel(dwVal, EdrvInstance_l.m_pIoAddr + dwReg)
#define EDRV_REGW_WRITE(dwReg, wVal) writew(wVal, EdrvInstance_l.m_pIoAddr + dwReg)
#define EDRV_REGB_WRITE(dwReg, bVal) writeb(bVal, EdrvInstance_l.m_pIoAddr + dwReg)
#define EDRV_REGDW_READ(dwReg) readl(EdrvInstance_l.m_pIoAddr + dwReg)
#define EDRV_REGW_READ(dwReg) readw(EdrvInstance_l.m_pIoAddr + dwReg)
#define EDRV_REGB_READ(dwReg) readb(EdrvInstance_l.m_pIoAddr + dwReg)

然后我把網(wǎng)卡驅(qū)動程序跑在ARM中時,發(fā)現(xiàn)總是在寫寄存器時會crash,讀寫哪個寄存器時crash是不固定的。

在初步比較了ARM平臺上讀寫寄存器的方式,感覺跟X86的這段宏其實質(zhì)是一樣的,但不是很確定,另有兄弟說在writeb之前做ioremap,但代碼中已經(jīng)做了。
請高手指點迷津,多謝!


產(chǎn)生的Oops信息為:
<2>Bad mode in data abort handler detected
Internal error: Oops - bad mode: 0 [#1]
Modules linked in: epl sg sd_mod usb_storage scsi_mod uhci_hcd ehci_hcd usbcore moxa_dio moxa_software_id mxser_uc8400(P) nfs nfs_acl lockd sunrpc ixp400_eth ixp400
CPU: 0 Tainted: P (2.6.23.1 #987)
pc : [<ffff000c>] lr : [<60000013>] psr: a0000097
sp : cf743ce4 ip : cf743c74 fp : cf743d50
r10: bf1de528 r9 : bf1de530 r8 : c02971f4
r7 : c4242448 r6 : bf1dd900 r5 : bf1dd900 r4 : 00000000
r3 : d0852037 r2 : d0862000 r1 : 00000001 r0 : d0862037
Flags: NzCv IRQs off FIQs on Mode ABT_32 ISA ARM Segment user
Control: 000039ff Table: 0eec0000 DAC: 00000015
Process insmod (pid: 920, stack limit = 0xcf74225
Stack: (0xcf743ce4 to 0xcf744000)
3ce0: d0862037 00000001 d0862000 d0852037 00000000 bf1dd900 bf1dd900
3d00: c4242448 c02971f4 bf1de530 bf1de528 cf743d50 cf743c74 cf743ce4 60000013
3d20: ffff000c a0000097 ffffffff c4242400 cf743d3c bf1dc620 c4242400 bf1dc5f0
3d40: 00000000 cf743d70 cf743d54 c01675d0 bf1c6170 c4242448 c4242448 bf1dc620
3d60: c0182990 cf743d94 cf743d74 c01827a0 c0167570 c4242508 c4242448 bf1dc620
3d80: c0182990 c0277e94 cf743dac cf743d98 c0182a74 c0182704 00000000 cf743db0
3da0: cf743dd8 cf743db0 c0181adc c018299c c0277f80 c0277f80 c4242490 bf1dc628
3dc0: bf1dc620 00000000 bf1dd900 cf743de8 cf743ddc c0182610 c0181a94 cf743e0c
3de0: cf743dec c0181eb0 c01825fc bf1dc620 bf1db080 bf1dc620 bf1dd900 bf1de5c4
3e00: cf743e20 cf743e10 c0182c78 c0181e3c bf1dc5f0 cf743e3c cf743e24 c0167778
3e20: c0182c34 bf1dc5f0 bf1db080 cf743e64 cf743e60 cf743e40 bf1c53a4 c016773c
3e40: cf743e6c bf1de638 bf1e875c cf743e9c cf743e64 cf743e98 cf743e64 bf1c9404
3e60: bf1c5330 00000000 0000be40 bf1ca014 bf1c9d44 00000000 00000000 bf1e8768
3e80: bf1e875c 002dc6c0 000249f0 cf743ecc cf743e9c bf1d754c bf1c9374 00000000
3ea0: 0000501c 00000000 00000000 bf1dc6e0 bf1dca60 bf1dca90 00000002 0007a120
3ec0: cf743f04 cf743ed0 bf107190 bf1d7464 c0074964 bf1dd7c0 bf1dd7c0 bf1dd7c0
3ee0: bf1dd7c0 cccccccd d08da174 00000018 bf1dd7cc bf1dd7c0 cf743fa4 cf743f08
3f00: c005a778 bf10700c 00000000 cf742000 00000000 00000000 00000000 00000000
3f20: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
3f40: 0000000c 00000017 d08e6c6c cf10b028 00000000 d08da3f4 d08c1000 0000000b
3f60: 00000000 000005e9 000005e9 d08da50c 00000016 00000000 00000000 00000028
3f80: bec56e83 bec56dac 00000080 c001dfc4 cf742000 401a3048 00000000 cf743fa8
3fa0: c001de20 c005a65c bec56e83 bec56dac 00000080 401aa008 0002a070 00097008
3fc0: 00000028 bec56e83 bec56dac 4000b10c 00000002 0000c814 401a3048 bec56d24
3fe0: bec56cf0 bec56ce4 0000fa30 40153f00 60000010 00000080 42000000 00e00810
Backtrace:
Function entered at [<bf1c6164>] from [<c01675d0>]
r7:00000000 r6:bf1dc5f0 r5:c4242400 r4:bf1dc620
Function entered at [<c0167564>] from [<c01827a0>]
r7:c0182990 r6:bf1dc620 r5:c4242448 r4:c4242448
Function entered at [<c01826f8>] from [<c0182a74>]
r8:c0277e94 r7:c0182990 r6:bf1dc620 r5:c4242448 r4:c4242508
Function entered at [<c0182990>] from [<c0181adc>]
r5:cf743db0 r4:00000000
Function entered at [<c0181a88>] from [<c0182610>]
r7:bf1dd900 r6:00000000 r5:bf1dc620 r4:bf1dc628
Function entered at [<c01825f0>] from [<c0181eb0>]
Function entered at [<c0181e30>] from [<c0182c78>]
r8:bf1de5c4 r7:bf1dd900 r6:bf1dc620 r5:bf1db080 r4:bf1dc620
Function entered at [<c0182c28>] from [<c0167778>]
r4:bf1dc5f0
Function entered at [<c0167730>] from [<bf1c53a4>]
r6:cf743e64 r5:bf1db080 r4:bf1dc5f0
Function entered at [<bf1c5324>] from [<bf1c9404>]
r7:cf743e64 r6:cf743e9c r5:bf1e875c r4:bf1de638
Function entered at [<bf1c9368>] from [<bf1d754c>]
r7:000249f0 r6:002dc6c0 r5:bf1e875c r4:bf1e8768
Function entered at [<bf1d7458>] from [<bf107190>]
r5:0007a120 r4:00000002
Function entered at [<bf107000>] from [<c005a778>]
Function entered at [<c005a650>] from [<c001de20>]
Code: bad PC value.

論壇徽章:
0
2 [報告]
發(fā)表于 2010-07-19 13:24 |只看該作者
如果都是linux系統(tǒng)的話,還有啥移植可言啊?
不同的架構(gòu)的寄存器讀取方式系統(tǒng)已經(jīng)提供了啊

論壇徽章:
0
3 [報告]
發(fā)表于 2010-07-23 18:36 |只看該作者
大端小端?
字節(jié)序
您需要登錄后才可以回帖 登錄 | 注冊

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

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP