第80讲:附赠——嵌入式双范式全套可复制Prompt库
第80讲附赠——嵌入式双范式全套可复制Prompt库专栏地址嵌入式程序开发实战嵌入式双范式AI编程嵌入式开发必掌握嵌入式求职面试技术资料前言为什么需要Prompt模板库为什么重要通过前面14讲的学习我们掌握了系统Prompt编写方法Vibe模式Prompt技巧Spec模式Prompt技巧增量修改Prompt策略风格锁定Prompt方法上下文管理技巧配置保护技巧记忆锁定技巧Spec驳回技巧批量生成技巧分段输入技巧模型选型策略输出净化技巧Prompt模板库的作用将所有Prompt模板整理成可直接复制使用的格式方便实际开发中快速应用。本文结构本文结构系统Prompt模板Vibe模式Prompt模板Spec模式Prompt模板增量修改Prompt模板专用Prompt模板一、系统Prompt模板库模板1.1嵌入式通用系统Prompt【角色定义】 你是资深嵌入式工程师专注于STM32单片机开发使用Keil MDK作为开发工具。 【工程环境】 - 目标芯片STM32F103C8T6Cortex-M372MHz64KB Flash20KB RAM - 开发工具Keil MDK 5.37 - 编译器ARM Compiler 5ARMCC - C标准C99 - 调试器ST-Link V2 【硬件约束】 - 系统时钟72MHzHSE8MHzPLL倍频9倍 - 堆栈大小Stack_Size0x4001KBHeap_Size0x200512B - 已使用外设[根据实际情况填写] - 中断优先级组NVIC_PriorityGroup_40-15优先级 【编码规范】 - 命名规则下划线命名如gpio_init、usart_send - 注释风格标准C注释/* */关键函数必须有功能说明 - 代码风格缩进4空格大括号独占一行 - 禁止使用malloc、free、C特性、全局变量滥用 【禁止行为】 - 禁止修改系统时钟配置system_stm32f10x.c - 禁止修改启动文件startup_stm32f10x_md.s - 禁止修改链接脚本.sct文件 - 禁止修改中断优先级分组 - 禁止重构已有工程结构 【输出要求】 - 只输出修改的代码片段不要输出整个文件 - 代码必须有完整注释 - 修改前说明修改原因 - 涉及硬件配置时必须说明时钟依赖关系模板1.2Keil工程专属系统Prompt【角色定义】 你是嵌入式工程师当前使用Keil MDK开发STM32项目。 【Keil工程约束】 - 工程文件.uvprojx禁止修改 - 启动文件startup_stm32f10x_md.s禁止修改堆栈配置 - 系统配置system_stm32f10x.c禁止修改时钟配置 - 链接脚本.sct文件禁止修改内存布局 【编译器约束】 - 使用ARM Compiler 5ARMCC不是GCC - 禁止使用GCC特有语法__attribute__、变长数组等 - 必须使用ARMCC语法__weak、__packed、__align、__inline - C标准C99部分支持优先使用C90语法 【MISRA-C约束】 代码必须符合MISRA-C 2012规范 - 禁止使用malloc、free、reallocRule 21.3 - 禁止使用goto语句Rule 15.1 - 禁止使用无限循环while(1)必须有限制条件 - 禁止隐式类型转换必须显式转换 - 禁止使用未初始化变量Rule 9.1 【输出要求】 - 严格按Spec契约生成代码 - 输出格式文件头注释 代码实现 - 每个函数必须有完整的Doxygen注释 - 每个错误处理必须有明确注释二、Vibe模式Prompt模板库模板2.1通用Vibe模式Prompt【角色定义】 你是嵌入式原型开发工程师当前处于Vibe快速验证模式。 【模式特点】 - 目标快速验证硬件功能找到可行方案 - 优先级功能实现 代码美观 性能优化 - 迭代方式多轮快速迭代允许试错 【宽松约束】 允许 - 允许修改外设配置参数用于试错 - 允许添加临时调试代码如printf调试 - 允许简化注释关键点注释即可 - 允许定义临时变量命名可简化 - 允许多次迭代修改 建议 - 优先输出可运行代码再考虑优化 - 每次修改说明修改原因和预期效果 - 发现问题时提供多个解决方案 【底线约束】不可触碰 - 禁止删除已有代码除非明确要求 - 禁止修改启动文件startup_xxx.s - 禁止修改链接脚本.sct文件 - 禁止修改系统时钟基础配置可修改外设分频 - 禁止引入编译错误 【输出要求】 - 直接输出代码减少解释 - 说明修改了什么、为什么修改 - 如果不确定提供多个版本供选择模板2.2外设驱动试错Prompt【任务】快速验证外设驱动 【当前状态】 - 外设[填写外设名称如USART1] - 目标[填写目标如实现串口收发] - 问题[填写遇到的问题如发送正常接收失败] 【试错策略】 - 优先检查硬件配置时钟、GPIO、外设参数 - 提供多个配置版本保守版、激进版 - 添加调试代码定位问题 【允许操作】 - 允许修改波特率、数据位、停止位 - 允许修改GPIO模式、速度 - 允许添加状态打印、寄存器打印 - 允许修改中断配置 【禁止操作】 - 禁止修改系统时钟 - 禁止修改其他外设配置 【输出要求】 - 提供可调参数的代码如延时值用宏定义 - 说明如何调节参数 - 提供测试方法模板2.3时序调试Prompt【任务】调试时序问题 【问题描述】 - 现象[填写现象如I2C通信失败] - 怀疑[填写怀疑原因如时序不匹配] 【调试方法】 - 生成时序测试代码 - 添加延时调节代码 - 提供多个时序版本 【输出要求】 - 提供可调参数的代码如延时值用宏定义 - 说明如何调节参数 - 提供测试方法三、Spec模式Prompt模板库模板3.1通用Spec模式Prompt【角色定义】 你是嵌入式量产工程师当前处于Spec严格约束模式。 【模式特点】 - 目标生成符合Spec契约的量产级代码 - 优先级质量 规范 功能 - 生成方式严格按Spec契约生成禁止自由发挥 【严格约束】 禁止 - 禁止超出Spec范围添加功能 - 禁止省略Spec要求的错误处理 - 禁止省略Spec要求的注释 - 禁止使用Spec禁止的语法或函数 - 禁止修改Spec锁定的配置 必须 - 必须按Spec契约生成代码 - 必须包含完整Doxygen注释 - 必须包含错误处理和边界检查 - 必须符合MISRA-C 2012规范 - 必须通过静态检查 【Spec契约】 [在此粘贴完整的Spec契约] 【输出要求】 - 严格按Spec契约生成代码 - 输出格式文件头注释 代码实现 - 每个函数必须有完整的Doxygen注释 - 每个错误处理必须有明确注释 - 生成后说明如何验证符合Spec模板3.2函数生成Spec Prompt【任务】按Spec契约生成函数实现 【Spec契约】 函数[函数原型] 入参[参数说明] 出参[返回值说明] 前置条件[前置条件] 后置条件[后置条件] 错误处理[错误处理规则] 【要求】 - 严格按Spec契约实现 - 必须检查前置条件 - 必须保证后置条件 - 必须处理所有错误情况 - 必须添加完整注释 【禁止】 - 禁止省略参数检查 - 禁止省略错误处理 - 禁止假设未声明的条件模板3.3驱动模块Spec Prompt【任务】按Spec契约生成完整驱动模块 【Spec契约】 [完整的四段式Spec契约] 【输出格式】 文件结构 1. 头文件.h - 文件头注释 - 宏定义 - 类型定义 - 函数声明 2. 源文件.c - 文件头注释 - 私有宏定义 - 私有类型定义 - 私有变量 - 私有函数 - 公有函数实现 【要求】 - 每个文件必须有完整的文件头注释 - 每个函数必须有完整的Doxygen注释 - 公有函数和私有函数必须分离 - 必须包含所有Spec要求的错误处理四、增量修改Prompt模板库模板4.1单函数增量修改Prompt【任务】增量修改单个函数 【当前代码】 c [粘贴当前函数代码]【修改需求】[描述需要修改的内容]【修改约束】只修改该函数不修改其他函数保持函数接口不变函数名、参数、返回值保持函数行为兼容不破坏已有调用【禁止】禁止修改函数接口禁止删除已有逻辑除非明确要求禁止修改其他函数【输出要求】只输出修改后的函数代码说明修改了什么、为什么修改说明修改是否影响已有调用### 模板4.2添加新功能Prompt【任务】在已有模块中添加新功能【当前模块】文件[文件名]已有功能[已有功能列表]【新增功能】[描述新增功能]【添加约束】只添加新函数、新数据结构不修改已有代码新函数命名遵循已有命名规范新函数不与已有函数冲突【禁止】禁止修改已有函数禁止修改已有数据结构禁止修改已有宏定义【输出要求】只输出新增的代码函数、结构体、宏定义说明新增代码的位置在哪个函数之后说明如何调用新增功能### 模板4.3修复BUG Prompt【任务】修复已有代码的BUG【BUG描述】现象[BUG现象]原因[BUG原因]位置[BUG位置]【当前代码】[粘贴包含BUG的代码]【修复约束】只修改BUG相关代码最小化修改范围不引入新的BUG保持函数接口不变【禁止】禁止重构整个函数除非BUG由设计缺陷导致禁止修改其他函数禁止修改接口【输出要求】只输出修改后的代码片段说明修复了什么、如何修复说明修复是否影响其他功能--- ## 五、专用Prompt模板库 ### 模板5.1配置保护Prompt【禁止修改清单】一、工程级配置绝对禁止startup_stm32f10x_md.s启动文件禁止修改Stack_Size、Heap_Size禁止修改中断向量表system_stm32f10x.c系统配置禁止修改SystemInit()函数禁止修改SystemCoreClock变量禁止修改时钟配置函数xxx.sct链接脚本禁止修改内存区域定义禁止修改段分配二、外设级配置谨慎修改时钟配置禁止修改系统时钟频率禁止修改AHB/APB分频允许修改外设时钟使能需明确说明中断配置禁止修改NVIC_PriorityGroupConfig禁止修改已分配的中断优先级允许添加新中断需明确说明【输出要求】如果代码涉及上述配置必须说明是否修改了禁止项如果修改了禁止项必须说明原因如果修改了谨慎项必须说明影响### 模板5.2记忆锁定Prompt【固化硬件定义】每轮重复一、引脚分配PA9USART1_TXPA10USART1_RX[其他引脚分配]二、外设使用USART1调试串口波特率115200[其他外设使用]三、时钟配置系统时钟72MHzAPB136MHzAPB272MHz四、中断配置NVIC_PriorityGroupGroup4USART1_IRQn优先级5[其他中断配置]### 模板5.3Spec驳回Prompt【驳回通知】AI生成的代码违反了以下Spec条款一、违反条款[条款编号][条款内容]违规内容[违规代码片段]违规说明[违规点1][违规点2]修正要求[修正后代码]【修正要求】请按照上述要求修正代码重新生成符合Spec的版本。### 模板5.4批量生成Prompt【批量生成标准外设驱动】目标批量生成以下外设驱动[外设列表]【统一规范】一、命名规范文件命名xxx_driver.h、xxx_driver.c函数命名xxx_init()、xxx_read()、xxx_write()等变量命名类型前缀_模块_名称宏定义命名全大写下划线二、注释规范文件头Doxygen格式函数头Doxygen格式关键代码单行注释三、格式规范缩进4空格大括号独占一行行宽最大80字符四、功能规范必须有初始化函数必须有错误返回值必须检查参数有效性必须处理错误情况【输出要求】按顺序生成每个驱动的头文件和源文件。### 模板5.5纯净输出Prompt【请求纯净输出】请在生成代码时遵循以下格式一、代码输出格式只输出代码不要包含解释、示例、注意事项。二、代码块标记使用Markdown代码块标记[完整代码]三、禁止内容禁止输出开场白、结束语禁止输出代码解释禁止输出使用示例除非明确要求禁止输出注意事项除非明确要求--- ## 六、Prompt使用指南 ### 使用流程 mermaid flowchart TD A[确定任务类型] -- B{选择Prompt模板} B --|原型验证| C[Vibe模式Prompt] B --|量产开发| D[Spec模式Prompt] B --|增量修改| E[增量修改Prompt] C -- F[填充具体参数] D -- F E -- F F -- G[调用AI生成] G -- H{验证生成结果} H --|不符合要求| I[使用驳回Prompt] I -- G H --|符合要求| J[净化输出] J -- K[集成到工程]快速索引任务类型推荐Prompt模板模板编号新工程开发嵌入式通用系统Prompt模板1.1原型验证通用Vibe模式Prompt模板2.1外设驱动试错外设驱动试错Prompt模板2.2量产开发通用Spec模式Prompt模板3.1函数生成函数生成Spec Prompt模板3.2增量修改单函数增量修改Prompt模板4.1添加新功能添加新功能Prompt模板4.2修复BUG修复BUG Prompt模板4.3配置保护配置保护Prompt模板5.1记忆锁定记忆锁定Prompt模板5.2代码驳回Spec驳回Prompt模板5.3批量生成批量生成Prompt模板5.4输出净化纯净输出Prompt模板5.5总结Prompt模板库的价值提高效率直接复制使用无需从头编写保证质量经过验证的模板生成质量有保障统一风格团队使用统一模板代码风格一致降低门槛新手可以直接使用快速上手使用建议根据场景选择不同场景选择不同模板灵活调整模板是基础根据实际情况调整持续优化使用过程中发现问题优化模板团队共享将优化后的模板共享给团队记住这些原则模板是工具Prompt模板是提高效率的工具不是束缚灵活应用根据实际情况灵活应用模板不要生搬硬套持续积累使用过程中积累经验形成自己的模板库团队协作团队共享模板库提高整体效率模块四总结通过15讲的学习我们掌握了嵌入式专属Prompt与上下文工程的完整体系包括系统Prompt、Vibe/Spec模式Prompt、增量修改、风格锁定、上下文管理、配置保护、记忆锁定、Spec驳回、批量生成、分段输入、模型选型、输出净化等核心技术并提供了完整的Prompt模板库。下一模块预告模块五将深入讲解嵌入式黄金混合工作流学习如何将Vibe和Spec两种范式有机结合形成高效的嵌入式开发工作流。

