RTT-线程管理

2023-10-27

RTT-线程管理

官方API文档:https://www.rt-thread.org/document/api/group___thread.html

在这里插入图片描述

概念

线程是竞争系统资源的最小运行单元。每个线程在自己的环境中运行。在任何时刻,只有一个线程得到运行,RT-Thread 调度器决定运行哪个线程。调度器会不断启动、停止每一个线程,宏观看上去所有的线程都在同时在执行。作为线程,不需要对调度器的活动有所了解,在线程切入切出时保存上下文环境(寄存器值、堆栈内容)是调度器主要的职责。为了实现这点,每个 RT-Thread 线程都需要有自己的堆栈。当线程切出时,它的执行环境会被保存在该线程的堆栈中,这样当线程再次运行时,就能从堆栈中正确的恢复上次的运行环境。
RT-Thread 中的线程是抢占式调度机制,同时支持时间片轮转调度方式。高优先级的线程可打断低优先级线程,低优先级线程必须在高优先级线程阻塞或结束后才能得到调度。同优先级的任务按照时间片轮转调度。

接口

创建静态线程

rt_err_t rt_thread_init (struct rt_thread *thread, const char *name, void(*entry)(void *parameter), void *parameter, void *stack_start, rt_uint32_t stack_size, rt_uint8_t priority, rt_uint32_t tick)

删除静态线程

rt_err_t rt_thread_detach (rt_thread_t thread)

创建动态线程

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_err_t rt_thread_delete (rt_thread_t thread)

启动线程

rt_err_t rt_thread_startup (rt_thread_t thread)

睡眠线程

rt_err_t rt_thread_sleep (rt_tick_t tick)

挂起线程

rt_err_t rt_thread_suspend (rt_thread_t thread)

恢复线程

rt_err_t rt_thread_resume (rt_thread_t thread)

获取当前线程对象指针

rt_thread_t rt_thread_self (void)

修改线程配置参数

rt_err_t rt_thread_control (rt_thread_t thread, int cmd, void *arg)

让出资源

rt_err_t rt_thread_yield (void )
该函数将使当前线程出让处理器资源,它将不再占有处理器,调度器会选择相同优先级的下一个线程执行。 线程调用这个接口后,这个线程仍然在就绪队列中。

用法

静态创建

  1. 定义线程栈
  2. 定义线程控制块
  3. 定义线程函数
  4. 创建静态线程
  5. 启动线程

动态创建

  1. 分配一部分RAM空间来作为 RT-Thread 的堆空间
  2. 定义线程控制块
  3. 定义线程函数
  4. 创建动态线程
  5. 启动线程
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

