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/7/23 23:35:06 阅读更多 →
2026跨境社媒新号起盘实录:零投放靠“AI蹭热点+评论区截流”30天破万粉,这些坑你一定踩过

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

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

2026/7/23 23:35:06 阅读更多 →
【Java实战】Java加解密算法全解析:分类、场景与国密算法实战总结

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

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

2026/7/23 23:35:06 阅读更多 →

最新新闻

从测试工程师到测试经理,中间到底差了哪些能力?

从测试工程师到测试经理,中间到底差了哪些能力?

关注 霍格沃兹软件测试开发 公众号,回复「资料」, 领取人工智能测试开发技术合集 做测试几年以后,很多人都会遇到一个现实问题: 接下来,到底该往哪里发展? 是继续深挖自动化测试、测试开发、性能测试,走技…

2026/7/23 23:44:09 阅读更多 →
Harness Engineering落地前,先想清楚这几个问题

Harness Engineering落地前,先想清楚这几个问题

Harness Engineering落地前,先想清楚这几个问题传统数据中台往往系统功能强大,但门槛也是真的高。对于熟悉数据分析、SQL、指标体系的用户来说,数据中台是效率工具。但对于更多的新手/小白用户来说,它更像是一套"需要先学会使…

2026/7/23 23:44:09 阅读更多 →
为什么92%的AI日程助手在第三周失效?资深PM揭密数据闭环、意图理解与上下文保鲜3大断点

为什么92%的AI日程助手在第三周失效?资深PM揭密数据闭环、意图理解与上下文保鲜3大断点

更多请点击: https://intelliparadigm.com 第一章:AI 日程管理与规划 现代日程管理已从静态提醒演进为动态智能协同系统。AI 驱动的日程引擎不仅能解析自然语言指令(如“下周三下午三点和张工同步架构设计,预留45分钟”&#xff…

2026/7/23 23:44:09 阅读更多 →
MQTT 工控上云实战:EMQX 本地部署、设备数据上报、云端下发控制指令

MQTT 工控上云实战:EMQX 本地部署、设备数据上报、云端下发控制指令

MQTT 工控上云实战:EMQX 本地部署、设备数据上报、云端下发控制指令工控设备上云,就像给工厂里的"哑巴设备"装了张嘴——它终于能说话了,而且说的是MQTT。一、MQTT协议:物联网的"普通话" MQTT(Mes…

2026/7/23 23:43:08 阅读更多 →
智慧社区 | 以全域智能物联,构筑平安宜居新型社区

智慧社区 | 以全域智能物联,构筑平安宜居新型社区

随着基层治理现代化进程持续推进,传统社区管理模式存在安防点位分散、人车管理粗放、隐患发现滞后、治理手段单一等痛点,难以满足居民对安全、便捷、舒适居住环境的需求。智安社区一体化解决方案,整合 10 大类、20 余种品牌 AI 智能硬件统一接…

2026/7/23 23:43:08 阅读更多 →
LangSmith:LLM 应用调试与评估平台

LangSmith:LLM 应用调试与评估平台

1. 为什么需要 LangSmith? 随着 LLM 应用逐渐从 Demo 阶段进入生产环境,开发者会遇到越来越多的问题: 例如: 为什么模型回答错误?是 Prompt 设计的问题吗?是知识库检索到了错误内容?是模型本…

2026/7/23 23:43:08 阅读更多 →

日新闻

从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

更多请点击: https://intelliparadigm.com 第一章:从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表) 当AI副业主理人不再仅满足于单次服务交付,而是主动构建可复用、可裂变、可…

2026/7/23 0:00:25 阅读更多 →
AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析

AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析

更多请点击: https://codechina.net 第一章:AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析 在对2,346篇跨行业AI生成文案的A/B测试数据进行聚类分析后,我们发现&#xff1…

2026/7/23 0:01:26 阅读更多 →
Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具 【免费下载链接】chitchatter Secure peer-to-peer chat that is serverless, decentralized, and ephemeral 项目地址: https://gitcode.com/gh_mirrors/ch/chitchatter Chitchatter是一款革命性的安…

2026/7/23 0:01:26 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/22 8:58:19 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/22 19:43:43 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/23 17:49:47 阅读更多 →

月新闻