大家好。我最近在搞根文件系统的移植,遇到了一些问题,请大家帮忙看看。
如果通过nfs网络文件系统将我的开发板挂载到服务器上的/home/lk/roofs目录上,运行./loadmoduels添加cmemk.ko和dsplink.ko两个模块,是可以正常运行的。可是当我将rootfs目录制作成jffs2文件系统后,能挂载成功。但是运行程序出现了错误:
Unable to handle kernel NULL pointer dereference at virtual address 0000000c
。。。。。
Backtrace:
[<c00b026c>] (touch_atime+0x0/0x15c) from [<c0073e98>] (generic_file_aio_read+0x
670/0x6e8)
r7:00001000 r6:0000058d r5:00000000 r4:0058dec9
[<c0073828>] (generic_file_aio_read+0x0/0x6e8) from [<c009aca4>] (do_sync_read+0
xbc/0x10c)
[<c009abe8>] (do_sync_read+0x0/0x10c) from [<bf019b98>] (KFILEDEF_Read+0x90/0xec
[dsplinkk])
[<bf019b08>] (KFILEDEF_Read+0x0/0xec [dsplinkk]) from [<bf0178f4>] (KFILE_Read+0
x54/0x70 [dsplinkk])
r5:c3414000 r4:c31bf000
[<bf0178a0>] (KFILE_Read+0x0/0x70 [dsplinkk]) from [<bf016658>] (COFF_init+0x324
/0x544 [dsplinkk])
r5:0058dec9 r4:00000000
[<bf016334>] (COFF_init+0x0/0x544 [dsplinkk]) from [<bf017670>] (COFFFILE_init+0
xa0/0xd4 [dsplinkk])
[<bf0175d0>] (COFFFILE_init+0x0/0xd4 [dsplinkk]) from [<bf01b504>] (PMGR_PROC_lo
ad+0x170/0x268 [dsplinkk])
[<bf01b394>] (PMGR_PROC_load+0x0/0x268 [dsplinkk]) from [<bf01c8e4>] (DRV_Ioctl+
0x478/0x818 [dsplinkk])
[<bf01c46c>] (DRV_Ioctl+0x0/0x818 [dsplinkk]) from [<c00a8a00>] (vfs_ioctl+0x7c/
0x98)
r7:c105a000 r6:00006c05 r5:412f0d7c r4:c105a000
[<c00a8984>] (vfs_ioctl+0x0/0x98) from [<c00a9068>] (do_vfs_ioctl+0x558/0x5b8)
r6:00000017 r5:c1c51ae0 r4:c105a000
[<c00a8b10>] (do_vfs_ioctl+0x0/0x5b8) from [<c00a9108>] (sys_ioctl+0x40/0x64)
[<c00a90c8>] (sys_ioctl+0x0/0x64) from [<c002ae60>] (ret_fast_syscall+0x0/0x28)
r7:00000036 r6:00070780 r5:00070730 r4:0000076a
Code: e1a0c00d e92dd8f0 e24cb004 e24dd010 (e591500c)
---[ end trace 309a7bcc213c2884 ]---
根据提示,最后内核调用的函数是dsplinkk.ko模块中的KFILEDEF_Read函数。可是为啥会出现这样的错误呢?用nfs挂载运行都是对的啊!
小弟在这儿卡了好多天了,一直没有找到解决方法。还请大家帮忙看看。谢谢!