线程通过调用函数 rt_thread_create/init() 进入到初始状态;初始状态的线程通过调用函数 rt_thread_startup() 进入到就绪状态;就绪状态的线程被调度器调度后进入运行状态,调用rt_thread_suspend()函数切换为挂起状态;当处于运行状态的线程调用 rt_sem_take(),rt_mutex_take(),rt_mb_recv() 等函数或者获取不到...
RT-Thread 是一个集实时操作系统(RTOS)内核、中间件组件和开发者社区于一体的技术平台,由熊谱翔先生带领并集合开源社区力量开发而成,RT-Thread 也是一个组件完整丰富、高度可伸缩、简易开发、超低功耗、高安全性的物联网操作系统。RT-Thread 具备一个 IoT OS 平台所需的所有关键组件,例如GUI、网络协议栈、安全传输...
static struct rt_threadled1_thread; //led1线程 static char led1_thread_stack[256]; static rt_thread_t led2_thread = RT_NULL; //led2线程 static rt_thread_t key2_thread = RT_NULL; // static rt_thread_t key3_thread = RT_NULL; // rt_sem_t mysem; static void led1_thread_ent...
移植RT-Thread 不是此文章的重点,可以参考一下我之前的笔记,或者直接使用 RT-Thread Studio、STM32CubeMX等工具直接生成,这里我就不过多介绍了 三、添加 LwIp 添加使用是需要的API文件 添加内核源码 注意:这里的动态内存是使用的RT-Thread中完成的,在 sys_arch.c 文件中完成 添加IPv4或者IPv6需要使用的文件,这里...
静态线程创建成功的话会返回0,失败的话会返回一个负值,若成功创建线程,我们调用rt_thread_startup函数使线程2进入就绪态,并执行线程处理函数。 if(ret < 0){LOG_E("rt2_thread_create create failed ...\n"); // 错误信息打印return ret;}LOG_D("rt_thread2_create create successes ...\n");rt_thre...
RT-Thread记录(十五、I/O 设备模型之SPI设备) RT-Thread 组件与软件包系列博文链接: 本文是第一篇 一、SFUD 组件简介 SFUD (全称 Serial Flash Universal Driver)是一款开源的串行 SPI Flash 通用驱动库。 1.1 基本简介 基础介绍借用官方的说明:由于现有市面的串行 Flash 种类居多,各个 Flash 的规格及命令存在差...
1. RT-Thread 音频框架图 RT-Thread的音频分成了4个部分,但是我们最关系的是上层提供的api和底层驱动需要实现的ops接口就可以了。 2. 如何使用Audio 驱动 在写驱动之前,我们首先得知道如何测试自己的驱动对吧!所以这里我们首先了解下 RT-Thread 系统中是如何播放音乐!
STM32 + RTThread + UGUI 一、概述 开发板:STM32F103C8T6 显示器:ST7735S RT-Thread:5.0.0 玩过GUI 的小伙伴都知道,界面的显示是一个个像素点组合起来的,那么直接构建出来炫酷的 GUI 还是相对比较困难的,所以我们一般都会使用一些 GUI 库来实现,比如 LVGL、QT、UGUI等,这样对于驱动开发的人员来说就相对...
一、RT-Thread 的 I/O设备管理 1.1 什么是 I/O 设备模型 1.2 I/O 设备模型框架解析 1.2.1 应用程序 1.2.2 I/O 设备管理层 1.2.3 设备驱动框架层 1.2.4 设备驱动层 1.2.5 硬件层 1.3 I/O 设备操作逻辑说明 1.4 I/O 设备模型框架有什么用?
【RT-Thread笔记】OneNet软件包的使用 本次实验也只是把它们融合在一起来使用。 1、添加相关软件包、配置: 添加完之后的RT-Thread Settings文件如: 添加软件包及软件包的一些详细配置可查阅上两篇笔记。这里也大概提一下要点: (1)设置WiFi信息: (2)设置OneNET信息 ...