拿到 AG32 开发板,很多工程师第一步就卡在环境搭建:Keil 包怎么安装、工程如何创建、GPIO 初始化、调试烧录失败。AG32 属于 RISC-V 异构 MCU,配置流程和传统 STM32 有不少区别。本文面向嵌入式开发者,手把手梳理 AG32 完整开发流程,包含 Keil 环境部署、基础外设编程、功耗调试、MCU+CPLD 协同开发入门,干货落地,拿来就能实操。

一、主流开发环境选择
AG32 支持两套主流开发方案:
Keil MDK(工程师首选,适配习惯传统单片机开发者)
PlatformIO + VS Code(开源轻量方案,适合 RISC-V 深度开发者)
市场上绝大多数传统嵌入式团队优先使用 Keil,下文重点讲解 Keil 配置关键步骤。
二、AG32 Keil MDK 完整搭建步骤
基础环境准备安装 Keil MDK-V5,安装路径禁止使用中文、空格文件夹名称,否则编译、调试频繁报错。安装完成后关闭杀毒软件,防止驱动被拦截。
安装 AG32 设备支持包 DFP 前往 AGM 官方获取对应 AG32 器件支持包,通过 Pack Installer 导入。支持包包含芯片寄存器定义、启动文件、Flash 烧录算法。缺少 DFP 将无法在 Keil 内选中 AG32 型号,无法下载程序。
新建工程关键配置
芯片选型:匹配开发板型号(AG32VF303 / AG32VF407);
编译器选项:适配 RISC-V 内核编译规则,开启硬件 FPU 浮点单元;
调试器:支持 JTAG/SWD 调试,推荐 J-Link,提前安装调试器驱动;
Flash 下载算法:选择官方配套 AG32 烧录算法,确认下载地址与芯片 Flash 容量匹配。
⚠️高频踩坑点:很多人直接套用 STM32 编译参数,出现内存溢出、程序上电不运行,RISC-V 内核堆栈、启动文件参数需要使用 AG32 官方模板,不要直接移植 ARM 启动文件。
三、AG32 GPIO 基础配置详解(重点差异)
AG32 的 GPIO 设计和 STM32 有明显区别,也是新手最容易出错的地方: STM32:GPIOA、GPIOB,引脚直接物理绑定; AG32:内部逻辑 GPIO 资源和物理管脚相互独立,必须完成管脚映射配置,内部 GPIO 信号才能连接到芯片外部引脚。
编程逻辑分为两步:
软件初始化 GPIO 模式(输入 / 输出、上拉、推挽、中断模式);
在配置文件中,把内部 GPIOx_y 映射到芯片物理 PIN 脚。
简单理解:相当于芯片内部自带小型信号矩阵,开发者自由分配管脚,优势是 PCB 布线自由度极高;缺点是新手容易忘记映射,导致 IO 没有电平变化。
日常开发常用功能:普通高低电平输出、外部中断输入、定时器复用 IO、ADC 模拟输入。模拟通道引脚不可随意重映射,设计硬件时提前查阅 datasheet 模拟通道分布。
四、主频、功耗相关工程配置
时钟树配置 AG32 支持外部晶振 HSE、内部 HSI,Pro 系列最高配置到 248MHz。工程内合理配置 PLL 倍频;不需要最高性能时,可以降低主频,减少运行功耗。
低功耗模式开发芯片提供 Sleep、Stop、Standby 多种模式。开发物联网电池供电产品时,可以搭配内置 CPLD 实现外部信号硬件唤醒,MCU 长时间待机,有效降低整机平均功耗。调试低功耗注意:调试接口开启状态下,部分省电模式无法生效,量产代码需要关闭调试模块。
五、进阶:MCU 与内置 CPLD 协同开发思路
AG32 最大特色就是 MCU+2K LUT 逻辑协同开发,简单说下开发分工: ✅ MCU(C 语言开发):业务逻辑、通讯协议、算法运算、人机交互; ✅ CPLD(Verilog 开发):高速正交编码器采集、PWM 同步、多路脉冲捕获、自定义时序逻辑;两者通过片内 AHB 总线寄存器交互,速度远超外部接线。电机控制项目中,把编码器信号交给 CPLD 解析,MCU 只读取速度位置数据,CPU 负载大幅下降。
六、调试、烧录常见问题汇总
调试器无法连接芯片:检查 JTAG/SWD 接线、复位电路,确认供电稳定;
程序下载成功,上电不运行:核对时钟配置、启动文件、向量表地址;
GPIO 无输出:优先排查管脚映射配置,不要只检查 C 语言初始化代码;
中断频繁异常:检查堆栈大小,RISC-V 项目合理设置栈空间。
七、新手学习路线建议
先用官方最小工程跑通 LED 闪烁,熟悉 Keil 编译、下载、调试流程;
练习 GPIO 输入输出、串口收发,吃透管脚映射机制;
学习定时器、ADC 采集,尝试基础 BLDC 电机控制 demo;
有余力再研究 MCU+CPLD 联合开发,充分发挥 AG32 异构架构优势;
开发过程常备官方 datasheet 与参考手册,外设寄存器细节以文档为准。