专栏中心

EEPW首页 > 专栏 > RK3568驱动指南|驱动基础进阶篇-进阶5 自定义实现insmod命令实验

RK3568驱动指南|驱动基础进阶篇-进阶5 自定义实现insmod命令实验

发布人:红李亚 时间:2024-01-31 来源:工程师 发布文章
瑞芯微RK3568芯片是一款定位中高端的通用型SOC,采用22nm制程工艺,搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码,支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU,可用于轻量级人工智能应用。RK3568 支持安卓 11 和 linux 系统,主要面向物联网网关、NVR 存储、工控平板、工业检测、工控盒、卡拉 OK、云终端、车载中控等行业。
【公众号】迅为电子
【粉丝群】824412014(加群获取驱动文档+例程)
【视频观看】嵌入式学习之Linux驱动(驱动基础进阶篇_全新升级)_基于RK3568
进阶5 自定义实现insmod命令实验
5.1 实验程序的编写
在本章节将会实现第二种方法实现insmod命令。
5.1.1 驱动程序编写
本实验对应的网盘路径为:iTOP-RK3568开发板【底板V1.7版本】\03_【iTOP-RK3568开发板】指南教程\02_Linux驱动配套资料\04_Linux驱动例程\52_module02\01_module。
编写完成的helloworld.c代码如下所示。

该驱动程序就是最简单的helloworld驱动程序,只是在第6行添加了dump_stack()函数,用来在内核中输出当前调用堆栈信息,在这里使用该函数的目的是验证在app中的init_module系统调用是否生效。
5.1.2 编写测试 APP
本应用程序对应的网盘路径为:iTOP-RK3568开发板【底板V1.7版本】\03_【iTOP-RK3568开发板】指南教程\02_Linux驱动配套资料\04_Linux驱动例程\52_module02\02_app。
编写完成的应用程序app.c代码如下所示:

该应用程序的重点在30行,使用init_module系统调用加载模块到内核。
5.2运行测试
5.2.1 编译驱动程序
在上一小节中的helloworld.c代码同一目录下创建 Makefile 文件,Makefile 文件内容如下所示:

对于Makefile的内容注释已在上图添加,保存退出之后,来到存放helloworld.c和Makefile文件目录下,如下图(图5-1)所示:

然后使用命令“make”进行驱动的编译,编译完成如下图(图5-2)所示:

编译完生成platform_led.ko目标文件,如下图(图5-3)所示:

至此驱动模块就编译成功了。
5.2.2 编译应用程序
下面进行应用程序编译,因为测试APP是要在开发板上运行的,所以需要aarch64-linux-gnu-gcc来编译,输入以下命令,编译完成以后会生成一个app的可执行程序,如下图(图141-4)所示:
aarch64-linux-gnu-gcc myinsmod.c

下面进行驱动程序的测试。
5.2.3运行测试
本次测试要使用上面编译的helloworld.ko驱动文件和a.out可执行文件,所以需要先将两个要用到的文件拷贝到开发板上。
开发板启动之后,使用以下命令加载helloworld.ko驱动,如下图所示:
./a.out helloworld.ko

dump_stack函数会打印调用的一系列函数,这些函数的具体调用已经在进阶第一章讲解过了,这里的重点为红色框中的倒数第二行,调用了init_module函数加载了helloworld驱动。
然后继续使用以下命令查看驱动的加载情况,打印如下图(141-6)所示:
lsmod

可以看到helloworld驱动成功加载上了,最后可以使用以下命令进行驱动的卸载,如下图(图141-7)所示:
rmmod

至此,内核是如何运行KO文件的_insmod实验就完成了。


专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们

关键词: 开发板

相关推荐

米尔出席openEuler Summit 2024,携全志T536和RK3562核心模组亮相

6TOPS算力驱动30亿参数LLM,米尔RK3576部署端侧多模态多轮对话

ARM嵌入式系统开发板三星S3C44B0X的完整Protel电路图.rar

Jobs芯科EFR32xG24 Dev Kit开发板开箱视频

视频 2022-08-24

CY7C68013开发板原理图.rar

米尔-瑞萨RZ/G2L核心板开发板的系统启动时间优化应用笔记

米尔出席2025安路科技FPGA技术沙龙

12路1080P高清视频流,米尔RK3576开发板重塑视频处理极限

在米尔FPGA上实现Tiny YOLO V4,助力AIoT应用

莱迪思联手英伟达推出 Sensor Bridge 方案 加速边缘 AI 产品落地

SL811HS开发板原理图.rar

51单片机开发板

国产FPGA SoC芯选择,米尔安路飞龙核心板重磅发布

Badge USB OCD 与 78F0513D 使用演示视频

视频 2009-05-20

利用PIC24F Curiosity开发板简化设计

视频 2018-01-18

AN2131开发板原理图.rar

拆解:树莓派5 8 GB AI 套件

NEC MCU 78F0513D开发板使用教程

视频 2009-04-07

当6 TOPS不再是极限:米尔RK3576 + Hailo-8,让高帧率摄像头真正“实时”

Microchip PIC24FJ256DA210开发板在图形显示上的应用

更多 培训课堂
更多 焦点
更多 视频

技术专区