文章 2024-01-18 来自:开发者社区

RT-Thread快速入门-线程间同步之信号量

线程同步是指多个线程通过某种特定的机制,来控制线程之间的先后执行顺序。 RT-Thread 提供了一种线程同步的方式:信号量(semaphore)、 互斥量(mutex)、和事件集(event)。本篇文章主要介绍信号量相关的内容。第一:信号量的工作机制信号量是一种可以用来解决线程间同步问题的内核对象,线程通过获取和释放信号量,来达到同步的目的。每个信号量对象都有一个信号量值和一个线程等....

RT-Thread快速入门-线程间同步之信号量
文章 2024-01-18 来自:开发者社区

RT-Thread快速入门-线程管理(下)

 这篇重点介绍 RT-thread 提供的线程管理相关的接口函数,以及实战演示。第一:线程创建在 RT-Thread 中,创建一个线程的方式有两种:动态创建方式,线程的栈和线程控制块由系统从动态内存堆上分配。静态创建方式,线程的栈和线程控制块由用户定义分配。1. 动态创建线程动态创建线程,用户不需要考虑线程栈和线程控制块空间分配的问题,全部由系统自动完成分配。用户只需要关心其他关键的线....

RT-Thread快速入门-线程管理(下)
文章 2024-01-18 来自:开发者社区

RT-Thread快速入门-线程管理

在 RT-Thread 中,最基本的调度单位是线程,其他 RTOS 也叫任务。如果学习过或者了解过 RTOS,任务这种叫法是最为熟知的。本篇文章来学习一下 RT-Thread 线程方面的内容。对于初学者来说,转换一下思维,建立多任务(线程)的编程思想。 引言对于裸机编程,整个软件系统只有一个线程(任务)在执行,实现方式是通过一个大循环完成的。应用程序是一个无限循环,循环中调用各个功能模....

RT-Thread快速入门-线程管理
文章 2023-09-21 来自:开发者社区

RT-Thread线程创建和删除

线程的工作机制在 RT-Thread 中,线程控制块由结构体 struct rt_thread 表示,线程控制块是操作系统用于管理线程的一个数据结构,它会存放线程的一些信息,例如优先级、线程名称、线程状态等,也包含线程与线程之间连接用的链表结构,线程等待事件集合等,详细定义如下:/* 线程控制块 */ struct rt_thread { /* rt 对象 */ char ...

RT-Thread线程创建和删除
文章 2023-08-25 来自:开发者社区

RTOS rt-thread裸机系统与多线程系统

裸机系统与多线程系统裸机系统裸机系统通常分成轮询系统和前后台系统轮询系统轮询系统即在裸机编程过程中,先初始化相关的硬件,然后让主程序在一个死循环里面不断循环,顺序地做各种事情,大概的伪代码参见代码清单2-1。轮询系统是一种非常简单的软件结构,通常只适用于那些只需要顺序执行代码且不需要外部事件来驱动就能完成的操作。在代码清单2-1中,如果只是实现LED翻转、串口输出、液晶显示等操作,那么使用轮询系....

RTOS rt-thread裸机系统与多线程系统
文章 2023-06-15 来自:开发者社区

【玩转RT-Thread】线程间同步(一) 信号量

一、概述:多个执行单元(线程、中断)同时执行临界区,操作临界资源,会导致竟态产生,为了解决这种竟态问题,RT-Thread OS提供了如下几种同步互斥机制:信号量(semaphore)、互斥量(mutex)、和事件集(event)二、信号量1、简述信号量是一种轻型的用于解决线程间同步问题的内核对象,线程可以获取或释放它,从而达到同步或互斥的目的。信号量工作示意图如下图所示,每个信号量对象都有一个....

【玩转RT-Thread】线程间同步(一) 信号量
文章 2023-06-15 来自:开发者社区

【玩转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-Thread】 RT-Thread Studio使用(2) 内核实战篇(线程)
文章 2023-06-15 来自:开发者社区

【玩转RT-Thread】线程管理(详细原理)(下)

4.系统线程系统线程是指由系统创建的线程,用户线程是由用户程序调用线程管理接口创建的线程,在RT-Thread 内核中的系统线程有空闲线程和主线程。(1)空闲线程空闲线程是系统创建的最低优先级的线程,线程状态永远为就绪态。当系统中无其他就绪线程存在时,调度器将调度到空闲线程,它通常是一个死循环,且永远不能被挂起。另外,空闲线程在RT-Thread 也有着它的特殊用途:若某线程运行完毕,系统将自动....

【玩转RT-Thread】线程管理(详细原理)(下)
文章 2023-06-15 来自:开发者社区

【玩转RT-Thread】线程管理(详细原理)(上)

一、序言在日常生活中,我们通常会将一个大的问题拆分细化,拆开成若干个小问题,通过逐个解决小问题,大问题也就解决了。同样的在RT-Thread多线程操作系统中,开发人员基于这种分而治之的思想,将一个复杂的应用问题抽象成若干个小的、可调度的、可序列化的程序单元。当合理地划分任务并正确地执行时,这种设计能够让系统满足实时系统的性能及时间的要求。下面看一个例子:我们的任务是读取传感器上的数据,并将相关数....

【玩转RT-Thread】线程管理(详细原理)(上)
文章 2023-02-24 来自:开发者社区

RT-thread创建线程并且启动

一. 简介创建线程有两种方式,根据是否由rt分配内存,分为静态创建线程和动态创建线程。默认是静态分配线程,如果需要使用动态创建线程的话,则需要开启宏定义RT_USING_HEAP,并设置heap相关函数。二. 静态创建线程rt_err_t rt_thread_init(struct rt_thread* thread, const char* na...

RT-thread创建线程并且启动

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

产品推荐