SylixOS
文章平均质量分 59
基于Sylix OS的一些学习笔记
Crush_u
你好哇_李银河
展开
-
SylixOS 网络协议栈,struct netif 数据结构浅析(更新中)
if!u8_t flags;u8_t num;#endif /*!原创 2024-09-24 17:15:21 · 706 阅读 · 0 评论 -
优先级翻转场景设计及实现(C语言实现)
【代码】优先级翻转场景复现涉及(C语言实现)原创 2023-10-24 20:40:52 · 213 阅读 · 0 评论 -
SylixOS下IO系统—相关数据结构初始化及调用详解(文件描述符表、文件结构表、文件节点表、设备节点表、内核驱动表等)
文件描述符表、文件结构表、文件节点表、设备节点表、内核驱动表等初始化及关联流程原创 2023-03-10 14:53:34 · 829 阅读 · 0 评论 -
文件描述符表、文件结构表和文件节点(SylixOS 学习笔记-更新中)
文件描述符、文件结构、文件节点等相关部分,个人学习笔记(完善中)原创 2022-12-22 16:43:10 · 1234 阅读 · 0 评论 -
SylixOS 中断底半部(笔记)
个人笔学习记原创 2022-12-13 13:42:59 · 266 阅读 · 0 评论 -
串口流控(CTS/RTS)使用详解
1.流控概念 在两个设备正常通信时,由于处理速度不同,就存在这样一个问题,有的快,有的慢,在某些情况下,就可能导致丢失数据的情况。如台式机与单片机之间的通讯,接收端数据缓冲区已满,则此时继续发送来的数据就会丢失。 流控制能解决这个问题,当接收端数据处理不过来时,就发出“不再接收”的信号,发送端就停止发送,直到收到“可以继续发送”的信号再发送数据。因此流控制可以控制数据传输的进程,实现收发双方的速度匹配,防止数据的丢失。PC机中常用的两种流控制是硬件流控制(包括RTS/CT...原创 2021-11-12 14:53:02 · 54819 阅读 · 4 评论 -
SylixOS中的动态内存分配 --- 内核堆与系统堆实现原理详解
实现原理内核堆与系统堆通过内存堆操作库实现,系统会定义两个内存堆指针全局变量,分别指向内核堆和系统堆,接口调用时即通过这两个指针访问内核堆和系统堆。内核堆和系统堆全局指针定义__KERNEL_EXT PLW_CLASS_HEAP _K_pheapKernel; /* 内核堆 */__KERNEL_EXT PLW_CLASS_HEAP _K_pheapSystem;转载 2021-10-28 11:32:33 · 478 阅读 · 0 评论 -
SylixOS中的动态内存分配 --- 内核堆与系统堆
概念内核堆(kernel heap)与系统堆(system heap)是SylixOS原生的内存堆模块,用于内核和驱动的动态内存分配。大多数情况下系统堆是等同于内核堆的。内核堆与系统堆通过内存堆操作库实现,以宏函数为接口。接口内核堆接口#define __KHEAP_ALLOC(stNBytes) _HeapAllocate(_K_pheapKernel, stNBytes, __func__)#define __KHEAP_ZALLOC(stNByt转载 2021-10-28 11:27:27 · 465 阅读 · 0 评论 -
使用 mmap 函数进行共享内存映射时失败
问题描述:使用 shm_open 函数创建共享内存设备文件,shm_open 函数返回一个文件描述符,然后使用 mmap 函数映射该共享内存到进程的虚拟空间内,mmap 函数返回一个虚拟地址,之后便可以通过这个虚拟地址对共享内存进行读和写操作。 但是使用 shm_open 穿件文件后,使用 mmap 函数进行映射会出现下图中的错误。原创 2021-04-13 13:38:19 · 1675 阅读 · 0 评论 -
POSIX
从 1970 第一款现代操作系统——UNIX 诞生至今,出现了多款现代操作系统,为了方便应用程序以及中间件的移植,大多数操作系统都采用与 UNIX 兼容的 API(Windows 除外)。为了保证操作系统 API 的相互兼容性制定了 POSIX 标准。 目前符合 POSIX 标准协议的操作系统有:UNIX、BSD、Linux、iOS、Android、SylixOS、VxWorks、RTEMS 等。应用程序通过应用编程接口(API)而不是直接通过系统调用来编程,使用的这种编程接口实际上并不需要和内原创 2020-09-05 15:00:21 · 192 阅读 · 0 评论 -
SylixOS Shared Lib
本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。SylixOS的库分为静态库和共享库(也称作动态库或动态链接库),二者的不同在于库代码被载入的 时间不同: 静态库在程序编译的时候被链接到目标代码中(文件扩展名通常为.a),程序运行时不再需要动态装载该库。如果多个应用程序都需要使用相同的静态库,则每一个应用程序代码部分都链接了此静态库,因此应用程序代码体积较大; 动态库在程序编译时并不会被链接到目标代码中(文件扩展名通常为.so),而是在程序运行时才被载入,因此在程序运.原创 2020-08-04 17:32:43 · 279 阅读 · 0 评论 -
SylixOS 根文件系统
SylixOS 启动后自动挂载的第一个文件系统称为根文件系统。这里不同于 Linux 系统,SylixOS 根文件系统是一个虚拟文件系统,掉电后不会保存对此文件系统的修改,所以 SylixOS 可以工作在没有非易失性存储器(通常为硬盘或其他磁盘存储器)的机器上。在此文件系统上,SylixOS 会自动建立 dev、media 与 mnt 目录,其他标准目录则需要 BSP 在初 始化阶段做挂载或者符号链接。 SylixOS 使用的标准目录结构如下图所示。...原创 2020-08-04 16:23:13 · 414 阅读 · 0 评论 -
RealEvo IDE的静态代码分析(SylixOS开发工具)
静态代码分析:右击需要分析的工程,选择菜单“SylixOS Code Static Analysis→Run Code Static Analysis” 可分析工程源码。选中“Console→cppcheck”标签页可查看分析过程,如下图。静态代码分析的内容包括:Undefined behaviourDead pointers Division by zero lnteger overflows lnvalid bit shift operands lnvalid conv.原创 2020-07-28 09:35:37 · 515 阅读 · 0 评论