
RTOS
文章平均质量分 80
盼海
13年的嵌入式底层开发经验,涉及智能硬件、工业控制等多个领域。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
FreeRTOS 任务通知实例
假设我们有两个任务:TaskA和TaskB。TaskA负责发送通知,而TaskB负责接收通知并执行相应操作。while(1)// 发送通知给TaskB// 通知值设置为0x01// 如果需要,则进行任务切换// 模拟一些工作while(1)// 等待通知// 检查通知值并执行相应操作// 执行操作,例如打印信息或处理数据\n”);原创 2024-12-02 11:13:44 · 1245 阅读 · 0 评论 -
FreeRTOS 事件标志组实例
事件标志组是FreeRTOS中用于任务间同步与通信的一种机制。它通过一组位(bit)来表示不同的事件,每个位可以独立设置或清除,代表特定事件的发生状态。任务或中断服务例程(ISR)可以读取这些位,从而判断特定事件是否已经发生,进而采取相应的动作。原创 2024-12-02 11:08:47 · 1121 阅读 · 0 评论 -
FreeRTOS 软件定时器
软件定时器是一种由操作系统提供的系统接口,它构建在硬件定时器基础之上,使系统能够提供不受硬件定时器资源限制的定时器服务。与硬件定时器相比,软件定时器的精度可能稍低,但其灵活性和易用性使其在许多应用场景中更具优势。软件定时器可以分为单次定时器和周期定时器两种类型。单次定时器在触发一次回调函数后即停止运行,而周期定时器则会周期性地触发回调函数。这种机制使得软件定时器在需要周期性执行任务的场景中非常有用,如心跳检测、状态更新等。原创 2024-11-30 17:52:32 · 710 阅读 · 0 评论 -
FreeRTOS 递归互斥信号量
FreeRTOS 递归互斥信号量递归互斥信号量(Recursive Mutex)是一种重要的同步机制,它允许同一任务在多次调用中安全地获取和释放信号量,而不会导致死锁。原创 2024-11-30 17:47:54 · 592 阅读 · 0 评论 -
FreeRTOS 互斥信号量
FreeRTOS中的互斥信号量是一种特殊的二进制信号量,用于实现任务间的互斥访问。它主要用于保护临界区代码,防止多个任务同时访问共享资源而导致的数据不一致问题。互斥信号量的工作机制基于“请求-授予”模型,即当一个任务需要访问共享资源时,会先请求互斥信号量,如果信号量可用(即当前没有任务持有信号量),则任务获得信号量并进入临界区;如果信号量不可用(即已有任务持有信号量),则任务会被阻塞,直到信号量被释放。原创 2024-11-29 09:23:57 · 616 阅读 · 0 评论 -
FreeRTOS 计数型信号量
计数型信号量是一种可以容纳多个资源的信号量,其取值大于1,相当于一个长度大于1且消息大小为0的特殊消息队列。在创建计数型信号量时,系统会为其分配内存,并设置最大计数值和初始计数值。最大计数值定义了信号量可以容纳的资源数量上限,而初始计数值则指定了信号量在创建时的资源数量。计数型信号量的主要操作包括创建、释放、获取和获取计数值。这些操作通过FreeRTOS提供的API函数实现,确保了任务间的同步和资源的安全访问。原创 2024-11-29 09:12:57 · 848 阅读 · 0 评论 -
FreeRTOS 二值信号量
二值信号量可以看作是一个深度为1的队列,这个队列要么为空(信号量为0),要么为满(信号量为1)。任务在获取信号量时,如果队列为空,则任务进入阻塞状态;如果队列为满,则任务成功获取信号量并继续执行。在释放信号量时,任务将信号量放回队列,使得队列从满变为空,从而唤醒等待在该信号量上的其他任务。原创 2024-11-28 09:41:03 · 1358 阅读 · 0 评论 -
FreeRTOS 队列
队列是一种先进先出(FIFO,First In First Out)的数据结构,它允许任务或中断服务程序(ISR)发送和接收数据。在FreeRTOS中,队列可以用于任务到任务、任务到中断、中断到任务之间的数据传输。使用队列时,需要指定队列的长度(即可以存储的最大消息数)和每个消息的大小(以字节为单位)。原创 2024-11-28 09:23:51 · 555 阅读 · 0 评论 -
FreeRTOS 时间管理
FreeRTOS的时间管理机制为实现高效、可靠的实时任务调度提供了坚实的基础。通过时钟节拍管理、延时函数以及定时器的使用,FreeRTOS能够确保任务的及时执行和系统的稳定运行。在实际应用中,开发者应根据任务的具体需求选择合适的时间管理方式。对于需要精确控制执行周期的任务,可以使用绝对延时或定时器;而对于对执行时间要求不那么严格的任务,则可以使用相对延时。原创 2024-11-27 10:08:01 · 550 阅读 · 0 评论 -
FreeRTOS 内核控制函数详解
FreeRTOS 内核控制函数详解。原创 2024-11-27 10:04:07 · 851 阅读 · 0 评论 -
FreeRTOS 任务切换实例
FreeRTOS通过任务切换实现多任务并发执行,从而提高系统的响应速度和资源利用率。任务切换的本质是CPU寄存器的切换,它包含两个主要步骤:保存现场和恢复现场。当系统决定从一个任务切换到另一个任务时,它会先保存当前任务的寄存器状态(即保存现场),然后加载另一个任务的寄存器状态(即恢复现场)。这样,新任务就能从上一次停止的地方继续执行。原创 2024-11-26 19:01:02 · 881 阅读 · 0 评论 -
FreeRTOS 系统启动流程
一旦`vTaskStartScheduler`函数成功启动调度器,系统就会开始运行创建的任务。任务调度器会根据任务的优先级和调度策略进行任务切换,确保每个任务都能得到合理的执行时间。原创 2024-11-26 18:47:14 · 1265 阅读 · 0 评论 -
FreeRTOS 任务挂起和恢复实验
在FreeRTOS中,任务挂起是指将一个正在运行或等待运行的任务置于挂起状态,使其暂时不参与调度,从而暂停其执行。任务恢复则是将挂起的任务重新置为就绪状态,使其能够参与调度并继续执行。FreeRTOS提供了`vTaskSuspend()`和`vTaskResume()`两个API来实现任务的挂起和恢复。其中,`vTaskSuspend()`用于挂起一个或多个任务,而`vTaskResume()`则用于恢复一个之前被挂起的任务。原创 2024-11-25 11:26:31 · 484 阅读 · 0 评论 -
FreeRTOS 任务管理
在FreeRTOS中,任务(Task)是RTOS调度的基本单位。每个任务都是一个独立的函数,执行特定的功能。FreeRTOS通过任务优先级和任务状态(如就绪、运行、阻塞等)来管理任务。原创 2024-11-25 11:12:39 · 521 阅读 · 0 评论 -
FreeRTOSConfig.h文件:实时操作系统配置的核心
FreeRTOSConfig.h文件:实时操作系统配置的核心在现代嵌入式系统开发中,实时操作系统(RTOS)扮演着至关重要的角色。FreeRTOS作为一款开源、轻量级的RTOS,广泛应用于各种微控制器和处理器平台,为开发者提供了高效的任务管理、时间片轮转、消息队列和同步机制等功能。而在FreeRTOS的所有配置文件中,无疑是最为核心的一个。本文旨在深入探讨文件的作用、内容及其对FreeRTOS性能的影响。原创 2024-11-19 09:41:10 · 802 阅读 · 0 评论 -
stm32f4 使用FreeRTOS例程
stm32f4 使用FreeRTOS例程。原创 2024-11-19 09:27:42 · 1760 阅读 · 0 评论 -
FreeRTOS、μC/OS、Keil RTX、RT-Thread的优势和区别
尽管FreeRTOS、μC/OS、Keil RTX和RT-Thread都是优秀的RTOS,但它们在某些方面存在区别。FreeRTOS以其开源免费、小巧高效和可扩展性著称,非常适合资源受限的嵌入式环境。μC/OS则以其高度的可移植性、灵活性和可靠性闻名,适用于各种嵌入式系统。Keil RTX则专注于为ARM和Cortex-M设备提供确定性的实时操作,支持灵活的调度选项和内核感知调试。RT-Thread则以其高效的硬实时核心和丰富的功能组件为特点,广泛应用于高可靠性行业和设备上。原创 2024-11-18 09:23:51 · 1841 阅读 · 0 评论 -
二值信号量(Binary Semaphore)和互斥量(Mutex)的解析
二值信号量(Binary Semaphore):二值信号量是一种特殊的信号量,其状态只有两种:可用(通常表示为1)和不可用(通常表示为0)。它主要用于任务间的同步和简单的互斥访问。二值信号量可以看作是长度为1的队列,队列要么为空(信号量为0),要么为满(信号量为1)。互斥量(Mutex):互斥量是一种用于确保在任何时刻只有一个线程能够访问共享资源的机制。互斥量也是二进制的,但相比二值信号量,它增加了“持有权”的概念,即只有当前持有互斥量的任务才能释放它。这使得互斥量在保护共享资源时更加严格和可靠。原创 2024-09-28 19:55:14 · 783 阅读 · 0 评论