本小结以下内容包括后面临界区的保护源码分析是扩展说明,懂与不懂不影响学会使用 RT-Thread 临界区保护,因为涉及的 RTOS的调度原理,PendSV异常等知识,需要一定的基础,这里建议想学习RTOS的小伙伴务必好好看看《Cortex-M3与Cortex-M4权威指南》这个文档。 理解上面示例关系到RTOS的调度原理,上面解释中用到的中断打断线...
本小结以下内容包括后面临界区的保护源码分析是扩展说明,懂与不懂不影响学会使用 RT-Thread 临界区保护,因为涉及的 RTOS的调度原理,PendSV异常等知识,需要一定的基础,这里建议想学习RTOS的小伙伴务必好好看看《Cortex-M3与Cortex-M4权威指南》这个文档。 理解上面示例关系到RTOS的调度原理,上面解释中用到的中断打断线...
RT-Thread 线程切换可以使用中断中实现上下文切换或者在线程上下文中切换。 中断中实现上下文切换是通过触发中断,在中断处理函数中保护现场、恢复现场切换至新线程等工作。ARM Core-M 系列、FreeRTOS 适配的 RISC…
线程挂起可以由多种方法实现:线程调用rt_thread_delay()、rt_thread_suspend()等函数接口可以使得线程主动挂起,放弃CPU使用权,当线程调用rt_sem_take(),rt_mb_recv()等函数时,资源不可使用也会导致调用线程被动挂起。 当线程已经是挂起态的时候无法调用rt_thread_suspend()函数,已经是挂起态的线程调用rt_thread_...
这学期我们在上嵌入式的课程,学习了一个新的轻量级操作系统——RT-Thread(后面简称为rtt),这是一个国产的操作系统,这个操作系统的特点就是只有线程,没有进程,那么我们要使用这个系统的话只需要操作相应的线程就可以了,那么我们用好这个系统的方法就很简单了,我们只需要实现各个线程间的协调工作就可以了。
CPU 的 SMP(对称多处理)模式。在 SMP 模式下,RT-Thread 可以在多个 CPU 核心上同时运行多个线程,...
1 RT-Thread 介绍 1.1 RT-Thread 线程管理 调度 线程间通信(邮箱/消息队列/信号) 线程间同步(信号量/互斥量/事件集) 核心都是链表 & 定时器 1.2 3个层次 (1) 会用 API (2) 懂 内部机制 (3) 掌握代码实现细节, 能移植 前2个层次可速成: 10 几个小时足够 ...
RT-Thread 的线程调度器是抢占式的,主要的工作就是从就绪线程列表中查找最高优先级线程,保证最高优先级的线程能够被运行,最高优先级的任务一旦就绪,总能得到 CPU 的使用权。 当调度器调度线程切换时,先将当前线程上下文保存起来,当再切回到这个线程时,线程调度器将该线程的上下文信息恢复。
在rt-thread中,保护临界区的方法除了IPC线程间通信机制,然后就是调度锁与关闭中断了。 调度锁 rt-thread调度锁的目的是让调度器停止工作,这时不进行线程的切换工作。也就是说,在调度锁范围内的代码是独占CPU资源的,当前的被调度锁锁住的代码不能切换到其他的线程。
例如:某时刻有一个线程运行时进入临界段,并且采用中断锁保护,此时若有一个紧急的中断事件被触发,该中断就会被挂起,不能及时响应,必须等待中断开启后才可以得到响应,如果关中断时间超过了紧急中断能容忍的限度,危害可想而知。 RT-Thread 源码中有许多处临界段的地方,临界段虽然用中断锁保护了关键代码的执行不被打断...