RL78G13移植BasicOS
BasicOS狗哥出品基于“共享栈”的协作式调度内核BasicOS一切都是为了用“RTOS的任务”的形式写MCU任务【可以但是必要不大】任务切换时需要处理任务栈有别于ProtoThread的Superloop唯一栈本质有栈协程 and 无栈协程无栈协程对比有栈协程 (BasicOS)每个任务配备独立私有栈切换时完整保存所有通用寄存器、栈指针 SP、程序断点 PC 与函数局部变量可在任意嵌套函数内暂停 / 恢复运行时动态记录断点位置进出点不固定。无栈假协程 (ProtoThreadwhile(1)循环)ProtoThread基于编译期静态状态机实现语法糖仅用 1 个状态变量line 行号记录执行分支while(1)循环的内部函数可通过轮询状态机的形式实现假并发软件定时器的并发不保存寄存器、PC、局部变量使用全局变量保存变量持续化的数据所有暂停 / 恢复分支地址编译时固定资源开销最小。轮流执行round-robin执行方式前后顺序就是优先级内部可使用状态机实现进入点和退出点的有限控制无栈真协程 (ctx)无独立任务栈共用全局主栈使用语法糖的形式保证了局部变量的持续化不是通过轮询的形式来仅在全局内存保存 PC 断点与少量核心寄存器无法在嵌套子函数中 yield运行时动态记录断点地址进出点不固定RAM 占用极低。大佬总结大佬的糖协作式调度大家文明排队轮到你就一直跑只有当你自己说 “我好了可以换人”调度器才能换下一个没人能强制把你赶下来。CPU 使用权只能由任务主动释放内核不会强行剥夺高优先级任务无法打断正在运行的任务只有当前运行任务主动让出 CPU调度器才有机会切换其他就绪任务。任务一旦拿到 CPU会持续运行直到主动调用 yield() / 任务切换接口 【suspend】主动阻塞延时、等待信号量、等待消息 【blocked】任务执行完毕退出。调度时机完全受控于任务代码中断不会引发任务上下文切换中断可以标记任务就绪但中断返回后一定回到被打断的原任务不会立刻切任务真正切换必须等到任务主动让出。不需要复杂的临界区保护相比抢占式不存在 “任务在任意指令中间被打断”只要不在共享资源访问中间调用 yield天然不会出现任务并发争抢破坏数据。各线程是线性执行不存在各线程间的资源共享中断都在任务栈中不像freertos一进入中断就切换到中断栈因为freertos在中断中可能会调度任务共享栈的情况中断都在任务栈中处理没有独立中断栈风险共享资源要“一次性”处理没有一次性处理完“共享资源”不要苛求系统实时性1.【考验程序设计】如果一个任务长时间运算、迟迟不 yield外部事件对应的任务迟迟得不到调度。例如按键检测任务需要 10ms 响应但是后台运算任务连续运行几百毫秒不释放 CPU按键响应严重滞后。长时间循环内部必须周期性插入 yield防止独占 CPU2.中断里“唤醒”高优先级任务【任务已经到了就绪时候】但是当前正在运行的任务不肯 yield新就绪任务只能“礼貌”排队等待。实时需求强的场景很难满足。3.TaskA低优先级正在运行TaskB高优先级已经就绪只要 TaskA 不主动 yield高优先级 B 一直无法调度。即使 B 事件紧急也必须等 A 自愿放手。只有yeild没有delay:导致任务一有空就运行cpu没得歇yield() 的定位主动临时让出 CPU不进入阻塞任务保持「就绪态」delay / 延时sleep让出 CPU 进入「阻塞等待态」到期才重新就绪饥饿问题任务1 优先级高任务2 3 优先级低一些且一致当任务2好了之后任务1立马就绪有没有可能到值任务3是始终无法执行高优先级任务空闲时必须进入阻塞态block而不是挂起态(suspend)固定时间片-任务环 Round-Robin运行固定时间后强制切换上下文共享栈栈大小动态调整将有限的栈空间给正在运行的线程使用其他栈保持最小尺寸缺点增加栈空间调整的处理优点省资源用时间换空间export把一个任务的“配置部分”和“实时数据”部分 分开任务数据内容存储位置配置部分任务入口、任务优先级、任务名称、参数地址const rom段实时数据任务栈指针、任务栈地址、栈大小、超时时间ram将配置部分部分使用magic_word包裹实现初始化动态判断任务个数并定义“内核任务”作为整个任务的链表头用于比遍历对比其他export 使用段的形式定义该段数据统一处理方法并使用段开始标记和段结束标记集中判断移植初始化栈保存寄存器PS PSW AX BC DE HL CSBRK中断上下文保存入栈push寄存器“栈空间的调整”出栈pop寄存器栈空间的调整注意往前拷贝和往后拷贝有区别