RTT-线程管理 的相关文章

  • rt-thead-studio 中实现 MPU6050基于DMP中断读取数据

    rt thead studio 中实现 MPU6050基于DMP中断读取数据 目录 文章目录 rt thead studio 中实现 MPU6050基于DMP中断读取数据 目录 toc 前言 mpl高级特性库问题 一 基于开发板创建闪灯工程
  • STM32-学习入门

    软件环境 MDK ARM http www myir tech com download asp Jlink驱动 https download csdn net download lblmlms 12332349 串口助手 https do
  • RT-Thread分析-对象容器实现与作用

    目录 1 前言 2 相关数据结构 2 1 对象 1 类型 2 数据结构 2 3 容器 1 数据结构 2 容器定义 object container 2 3 对象容器链接图 3 获取对象容器 rt object get information
  • PlatformIO - 静态代码分析(Static Code Analysis)

    关于 静态代码分析 相信大部分的嵌入式开发者或多或少在日常的开发中都有所了解 但可能在实际的开发中我们使用的并不多也不习惯通过工具对我们编写的代码进行静态扫描而是完全依赖于在开发板上运行然后基于运行结果来判断自己所编写的代码的好坏 是否有b
  • RT-Thread 断言:assertion failed at function:rt_mutex_take 等

    断言 断言是什么 https www cnblogs com thisway p 5558914 html ASSERT 是一个调试程序时经常使用的宏 在程序运行时它计算括号内的表达式 如果表达式为FALSE 0 程序将报告错误 并终止执行
  • UCOS2的文件目录

    想着闲着也是闲着 把之前学习ucos2源码的笔记整理一下 复盘一次 总结内容将其写为博客作为学习的输出 一 为什么要学RTOS或者IOTOS 我在大一时 开始进入实验室接触单片机 摸爬滚打的参加了几次比赛 也因此入了嵌入式的坑 大三时开始思
  • FreeRTOS系统配置文件详解

    简介 在实际使用FreeRTOS 的时候我们时常需要根据自己需求来配置FreeRTOS 而且不同架构的MCU 在使用的时候配置也不同 FreeRTOS 的系统配置文件为FreeRTOSConfig h 在此配置文件中可以完成FreeRTOS
  • 【GCC-RT-Thread】gcc交叉编译 STM32 - RT-Thread

    GCC RT Thread gcc交叉编译 STM32 RT Thread 最近在公司实习 公司想将原来在Windows keil上开发的项目移到Linux 并上RTT操作系统 最近就被安排做了这件事 首先 下载 RT Thread Nan
  • 野火 RT1052 移植网卡功能(LAN8720A)

    野火 RT1052 移植网卡功能 LAN8720A 开发环境 RT Thread v4 0 2 master SOC i MX RT1050 Board 野火 RT1052 目的 在 RT Thread 系统上进行网络通讯 背景描述 1 首
  • RT-Thread记录(五、RT-Thread 临界区保护与FreeRTOS的比较)

    本文聊聊临界区 以及RT Thread对临界区的处理 通过源码分析一下 RT Thread 对临界区保护的实现以及与 FreeRTOS 处理的不同 目录 前言 一 临界区 1 1 什么是临界区 1 2 RTOS中的临界区 二 RT Thre
  • 13-FreeRTOS任务创建与删除

    任务创建和删除API函数位于文件task c中 需要包含task h头文件 task h里面包函数任务的类型函数 例如 对xTaskCreate的调用 通过指针方式 返回一个TaskHandle t 变量 然后可将该变量用vTaskDele
  • RTX线程通信之——线程标志

    文章目录 Thread Flags 概念 RTX线程标志API 案例 LED灯同步闪亮 小结 参考资料 Thread Flags In a real application we need to be able to communicate
  • RTThread学习有关的Keil的两个符号 $Sub$ $main 与 $Super$ $main

    Keil的两个符号 Sub 与 Super 是其做的打 补丁 功能 具体调用方法就是程序中包含有main函数 和 Sub main Super main 两个符号 源码先放出来 re define main function int Sub
  • uCOSii中的互斥信号量

    uCOSii中的互斥信号量 一 互斥型信号量项管理 MUTUAL EXCLUSION SEMAPHORE MANAGEMENT OSMutexAccept 无条件等待地获取互斥型信号量 OSMutexCreate 建立并初始化一个互斥型信号
  • 像 PTLsim 这样的 CAS 模拟器如何实现 x86 硬件的周期精确模拟?

    谁能告诉我 CAS 软件怎么样http www ptlsim org 工作 如果不知道每条指令使用了多少个周期 也不知道 CPU 分支预测逻辑 那么它们如何实现周期精度 或者一切都可以通过保密协议获得吗 我想它们可能可以非常准确地命中或错过
  • FreeRTOS 配置TICK_RATE_HZ

    我使用的是带有 5 4 版 FreeRTOS 的 MSP430f5438 我有一个有趣的问题 我无法弄清楚 基本上 当我将 configTICK RATE HZ 设置为不同的值时 LED 闪烁得更快或更慢 它应该保持相同的速率 我将 con
  • rt-thread studio中新建5.02版本报错

    先吐槽一下 rt thread studio出现BUG真多 好多时间都是在找BUG 但里面用好多控件还是挺好用的 真是又爱又恨 所以一般使用功能不多的话还是用keil多一点 创建5 02版本工程之后直接进行编译 直接会报下面这个错误 资源
  • BSP制作

    STM32系列驱动介绍 在RT Thread实时操作系统中 各种各样的设备驱动是通过一套I O设备管理框架来实现的 设备管理框架给上层应用提供了一套标准的设备操作API 开发者通过调用这些标准设备操作API 可以高效地完成和底层硬件外设的交
  • 中断管理学习

    中断管理 什么是中断 简单的解释就是系统正在处理某一个正常事件 忽然被另一个需要马上处理的紧急事件打断 系统转而处理这个紧急事件 待处理完毕 再恢复运行刚才被打断的事件 生活中 我们经常会遇到这样的场景 当你正在专心看书的时候 忽然来了一个
  • RT-Thread 内核基础(六)

    RT Thread内核配置示例 RT Thread的一个重要特性是高度可裁剪性 支持对内核进行精细调整 对组件进行灵活拆卸 配置主要是通过修改工程目录下的rtconfig h文件来进行 用户可以通过打开 关闭该文件中的宏定义来对代码进行条件

