
FreeRTOS
文章平均质量分 93
来点光吧
这个作者很懒,什么都没留下…
展开
-
FreeRTOS系统 移植至STM32F4
FreeRTOS是一款专为嵌入式设备设计的开源实时操作系统,以轻量化、高可移植性和实时多任务调度为核心优势,适用于资源受限的微控制器(如ARM Cortex-M、RISC-V)。其内核支持抢占式任务调度、任务间通信(队列、信号量)及动态内存管理,通过Tickless模式优化功耗,广泛应用于物联网终端、工业控制和汽车电子等领域。下载好后解压可以看到如下内容Demo:官方给的工程历程Source: 文件夹里面包含的是FreeRTOS内核的源代码,我们移植FreeRTOS的时候就需要这部分源代码。原创 2025-05-13 10:24:35 · 823 阅读 · 0 评论 -
FreeRTOS 任务控制块是如何保留上下文的
当任务切换发生时,FreeRTOS会将当前任务的堆栈指针保存到该任务的TCB中,并从下一个任务的TCB中恢复堆栈指针,而任务对应的TCB会被分配到堆区。在FreeRTOS中,任务切换时上下文的保存包括核心寄存器的状态,这些内容保存在每个任务的堆栈中,而堆栈指针(SP)则存储在任务控制块(TCB)中。//任务优先级,指定任务的优先级,0的优先级最低。//链表指针,指向下一个队列。恢复新任务上下文:从任务堆栈中恢复该任务的寄存器状态到CPU中,程序计数器(PC)被设置为任务执行中断时的指令地址,任务继续运行。原创 2024-10-14 20:13:03 · 859 阅读 · 0 评论 -
FreeRTOS Cortex M3/4架构芯片——寄存器组与存储篇
作用:在内核刚启动时,OS处于hander mode(也就是操作系统常说的内核态),OS的内核函数(例如异常中断函数、其他中断函数等其他内核函数)使用的是MSP堆栈指针,当芯片启动成功,且未产生任何异常,os自动切换为线程模式,堆栈值指针选为PSP。裸机中,当程序正在函数1时,此时调用到函数2,此时函数1会被装载在栈区,函数2会从ROM装载进寄存器中运行,装载时函数1的堆栈地址会储存在寄存器LR中,这样函数2运行结束时就能通过访问LR寄存器的指针,返回到函数1继续运行。而任务堆栈指针,只能指向任务堆栈。原创 2024-10-09 10:33:52 · 1575 阅读 · 0 评论