字符设备驱动模块的编译

一.  简介

本文继上一篇文章的学习,上一篇文章学习了字符设备驱动框架的初步编写。文章地址如下:

字符设备驱动框架的编写-CSDN博客

本文对上一篇编写的驱动模块初步框架进行编译。

二.  字符设备驱动模块的编译

上一篇文章,编写了字符设备驱动加载与卸载的框架代码,这里对代码进行编译。

编写 Makefile文件,Makefile 文件内容如下:

KERNELDIR := /home/wangtian/zhengdian_Linux/linux/kernel/linux-imx-rel_imx_4.1.15_2.1.0_gaCURRENT_PATH := $(shell pwd)
obj-m := chrdevbase.obuild: kernel_moduleskernel_modules:$(MAKE) -C $(KERNELDIR) M=$(CURRENT_PATH) modules
clean:$(MAKE) -C $(KERNELDIR) M=$(CURRENT_PATH) clean

1 行, KERNELDIR 表示开发板所使用的 Linux 内核源码目录,使用绝对路径,大家根 据自己的实际情况填写即可。
2 行, CURRENT_PATH 表示当前路径,直接通过运行 “ pwd ” 命令来获取当前所处路 径。
3 行, obj-m 表示将 chrdevbase.c 这个文件编译为 chrdevbase.ko 模块。
8 行,具体的编译命令,后面的 modules 表示编译模块, -C 表示将当前的工作目录切 换到指定目录中,也就是 KERNERLDIR 目录。 M 表示模块源码目录,“ make modules ” 命令 中加入 M=dir 以后程序会自动到指定的 dir 目录中读取模块的源码并将其编译为 .ko 文件。

Makefile 编写好以后,就可以输入“ make ” 命令编译驱动模块。操作如下:

从上面信息可以看出,进入我设置的 Linux内核源码(更改后的NXP官方Linux内核)目录中进行编译,编译完成后面又退出了 Linux内核源码路径。

查看是否生成 .ko文件:


可以看出,编译成功。生成了 chrdevbase.ko文件。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/225594.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

10、神秘的“位移主题”

神秘的“位移主题” 1、什么是位移主题2、位移主题的消息格式3、位移主题是怎么被创建的4、什么地方会用到位移主题5、位移主题的删除机制 本章主题是:Kafka 中的内部主题(Internal Topic)__consumer_offsets。 __consumer_offsets 在 Kafka …

[GESP样题 三级] 逛商场

题目名字 逛商场 题目链接 题意 给一定的零花钱,每个物品和剩余的零钱依次比较,只要能买就一定买,如果不能买就跳过,计算能买多少个物品; 思路 设置if循环来判断所剩零钱是否大于等于这个物品设置一个sum&#xff0c…

PHPRunner 10.91 Crack

PHPRunner是一款非常好用的网页制作工具,界面简洁美观,支持处理多个数据库连接并添加设计页面,页面中可以显示不同的不相关对象,如网格,单个记录,图表,报告等。PHPRunner支持多个操作系统&#…

【一起学Rust | 框架篇 | Tauri2.0框架】Tauri App开启远程调试功能

文章目录 前言一、搭建PageSpy环境二、接入SDK三、进行远程调试调试控制台网络抓包审查元素 四、延伸 前言 Tauri在Rust圈内成名已久,凭借Rust的可靠性,使用系统原生的Webview构建更小的App 以及开发人员可以灵活的使用各种前端框架而一战成名。 然而&…

批量识别名片并转换为Excel:提高工作效率的实用技巧

随着数字化的快速发展,很多传统的工作也开始向电子化转型。而名片管理就是其中之一。许多人会遇到与题目相似的问题:拥有大量名片,但却不方便携带和管理。 批量识别名片并将其转换为Excel格式是一个很好的想法,这不仅可以提高你的…

用Bat文件调用小牛翻译api快速翻译

为了帮助大家更加轻松地调用机器翻译api,本人探索实现了一种可以通过BAT文件来调用机器翻译api,对粘贴板中的文本进行翻译,并将翻译结果保存为txt文件。下面把实现步骤简要说明如下: 第一步:获取小牛机器翻译api 进入…

k8s-1.23版本安装

一、主机初始化 1、修改主机名 hostnamectl set-hostname master hostnamectl set-hostname node1 hostnamectl set-hostname node2 hostnamectl set-hostname node32、主机名解析 echo 192.168.1.200 master >> /etc/hosts echo 192.168.1.201 node1 >>…

