|
请问有谁成功的在TQ2440上实现CAN驱动了吗?
版主提供的例子我经过修改后,编译出驱动模块加载到板子系统,但是调用时报错了,如下:
[root@EmbedSky /mnt]# ./can
CANx ID.
Unable to handle kernel paging request at virtual address 0000e1bf
pgd = c3ae8000
[0000e1bf] *pgd=33b1b031, *pte=00000000, *ppte=00000000
Internal error: Oops: 13 [#2]
Modules linked in: candrv ov9650 zd1211rw rt73usb rt2x00usb rt2x00lib mac80211 v
CPU: 0 Tainted: G D (2.6.30.4-EmbedSky #13)
PC is at SPI_Init+0x3c/0xac [candrv]
LR is at __arm_ioremap_pfn+0x280/0x328
...
大概是在SPI_Init这个函数出错了,也就是SPI初始化不成功。
想请问:这驱动是整合了SPI驱动和CAN驱动吗?因为我在module_init(mcpcan_init_module)入口处看到的mcpcan_init_module是通过res = register_chrdev(MCP_major,"MCPCAN",&Fops)来注册设备,这个设备是给CAN控制器准备的吧。但是在这之前,需要通过SPI完成CAN的初始化设置,也就是先有一个SPI驱动,那么SPI驱动的注册又在哪里呢?程序里没看到,是否也是失败的原因? |
|