insmod: ERROR: could not insert module my_module.ko: Unknown symbol in module

insmod: ERROR: could not insert module my_module.ko: Unknown symbol in module的解决办法


今天我做嵌入式驱动程序的作业的时候,写模块的read,write功能时,编写好程序后可以make编译,没有错,但hi是insmod装载模块的时候就报这个错。现在我把错误的原因和解决的结果放在下面。

1.前提概要:

   ###### 1.1.1设置描述字符设备的结构体:
在这里插入图片描述
   ###### 1.1.2在init函数里初始化

2.错误的代码:

//read
ssize_t my_module_read(struct file *filp,char __user *buf,size_t count,loff_t *f_pos)
这个函数里出现了错误:因为没法识别cdev->rear=(cdev->front+*f_pos)%cdev->size;这一句话。
具体代码如下:
在这里插入图片描述

3.错误原因:

由头函数可以看出loff_t *f_pos是一个loff_t类型的指针,但是其他的都是int格式,int=(int+loff_t)%int这是不行的。
但是int =int+loff_t是成立的的。

4.修正之后的代码:

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值