基于 SylixOS arm64 的 ABI 说明

基于 SylixOS arm64 的 ABI 说明

根据 ARM 官方的 AAPCS64 文档说明,X18 是一个平台自定义的寄存器,可用作线程上下文相关处理使用。这样使用的好处是减少了部分压栈和弹栈操作,整体提升了性能。

      因为绝大多数用户场景是 C及更高级的语言,所以我们在 gcc 编译的时候已经指定了编译器不要使用 x18。对于客户代码中使用汇编的场景,客户只需要将 x18 修改为别的寄存器即可。

我们这样的处理方式既提升了性能,也能适应绝大多数的场景,并且对于直接用汇编编程的情况只需要做很简单的替换即可。

下图内容摘自ARM 官方的AAPCS64文档,详情见附件




    • Related Articles

    • SylixOS NFS server&client 配置操作说明

      Q:SylixOS NFS server&client 配置操作说明 SylixOS端作为服务器: 1. NFS 服务器(sylixos 目标机)端配置: 1)服务器端SylixOS需上传base相关库和文件,base包含unfsd中间件编译; 2)配置本地网络IP及掩码,保证客户端ip同服务器端ip在同一网段; 3)通过命令配置 NFS 相关参数: vi /etc/exports [/media] ipnet=10.4.0.0/255.255.0.0 opt=rw 参数说明: /media ...
    • SylixOS lite 版—基于 STM32F767 资源使用情况

      1、基本概念     代码段(text):顾名思义,代码存放的位置,在 STM32 中代码段一般存放于内置 FLASH 中; 已初始化数据段(data):已初始化数据段会分别体现在 FlASH 中和 RAM 中。因为是全局变量,运行过程中需要进行读写操作,因此占用一段 RAM 空间。又因为有初始值,其初始值需要占用 FlASH 空间。   未初始化的数据段(bss):bss 与 data 相同的地方时它也是全局变量,运行过程中需要进行读写操作,因此占用一段 RAM ...
    • RealEvo-IDE 串口调试 app 补充说明

      需求 对于不支持以太网接口的设备,可以使用串口进行手动启动调试,基本流程参见《RealEvo-IDE使用手册》中 5.3 小节的内容。 为了用户能正常使用该功能,本文档将实际操作中的细节整理如下。 硬件设备 本次演示使用的硬件设备是翼辉信息的T3工业控制器IGC1500,串口设备信息如下: 1 个 RS232 Debug 接口: 设备名/dev/ttyS0,对应于接线端子 RS232-2,端口信号为 RX2,TX2,GND。 2 个 RS232 用户接口: 设备名/dev/ttyS5,对应于面板 ...
    • SylixOS 功能介绍及版本差异

      SylixOS功能介绍及版本差异 SylixOS 标准版 SylixOS 标准版是 SylixOS 的基础版本,具备如下功能: 兼容 IEEE 1003(ISO/IEC 9945)操作系统接口规范; 兼容 POSIX 1003.1b(ISO/IEC 9945-1)实时编程标准; 支持国军标 GJB7714-2012 操作系统接口规范; 优秀的实时性能(任务调度与切换算法时间复杂度为 O(1)); 支持无限多任务; 抢占式调度支持 256 个优先级; 支持虚拟进程; ...
    • SylixOS 系统是否支持基于 web 的开发

      Q:SylixOS 系统是否支持基于 web 的开发? 目前只能通过 gohead 跑一些页面。其他传统的 web 开发是不支持的。