本人近日在做一个驱动,思路是这样的:fpga作为存储器设备通过nGCS5片选信号连接到mini2440的CON5系统总线上。驱动里面定义了读写函数,可是我发现根本就写不进去。。。用我编写的简单的测试程序,测了一下,write的时候,似乎没有调用驱动里的write函数。后来我又试了用echo 2214 >/dev/fpga 这样的命令,然后就出现一堆错误(如下所示),板子的系统就重启了。。我不知道怎么调试驱动和应用程序,上午看了半天debug,也没有收获。。。郁闷啊。。。我在申请内存的时候,也用check_mem_region检查了一下啊,怎么还是有错呢?
[root@FriendlyARM /tmp]# echo 123456 >/dev/fpga
fpga_open ok
write beginnig!
Unable to handle kernel paging request at virtual address c482e000
pgd = c3a30000
[c482e000] *pgd=33818011, *pte=00000000, *ppte=00000000
Internal error: Oops: 807 [#1]
Modules linked in: spartan3_driver
CPU: 0 Not tainted (2.6.29.4-FriendlyARM #3)
PC is at fpga_write+0xf4/0x114 [spartan3_driver]
LR is at 0x34333231
pc : [<bf00013c>] lr : [<34333231>] psr: 20000013
sp : c3ab7f38 ip : 0000000a fp : c3ab7f54
r10: 00000000 r9 : c3ab6000 r8 : c0029008
r7 : 00000004 r6 : c38c3768 r5 : 00000007 r4 : 00000002
r3 : c38c3768 r2 : 00003132 r1 : 00000031 r0 : c482e000
Flags: nzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user
Control: c000717f Table: 33a30000 DAC: 00000015
Process sh (pid: 538, stack limit = 0xc3ab6268)
Stack: (0xc3ab7f38 to 0xc3ab8000)
7f20: c3acdc80 4001f000
7f40: c3ab7f78 00000004 c3ab7f74 c3ab7f58 c0089264 bf000058 00000000 00000000
7f60: c3acdc80 00000004 c3ab7fa4 c3ab7f78 c008937c c00891c0 00000000 00000000
7f80: c0094adc 00000000 000ad298 00000007 4001f000 402355e8 00000000 c3ab7fa8
7fa0: c0028e60 c0089340 00000007 4001f000 00000001 4001f000 00000007 00000000
7fc0: 00000007 4001f000 402355e8 00000004 00000007 00000000 000ad008 000ad294
7fe0: 4001f000 beecb618 401735e0 401c4acc 60000010 00000001 304b5031 304b5431
Backtrace:
[<bf000048>] (fpga_write+0x0/0x114 [spartan3_driver]) from [<c0089264>] (vfs_wr) r7:00000004 r6:c3ab7f78 r5:4001f000 r4:c3acdc80
[<c00891b0>] (vfs_write+0x0/0xe8) from [<c008937c>] (sys_write+0x4c/0x84)
r7:00000004 r6:c3acdc80 r5:00000000 r4:00000000
[<c0089330>] (sys_write+0x0/0x84) from [<c0028e60>] (ret_fast_syscall+0x0/0x2c)
r6:402355e8 r5:4001f000 r4:00000007
Code: e2844002 e5d32001 e1550004 e1822401 (e0c020b2)
---[ end trace c54552daee0293fa ]---