最新要闻
- 宁德时代回应原材料价格下跌:不存在大幅减值风险
- 把苹果股票卖了!巴菲特:两年前犯过错 很愚蠢|世界快看
- 理想汽车:几万块营销预算李想亲自批 但安全方面预算不需要
- 零营收药企密集IPO 估值成关注点
- 天天看点:iPhone 15 Pro Max机模上手:1.57mm超窄边框、Type-C接口
- 对于女大学生 一晚上最少多少钱
- 一夜爆红 湖北黄老师直播唱挖呀挖打赏不断 律师:或涉嫌侵权
- 每日关注!夏天必备 润本蚊香液3瓶+1器大促:到手14.9元
- 254TOPS算力!比亚迪新一代王朝、海洋系列要用NVIDIA Drive Orin芯片-天天快报
- 前沿热点:Win11精简版系统成功安装在4GB显存中:运行速度飞快!
- 微头条丨炉慈高速全线首座隧道双线提前贯通
- 【环球时快讯】侵害用户权益!工信部通报56款App:羊了个羊上榜
- 焦点快报!巴菲特股东大会!巴菲特:我们的火车还停留在19世纪末水平
- 世界快报:关于俞敏洪建议24节气都放假及俞敏洪建议24节气都放假详情
- 网友逛鱼店惊喜偶遇鲨鱼产子过程:第一次见 很神奇
- 深圳一公司发布年薪50万岗位:优先录用李一桐粉丝
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
Linux驱动开发笔记(一):helloworld驱动源码编写、makefile编写以及驱动编译基本流程 当前速讯
前言
基于linux的驱动开发学习笔记,本篇是描述了一个字符驱动的基础开发流程,以便做嵌入式开发多年的应用或者系统学习驱动开发。
笔者自身情况
笔者拥有硬件基础,单片机软硬基础,linux系统基础等各种,就是没有linux驱动框架基础,未做过linux系统移植和驱动移植开发了。所以补完linux系统移植和驱动开发就基本可以打通嵌入式整套流程了,作为技术leader不一定亲自动手做,但是一定要对产品构架中的每一块业务和技术要基本清楚。
推荐
建议参考xun为的视频教程,教程整个过程非常清晰,直接给拥有很多知识基础的资深研发,可以不陷入某山的固有思维误区,也不用imx6的太过庞从汇报理解大而冗余,它能直接以最终实现目标为目的,不用从什么裸机开始做开发学习,怎么做也告诉你为什么都交代清楚,再结合多年相关从业工作经验,说实在的,一通百通可以融会贯通。从业多年,第一次推荐,因为确实真的是好东西。
(相关资料图)
驱动
驱动分为四个部分
- 头文件:宏定义等等
- 驱动模块的入口和出口宏:linux驱动框架
- 声明信息:linux内核模块的必要声明
- 功能实现:真正实现驱动的实体代码
第一个驱动源码:Hello world!
步骤一:包含头文件
包含宏定义的头文件init.h,是一些初始化和宏头文件,一些module_init,module_exit等。
#include
包含了初始化加载模块的头文件
#include
步骤二:写驱动文件的入口和出口
module_init()和module_exit()入口和出口宏。(PS:这里括号内实际上需要填入入口出口函数,后续再填入)
module_init();module_exit();
步骤三:声明开源信息
告诉内核,本模块驱动有开源许可证。
MODULE_LICENSE(“GPL”);
步骤四:实现基础功能
入口函数
static int hello_init(void){ // 在内核里面无法使用基础c库printf,需要使用内核库printk printk(“Hello, I’m hongPangZi\n”); return 0;}
出口函数
static void hello_exit(void){ printk(“bye-bye!!!\n”);}
此时可以修改,步骤二的出口入口宏了
module_init(hello_init);module_exit(hello_exit);
总结,按部就班四步法,搭建了基础的驱动代码框架。
#include #include static int hello_init(void){ // 在内核里面无法使用基础c库printf,需要使用内核库printk printk(“Hello, I’m hongPangZi\n”); return 0;}static void hello_exit(void){ printk(“bye-bye!!!\n”);}MODULE_LICENSE(“GPL”);module_init(hello_init);module_exit(hello_exit);
Linux驱动编译成模块
把驱动编译城模块,然后加载到内核里面。 把驱动直接编译到内核,运行内核则会直接加载驱动。
步骤一:编写makefle
1 生成中间文件的名称
obj-m += helloworld.o
2 内核的路径
内核在哪,实际路径在哪
KDIR:=
3 当前路径
PWD?=$(shell pwd)
4 总的编译命令
all: make -C $(KDIR) M=$(PWD) modules
make进去KDIR路径,当前路径编译成模块。
obj-m = helloworld.oKDIR:=PWD?=$(shell pwd)all:make -C $(KDIR) M=$(PWD) modules
步骤二:编译驱动
编译驱动之前有几点要注意:
1 内核源码要编译通过
与驱动编译成的目标系统,获取对应的内核且需要编译通过。
2 内核源码版本
开发板或者系统跑的内核版本需要与编译内核驱动的内核源码版本一致。注意3:编译目标环境要确认是否是需要的构架,在内核目录下:
make menu configureexport ARCH=arm
修改构架后,可使用menu configure查看标题栏的内核构架
3 编译器版本
找到使用的arm编译器(实际为arm-linux-gnueabihf-gcc,取gcc前缀)
export CROSS_COMPILE=arm-linux-gnueabihf-
4 编译
直接输入make,编译驱动,会生成hellowold.ko文件,ko文件就是编译好的驱动模块。
步骤三:加载卸载驱动
1加载驱动
将驱动拷贝到开发板或者目标系统,然后使用加载指令:
insmod helloworld.ko
会打印入口加载的printk输出。
2 查看当前加载的驱动
lsmod
可以查看到加载的驱动模块
3 卸载驱动
rmmod helloworld
可以移除指定驱动模块(PS:卸载驱动不需要.ko后缀),卸载成功会打印之前的printk输出。
总结
学习了驱动的基础框架,那么为了方便很好的测试,让大家都有基础环境,下一篇,将使用ubuntu18.04,编译ubuntu18.04的驱动,然后做好本篇文章的相关实战测试。
关键词:
-
Linux驱动开发笔记(一):helloworld驱动源码编写、makefile编写以及驱动编译基本流程 当前速讯
前言基于linux的驱动开发学习笔记,本篇是描述了一个字符驱动的基础开发流程,以便做嵌入式开发多年的应用
来源: -
视讯!OpenAI CLIP 关键点 - 连接图像和文字
标签: CLIP Image2Text Text2Image OpenAI创建时间:2023-04-2100:17:52基本原理CLIP是一个图像分类模型。
来源: Linux驱动开发笔记(一):helloworld驱动源码编写、makefile编写以及驱动编译基本流程 当前速讯
视讯!OpenAI CLIP 关键点 - 连接图像和文字
宁德时代回应原材料价格下跌:不存在大幅减值风险
把苹果股票卖了!巴菲特:两年前犯过错 很愚蠢|世界快看
理想汽车:几万块营销预算李想亲自批 但安全方面预算不需要
关于Kubernetes-v1.23.6-初始化时报错[kubelet-check] It seems like the kubelet isn't runni
编程题库 - 基本运算 - 整数运算求两个整数相加之和
零营收药企密集IPO 估值成关注点
天天看点:iPhone 15 Pro Max机模上手:1.57mm超窄边框、Type-C接口
对于女大学生 一晚上最少多少钱
一夜爆红 湖北黄老师直播唱挖呀挖打赏不断 律师:或涉嫌侵权
每日关注!夏天必备 润本蚊香液3瓶+1器大促:到手14.9元
254TOPS算力!比亚迪新一代王朝、海洋系列要用NVIDIA Drive Orin芯片-天天快报
前沿热点:Win11精简版系统成功安装在4GB显存中:运行速度飞快!
微头条丨炉慈高速全线首座隧道双线提前贯通
【环球时快讯】侵害用户权益!工信部通报56款App:羊了个羊上榜
焦点快报!巴菲特股东大会!巴菲特:我们的火车还停留在19世纪末水平
学系统集成项目管理工程师(中项)系列18b_进度管理(下)-当前动态
世界快报:关于俞敏洪建议24节气都放假及俞敏洪建议24节气都放假详情
2、etcd单机部署和集群部署
网友逛鱼店惊喜偶遇鲨鱼产子过程:第一次见 很神奇
深圳一公司发布年薪50万岗位:优先录用李一桐粉丝
7人吃自助炫300多个螃蟹 医生:过量食用螃蟹或引发多种疾病|世界时讯
苹果别对iPhone 15 USB-C限速!不然欧盟不答应
加快摆脱中国供应链?库克:苹果接下来就靠印度了
什么是成本性态 什么是成本|世界热讯
爱成都迎大运宣传稿怎么画(爱成都迎大运宣传句)
咖啡色地板配什么颜色家具_咖啡色配什么颜色好看
网站被攻击了!!! 速递
老人推倒摩托车案执行款1.6万已到账 车主10个月维权结束:老人违法不该被宽恕
天天百事通!民呼我应|东门一市政路被“霸占”,官方回应来了
【环球新要闻】月嫂拍嗝时打盹致婴儿头顶骨骨折 平台:愿退还未完成的服务费
“挖呀挖呀挖”童谣为何火爆全网?专家解释原因_天天速看
全球今日报丨冷冻小龙虾怎么加热 冷冻小龙虾怎么加热才好吃
美股银行股周五为何大涨?没有空头想持仓过周末
天天速讯:中国特供 NVIDIA缩水版A800显卡遭哄抢:10万元也难买到
“投资界的春晚”要来了:巴菲特股东大会五大看点_世界微动态
老黄良心了 5000块的4060游戏本值得买吗?结论来了
复数的基本知识
最新快讯!关于学生五一前请假遭拒强行离校被处分及学生五一前请假遭拒强行离校被处分详情
广东小区业主私拆承重墙 多户搬离墙体开裂到14楼:网友吐槽是谋杀 希望严惩
5月价格继续涨 LCD面板不再亏本卖:75寸电视不到3000元
快播:“土味”出圈!济宁“90后”唢呐女博士背后的故事
最新消息:SQL 解析在 CloudQuery 中的应用
小红书布局AI大模型:上线AI绘画应用
旅客问路被工作人员怼回去多读书 车站回应:严肃处理|环球微速讯
天天视讯!航拍安徽岳西茭白田:满眼葱绿孕育生机
世界热点评!C#高级编程--反射与特性
88年后入土为安 云南禄劝隆重安葬21具红军烈士遗骸
新消息丨厂商为何要封杀32位APP?真实原因揭开
比商超便宜一半多!伊利巧乐兹大促:券后每支2.4元起
3090 Ti能抵7200元 iGame以旧换新7日开启:RTX 40显卡这下真的便宜了 天天视讯
焦点快播:1049元 创维推出新款23.8电竞显示器:165Hz Fast IPS屏
每日聚焦:村里又来年轻人 发展动力更强劲
推荐6个我经常逛的“小网站”,嘿嘿嘿!!!
【全球播资讯】用Radare2模拟shellcode运行
全球时讯:数仓建模规范--非常全
Vue2的生命周期 每日速递
美国制裁升级,推动国产化网卡发展刻不容缓
重磅!“听音写稿”成真 讯飞听见重大升级:一段录音 一键成稿 今热点
热资讯!菜鸟驿站爆改大征集:夜间自助取件 这5个城市方便了
国产AI逆袭!一图看懂讯飞星火:文本生成、知识问答、数学三大能力已超越ChatGPT
理想汽车五一出行报告出炉:行程1.44亿公里、一半都在烧油
世界聚焦:山东黄金董事长李航:预计金价仍有进一步上涨空间
新消息丨前端开发环境搭建踩坑笔记——npm install node-sass安装失败的解决方案
C/C++代码内捕获异常发生时的调用栈
天天即时看!如何通过代码接入手机在网状态 API
不一样的设计模式——— 重新理解6大原则[外篇]
今日视点:首座深远海浮式风电平台完成海上安装
头条:男孩掉入黄河被救 家长抬羊登门拜谢 网友:知恩图报的正确打开方式
遥遥领先!讯飞星火认知大模型可自动创作 生成虚拟人朗读-每日消息
《银河护卫队3》上映2天票房破7000万 豆瓣评分高达8.7-天天热头条
18.98万起售 曝比亚迪海豹冠军版接受预定:比现款便宜多了
天天速读:科大讯飞刘庆峰:讯飞星火大模型中文能力已经超过ChatGPT
Idea编译:Java找不到符号(终极解决方案篇)_天天要闻
分布式场景下,如何对外提供易变的服务,打造可靠的注册中心?
每日消息!涨知识!你不知道的中国手机号码的编码和划分规则
汽车的供电状态
江阴枪击案嫌犯或已跟踪受害人半年具体是什么情况
哨兵模式立大功 理想L9遭遇奥迪“开门杀”:清清楚楚拍下全过程
天天动态:1.6亿赔款谁来出?承重墙被砸现高楼内仍有人居住 网友称楼体扭曲变形
国产最强AI来了!讯飞星火认知大模型发布:中文超越ChatGPT 英文已接近
要闻:传比亚迪电池配套欧版特斯拉 官方:不予置评
当前区块链研究领域的前沿技术和研究方向
快克智能(603203):短期承压不改趋势 半导体业务落地打开新空间|环球讯息
全球报道:没有金刚钻别揽瓷器活 特斯拉Model Y涉水越野:“脸”都烂了
同比猛涨128% 奇瑞4月销量出炉:狂卖12.7万辆站稳自主第一梯队 天天快播报
环球热头条丨AIGPT中文版(无需魔法)最简单的方式实现AI绘画
当前聚焦:热门的免费 API 合辑整理
.NET几种微服务框架,你用过吗?
热点聚焦:两个系统之间跳转免密登录
承重墙被砸1.6亿赔款谁来出? 法律人士:租户、施工队责任重大
中国电子云成为政企信创促进中心首批成员单位
科济药业AB011联合用药一线治疗胃癌获批临床 全球热文
梦幻西游检查更新失败是什么原因?梦幻西游检查更新失败怎么解决?
美剧《西游ABC》新海报发布:杨紫琼观音、吴彦祖美猴王下凡_世界资讯
男子花32万买二手奔驰获赔98万:车商隐瞒是泡水报废车
戴尔xps13怎么增加固态硬盘?戴尔xps13笔记本参数
富士宝电磁炉质量怎么样?富士宝电磁炉故障大全
多玩盒子是什么时候出的?多玩盒子怎么卸载?