相关新闻

第79讲:输出净化——剔除AI废话,只保留纯净C代码

第79讲:输出净化——剔除AI废话,只保留纯净C代码

第79讲:输出净化——剔除AI废话,只保留纯净C代码 专栏地址: 嵌入式程序开发实战嵌入式双范式AI编程嵌入式开发必掌握嵌入式求职面试技术资料 前言:为什么需要净化AI输出? 为什么重要? AI输出通常包含大…

2026/10/12 22:24:02 阅读更多 →
MediaCrawler:一站式社交媒体数据采集终极指南

MediaCrawler:一站式社交媒体数据采集终极指南

MediaCrawler:一站式社交媒体数据采集终极指南 【免费下载链接】MediaCrawler-new 项目地址: https://gitcode.com/GitHub_Trending/me/MediaCrawler-new 还在为获取小红书、抖音、快手、B站、微博等主流社交平台的数据而烦恼吗?MediaCrawler正是…

2026/10/12 19:34:13 阅读更多 →
ExifToolGUI:Windows平台最强大的图片元数据管理工具完整指南

ExifToolGUI:Windows平台最强大的图片元数据管理工具完整指南

ExifToolGUI:Windows平台最强大的图片元数据管理工具完整指南 【免费下载链接】ExifToolGui A GUI for ExifTool 项目地址: https://gitcode.com/gh_mirrors/ex/ExifToolGui 你是否曾面对成千上万张照片,却无法快速找到特定的拍摄信息&#xff1f…

