日期:2014-05-16  浏览次数:20697 次

linux应用层调用kernel接口函数问题。
kernel中static const struct file_operations mcp251x_fops = {
  .write = mcp251x_write,

实际函数
static int mcp251x_write(struct file *file, const char *buf, size_t count, loff_t *ofs){
printk("go mcp251x_write\n");
。。。。
}

驱动测试程序中调用为
write(fd, canframe, sizeof(can_frame));

结果go mcp251x_write没有打印在串口上,我判断write函数调用kernel不成功?高手教教我怎么改吧!
我只知道mcp251x_fops结构中添加了函数的映射关系就可以在应用程序中使用了。

另外,我在open之后调用ioctl函数没有问题,接着就调用write函数,发现进不了。谢谢指点!


------解决方案--------------------
建议楼主直接使用 echo "123" > (你的驱动节点),如果没有打印消息,那么你的驱动程序加载有问题。