用Gemini Pro 来做开发?API出来了

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

【中国海洋大学】操作系统随堂测试8整理

1. RAID系统使用多块磁盘改进性能或可靠性,其中构建RAID0至少需要()个磁盘;RAID5阵列至少需要()个磁盘。 答:2 3 2. 请描述一下磁盘存储空间管理方法:成组链接法的数据结构、盘块回…

上班摸鱼不被老板发现:设计模式--观察者模式

观察者模式 观察者模式,又叫做发布–订阅模式(Publish/Subscribe)模式 观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生改变时,会通知所有的观察者对象,使他们能够自动更…

【网络安全】网络防护之旅 - 非对称密钥体制的解密挑战

🌈个人主页:Sarapines Programmer🔥 系列专栏:《网络安全之道 | 数字征程》⏰墨香寄清辞:千里传信如电光,密码奥妙似仙方。 挑战黑暗剑拔弩张,网络战场誓守长。 目录 😈1. 初识网络安…

vue-实现高德地图-省级行政区地块显示+悬浮显示+标签显示

<template><div><div id"container" /><div click"showFn">显示</div><div click"removeFn">移除</div></div> </template><script> import AMapLoader from amap/amap-jsapi-load…

Spring Boot业务代码中使用@Transactional事务失效总结

1、概述 我们知道 Spring 声明式事务功能提供了极其方便的事务配置方式&#xff0c;配合 Spring Boot 的自动配置&#xff0c;大多数 Spring Boot 项目只需要在方法上标记 Transactional注解&#xff0c;即可一键开启方法的事务性配置。当然后端开发人员对数据库事务这个概念并…

模型评估指标

1.回归模型 回归模型常常使用MSE均方误差&#xff0c;预测值与真实值之间的平均差距 2.分类模型 2.1 Accuracy正确率 分类正确的数目的占比 但在类别不平衡的情况下&#xff0c;模型可能倾向于预测占多数的类别&#xff0c;导致Acc高但对少数类别的预测效果其实比较差的。…

Vue脚手架 Vue CLI安装

目录 0.为什么要安装Vue CLI脚手架 1.配置方法 1.全局安装 (一次) 2.查看Vue版本&#xff08;一次&#xff09; 报错&#xff1a;出现禁止运行脚本 3.创建项目架子&#xff08;可多次&#xff09; 报错npm err! 问题&#xff1a;已知npm换过国内源&#xff0c;且进度条…

go-zero目录结构和说明

. ├── code-of-conduct.md 行为准则 ├── CONTRIBUTING.md 贡献指南 ├── core 框架的核心组件 │ ├── bloom 布隆过滤器&#xff0c;用于检测一个元素是否在一个集合中 │ ├── breaker 熔断器&am…

MicroPython相关教程

WebRepl MicroPython-ESP32之WebRepl-1Z实验室 - 简书 https://www.jianshu.com/p/c2ddd4fd05be ESP32上面webrepl的开启与连接 - 简书 https://www.jianshu.com/p/f4163eae4a05 Esp32安装micropython和配置webrepl记录备忘 - 哔哩哔哩 https://www.bilibili.com/read/cv121…

工资计算_分支结构 C语言xdoj63

问题描述 小明的公司每个月给小明发工资&#xff0c;而小明拿到的工资为交完个人所得税之后的工资。假设他一个月的税前工资为S元&#xff0c;则他应交的个人所得税按如下公式计算&#xff1a; 1&#xff09; 个人所得税起征点为3500元&#xff0c;若S不超过3500&#xff0c;则…

数据挖掘目标(客户价值分析)

import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as snsIn [2]: datapd.read_csv(r../教师文件/air_data.csv)In [3]: data.head()Out[3]: Start_timeEnd_timeFareCityAgeFlight_countAvg_discountFlight_mileage02011/08/182014/0…

android 13.0 app应用安装黑名单

1.概述 在13.0系统rom定制化开发中,客户需求要实现应用安装黑名单功能,在白名单之中的应用可以安装,其他的app不准安装,实现一个 控制app安装的功能,这需要从app安装流程入手就可以实现功能 PMS就是负责管理app安装的,功能就添加在这里就可以了,接下来看具体实现这个功能…