
RT-Thread学习笔记分享
初学RT-Thread笔记分享,主要记录了从系统认知-学习-使用的过程,后续准备做RT-Thread官方的考试问题个人见解分享。
M、k
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
RT-Thread事件集原理与函数说明及代码示例
1、 事件集原理事件集主要用于线程间同步,主要的构成是由一个32位的无符号整形的某位来进行事件接收与发送,它的特点是可以一对一、一对多、多对一,举个B站的例子:当前你在公交站等车,今天只有一辆公交车等够让你到达目的地,这是一对一;这时条件变了,今天能让你到达目的地又加了一辆,有两辆公交车能让你到达目的地,这是一对多;多对一的情况就是你只有等到了你的朋友,你俩只有在公交站碰头之后才能坐上这辆公交车...原创 2020-04-22 00:24:47 · 1749 阅读 · 0 评论 -
RT-Thread互斥量原理说明及使用示例
1、互斥量原理互斥量也叫互斥锁,和信号量的原理类似,但是不同于优先级和抢断机制。想了一个互斥量原理的例子感觉挺有道理的,这时候你去卫生间,进去后需要把门从里面关上(不关的不算哈- -),你就持有了当前卫生间的所有权,别人都不能再进来,这时候你就拥有了互斥量。当你解决完出来后把门打开,这时候你就把互斥量释放了。这个过程就是获取和释放互斥量。互斥量在你拥有的过程不会被中断机制影响,并且当你进入卫生...原创 2020-04-20 23:39:25 · 1992 阅读 · 0 评论 -
RT-Thread信号量使用方法说明及代码示例
信号量的作用信号量主要用作线程间的同步及互斥,信号量的获取不能在ISR中调用,会导致中断挂起,系统不能有效的进行线程切换及运行。信号量分为动态创建信号量和静态创建信号量,当创建信号量时系统会初始化IPC以及与semaphone相关的部分。在创建信号量指定的参数过程中,flag参数定义FIFO时,信号量采取先入先出的方式,定义为IPRO时,信号量采取优先级的方式,优先级高的线程将先获得等待的信号量...原创 2020-04-17 12:59:28 · 2079 阅读 · 2 评论 -
RT-Thread临界区和临界资源
1、临界区和临界资源概念临界区是用于保护线程之间调用互斥的机制,主要是为了保护线程内的资源不会被其他线程抢占。临界资源时临界区内的代码。2、实现临界资源的几种方式调度器锁、中断、信号量、互斥量调度器锁主要是控制调度器的运行状态,进入临界区后则其他线程不能访问,但是会被中断打断,需要考虑使用后是否会被其他中断所影响。void rt_enter_critical(void); /* 进...原创 2020-04-17 02:48:25 · 1055 阅读 · 0 评论 -
RT-Thread嵌入式系统关于rt_malloc、rt_calloc、re_tree函数说明及动态内存堆的使用
在使用堆内存前,必须要在系统初始化的时候进行堆内存的初始化,函数为void rt_system_heap_init(void *begin_addr,void *end_addr) 注:这个函数会把begin_addr和end_addr作为堆空间来用。参数 描述begin_addr 堆内存的起始地址end_addr 堆内存的...原创 2020-04-15 22:09:17 · 7247 阅读 · 1 评论 -
RT-Thread源代码根目录详细说明
我从RT-Thread的GitHub官网上面下载了3.1.2的内核源码,下载链接如下https://github.com/RT-Thread/rt-thread/tags解压出压缩包后发现主目录下有很多文件下,查阅了一些资料后才搞明白,特将目录层级说明如下:目录说明github打开里面只有一个readme文件,可以删除;bsp顾明思议,是包含了很多平台的扳级支持...原创 2020-04-14 19:17:38 · 1587 阅读 · 0 评论 -
RT-Thread线程的使用
1、动态创建和静态创建线程区别说明RT-Thread创建线程分为两种方式,一种是动态创建线程,一种静态创建线程,在不加外部RAM的情况下,两种创建方式效率相同,如果加了外部RAM,则静态创建线程效率高一些。为什么创建静态线程不用外部RAM而创建动态线程用外部RAM?当用户将变量定义到文件或函数内部而不指定地址时,默认使用内部RAM,而创建静态线程将栈空间的大小提前在文件或函数中定义好的,所以不...原创 2020-04-13 16:29:48 · 881 阅读 · 0 评论 -
RT-Thread背景知识普及 — 入门篇
2011年1月发布了0.4版本,是国内开源免费嵌入式操作系统,由熊谱翔先生带领并集合社区合制而成。该操作系统支持主流的编译工具GCC、keil、IAR等,工具链比较完善,支持各类标准接口,如POSIX、CMSIS、C++应用环境、JavaScript执行环境,方便开发者移植各类应用程序。商用支持所有主流CPU架构,如ARM Cortex-M, MIPS, X86, Xtensa, C-Sky, R...原创 2020-04-12 21:11:18 · 335 阅读 · 0 评论