相关新闻

12 Copilot Agent 模式:不用打开浏览器,Copilot 自己就帮你改完了

12 Copilot Agent 模式:不用打开浏览器,Copilot 自己就帮你改完了

摘要:本文深入解析 GitHub Copilot 的 Agent 模式,它是继 Chat(对话分析)和 Edit(原地修改)之后的第三代 AI 编程助手。Agent 模式的核心是“自动执行”:你只需告诉它最终目标(如“加…

2026/10/17 12:23:12 阅读更多 →
2026跨境社媒新号起盘实录:零投放靠“AI蹭热点+评论区截流”30天破万粉,这些坑你一定踩过

2026跨境社媒新号起盘实录:零投放靠“AI蹭热点+评论区截流”30天破万粉,这些坑你一定踩过

从零到万粉:一次跨境社媒冷启动的实践与反思 在信息爆炸的今天,一个新账号如何在竞争激烈的跨境社交媒体平台中脱颖而出?这不仅是许多内容创作者面临的挑战,更是跨境从业者必须面对的课题。本文将分享一次为期30天的实践记录&…

2026/10/19 9:31:27 阅读更多 →
【Java实战】Java加解密算法全解析:分类、场景与国密算法实战总结

【Java实战】Java加解密算法全解析:分类、场景与国密算法实战总结

作者简介:大家好,我是CodeStats。一个在底层技术上“考古”了四年的硬核爱好者,也是WWAIC(全周项目AI编程)范式的提出者和实践者。我曾手写过一个完整的Java Web框架(从IoC容器到嵌入式Tomcat,代…

2026/10/18 23:41:43 阅读更多 →

最新新闻

小功率开关电源设计全解析:从LinkSwitch方案选型到反激变压器手算与调试

小功率开关电源设计全解析:从LinkSwitch方案选型到反激变压器手算与调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 14:03:10 阅读更多 →
RAG多轮对话查询重写实战:从原理到代码,提升知识库问答准确率

RAG多轮对话查询重写实战:从原理到代码,提升知识库问答准确率

别的不说,先抛一个场景:你在企业知识库里查资料,第一句问“什么是项目管理里的里程碑”,系统回答得挺准,接下来你补一句“那我怎么更新它”,结果直接偏到九霄云外去了。这不是模型傻,而是系统没…

2026/10/20 14:03:10 阅读更多 →
SecureCRT中文版64位密钥认证与UTF-8乱码解决方案

SecureCRT中文版64位密钥认证与UTF-8乱码解决方案

简介:SecureCRT中文版是一款面向网络工程师、系统管理员及Linux/Unix运维人员的免安装终端仿真工具,专为安全、高效地管理SSH远程服务器与网络设备而设计。资源包共198个文件,含15个核心exe可执行程序、52个dll动态库、16个ini配置文件、12个…

2026/10/20 14:03:10 阅读更多 →
AI辅助学术专著写作:从选题到送审的七步流水线实践指南

AI辅助学术专著写作:从选题到送审的七步流水线实践指南

这几年凡是聊到 AI 写作,总有一种两极分化的感觉。一边是很多人把"AI 写专著"想象成扔一个题目进去,机器就哗哗吐出二十万字;另一边是真正动过笔的人,大多在第一个月就放弃了,因为发现 AI 给的初稿虽然通顺&…

2026/10/20 14:03:10 阅读更多 →
Java Web人事信息管理系统设计与实现(Servlet+JSP)

Java Web人事信息管理系统设计与实现(Servlet+JSP)

做这套系统的时候,我刚从“能跑就行”的阶段过渡到“别给后人挖坑”的阶段。小型企业的人事信息管理系统,听起来不像电商平台或者数据中台那么有排面,但它覆盖的场景非常典型:人员花名册、部门组织、考勤记录、请假审批、工资台账…

2026/10/20 14:03:10 阅读更多 →
技能梳理实战:从个人简历到团队矩阵的完整指南

技能梳理实战:从个人简历到团队矩阵的完整指南

1. 从“skills”这个词说起:为什么它突然成了高频搜索词最近后台收到不少私信,问的都是同一类问题:“skills到底该怎么整理”“简历里的技能栏怎么写才不虚”“团队里每个人的技能怎么盘清楚”。说实话,这个词看着简单&#xff0c…

2026/10/20 14:02:05 阅读更多 →

日新闻

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
ESP32舵机控制指南:原理、多路驱动与避坑实战

ESP32舵机控制指南:原理、多路驱动与避坑实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
位移法实现一阶低通滤波:单片机ADC采样降噪实战

位移法实现一阶低通滤波:单片机ADC采样降噪实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/20 10:02:13 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/19 17:32:41 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 10:02:08 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:45 阅读更多 →