1.1 在 RT-Thread 中使用 POSIX 2、线程 2.1 线程句柄 2.2 创建线程 2.3 脱离线程 2.4 等待线程结束 2.5 退出线程 2.5.1 退出线程示例代码 3、互斥锁 3.1 互斥锁控制块 3.2 初始化互斥锁 3.3 销毁互斥锁 3.4 阻塞方式对互斥锁上锁 3.5 非阻塞方式对互斥锁上锁 3.6 解锁互斥锁 3.7 互斥锁示例代码...
在RT-Thread中,信号用作异步通信。POSIX标准定义了很多种信号,在 RT-Thread 中,应用程序能够使用的信号只有两种: SIGUSR1 SIGUSR2 一个线程不需要任何操作来就可以等待信号的到达。线程对信号的处理分为三类: 类似中断处理,设定信号处理函数。 忽略信号,不进行处理 默认处理,采用系统默认的处理方式 线程接收到信号时...
5.设备驱动框架 6.POSIX接口 7.网络部分 8.工具部分 这些裁剪是在设计方案的时候选择是否需要。 06 业务逻辑裁剪 在使用rt-thread操作系统时,往往都是利用rt-thread实现自己的业务逻辑,所以我们在编写自己的代码的时候,也需要充分的理解rt-thread的设计思想。以及我们在做设计的时候,可能需要配置一些可以调整的策略方...
1. POSIX 渊源 可移植操作系统接口,POSIX 标准定义了操作系统(很多时候针对的是类 Unix 操作系统)应该为应用程序提供的接口标准,从而保证了应用程序在源码层次的可移植性,如今主流的 Linux 系统都做到了兼容 POSIX 标准。由此可见,可移植性是 POSIX 的一大特性,如果一个操作系统拟合了POSIX系统,就将可以将自己的 PO...
在RT-Thread 中,信号用作异步通信。POSIX标准定义了很多种信号,在 RT-Thread 中,应用程序能够使用的信号只有两种: SIGUSR1 SIGUSR2 一个线程不需要任何操作来就可以等待信号的到达。线程对信号的处理分为三类: 类似中断处理,设定信号处理函数。 忽略信号,不进行处理 ...
RT-Thread 拥有良好的软件生态,支持市面上所有主流的编译工具如 GCC、Keil、IAR 等,工具链完善、友好,支持各类标准接口,如 POSIX、CMSIS、C++应用环境、Javascript 执行环境等,方便开发者移植各类应用程序。商用支持所有主流MCU架构,如 ARM Cortex-M/R/A, MIPS, X86, Xtensa, C-Sky, RISC-V,几乎支持市场上所有...
参考链接1的示例程序(下称rt_app)是一个实时的POSIX线程示例,它创建一个实时线程来执行特定的任务。程序的原理是通过使用POSIX线程库中的函数来设置线程的属性和调度策略,以确保线程能够以实时方式运行。首先,程序使用mlockall函数来锁定内存,以防止线程因为内存被交换而出现延迟。然后,通过使用pthread_attr_t结构来初始...
POSIX 文件系统,兼容 RT-Thread 的文件 DFS 系统接口。 PC 编译 获取awtk 并编译 git clone https://github.com/zlgopen/awtk.git cd awtk; scons; cd - 1. 2. PC 版本主要用于功能性测试。 获取awtk-fs-adapter 并编译 git clone https://github.com/zlgopen/awtk-fs-adapter.git ...
(int s, long cmd, void *arg); #ifdef SAL_USING_POSIX int (*poll) (struct dfs_fd *file, struct rt_pollreq *req); #endif }; /* sal network database name resolving */ struct sal_netdb_ops { struct hostent* (*gethostbyname) (const char *name); int (*gethostbyname_r)(const ...
#if defined(RT_USING_POSIX) const struct dfs_file_ops *fops; struct rt_wqueue wait_queue; #endif void *user_data; /**< device private data */ }; 2.1.1 设备类型 type 设备对象的控制块中对于设备类型使用了一个rt_device_class_type枚举的方式,其可能的设备类型如下(简单的没有注释,还有部分...