当前分类 / RT-Thread / 总共6篇

RT-Thread 串口操作实践

添加串口设备

我手头的开发版是 ART-Pi 电路上引出了两排排针,其中有一个 USART1 串口,电路图如下:

CubeMX 配置

接下来我们打开示例代码 sdk-bsp-stm32h750-realthread-artpi\projects\art_pi_blink_led 中的 board 目录中的 CubeMX 进行配置。

这里需要注意的是有些功能的管脚是共用的,如果我们在 Categories 中点击选择,会默认选择管脚,但是实际上和我们所使用的不一致,这种情况要先在 Pinout view 上面点击选择对应管脚设置再打开。

阅读更多

刚到的 ART-Pi 开发板点灯总结

ART-Pi 是 RT-Thread 团队经过半年的精心准备,专门为嵌入式软件工程师、开源创客设计的一款极具扩展功能的 DIY 开源硬件。

官网地址:http://art-pi.gitee.io/website/

MDK5 烧写示例程序

买回来没自信看文档,所以导致板子的 boot_loader 被擦除了,于是乎烧写进去的程序没有反应。

阅读更多

RT-Thread 中的多线程

前面有一篇我们写了一个按键控制 LED 显示的例子,现在我们尝试将该功能单独放入一个线程进行管理。

RT-Thread 线程管理和调度

RT-Thread 线程管理的主要功能是对线程进行管理和调度,系统中总共存在两类线程,分别是系统线程用户线程,系统线程是由 RT-Thread 内核创建的线程,用户线程是由应用程序创建的线程,这两类线程都会从内核对象容器中分配线程对象,当线程被删除时,也会被从对象容器中删除,如图 4-2 所示,每个线程都有重要的属性,如线程控制块、线程栈、入口函数等。

RT-Thread 的线程调度器是抢占式的,主要的工作就是从就绪线程列表中查找最高优先级线程,保证最高优先级的线程能够被运行,最高优先级的任务一旦就绪,总能得到 CPU 的使用权。

阅读更多

RT-Thread 的 CPU 固件移植理解

RT-Thread 的 CPU 抽象层

在嵌入式领域有多重不同的 CPU 架构,我们知道 RT-Thread 是支持不同架构的嵌入式操作系统,我们先来大概看一下 RT-Thread 的架构。

RT-Thread 的架构示意图 RT-Thread 的架构示意图

可以看到 RT-Thread 提供了一个 libcpu 抽象层来适配不同的 CPU 架构, libcpu 向上对内核提供统一的接口,包括全局中断的开关,线程栈的初始化,上下文切换等。

RT-Thread 的 libcpu 抽象层向下提供了一套统一的 CPU 架构移植接口,这部分接口包含了全局中断 开关函数、线程上下文切换函数、时钟节拍的配置和中断函数、Cache 等等内容。

阅读更多

潘多拉STM32L4的简单部件控制

通过按键切换点亮的 LED 灯

电路原理

通过电路原理图我们可以看到 R-G-B 三个 LED 灯共用 3.3v 阳极,通过电阻分压到单片机管脚,原理很简单,我们给管脚输出低电平则相应的 LED 点亮。

1
2
3
4
#define LED_PIN_RED  GET_PIN(E, 7)  //定义红灯管脚

rt_pin_mode(LED_PIN_RED, PIN_MODE_OUTPUT); //定义管脚模式为输入
rt_pin_write(LED_PIN_RED, PIN_LOW);  //低电平点亮

按键的线路接法自带上拉电阻,所以我们设置输入模式为 PIN_MODE_INPUT 即可,不需要考虑上下拉输入模式。

按键连接示意图 按键连接示意图

阅读更多

RT-Thread 学习启动篇

RT-Thread 系统

RT-Thread 是一款完全由国内团队开发维护的嵌入式实时操作系统(RTOS)。

RT-Thread,全称是 Real Time-Thread,顾名思义,它是一个嵌入式实时多线程操作系统,基本属性之一是支持多任务,允许多个任务同时运行并不意味着处理器在同一时刻真地执行了多个任务。事实上,一个处理器核心在某一时刻只能运行一个任务,由于每次对一个任务的执行时间很短、任务与任务之间通过任务调度器进行非常快速地切换(调度器根据优先级决定此刻该执行的任务),给人造成多个任务在一个时刻同时运行的错觉。在 RT-Thread 系统中,任务通过线程实现的,RT-Thread 中的线程调度器也就是以上提到的任务调度器。

与 Linux 系统比较

相较于 Linux 操作系统,RT-Thread 体积小,成本低,功耗低、启动快速,除此以外 RT-Thread 还具有实时性高、占用资源小等特点,非常适用于各种资源受限(如成本、功耗限制等)的场合。虽然 32 位 MCU 是它的主要运行平台,实际上很多带有 MMU、基于 ARM9、ARM11 甚至 Cortex-A 系列级别 CPU 的应用处理器在特定应用场合也适合使用 RT-Thread。

RT-Thread 的系统架构

RT-Thread 与其他很多 RTOS 如 FreeRTOS、uC/OS 的主要区别之一是,它不仅仅是一个实时内核,还具备丰富的中间层组件,如下图所示。

RT-Thread的系统架构图 RT-Thread的系统架构图

阅读更多