嵌入式
01
RTOS内核开发实战(4):Cortex-M3端口层,初始栈帧、PendSV与首任务启动
当链表、TCB、ready queue 和调度器基本站稳之后,RTOS 才真正来到一个分水岭:前面的代码都还在“决定谁该运行”,而 port 层要解决的是另一件更硬的问题,怎么让 CPU 真的切到那个任务去执行。 当前仓库里,这部分工...
晨风入卷,诸篇在列;可按分类寻章,也可随兴翻阅。
本页共展示 9 篇内容,开卷有声,择章而读。
嵌入式
01
当链表、TCB、ready queue 和调度器基本站稳之后,RTOS 才真正来到一个分水岭:前面的代码都还在“决定谁该运行”,而 port 层要解决的是另一件更硬的问题,怎么让 CPU 真的切到那个任务去执行。 当前仓库里,这部分工...
嵌入式
02
有了 "tcb_t" 和 "ready_queue_t",调度器就已经“能存东西”了,但还不等于“能工作”。 真正让内核运转起来的,是三个关键动作: 1. 创建任务时把它合法地放进 runnable 集合。 2. 调度器只负责决定“下...
嵌入式
03
把链表打好之后,下一步不是立刻写 PendSV,而是先定义“调度器眼里的任务”到底长什么样。 当前这版代码里,这个问题的答案落在 "tcb_t" 和 "ready_queue_t" 两个结构上。 先回答一个问题:调度器看到的任务是什么...
嵌入式
04
做 RTOS,最先落地的往往不是调度算法,而是数据结构。 任务要进 ready list,延时任务要进 sleep list,后续做信号量、消息队列时还会有等待链表。如果底层链表设计得不稳,后面的调度、阻塞、超时唤醒都会跟着变脆。 这...
嵌入式
05
在学完异常模型、PendSV 任务切换、Ready/Blocked 状态管理之后,RTOS 的骨架已经搭起来了。 但一个真正可用的 RTOS,不能只会“切任务”,还必须解决三个更实际的问题: - 任务之间怎么同步 - 多个任务访问共享...
嵌入式
06
在学完 Cortex-M 异常模型、PendSV 任务切换之后,很容易产生一种错觉: «RTOS 不就是“保存一下现场,再恢复另一个任务的现场”吗?» 其实不是。 上下文切换只是执行层面的动作,RTOS 更本质的能力是:管理任务状态。...
嵌入式
07
1. 前言 ARM 开发板通常更多用于边缘计算、视觉推理、网关服务或嵌入式应用,但只要系统环境合适,它同样可以承载一些轻量级通用服务。本文记录一次在 ELF-RV1126B 开发板 上部署 Paper Minecraft 服务器 的完...
嵌入式
08
一、这一部分要解决什么问题 在 Cortex-M 的 RTOS 里,任务切换一般不是“直接跳到另一个函数”,而是: «保存当前任务上下文 → 切换栈指针 → 恢复下一个任务上下文» 而完成这件事的标准套路就是: - SysTick:更...
嵌入式
09
一、“从水下的第一个生命的萌芽开始......” 如果想从 0 设计一个运行在 Cortex-M3 上的 RTOS,那么有一部分内容几乎绕不过去: - 栈到底是什么 - MSP / PSP 是什么 - Thread mode / Ha...