文档章节

Ubuntu驱动Makefile文件编写方法

_
 _潇洒人生_
发布于 2016/11/04 09:29
字数 193
阅读 14
收藏 0

一、Makefile文件格式

KVERS = $(shell uname -r)

#Kernel modules
obj-m += globalmem.o

#Specify flags for the module compilation
#开启可以包含调试信息模块:globalmem.ko
#EXTRA_CFLAG = -g -o0

build:kernel_modules

kernel_modules:
        make -C /lib/modules/$(KVERS)/build M=$(CURDIR) modules
        
clean:
        make -C /lib/modules/$(KVERS)/build M=$(CURDIR) clean

 

二、安装及卸载模块命令

安装模块:insmod     globalmem.ko

卸载模块:rmmod    globalmem.ko

加载模块:lsmod

查看主设备号:cat /proc/devices

创建设备节点:

    mknod /dev/globalmem0 c 250 0

     mknod /dev/globalmem1 c 250 1

删除设备节点:

     rm  /dev/globalmem0

     rm  /dev/globalmem1

验证设备读写:

    echo "hello world1" > /dev/globalmem0

     echo "hello world2" > /dev/globalmem1

    cat /dev/globalmem0

    cat /dev/globalmem0

启动两个进程:阻塞与非阻塞IO(一个在后台执行,一个写入字符串)

     cat /dev/globalfifo  &

    echo 'i want to be' > /dev/globalfifo

 

© 著作权归作者所有

共有 人打赏支持
_
粉丝 0
博文 12
码字总数 991
作品 0
长沙
程序员
linux下编译代码时的默认头文件路径

1 应用编程、驱动源代码中的头文件 1.1 应用编程中包含的头文件是应用层的头文件,是应用程序的编译器带来的 1.1.1 编译windows下的应用程序时 1)使用<>包含的头文件一般会先搜索-I选项后的...

qq_40334837
05/06
0
0
Linux设备驱动开发学习(3):构造和运行模块

从本章开始引入所有关于模块和内核编程的基本概念,并编写一个完整模块来实践这些基本的概 念。 3.1 搭建测试环境 由于所有测测试代码都是基于Ubuntu 14.04.2 Desktop的3.16.0-30-generic内核...

lengxujun
2016/06/20
0
0
Ubuntu16.04 Caffe 安装步骤记录(超详尽)

历时一周终于在 ubuntu16.04 系统成功安装 caffe 并编译,网上有很多教程,但是某些步骤并没有讲解详尽,导致配置过程总是出现各种各样匪夷所思的问题,尤其对于新手而言更是欲哭无泪,在我饱...

王英豪
2017/12/05
0
0
Linux 字符设备驱动例子

编写好驱动,通过挂载的方法将驱动程序挂载到内核里面,大致步骤如下: 一: 1>建立以.c为后缀的c语言程序文件 (里面包含了设备名及设备号等) 2>建立Makefile文件(作用是通过make来产生设备文件*...

满小茂
2016/05/23
256
0
内核模块编译 makefile入门

转自http://blog.csdn.net/zqixiao_09/article/details/50838043 一、模块的编译 我们在前面内核编译中驱动移植那块,讲到驱动编译分为静态编译和动态编译;静态编译即为将驱动直接编译进内核...

u012142460
2017/12/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

记一次winserver2003系统,https无法访问,内存占用持续增加,解决办法

先交代一下环境: win server2003系统,系统装在hyper-v虚拟机里 大概2016年底的镜像,距离今天两年左右 病症:大概9月10号左右用这个镜像还可以访问https,但是今天用这个镜像新装的系统,就...

阳阳露
30分钟前
3
0
jdbc连接orcal数据库

import java.sql.Connection;  import java.sql.DriverManager;  import java.sql.ResultSet;  import java.sql.SQLException;  import java.sql.Statement;    ......

小橙子的曼曼
55分钟前
1
0
Vue学习资料

一直以为Vue是依赖nodejs的。 作为前端也可以耦合性就很低了。 //npm包管理器 进行管理npm install vue//初始化一个项目vue init//本地调试npm run dev//编译完成 ...

大灰狼wow
今天
1
0
fullcalendar重新渲染

uiCalendarConfig.calendars.lesson_calendar.fullCalendar('removeEvents');var ym = uiCalendarConfig.calendars.lesson_calendar.fullCalendar('getView').title;$scope.get_lesson(y......

人来疯啊
今天
1
0
多渠道打包总结

https://www.jianshu.com/p/2130db7584c8 https://blog.csdn.net/u011153817/article/details/50772496...

塔塔米
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部