内测中

设计思路

为何不由 AI 直接生成整个工程

嵌入式工程中,有的工作需要理解和判断,有的工作必须每次准确。Pievolat 将这两类工作分开:小π 负责前者,确定性的代码生成与校验负责后者。

问题

由 AI 直接编写整个工程存在的问题

1

芯片相关代码必须始终准确

寄存器、时钟、中断和 DMA 的配置必须与芯片手册一致。大模型可能给出看似合理、实际与手册不符的配置,此类错误往往在开发板上才会暴露。

2

工程是一个整体

引脚、DMA 通道、中断优先级和时钟在模块之间相互约束,任何修改都需要依据完整、准确的工程状态检查全局冲突。

3

修改需便于审查

如果每次都由模型重写整个工程,每次都需要重新审查全部代码。结构固定,修改才能集中在少数位置。

4

重新生成不得覆盖用户代码

配置变更后需要重新生成,但用户编写的业务代码不得被覆盖。

分工

哪些由 AI 完成,哪些确定性产出

AI 产出的内容均经您确认或授权后写入,可以撤销;确定性产出对相同的配置给出相同的结果。

由小π(AI)完成

  • 理解需求和需求文档,仅就缺失或不明确的内容提问
  • 整理配置方案,并在对应页面预览
  • 编写和修改应用层代码与测试用例
  • 分析编译、下载和调试问题,提出修复方案

确定性产出

  • 硬件配置校验与资源冲突检查
  • 生成驱动层、器件抽象层和运行时服务代码
  • 生成工具链工程文件
  • 执行测试并判定结果

您决定小π 的修改方式和范围;各配置页面可随时手工修改,未配置大模型时同样可以使用。

结构

生成工程的分层结构

生成的工程分为驱动层、器件抽象层、运行时服务(含信号总线)和应用层,另有公共组件。应用层只通过器件抽象层访问硬件,通过信号总线读写业务数据;层的名称与软件中“软件架构”页一致。

您的代码

您的业务代码写在独立的应用文件中,重新生成不会覆盖;生成器管理的文件如被改动,生成将停止并列出差异。

生成工程的分层(示意)
  1. APP应用层您的业务逻辑。通过信号总线读写数据,不直接接触寄存器和厂商库。
  2. RTE运行时服务信号总线、通信协议、存储和任务调度,按配置生成。
  3. DAL器件抽象层芯片外设和片外器件的稳定接口,向上不暴露芯片细节。
  4. DRI驱动层寄存器、厂商库、中断、DMA 和时钟等芯片相关代码。

公共组件 类型定义、编译器适配、CRC、滤波等通用模块,各层共用。

应用层和运行时服务只通过器件抽象层访问硬件;应用层通过信号总线交换业务数据。虚线框为您编写业务代码的位置。

申请内测,查看实际生成的工程

内测采用邀请制。提交申请后,我们将人工审核,并通过邮件发送账号和内测协议。

申请内测