嵌入式系统编程【免费下载链接】fprimeF´ - A flight software and embedded systems framework项目地址https://gitcode.com/gh_mirrors/fp/fprime点击查看免费下载F´F Prime是由 NASA 喷气推进实验室JPL开发、面向航天飞行软件与嵌入式系统的组件驱动框架。本文基于仓库根目录 README.md结合仓库内的安装指南、用户手册与参考应用源码系统讲解 F´ 的安装、项目创建、构建运行与核心概念帮助你快速上手用 F´ 搭建一套具备指令Command、遥测事件Event与通道Channel能力的嵌入式系统。F´ 是什么一个面向航天与嵌入式系统的组件驱动框架F´ 是一个组件驱动的框架旨在加速航天飞行软件及其他嵌入式软件应用的开发与部署。它最初在 NASA 喷气推进实验室开发已成功部署于多个空间任务特别适配 CubeSat、SmallSat 和科学载荷等小型航天系统的开发需求但也适用于任意规模、任意领域的嵌入式系统。F´ 提供以下核心能力见 README.md架构分解将飞行软件拆分为接口清晰、职责单一的离散组件ComponentC 框架提供消息队列、线程等嵌入式系统核心能力的基础框架建模工具用于定义组件与连接关系、并自动生成代码的建模工具现成组件库持续扩充的、开箱即用的功能组件集合测试工具支持单元级与集成级的飞行软件测试。从源码结构看这些能力在仓库中有清晰的组织Fw/目录存放框架核心缓冲、指令、通信、日志、遥测、时间等基础类型Svc/目录存放服务组件指令分发、事件记录、遥测管理、健康监控等Autocoders/目录实现了建模到 C 代码的自动生成。核心技术概念组件、端口、拓扑与数据构造要理解 F´首先要掌握它划分系统的三大抽象详见 用户手册完整介绍组件Component系统中一个离散的功能单元负责管理系统的某一部分例如负责射频通信的 Radio 组件端口Port组件之间通信的通道一个组件通过端口与其他组件交互拓扑Topology由端口连接起来的所有组件构成的完整网络图封装了整个系统。以框架内置的 Command Dispatcher 组件为例它接收地面通信并转换为动作将动作派发给其他组件处理通过 Event 上报派发与完成状态并用 Channel 统计已派发指令的数量。由此可见一个组件可定义三类数据构造详见 Commands, Events, Channels, and Parameters命令Command组件能够处理的、来自地面的动作事件Event系统操作历史的记录例如已建立通信通道Channel系统当前状态的命名分段例如当前温度3C参数Parameter可在运行时配置的持久化设置。F´ 通常运行于带线程调度器的单核操作系统之上但也可用于 baremetal 与多核系统只是设计时需要理解执行上下文参见 F´ On Baremetal and Multi-Core Systems。系统需求根据 README.md 与 安装指南使用 F´ 前需准备以下环境需求说明操作系统Linux、Windows配合 WSL或 macOSgit版本控制与项目拉取CMake3.16 及以上CLI 工具须在系统 PATH 中C/C 编译器Clang 或 GNU 编译器如 gcc、gPython3.8 及以上支持虚拟环境与 PIP注意事项强烈建议使用最新版 PIP非 x86_64/aarch64 架构或旧版 PIP 环境需要 JavaUbuntu/Debian 用户若遇 Python/PIP 问题可参考 troubleshooting.mdmacOS 用户需确保 CMake 命令行工具在 PATH 中。快速开始安装引导工具并创建项目F´ 的工具链以 Python 包形式通过 PIP 分发并由 F´ Bootstrap 工具在项目的虚拟环境中统一安装官方推荐每个项目使用独立的虚拟环境详见 安装指南。第 1 步安装 fprime-bootstrap 引导工具pip install fprime-bootstrap第 2 步创建新项目fprime-bootstrap project该命令会提示输入项目名例如[1/1] Project name (MyProject): MyProjectfprime-bootstrap project会执行以下动作以标准 F´ 项目结构创建新的 git 仓库在项目内创建虚拟环境并安装全部依赖。第 3 步激活虚拟环境cd MyProject . fprime-venv/bin/activate之后每次在项目中工作前都记得先激活虚拟环境。至此你就拥有了一个包含完整 F´ 工具链的独立项目环境。与已有 F´ 项目协作若需使用他人已有的 F´ 项目安装指南 提供了两种方式方式 a使用 fprime-bootstrap clonepip install fprime-bootstrap fprime-bootstrap clone project_url其中project_url是托管在远程 git 仓库中的项目地址。方式 b手动克隆为项目创建并激活虚拟环境下载项目使用 git 子模块时记得执行git submodule update --init --recursive安装项目指定的 F´ 工具版本pip install -r project/fprime/requirements.txt若项目自带requirements.txt则以项目自身文件为准。本仓库根目录即提供了一份 requirements.txt列出 F´ 框架所需的全部 Python 依赖。构建与运行fprime-util 与 CMake 构建体系F´ 自带基于 CMake 的构建系统用于处理 Autocoder 依赖并将生成的代码与用户代码组装见 用户指南。为标准化开发流程F´ 提供了fprime-util辅助工具将常用命令映射到底层构建系统。其完整用法见 fprime-util 用户指南。核心子命令子命令作用generate生成构建缓存目录默认生成 release 构建缓存加--ut生成单元测试构建缓存。这是使用 F´ 构建系统的第一步purge删除全部构建缓存当构建系统未正确检测到变更时用于重新开始build构建当前目录在组件目录编译组件库在部署目录生成二进制并复制构建产物impl依据*Ai.xml自动生成组件骨架实现加--ut生成单元测试骨架节省大量开发时间check构建并运行当前目录单元测试--all运行部署中所有已知单元测试coverage类似check额外生成单元测试覆盖率报告new创建新组件或新端口通过--component/--port指定类型hash-to-file当断言配置为输出文件哈希FW_ASSERT_LEVEL FW_FILEID_ASSERT时将哈希转换回完整文件路径info打印当前目录的构建缓存位置与可用命令信息常用通用参数-j JOBS, --jobs JOBS并行编译任务数默认 1建议设为机器核心数 1例如fprime-util build -j 10--all以部署全局作用域运行命令例如fprime-util check --all运行所有可用单元测试--ut对单元测试目标生效例如fprime-util build --ut编译项目单元测试-v, --verbose输出详细调试信息-p PATH, --path PATH手动指定fprime-util运行目录例如fprime-util check -p SigGen-d DEPLOY, --deploy DEPLOY手动指定部署目录例如fprime-util build -d ~/fprime。以 Ref 参考应用为例仓库中的 Ref 是一个完整组装、可直接在 Linux 与 macOS 上运行的参考应用用于在嵌入式硬件就绪前快速验证安装与运行。构建流程如下cd fprime/Ref fprime-util generate生成一次构建目录后无需重复执行generate除非构建目录被删除。随后执行fprime-util build即针对当前系统平台构建出可运行的二进制。运行地面系统GDSF´ 附带一个基于浏览器的测试用地面系统可快速测试 F´ 代码且会自动启动 Ref 应用二进制cd fprime/Ref fprime-gds之后可在 Commanding、Event、Channels 标签页观察 F´ 代码的实际运行Logs 标签页中的Ref.log记录 Ref 应用标准输出。若只想运行地面系统而不启动应用fprime-gds --no-app随后可手动从构建产物目录启动 Ref 应用cd fprime/Ref/build-artifacts/platform/bin/ ./Ref -a 127.0.0.1 -p 50000F´ GDS 默认使用 50000 端口更多信息可通过fprime-gds --help查看。Ref 应用的完整拓扑组件实例及其连接定义在 Ref/Top/topology.fpp其中可以看到cmdDisp指令分发、eventLogger事件记录、tlmSend遥测发送、rateGroup1Comp等组件实例与Ports_RateGroups、Ports_StaticMemory等端口枚举是理解 F´ 拓扑建模的直观样例。目标平台与交叉编译fprime-util默认以native平台构建即宿主机平台。需要交叉编译时可将平台名作为位置参数传入见 fprime-util 用户指南例如为树莓派交叉编译fprime-util generate raspberrypi fprime-util build raspberrypi仓库中的 RPI 参考应用演示了面向树莓派Raspberry Pi 2 Model B的完整交叉编译流程其构建步骤包括在树莓派配置菜单中启用 SPI 与 UART、在宿主机如 Ubuntu安装gcc-arm-linux-gnueabihf与g-arm-linux-gnueabihf交叉编译器然后生成并构建针对raspberrypi平台的构建目录。由于 RPI 示例在 CMakeLists 中设置了默认工具链文件生成时无需在命令行额外指定工具链。用 settings.ini 定制部署构建每个 F´ 部署可通过根目录下的 settings.ini 文件配置构建默认值配置详解见 settings.ini 配置指南。该文件采用 Pythonconfigparser兼容的 INI 格式位于包含项目根CMakeLists.txt含project()调用的部署目录中仅对所在部署生效。[fprime]段可配置的关键项配置项说明project_rootF´ 项目根路径framework_pathF´ 框架根路径library_locations附加 F´ 库与组件的路径多个路径以:分隔default_toolchain默认构建平台缺省为nativedefault_ut_toolchain默认单元测试构建平台缺省为nativeenvironment_file构建期间设置环境变量的 ini 文件config_directory配置头文件目录此外可用与平台同名的段如[gr712-vxworks6]为特定平台覆盖config_directory、install_destination、environment_file等设置。注意修改settings.ini仅在fprime-util generate阶段生效改动后必须重新生成构建。仓库内开箱即用的框架内容除了建模工具与构建体系用户指南 还总结了 F´ 仓库自带的核心框架内容服务组件Svc提供指令收发、事件记录、遥测管理等航天嵌入式系统最基础的指令与通信功能仓库中Svc/目录下的CmdDispatcher、ActiveLogger、TlmChan、Health、FatalHandler等组件即属此类Autocoder 自动编码器定义可扩展的 XML schema用户可据此以组件、端口、拓扑等高层抽象描述飞行软件应用Autocoder 自动将模型翻译为 C 类大幅减少构建嵌入式系统所需的样板代码实现位于 Autocoders/操作系统抽象层OSAL以通用方式提供 RTOS 与非实时操作系统 API 的实现抽象线程、互斥锁、消息队列、文件、定时器与时钟等特性使上层代码可无修改地切换操作系统。仓库开源实现覆盖 Linux 与 macOSWindows 下经 WSL 使用 Linux 实现对应目录为 Os/ 下的Linux/、MacOs/、Posix/等平台实现地面数据系统GDS开箱即用的地面系统解决方案可在 Linux、macOS、Windows 上运行提供 GUI 工具与集成测试 API用于集成测试与遥测快速查看。其工作方式为用户定义组件与遥测后字典dictionary由设计自动生成并被 GDS 读取Linux 驱动组件Drv/目录下提供 UART、I2C、SPI 等标准硬件的基础驱动实现示例方便选用 Linux 的用户直接对接常用外设。资源与帮助入门后可继续阅读 用户指南其中分用户手册、最佳实践、开发者文档三部分覆盖端口/组件/拓扑、数据类型、单元测试、开发流程、GDS 使用、FPP 建模与 CMake 指南等主题新用户建议按 HelloWorld 教程 走完 F´ 项目的完整开发流程设计理念与架构细节可参阅 软件架构设计 等设计文档遇到安装问题可查阅 troubleshooting.md项目版本历史与发布产物记录在 Releases 中仓库根目录同时提供 CITATION.cff 用于学术引用。总而言之从安装引导、项目创建到fprime-util构建、GDS 联调与交叉编译F´ 提供了一条从零到可运行飞控系统的完整路径。其组件/端口/拓扑的架构抽象与命令、事件、通道、参数的内置数据构造使得开发者可以专注于业务组件本身而把通信、调度、遥测等基础设施交给框架。赞分享嵌入式系统编程【免费下载链接】fprimeF´ - A flight software and embedded systems framework项目地址https://gitcode.com/gh_mirrors/fp/fprime点击查看免费下载相关推荐F´F Prime快速上手指南NASA 组件化飞行软件框架的安装、架构与开发入门F´F Prime快速上手指南NASA 组件化飞行软件框架的安装、架构与开发入门 F´F Prime是一个源自美国宇航局喷气推进实验室JPL的组件嵌入式系统编程F´ (F Prime) 入门指南组件驱动的飞行软件框架与首个应用搭建F´ F Prime 入门指南组件驱动的飞行软件框架与首个应用搭建 F´F Prime是一个组件驱动的软件框架面向航天飞行软件及各类嵌入式应用的快速开发嵌入式系统编程F´F PrimeC 文档体系与核心软件包架构导航指南F´F PrimeC 文档体系与核心软件包架构导航指南 本文是 F´F Prime飞行软件框架自动生成的 C API 文档主页 docs/do嵌入式系统编程上一篇如何在 Claude Code、Codex 和 Cursor 中使用 ego-liteAI 浏览器自动化完整生态指南下一篇DevToysMac命令行补全功能如何为终端集成工具命令提示创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
企业数字化 ERP 产品动态
相关推荐
FerretDB 求值查询运算符实战指南:`$mod` 取模与 `$regex` 正则匹配全解析 FerretDB 求值查询运算符实战指南:$mod 取模与 $regex 正则匹配全解析 【免费下载链接】FerretDB A truly Open Source MongoDB alternative 项目地址: https://gitcode.com/gh_mirrors/fe/FerretDB
求值查询运算符(Evaluation Query Operators&a… · 2026/9/24 14:47:21
Flet MenuStyle 完全指南:用 12 个属性精确控制菜单外观 前端跨平台桌面应用移动开发 【免费下载链接】flet Build realtime web, mobile and desktop apps in Python only. No frontend experience required. 项目地址: https://gitcode.com/gh_mirrors/fl/flet 点击查看 免费下载 flet.MenuStyle 是 Flet 中专门用于定义… · 2026/9/24 14:47:20
PaddleSpeech 流式 TTS 在线引擎(Python 动态图后端)源码级解析与实战指南 人工智能语音音频 【免费下载链接】PaddleSpeech Easy-to-use Speech Toolkit including Self-Supervised Learning model, SOTA/Streaming ASR with punctuation, Streaming TTS with text frontend, Speaker Verification System, End-to-End Speech Translation and Keyword… · 2026/9/24 14:47:11
embeddingModel操作milvus数据库集合 案例:
不是"创建集合的那一瞬间",而是"第一次使用时"
// 应用启动时(MilvusConfig执行) // 步骤1: 创建milvusClient
Bean
public MilvusServiceClient milvusClient() {return new MilvusServiceClient(...); // ✓ 只是连接数据库
}// 步骤… · 2026/9/24 15:12:02
【Dv3Admin】Vue3动态配置首页仪表盘 在做首页仪表板时,最麻烦的不是图表怎么画,而是组件来源动态、布局可拖拽、权限要隔离、还要能保存恢复。 Home 模块就是围绕这几件事做的一套标准化实现:后端下发组件定义与权限,前端负责动态渲染、拖拽布局、过滤无权限组件并紧… · 2026/9/24 15:12:02
Yii 2 组件(Component)完全指南:掌握属性、事件与行为三大特性的基石机制 后端Web框架 【免费下载链接】yii2 Yii 2: The Fast, Secure and Professional PHP Framework 项目地址: https://gitcode.com/gh_mirrors/yi/yii2 点击查看 免费下载 本文围绕 Yii 2 框架的核心抽象——组件(Component)展开,系统… · 2026/9/24 15:11:42
Instant 参考实现:用 Stripe 按量计费 Credits 构建 AI 应用付费体系 后端数据库 【免费下载链接】instant Instant is the best backend for AI-coded apps. You get auth, permissions, storage, presence, and streams — everything you need to ship apps your users will love. 项目地址: https://gitcode.com/gh_mirrors/inst/i… · 2026/9/24 15:11:42
基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程 简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为… · 2026/9/24 0:00:13
1D-CNN时间序列建模实战:从Conv1d原理到工业落地 简介:面向时间序列数据建模的一维卷积神经网络完整实现,适合深度学习入门者及需要快速验证时序模型的研究者,能够从音频、文本、传感器或股价等序列中挖掘局部特征与时间依赖。压缩包体积很小,只有3KB,内含3个Python脚… · 2026/9/24 0:00:26
柔软的L:汉语语流中被忽视的舌肌张力控制 1. 这个“L”不是字母表里的L,而是舌尖上的L最近在几个方言群和语音教学社群里,反复看到有人发一句:“也说字母L:柔软的长舌”。初看以为是英语发音课笔记,点开才发现全是方言爱好者、播音系学生、语言康复师甚至戏曲演… · 2026/9/24 0:00:44