QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2425|回复: 0

关于嵌入式linux 的GPIO口的地址映射问题!

[复制链接]
发表于 2006-9-26 17:23:54 | 显示全部楼层 |阅读模式
我用的是嵌入式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口地址开辟内存?我应该怎么做呢?
高手给指点一下吧!这里先谢过了!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-22 17:48 , Processed in 0.032897 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表