博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
5.26--学习杂记【转】
阅读量:6756 次
发布时间:2019-06-26

本文共 814 字,大约阅读时间需要 2 分钟。

转自:

printk的日志级别有八个分别为KERN_EMERG、 KERN_ALERT、 KERN_CRIT、 KERN_ERR 、 KERN_WARNNING、 KERN_NOTICE、 KERN_INFO 、KERN_DEBUG

printk默认的级别是DEFAULT_MESSAGE_LOGLEVEL,这个宏在kernel/printk.c中,在2.6.10内核中,这个宏的值为KERN_WARNNING,有的版本取的值不一样。当printk的级别小于console_loglevel时,消息才能显示出来,console_loglevel的初始值时DEFAULT_CONSOLE_LOGLEVEL。

 

gcc的5个选项,-c、-o 、-I、-E、-S

-E 只对源文件进行预处理,生成.i后缀名的文件,预处理只是简单的宏替换,将头文件插入源代码中

-S 对预处理后的文件进行汇编,生成.s后缀名的文件

-c 只产生目标文件,不连接,将汇编后的.s文件生成二进制文件

-o 指定目标文件

-I 指定头文件的目录

 

gcc的编译过程包括预处理、编译、汇编、链接。

 

关于构建模块程序的makefile中的obj-m,obj-y,obj-n,obj-

obj-y:将目标文件加入即将添入linux内核vmlinux的文件列表中

obj-m:将目标文件加入作为模块的文件列表中

obj-n,obj-的文件列表被忽略

 

模块编译的makefile文件中有这么一句:
make –C $(KDIR) M=$(shell pwd) modules

其中-C选项是在执行make前跳转到内核源代码树的目录中,该目录包含了linux内核的顶层makefile,M=$(shell pwd)选项使得在生成modules前再跳转回模块源代码目录

转载于:https://www.cnblogs.com/sky-heaven/p/5549594.html

你可能感兴趣的文章
将博客搬至CSDN
查看>>
大三学长带我学习JAVA。作业1. 第1讲.Java.SE入门、JDK的下载与安装、第一个Java程序、Java程序的编译与执行 大三学长带我学习JAVA。作业1....
查看>>
在ie9浏览器中ajax请求数据始终执行error的问题解决
查看>>
类和原型之工厂模式!
查看>>
hdu 5396 Expression
查看>>
时间选择器(js,css,html)
查看>>
xshell常用命令大全
查看>>
Day01_变量,数据类型_程序交互_流程控制
查看>>
POJ 3087 Shuffle'm Up 模拟,看着不像搜索啊
查看>>
你知道 GNU Binutils 吗?【binutils】
查看>>
OC与swift相互调用
查看>>
quartus ii 中文注释乱码解决办法
查看>>
Linux网卡配置与绑定
查看>>
java学习之路--String类方法的应用
查看>>
auto,register,static分析
查看>>
百度BAE JAVA环境项目部署和调试
查看>>
CSS盒模型
查看>>
Log4Net 添加自定义字段并保存到数据库
查看>>
Redis集群(三)Cluster集群
查看>>
NSURLSession
查看>>