|
我用的是嵌入式linux ,处理器用的是AT91RM9200,现在想对arm的pio口操作,对一个口设置为高电平。因为有MMU,所以不能直接用arm的IO实地址。我用了IOREMAP()函数对实地址进行映射。但是运行程序出现如下错误:
Unable to handle kernel paging request at virtual address fffff410
mm = c1f77220 pgd = c1d48000
*pgd = 20002001, *pmd = 20002001, *pte = 00000000, *ppte = 00000000
Internal error: Oops: 0
CPU: 0
pc : [<c4a4810c>] lr : [<c0047244>] Not tainted
sp : c1d4deb8 ip : c1d4dee8 fp : c1d4dee4
r10: 400dc26c r9 : c1d4c000 r8 : c0159004
r7 : c1d3ce28 r6 : c0018d20 r5 : 00000000 r4 : c4a48474
r3 : fffff400 r2 : 00000000 r1 : 00000000 r0 : c1c80a00
Flags: NzCv IRQs on FIQs on Mode SVC_32 Segment user
Control: C000317F Table: 21D48000 DAC: 00000015
Process test (pid: 72, stack limit = 0xc1d4c374)
Stack: (0xc1d4deb8 to 0xc1d4e000)
dea0: c1d4dec4 c0050e50
dec0: c005af8c c1c80a00 00000000 c0018d20 c1c80a00 c1c80a00 c1d4df00 c1d4dee8
dee0: c0047244 c4a480d0 c1c80a00 c1d3ce20 c0018d20 c1d4df30 c1d4df04 c007f05c
df00: c0047200 c1d4df20 c1d4df14 c0050d58 c0018d20 c1c80a00 00000000 c01f22e0
df20: c1c81540 c1d4df54 c1d4df34 c0045e3c c007ef64 00000000 00000000 bffffdcc
df40: c1f84000 c001b584 c1d4df84 c1d4df58 c0045d34 c0045d48 c1c81540 c01f22e0
df60: c0050b30 c003e618 c1f84000 00000001 00000001 00000003 c1d4dfa4 c1d4df88
df80: c0046080 c0045cf8 00000648 bffffdc4 00008310 00000005 00000000 c1d4dfa8
dfa0: c001b3e0 c004604c 00000648 c002159c 0000858c 00000000 bffffdcc 00000000
dfc0: 00000648 bffffdc4 00008310 4001fe94 00000001 000084a4 400dc26c bffffda0
dfe0: 40092ed0 bffffd8c 000084c0 40092ed4 60000010 0000858c aa55aa55 aa55aa55
Backtrace:
Function entered at [<c4a480c0>] from [<c0047244>]
r4 = C1C80A00
Function entered at [<c00471f0>] from [<c007f05c>]
r6 = C0018D20 r5 = C1D3CE20 r4 = C1C80A00
Function entered at [<c007ef54>] from [<c0045e3c>]
r8 = C1C81540 r7 = C01F22E0 r6 = 00000000 r5 = C1C80A00
r4 = C0018D20
Function entered at [<c0045d38>] from [<c0045d34>]
r8 = C001B584 r7 = C1F84000 r6 = BFFFFDCC r5 = 00000000
r4 = 00000000
Function entered at [<c0045ce8>] from [<c0046080>]
r4 = 00000003
Function entered at [<c004603c>] from [<c001b3e0>]
r7 = 00000005 r6 = 00008310 r5 = BFFFFDC4 r4 = 00000648
Code: e50b301c e59f40c4 e3a0320a e1a039c3 (e5932010)
Segmentation fault
其中Unable to handle kernel paging request at virtual address fffff410是什么意思呢?难道还需要为IO口地址开辟内存?我应该怎么做呢?
高手给指点一下吧!这里先谢过了! |
|