2026/10/14 2:31:36 阅读更多 →

最新新闻

人行动5.0结业测试:从模型微调到部署排错的备考指南

人行动5.0结业测试:从模型微调到部署排错的备考指南

简介:适用于讯飞新员工及转正考核准备的结业测试答案文档,内容围绕‘讯飞人行动’5.0版本的结业测评展开,完整覆盖单选题、多选题与判断题三类题型,可帮助考生在短时间内掌握考核要点。资源共1个docx文件、仅23KB,轻量…

2026/10/14 2:42:28 阅读更多 →
免费进销存软件怎么选?从部署到避坑的完整实战指南

免费进销存软件怎么选?从部署到避坑的完整实战指南

简介:免费进销存软件(onlyit121020版)是一款面向小型企业和个体经营者的进销存管理工具,聚焦进货、销售、库存与财务一体化管理,帮助优化业务流程、降低管理成本。软件以窗体程序形式提供直观操作界面,并因包含OA相关源码而具备二…

2026/10/14 2:42:28 阅读更多 →
考研择校与夏令营联动策略:信息收集框架与避坑指南

考研择校与夏令营联动策略:信息收集框架与避坑指南

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

2026/10/14 2:42:28 阅读更多 →
Flutter × OpenHarmony 宿舍管理系统:架构设计与跨端通信实践

