添加标准 C 库头文件会与 SylixOS 内部数据结构冲突

添加标准 C 库头文件会与 SylixOS 内部数据结构冲突

Q: 为什么加入一些标准 C 库头文件会与 SylixOS 内部数据结构冲突?
SylixOS 为了提高兼容性与稳定性,SylixOS 提供了一套最适合自身多线程操作系统特点的标准 C 库(暂不包含数学库).
这套 C 库相关代码是从其他开源项目中演变而来。当然为了配合 SylixOS 系统,很多地方做出了修改。
这些库中相关的定义会随着 #include <SylixOS.h> 一同引入用户程序,当用户引用其他辅助 C 库时,
可能产生一些重复定义问题。

这里推荐使用 SylixOS 提供的 C 库,以保持多线程系统最大的可靠性(除非 SylixOS 没有提供的部分).
 (推荐引用头文件时,所有头文件使用 "" 方式而不是 <> 因为 SylixOS 已经包含 C 库,并且在编译器中也设置了相关的查找目录,使用 "" 将不会产生使用错误的库造成的问题)。



    • Related Articles

    • SylixOS 中 CTRL + C 的大致处理流程

      Q:SylixOS 中 CTRL + C 的大致处理流程 (1)当键盘按下 CTRL+C 时,主机就向目标板发送一个控制字符,其 ASSIC 码为 0x03,在 SylixOS 下常用的控制字符如下,此定义是在 tyLib.c 文件中。 /********************************************************************************************************* 全局变量(控制字 ...
    • error:expected unqualified-id before string constant extern "C" { ”

      Q:Qt 中编译时出现 “expected unqualified-id before string constant extern "C" { ”  错误的原因? 例如编译报错图如下: 其中图上错误指向开源串口库头文件 termios.h ,该文件中在 “ extern "C" { ” 处编译报错,该错误 原因为改文件中可能存在 “;”、“}”、“)” 等括号未匹配或者缺少分号等造成的文件中格式出现问题, 或者为该文件被人为修改替换导致的格式问题。 解决方法: ...
    • 如何禁止Ctrl+C执行?

      Q:如何禁止Ctrl+C执行? 应用层如何控制S ylixOS 禁止 Ctrl+C 快捷键杀掉应用,参考代码如下: #include <sys/stat.h> #include <termios.h> #include <fcntl.h> static INT iOptionNoAbort, iOption; static void do_cancel_ctrlc (void) { ioctl(STD_IN, FIOGETOPTIONS, &iOption); iOptionNoAbort = ...
    • SylixOS 功能介绍及版本差异

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

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