linux驱动开发--day1(驱动、内核模块及相关命令、内核模块传参)

这篇具有很好参考价值的文章主要介绍了linux驱动开发--day1(驱动、内核模块及相关命令、内核模块传参)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

linux驱动开发--day1(驱动、内核模块及相关命令、内核模块传参),linux,驱动开发,c语言

linux驱动开发--day1(驱动、内核模块及相关命令、内核模块传参),linux,驱动开发,c语言

#include <linux/init.h>
#include <linux/module.h>

int a=10;
module_param(a,int,0664);
MODULE_PARM_DESC(a,"this is a value");

char b=97;
module_param(b,byte,0664);
MODULE_PARM_DESC(b,"this is a char");

char *c="hi";
module_param(c,charp,0664);
MODULE_PARM_DESC(c,"this is a character pointer");

short d=13;
module_param(d,short,0664);
MODULE_PARM_DESC(d,"this is a short");
//入口函数 安装内核模块时执行
static int __init mycdev_init(void)
{
	printk("a=%d\n",a);
	printk("b=%c\n",b);
	printk("c=%s\n",c);
	printk("d=%d\n",d);
	printk("%s:%s:%d\n",__FILE__,__func__,__LINE__);
	return 0;
}

//函数出口 卸载内核模块时执行
static void __exit mycdev_exit(void)
{
	printk("%s:%s:%d\n",__FILE__,__func__,__LINE__);

}

module_init(mycdev_init);
module_exit(mycdev_exit);
MODULE_LICENSE("GPL");

现象:

linux驱动开发--day1(驱动、内核模块及相关命令、内核模块传参),linux,驱动开发,c语言文章来源地址https://www.toymoban.com/news/detail-708181.html

到了这里,关于linux驱动开发--day1(驱动、内核模块及相关命令、内核模块传参)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 【linux驱动】用户空间程序与内核模块交互-- IOCTL和Netlink

    【linux驱动】用户空间程序与内核模块交互-- IOCTL和Netlink

    创建自定义的IOCTL(输入/输出控制)或Netlink命令以便用户空间程序与内核模块交互涉及几个步骤。这里将分别介绍这两种方法。 1. 定义IOCTL命令 在内核模块中,需要使用宏定义你的IOCTL命令。通常情况下,IOCTL命令包括了一个命令编号、请求类型的方向(读/写/两者)以及数

    2024年01月20日
    浏览(11)
  • /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.28‘ not found__为什么了解内核、Linux系统构建、驱动的相关知识对应用开发有帮助

    /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.28‘ not found__为什么了解内核、Linux系统构建、驱动的相关知识对应用开发有帮助

    某项目中,我要给别人封装一个深度学习算法的SDK接口,运行在RK3588平台上,然后客户给我的交叉编译工具链是  然后我用他们给我的交叉编译工具链报下面的错误: 正常这种时候要升级glibc库,不想升级,然后我发现他们给我的交叉编译工具链带着buildroot,那说明是他们自

    2024年02月11日
    浏览(10)
  • linux内核网络驱动框架(linux驱动开发篇)

    linux内核网络驱动框架(linux驱动开发篇)

    网络驱动的核心: 1、就是初始化 net_device 结构体中的各个成员变量, 2、然后将初始化完成以后的 net_device 注册到 Linux 内核中 1、网络设备(用net_device结构体) 2、网络设备的操作集( net_device_ops结构体 ) 3、sk_buff结构体 网络是分层的,对于应用层而言不用关系具体的底层是

    2023年04月08日
    浏览(12)
  • 驱动开发 day2 (led模块化驱动操控)

    head.h fun.c mycdev.c Makefile

    2024年02月15日
    浏览(13)
  • Linux内核驱动开发(一)

    Linux内核驱动开发(一)

    linux操作系统历史 开发模式 git 分布式管理 git clone 获取 git push 提交 git pull 更新 邮件组 mailing list patch 内核代码组成 Makfile arch 体系系统架构相关 block 块设备 crypto 加密算法 drivers 驱动(85%) atm 通信 bluetooth 蓝牙 firmware:外设 fs 文件系统 include 头文件 init 启动代码 ipc 进程通

    2023年04月11日
    浏览(11)
  • linux驱动开发:Linux 内核的一些函数

    1 、 MKDEV ( ma, mi ) 构造设备号,将主设备号和次设备号转换为设备号类型(dev_t)。 MKDEV 宏将主设备号( ma )左移 20 位,然后与次设备号( mi )相与,得到设备号。 dev_t 结构 主设备号 12 位

    2024年02月17日
    浏览(11)
  • 【Shell 命令集合 系统设置 】Linux 加载和卸载内核模块 modprobe命令 使用指南

    【Shell 命令集合 系统设置 】Linux 加载和卸载内核模块 modprobe命令 使用指南

    Shell 命令专栏:Linux Shell 命令全解析 modprobe命令是Linux系统中用于加载和卸载内核模块的工具。内核模块是一种可以动态加载到内核中的代码,它们可以扩展内核的功能,添加新的驱动程序或功能。 modprobe命令的主要作用有以下几个方面: 加载内核模块:modprobe命令可以根据

    2024年02月04日
    浏览(51)
  • 怎么降低Linux内核驱动开发的风险?

    降低Linux内核驱动开发的风险是一个重要的目标,因为内核驱动开发可能会对系统的稳定性和安全性产生重要影响。以下是一些降低风险的建议: 1. 深入了解Linux内核:在开始内核驱动开发之前,建议深入学习Linux内核的工作原理和架构,包括内核模块、设备模型、调度机制等

    2024年02月08日
    浏览(7)
  • Linux驱动开发(十五)---如何使用内核现有驱动(显示屏)

    Linux驱动开发(十五)---如何使用内核现有驱动(显示屏)

    《Linux驱动开发(一)—环境搭建与hello world》 《Linux驱动开发(二)—驱动与设备的分离设计》 《Linux驱动开发(三)—设备树》 《Linux驱动开发(四)—树莓派内核编译》 《Linux驱动开发(五)—树莓派设备树配合驱动开发》 《Linux驱动开发(六)—树莓派配合硬件进行字

    2024年02月15日
    浏览(9)
  • <Linux开发>驱动开发 -之-内核定时器与中断

    <Linux开发>驱动开发 -之-内核定时器与中断

    <Linux开发>驱动开发 -之-内核定时器与中断 交叉编译环境搭建: <Linux开发> linux开发工具-之-交叉编译环境搭建 uboot移植可参考以下: <Linux开发> -之-系统移植 uboot移植过程详细记录(第一部分) <Linux开发> -之-系统移植 uboot移植过程详细记录(第二部分) <Linux开

    2024年02月08日
    浏览(12)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包