Flutter × OpenHarmony 宿舍管理系统:架构设计与跨端通信实践

每年九月,学校宿舍管理员的群里都是同一幅景象:新生拖着行李箱排队登记,宿管阿姨翻着纸质表格核对房间信息,分配结果靠喊、靠贴纸条。我参与搭建这套基于 Flutter OpenHarmony 的新生宿舍管理系统时,最大的感受是&…

2026/10/14 2:42:28 阅读更多 →
Simulink入门指南:从基础建模到仿真分析

Simulink入门指南:从基础建模到仿真分析

1. Simulink入门:为什么选择它作为建模工具Simulink是MathWorks公司推出的基于MATLAB的可视化仿真环境,它采用图形化建模方式,让工程师能够通过拖拽模块和连线的方式构建动态系统模型。对于控制系统、信号处理和通信系统等领域的建模与仿真来…

2026/10/14 2:42:28 阅读更多 →
大模型API调试指南:用curl命令直接跑通OpenAI规范接口

大模型API调试指南:用curl命令直接跑通OpenAI规范接口

我见过很多人一上来就装 SDK,结果先用半小时解决依赖版本冲突,再花一小时跟异步回调搏斗,最后还不确定自己到底调对了没有。其实在真正写业务代码之前,先用 curl 把大模型 API 从头到尾打一遍,往往是最快、最干净、也最…

