FSP设计揭秘:裸机为何也叫Threads
核心结论手册原文逻辑FSP 从一开始就被设计成无论裸机还是 RTOS统一用同一套模型 → Thread Stack所以Thread 执行上下文Execution ContextStack 挂载在这个上下文里的外设/软件模块它不代表 RTOS 线程而是FSP 的统一抽象概念。1. FSP 手册里的官方定义在 FSP v6.4.0Starting Development Threads一节明确写着A Thread represents an execution context.It can be:An RTOS task (thread)A single execution context in a bare-metal application翻译**Thread 代表一个“执行上下文”。它可以是RTOS 的任务 / 线程裸机下的唯一执行上下文也就是 main 执行流**所以裸机只有1 个 Thread默认上下文RTOS可以有多个 Thread每个线程一组独立驱动这就是为什么你没开 RTOS左边依然叫Threads。2. 为什么非要叫 Thread不叫 “Modules” 或 “Drivers”因为 FSP 的设计目标是一套配置裸机 / FreeRTOS / RT-Thread 完全通用为了做到这一点瑞萨统一抽象任何代码运行的环境 →Thread任何挂载在环境里的驱动 →Stack这样裸机1 个 ThreadRTOSN 个 Thread配置界面完全不变驱动不用改。这是 FSP 的顶层架构设计不是界面随便起的名字。3. 你现在看到的 Thread 到底是什么在你当前RA6M3 裸机工程里Thread 整个芯片的单一执行流默认上下文下面挂的g_display0、g_timer5、GPIO、UART 属于这个执行上下文的Stacks驱动模块手册里把这种裸机 Thread 叫做Common Thread (or single execution context)4. Threads 面板 vs Stacks 面板手册明确区分FSP 手册特意说明两个视图的区别Threads 视图按执行上下文组织模块适合看“谁在用哪些驱动”Stacks 视图按模块类型平铺所有模块适合快速找外设内容完全一样只是分组方式不同。5. 最直白一句话总结在 FSP 里Thread ≠ RTOS 线程Thread 执行上下文裸机也有一个Stack 挂载在这个上下文里的驱动所以左边永远叫 Threads这是 FSP 统一架构决定的。