编译及加载globalmem字符设备驱动出现的问题

        刚学习Linux字符设备驱动,第一个globalmem程序,基本一边了解,一边抄写。写完后,make的时候出现如下问题:

globalmem.c:99: 错误:程序中有游离的 ‘\343’
globalmem.c:99: 错误:程序中有游离的 ‘\200’
globalmem.c:99: 错误:程序中有游离的 ‘\200’

        这应该是linux下c编程比较常见的问题,原因是

        1.程序中输入的字符: , ; " ' / 等符号,有可能是使用的中文输入发输入的
        2.程序中有使用全角拼音的现象

        解决方法:把程序完全用 英语输入,半角输入运行正常

        

       解决上述问题后,编译通过,加载模块时出现错误如下:

device or resource busy
      网上查后得知是 分配的主设备号254冲突, 修改之后即正常加载。

  加载成功后,可以通过cat /proc/devices 查看,

# cat /proc/devices 
Character devices:
  1 mem
  4 /dev/vc/0
  4 tty
  4 ttyS
  5 /dev/tty
  5 /dev/console
  5 /dev/ptmx
 88 globalmem
 99 ppdev
253 vmci
254 pcmcia

        的确,254设备号被占用。但同时也发现有的设备号可以重用,还不明白为什么,有知道的麻烦告诉我一声

测试驱动程序

首先应该在/dev/目录下创建与该驱动程序对应的文件节点,用如下命令创建:

[root@localhost dev]# mknod globalmem0 c 88 0

然后进行简单的测试,如下:

[root@localhost dev]# echo 'My first char device' > globalmem0 
[root@localhost dev]# cat globalmem0 
My first char device






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值