
RT-Thread
文章平均质量分 79
实时操作系统rt-thread
小超嵌入式笔记
"强大就是拥有权利去共情和帮助那些弱势的人"
展开
-
RT-Thread临界段的保护
临界段,用一句话概括就是一段在执行时不能被中断的代码段。在RT-Thread中,临界段最常出现的场景就是对全局变量的操作,全局变量就好像是一个靶子,谁都可以对其开枪,但是有一人开枪,其他人就不能开枪,否则就不知道是谁命中了靶子。那么什么情况下临界段会被打断?一个是系统调度,还有一个就是外部中断。在RT-Thread中,系统调度最终也是产生PendSV中断,在PendSV Handler中实现线程的切换,所以还是可以归结为中断。既然这样,RT-Thread对临界段的保护就处理得很干脆了,直接把中断关闭,但N原创 2022-06-20 13:54:03 · 376 阅读 · 0 评论 -
RT-Thread各版本简介及架构介绍
架构:RT-Thread Nano 是一个极简版的硬实时内核,它是由 C 语言开发,采用面向对象的编程思维,具有良好的代码风格,是一款可裁剪的、抢占式实时多任务的 RTOS。其内存资源占用极小,功能包括任务处理、软件定时器、信号量、邮箱和实时调度等相对完整的实时操作系统特性。适用于家电、消费电子、医疗设备、工控等领域大量使用的 32 位 ARM 入门级 MCU 的场合。架构:支持架构:ARM:Cortex M0/ M3/ M4/ M7 等、RISC-V 及其他。功能:线程管理、线程间同步与通信、时钟管理、中原创 2022-06-12 18:12:02 · 6318 阅读 · 0 评论 -
RTOS rt-thread裸机系统与多线程系统
裸机系统与多线程系统裸机系统裸机系统通常分成轮询系统和前后台系统轮询系统轮询系统即在裸机编程过程中,先初始化相关的硬件,然后让主程序在一个死循环里面不断循环,顺序地做各种事情,大概的伪代码参见代码清单2-1。轮询系统是一种非常简单的软件结构,通常只适用于那些只需要顺序执行代码且不需要外部事件来驱动就能完成的操作。在代码清单2-1中,如果只是实现LED翻转、串口输出、液晶显示等操作,那么使用轮询系统将会非常完美。但是,如果加入了按键操作等需要检测外部信号的事件,或者用来模拟紧急报警,那么整个系统的实时响应原创 2022-06-10 07:15:00 · 630 阅读 · 0 评论 -
创建RT-thread软件仿真工程 写RT-thread内核
新建RT-Thread工程——软件仿真在开始编写RT-Thread内核之前,我们先新建一个RT-Thread工程,Device选择Cortex-M3(Cortex-M4或Cortex-M7)内核的处理器,调试方式选择软件仿真,最后把RT-Thread移植到STM32开发板上。最后的移植非常简单,只需要换一下启动文件并添加bsp驱动即可。新建本地工程文件夹在开始新建工程之前,我们先在本地计算机中新建一个文件夹用于存放工程。可将文件夹命名为“新建RT-Thread工程——软件仿真”(名字可以随意设置),然后在原创 2022-06-09 16:58:41 · 1134 阅读 · 0 评论 -
RT-Thread设计与实现:RT-Thread 概述和架构
RT-Thread 概述RT-Thread全称是Real Time-Thread,顾名思义,它是一个嵌入式实时多线程操作系统,其基本属性之一是支持多任务,允许多个任务同时运行并不意味着处理器在同一时刻真正执行了多个任务。事实上,一个处理器核心在某一时刻只能执行一个任务,由于每次对一个任务的执行时间很短且任务与任务之间通过任务调度器进行非常快速的切换(调度器根据优先级决定此刻该执行的任务),因此给人造成多个任务在一个时刻同时运行的错觉。在RT-Thread系统中,任务是通过线程实现的,RT-Thread中的原创 2022-06-09 16:57:13 · 1371 阅读 · 0 评论 -
RTOS实时操作系统中RT-Thread、FreeRTOS和uCOS 选择哪一个学习比较好?
初学实时操作系统一直都很纠结学哪个比较好,都学时间和精力耗费较大,不如选一个进行系统性的学习。首先这三个实时操作系统都各有所长。要选择其一就一定要对比原创 2022-05-01 06:15:00 · 9620 阅读 · 1 评论 -
关于RT-Thread内核的介绍
线程调度线程是 RT-Thread 操作系统中最小的调度单位,线程调度算法是基于优先级的全抢占式多线程调度算法,即在系统中除了中断处理函数、调度器上锁部分的代码和禁止中断的代码是不可抢占的之外,系统的其他部分都是可以抢占的,包括线程调度器自身。支持 256 个线程优先级(也可通过配置文件更改为最大支持 32 个或 8 个线程优先级,针对 STM32 默认配置是 32 个线程优先级),0 优先级代表最高优先级,最低优先级留给空闲线程使用;同时它也支持创建多个具有相同优先级的线程,相同优先级的线程间采用时间原创 2022-04-24 15:43:01 · 377 阅读 · 0 评论 -
[启动流程] RT-Thread是如何启动的?
RT-Thread启动流程:摘自RT-Thread文档中心,笔记使用。一般执行顺序是:系统先从启动文件开始运行,然后进入 RT-Thread 的启动函数 rtthread_startup() ,最后进入用户入口函数 main()。用户程序入口为 main() 函数,位于 main.c 文件中。系统启动后先从汇编代码startup_stm32f103xe.s 开始运行,然后跳转到 C 代码,进行 RT-Thread 系统启动,最后进入用户程序入口函数 main()。在 components.c 中原创 2022-04-11 21:00:00 · 4976 阅读 · 0 评论 -
基于正点原子阿波罗 STM32F429 上手RT-Thread
RT-Thread STM32F429源码:https://github.com/RT-Thread/rt-thread/rt-thread 目录目录名描述bspBoard support package,RT-Thread 板级支持包(IAR/MDK 工程在 BSP 目录下的具体的 BSP 中)componentsRT-Thread 的各个组件目录documentation一些说明文件,如代码风格说明includeRT-Thread 内核的头文件原创 2022-04-08 15:12:32 · 3808 阅读 · 0 评论