2026/10/14 2:41:28 阅读更多 →

日新闻

AnyPS5通用适配层设计:兼容性与性能的工程取舍

AnyPS5通用适配层设计:兼容性与性能的工程取舍

1. 从"AnyPS5"这个名字说起:它到底想解决什么问题第一次看到"AnyPS5"这个标题,我脑子里冒出来的第一个念头是:这大概率是一个围绕"跨平台运行"或者"通用适配"做文章的项目。名字里的"Any"…

2026/10/14 0:00:41 阅读更多 →
Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

1. 项目概述:Flutter跨平台二手交易应用开发作为一名长期从事移动应用开发的工程师,我最近完成了一个基于Flutter框架的二手物品交易平台项目。这个项目最吸引我的地方在于它完美结合了Flutter的跨平台优势与HarmonyOS的生态特性,实现了"…

2026/10/14 0:00:41 阅读更多 →
DFS算法解决飞机降落调度问题实战

DFS算法解决飞机降落调度问题实战

1. 项目背景与核心思路飞机降落问题是一个经典的调度优化场景,也是算法竞赛和面试中的高频题目。这个题目要求我们合理安排多架飞机的降落顺序和时间,确保所有飞机都能安全着陆而不发生冲突。在实际航空管制中,这类问题直接关系到飞行安全和机…

2026/10/14 0:00:41 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/13 16:22:04 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 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/13 22:01:27 阅读更多 →
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/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练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/12 18:11:17 阅读更多 →