随机推荐

  • Flex 布局教程:语法篇

    网页布局 layout 是 CSS 的一个重点应用 布局的传统解决方案 基于盒状模型 依赖 display 属性 position属性 float属性 它对于那些特殊布局非常不方便 比如 垂直居中就不容易实现 2009年 W3C 提出了一种
  • Glog 使用

    原文链接 glog使用
  • Java复习-26-枚举

    枚举 替换多例设计 目的 使用场景 不用也没啥 定义一个描述性别的类 那么该对象只有两个 男 女 或者描述颜色基色的类 可以使用 红色 绿色 蓝色 功能 用于定义有限个数对象的一种结构 多例设计进化版 方法 enum 关键字 提供有enum
  • 从码云上克隆代码到IDEA及项目启动

    码云版本库地址复制 输登录代码库系统 找到 版本库 点击 版本库地址 下拉列表 选中 http zjs 190 100 21 10 1001 r aqjg extern project git 版本库地址复制 如果不是首次clone项目可直
  • 头歌答案Python,001

    金宝 答案在这里 自己抄 1 第一关 计算机 num 1 int input 请输入第一个数 print num 1 num 2 int input 请输入第二个数 print num 2 alg input 请选择要执行的运算符 prin
  • 单测mock和stub

    A variety of different terms are used to refer to these custom objects In an effort to clarify the vocabulary Gerard Mes
  • Design1.CMOS工艺OD门,传输门,三态门原理应用浅析

    纲要 OD门 传输门 三态门 1 OD门 i 概念 在CMOS电路中为了满足输出电平变换 吸收大负载电流以及实现线与连接等需要 需要将输出级电路结构改为漏极开路输出的MOS管 构成漏极开路输出 Open Drain Output 门电路 简
  • Android中的Selector的用法

    Android中的Selector主要是用来改变ListView和Button控件的默认背景 其使用方法可以按一下步骤来设计 以在mylist view xml为例 1 创建mylist view xml文件 首先在res目录下新建draw
  • 栈与队列小总结

    思维导图 一 栈 栈 一种数据结构 具有后进先出的特点 有两种实现方式 第一种实现方式就是用数组结构来实现 第二种方式就是用链表的方式来实现 但是由于使用数组的方式来实现栈会更加的好 所以在这里我们用数组的方式来实现栈 栈的实现 1 栈的结
  • 红蓝对抗--蓝队

    2019年参加护网行动的时候 想着是信安专业 可以去赚点零花钱 蓝队的工作 后面总结了一下护网行动和蓝队的一些工作重心 刚刚换电脑的时候翻出来了这个文章 只是个人拙见 大佬勿喷 文章目录 一 团队组建 二 梳理资产 三 风险梳理 四 减少攻
  • 面试求职经历及遇到的部分问题

    转眼间已经工作一年多了 最近想换个工作环境 就选择了跳槽 跳槽对我们程序猿来说并没什么稀奇 但这是我第一次跳槽 也颇感激动 哈哈 总的来说 这次找工作还是相对去年来说比较容易的 毕竟已经工作一年了嘛 记得去年的时候投20份简历也不一定会有面
  • Lesson 7 Edge I

    一 图像分割与不连续 图像分割 segmentation 的目的是把图像中的像素分组 每组像素和图像中的物体强相关 图像分割需要确定图像中的不连续处 不连续处 discontinuity 包括孤立点 线段和边缘 edge 我们首先介绍edg
  • eclipse的new server里tomcat7.0根本选不上解决方法

    创建Tomcat v7 0 Server 不能进行下一步 解决方法 1 退出 eclipse 2 到 工程目录下 metadata plugins org eclipse core runtime 3 把org eclipse wst se
  • 查看函数和所在的行号

    查看Linux下 a库文件中文件 函数 变量等情况 2013 02 24 16 11 02 转载 在Linux 下经常需要链接一些 a的库文件 那怎么查看这些 a 中包 含哪些文件 函数 变量 1 查看文件 ar t a 2 查看函数 变量
  • 最全的Linux运维bash脚本常见用法总结

    删除重复的数组元素 创建临时关联数组 设置关联数组 值并发生重复赋值时 bash会覆盖该键 这 允许我们有效地删除数组重复 CAVEAT 需要bash4 示例功能 remove array dups Usage remove array d
  • 所有pyCharm2018或phpstorm2018版永久激活,亲测无问题

    注意 实际测试软件版本为phpstorm2018 2 3 破解补丁激活 到http idea lanyus com 这里下载补丁 下载 后并将 JetbrainsCrack release enc jar 放置到 D盘根目录 在 Pycha
  • [STM32F4]【把握住了】STM32F4驱动4路VL53L0测距你把握不住

    最近给朋友调试了STM32F407驱动VL53L0的激光测距 安装在机器人上的 遇到一些问题 这里发帖纪录一下 关于VL53L0的资料和代码在正点原子那里都有 但是正点原子只是驱动了一路VL53L0 很多问题都需要我们自己解决 一路的VL5
  • Pikachu靶场之XSS漏洞详解

    Pikachu靶场之XSS漏洞详解 前言 XSS漏洞简述 第1关 反射型xss get 第2关 反射性xss post 第3关 存储型xss 第4关 DOM型xss 第5关 DOM型xss x 第6关 xss盲打 第7关 xss之过滤 第8
  • ATM 网络安全:解决方案、技术和规格--网络大典

    比起 TCP IP 网络 异步传输模式 ATM 网络通常拥有较少的安全漏洞 因为它通常使用光纤作为媒介 并被当作骨干网络用于专用或半专用网络中 侵入 ATM 网络所需的投入是相当高的 然而在 ATM 网络中仍然存在着许多弱点 如信息嗅探 基
  • RTT-线程管理

    RTT 线程管理 官方API文档 https www rt thread org document api group thread html 概念 线程是竞争系统资源的最小运行单元 每个线程在自己的环境中运行 在任何时刻 只有一个线程得到