全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > 嵌入式技术 >

RK3568驱动指南|驱动基础进阶篇-进阶7 向系统中

时间:2025-05-21 14:15

人气:

作者:admin

标签: RK3568  SoC  驱动 

导读:RK3568驱动指南|驱动基础进阶篇-进阶7 向系统中添加一个系统调用...

瑞芯微RK3568芯片是一款定位中高端的通用型SOC,采用22nm制程工艺,搭载一颗四核Cortex-A55处理器和Mali G52 2EE图形处理器。RK3568支持4K解码和1080P编码,支持SATA/PCIE/USB3.0外围接口。RK3568内置独立NPU,可用于轻量级人工智能应用。RK3568支持安卓11和linux系统,主要面向物联网网关、NVR存储、工控平板、工业检测、工控盒、卡拉OK、云终端、车载中控等行业。

嵌入式学习之Linux驱动(驱动基础进阶篇_全新升级)_基于RK3568

迅为RK3568开发板瑞芯微Linux安卓鸿蒙ARM核心板人工智能AI主板

wKgZPGgtbxiAWMdfAAmTGVPl-U4395.png

进阶7向系统中添加一个系统调用

在上个章节中我们学习了系统调用的概念,本章节我们以实践的形式向系统中添加一个系统调用。

7.1内核添加自定义服务

我们在基础篇-第8章 将驱动编译进内核实验的基础上进行本章节的实验。我们修改helloworld.c驱动,如下所示,并确保helloworld驱动编译进了内核源码中。

wKgZPGgtbxiAA9GLAAAvvPtd9zE560.png

#include

#include

SYSCALL_DEFINE0(helloworld){

printk("This is helloworld syscall\n");

return 0;

}

AI写代码

Cpp

7.2添加系统调用号

然后在Linux源码kernel/include/uapi/asm-generic/unistd.h文件中添加系统调用号。如下图所示:

wKgZO2gtbxiAIkYIAADwATQz9yc274.png

最后,重新编译内核源码,烧写内核镜像。

7.3系统调用测试

本应用程序对应的网盘路径为:iTOP-RK3568开发板【底板V1.7版本】\03_【iTOP-RK3568开发板】指南教程\02_Linux驱动配套资料\04_Linux驱动例程\53_SYSCALL。

编写完成的应用程序syscall.c代码如下所示:

wKgZPGgtbxiACKXoAABT4BCed-A499.png

#include

#include

#include

#include

#include

#include

#include

#define __NR_helloworld 435

int main(int argc,char **argv){

syscall(__NR_helloworld);

return 0;

}

AI写代码

cpp

下面进行应用程序编译,因为测试APP是要在开发板上运行的,所以需要aarch64-linux-gnu-gcc来编译,输入以下命令,编译完成以后会生成一个app的可执行程序,如下图(图143-2)所示:

aarch64-linux-gnu-gcc syscall.c -o syscall

wKgZO2gtbxiAPNJUAABTWhoaQhw252.png

编译好的内核镜像boot.img在iTOP-RK3568开发板【底板V1.7版本】\03_【iTOP-RK3568开发板】指南教程\02_Linux驱动配套资料\04_Linux驱动例程\53_SYSCALL”目录下。烧写内核镜像,启动开发板。

然后将编译好的syscall程序拷贝到开发板上,然后运行程序,如下图所示:

wKgZPGgtbxiAMuvjAACXXt8JImI504.png

如上图所示,在运行应用程序之后,打印“This is helloworld syscall” 成功调用自定义的系统调用,至此,向系统中添加一个系统调用实验结束。

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信