新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > ARM架构下添加系统调用与32位x86区别

ARM架构下添加系统调用与32位x86区别

作者: 时间:2016-11-09 来源:网络 收藏
  在这两种架构下添加系统调用的步骤是类似的,简要地比较一下,以2.6.28.6内核为例。

  1.在内核源码相应位置(如sys.c或其他与这个函数联系紧密的文件)添加新的内核函数作为系统调用,形如

本文引用地址:https://www.eepw.com.cn/article/201611/317844.htm
asmlinkage long sys_foo(void) {}

  2.加入系统调用表。ARM架构存放于/arch/arm/kernel/call.S中,形如CALL(sys_foo);x86架构放于/arch/x86/kernel/syscall_table_32.S中,形如.longsys_foo。

  3.定义系统调用号。ARM架构存放于/arch/arm/include/asm/unistd.h中,形如

  

#define __NR_foo (__NR_SYSCALL_BASE+361);

  x86架构放于/arch/x86/include/asm/unistd_32.h中,形如

#define __NR_foo 333

  4.使用方法:编译修改后的内核,在用户空间中使用syscall()调用。



评论


技术专区

关闭
×

TI 在线会
2025年6月11日,与TI一起探索电动化汽车高效音频解决方案吧!