简介:【玩转RT-Thread】 RT-Thread Studio使用(2) 内核实战篇(线程) 一、线程创建 1、函数原型 // 线程创建rt_thread_t rt_thread_create(const char* name,void (*entry)(void* parameter),void* parameter,rt_uint32_t stack_size,rt_uint8_t priority,rt_uint32_t tick); 首先我们来看看线程创建函...
一、内核框架: 内核是操作系统最基础也是最重要的部分。下图为 RT-Thread 内核架构图,内核处于硬件层之上,内核部分包括内核库、实时内核实现。 内核库是为了保证内核能够独立运行的一套 小型的类似 C 库的函数实现子集。这部分根据编译器的不同自带 C 库的情况也会有些不同,当使用 GNU GCC 编译器时,会携带更多...
图3-1为RT-Thread内核架构图,内核处于硬件层之上,内核部分包括内核库、实时内核实现。 图3-1 RT-Thread内核及底层结构 内核库是为了保证内核能够独立运行的一套小型的类似C库 的函数实现子集。这部分根据编译器的不同,自带C库的情况也会有些不同,当使用GNU GCC编译器时,会携带更多的标准C库实现。 实时内核的...
将数据缓冲区指针 buffer 强制转换为 uint8_t 类型的指针,方便按字节操作数据。 使用互斥锁 pipe->lock 来保护管道操作的原子性,通过调用 rt_mutex_take 函数获取互斥锁。 进入循环,不断写入数据到管道,直到写入的字节数达到指定的 count。 调用rt_ringbuffer_put 函数将数据写入管道的环形缓冲区(pipe->fifo)。...
一、系统初始化 1. RT-Thread 的启动流程 (1)初始化与系统相关的硬件; (2)初始化系统内核对象,例如定时器、调度器、信号; (3)创建main线程,在main...
来源于官方API参考手册 系统初始化 RT-Thread 的启动流程 RT-Thread 的启动流程,大致可以分为四个部分: (1)初始化与系统相关的硬件; (2)初始化系统内核对象,例如定时器、调度器、信号; (3)创建main线程,在main线程中对各类模块依次进行初始化; (4)初始化定时
1、RT-Thread 内核介绍 内核是操作系统最基础也是最重要的部分。下图为 RT-Thread 内核架构图,内核处于硬件层之上,内核部分包括内核库、实时内核实现。 图2.1: RT-Thread 内核及底层结构 内核库是为了保证内核能够独立运行的一套小型的类似 C 库的函数实现子集。这部分根据编译器的不同自带 C 库的情况也会有...
板介绍RT-Thread内核实现与应用开发,全书分为两部分:第一部分教你如何从0到1把RT-Thread内核写出来,从底层的汇编开始讲解线程如何定义、如何切换,还讲解了阻塞延时如何实现、如何支持多优先级、如何实现定时器以及时间片等RT-Thread的核心知识点;第二部分则讲解RT-Thread内核组件的应用以及如何使用RT-Thread进行多线程...
为了适应IoT的这种需求,RT-Thread提供了电源管理框架。电源管理框架的理念是尽量透明,使得产品加入低功耗功能更加轻松。 PM 组件功能特点 PM 组件是基于模式来管理功耗PM 组件可以根据模式自动更新设备的频率配置,确保在不同的运行模式都可以正常工作PM 组件可以根据模式自动管理设备的挂起和恢复,确保在不同的休眠模式下...