【AG32VF407测评】开箱、环境搭建与点灯Demo
[复制链接]
本帖最后由 lenxvp 于 2023-7-25 22:49 编辑
等了快一个月的AG32VF407测评活动终于等来开发板,先按惯例开个箱
板子跟STM32F407的官方评估版不能说相同,只能说一模一样,官方的介绍有说可以跟STM32F407评估版pin to pin互换
不过这里还是不得不偷偷吐槽下官方的偷懒哲学,板子原理图都是直接拿评估版的
芯片下面的STM32F407VET6让人一脸懵逼,还好我反应过来,哦!原来pin to pin的呀
但毕竟芯片不一样,AG32VF407的GPIO的规则和STM32F407并不完全相同,比如LED的引脚PA6、PA7在AG32VF407的SDK是找不到的
AG32VF407 使用PIN_XX的格式定义了每个引脚,这个XX跟原理图芯片对应引脚的编号是一致的,例如PA6对应的是PIN_31、PA7对应的是PIN_32
但PIN_XX的格式只是对FPGA进行配置使用的,具体到SDK中还需要再.ve文件进一步映射成GPIOX_X的格式,这里就不得不赞叹这芯片的强大之处了,芯片的引脚并不是完全定死的,而且可以灵活配置的,这里先按下不表,后续再探讨。
开发环境搭建按照官方文档AG32开发环境搭建.pdf和AG32在VSCode下的使用入门_20230423.pdf搭建即可,难度不大,这里不多讲了
搭建好环境后我们开始开发一个嵌入式界的“Hello World”程序 —— 点灯Demo
这里需要注意下,如果按照AG32在VSCode下的使用入门_20230423.pdf直接使用example目录的demo来做,一般是会失败的,example里面的是基于AG32VF103的,跟AG32VF407是有一点冲突的,虽然可以直接修改,但这里我们还是直接从头新建自己的Demo吧
在SDK安装目录下的 AgRV_pio\platforms\AgRV下新建hello目录作为我们所有Demo的总目录,跟example处于同级目录:
在hello目录下新建led目录,把boards/agrv2k_407下面的board.asf和board.ve拷贝到led目录下,并新建src目录,把example/example下的platformio.ini也复制过来
用VSCode打开该目录,PlatformIO会自动识别platformio.ini并生成相应的工程,在src目录下新建led.c
led.c代码如下:
#include "board.h"
int main(void)
{
// This will init clock and uart on the board
board_init();
while (1) {
UTIL_IdleUs(100e3);
GPIO_Toggle(LED_GPIO, LED_GPIO_BITS);
}
}
代码不难,board_init用于板级初始化,UTIL_IdleUs用于延时,GPIO_Toggle翻转LED
修改platform.ini下面的几个配置,其中program是生成二进制文件的文件名,可以改成自己喜欢的名字,board_logic.ve必须与.ve文件名一致
board = agrv2k_407
board_logic.ve = board.ve
....
program = hello_led
修改board.ve, 这里我们先删掉大部分用不到的配置,只保留时钟和LED GPIO的配置
SYSCLK 248
HSECLK 8
GPIO4_3 PIN_32 # LED1
GPIO4_4 PIN_31 # LED2
完成后链接Jlink和开发板,按下图顺序先更新ve硬件逻辑配置
终端显示SUCCESS即可,失败需要检查JLink驱动是否安装好
接着下载点灯程序,目标选择env:dev即可
同样显示SUCCESS即可
成功后,LED灯成功闪烁
984f024b5aeba0c7d406a52de2131812
不得不说FPGA+MCU的组合确实提供了相当大的灵活性,可玩性也更高了,特别还要感谢官方选择了VSCode作为开发环境(真苦Keil久矣)
|