0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

北京迅为电子 2025-05-21 14:15 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

瑞芯微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” 成功调用自定义的系统调用,至此,向系统中添加一个系统调用实验结束。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 驱动
    +关注

    关注

    12

    文章

    1928

    浏览量

    88200
  • soc
    soc
    +关注

    关注

    38

    文章

    4514

    浏览量

    227612
  • RK3568
    +关注

    关注

    5

    文章

    628

    浏览量

    7581
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    迅为RK3568开发板驱动指南Linux通用SPI设备驱动

    迅为RK3568开发板驱动指南Linux通用SPI设备驱动
    的头像 发表于 01-23 11:02 3425次阅读
    迅为<b class='flag-5'>RK3568</b>开发板<b class='flag-5'>驱动</b><b class='flag-5'>指南</b>Linux<b class='flag-5'>中</b>通用SPI设备<b class='flag-5'>驱动</b>

    迅为RK3568驱动指南GPIO子系统实战:实现动态切换引脚复用功能

    迅为RK3568驱动指南GPIO子系统实战:实现动态切换引脚复用功能
    的头像 发表于 05-22 14:27 1679次阅读
    迅为<b class='flag-5'>RK3568</b><b class='flag-5'>驱动</b><b class='flag-5'>指南</b>GPIO子<b class='flag-5'>系统</b>实战:实现动态切换引脚复用功能

    文档更新 | 迅为RK3568驱动指南-第十七篇(串口)

    实验 进阶6 内核运行ko文件实验——系统调用 进阶7
    发表于 09-24 10:42

    迅为iTOP-RK3568开发板驱动开发指南-第十八 PWM

    自定义实现insmod命令实验 进阶6 内核运行ko文件实验——系统调用 进阶7
    发表于 10-29 10:13

    iTOP-RK3568开发板驱动指南第五-中断

    _字符设备基础 第三期_并发与竞争 第四期_高级字符设备进阶 第五期_中断 第六期_平台总线 第七期_设备树 第八期_设备树插件 第九期_设备模型 第十期_热插拔 第十一期_pinctrl子系统 未完待续,持续更新...哔哩哔
    发表于 09-04 10:53

    更新 | 持续开源 迅为RK3568驱动指南第十一篇-pinctrl子系统

    《iTOP-RK3568开发板驱动开发指南》更新,本次更新内容对应的是驱动(第十一期_pinctrl子系统-全新升级)视频,后续资料会不断更
    发表于 10-18 11:12

    USB HID设备应用(进阶篇

    Freescale的USB HID设备应用(进阶篇
    发表于 12-07 18:19 0次下载

    RK3568驱动指南驱动基础进阶篇-进阶8 内核运行ko文件总结

    RK3568驱动指南驱动基础进阶篇-进阶8 内核运行ko文件总结
    的头像 发表于 01-31 14:58 2010次阅读
    <b class='flag-5'>RK3568</b><b class='flag-5'>驱动</b><b class='flag-5'>指南</b>|<b class='flag-5'>驱动</b>基础<b class='flag-5'>进阶篇</b>-<b class='flag-5'>进阶</b>8 内核运行ko文件总结

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

    RK3568驱动指南驱动基础进阶篇-进阶5 自定义实现insmod命令实验
    的头像 发表于 02-20 14:10 1446次阅读
    <b class='flag-5'>RK3568</b><b class='flag-5'>驱动</b><b class='flag-5'>指南</b>|<b class='flag-5'>驱动</b>基础<b class='flag-5'>进阶篇</b>-<b class='flag-5'>进阶</b>5 自定义实现insmod命令实验

    迅为RK3568开发板驱动开发指南-输入子系统

    迅为RK3568开发板驱动开发指南-输入子系统
    的头像 发表于 02-23 15:11 2063次阅读
    迅为<b class='flag-5'>RK3568</b>开发板<b class='flag-5'>驱动</b>开发<b class='flag-5'>指南</b>-输入子<b class='flag-5'>系统</b>

    RK3568驱动指南|第十二 GPIO子系统-第135章 GPIO子系统与pinctrl子系统相结合实验

    RK3568驱动指南|第十二 GPIO子系统-第135章 GPIO子系统与pinctrl子
    的头像 发表于 05-23 13:47 746次阅读
    <b class='flag-5'>RK3568</b><b class='flag-5'>驱动</b><b class='flag-5'>指南</b>|第十二<b class='flag-5'>篇</b> GPIO子<b class='flag-5'>系统</b>-第135章 GPIO子<b class='flag-5'>系统</b>与pinctrl子<b class='flag-5'>系统</b>相结合实验

    迅为RK3568驱动指南GPIO子系统 GPIO操作函数实验

    迅为电子RK3568开发板驱动指南GPIO子系统 GPIO操作函数实验
    的头像 发表于 05-28 15:24 1046次阅读
    迅为<b class='flag-5'>RK3568</b><b class='flag-5'>驱动</b><b class='flag-5'>指南</b>GPIO子<b class='flag-5'>系统</b> GPIO操作函数实验

    迅为RK3568开发板驱动指南GPIO子系统GPIO子系统API函数的引入

    迅为RK3568开发板驱动指南GPIO子系统GPIO子系统API函数的引入
    的头像 发表于 05-29 14:05 833次阅读
    迅为<b class='flag-5'>RK3568</b>开发板<b class='flag-5'>驱动</b><b class='flag-5'>指南</b>GPIO子<b class='flag-5'>系统</b>GPIO子<b class='flag-5'>系统</b>API函数的引入

    RK3568驱动指南|第十二 GPIO子系统-第130章 GPIO的调试方法

    RK3568驱动指南|第十二 GPIO子系统-第130章 GPIO的调试方法
    的头像 发表于 06-03 11:32 987次阅读
    <b class='flag-5'>RK3568</b><b class='flag-5'>驱动</b><b class='flag-5'>指南</b>|第十二<b class='flag-5'>篇</b> GPIO子<b class='flag-5'>系统</b>-第130章 GPIO的调试方法

    迅为RK3568 重制版RK3568驱动指南全面升级

    迅为RK3568 重制版RK3568驱动指南全面升级
    的头像 发表于 07-28 15:25 1498次阅读
    迅为<b class='flag-5'>RK3568</b> 重制版<b class='flag-5'>RK3568</b><b class='flag-5'>驱动</b><b class='flag-5'>指南</b>全面升级