

AT32是STM32的一种国产替代,被应用于无人机国产飞控中
硬件方面,参照立创开源
https://oshwhub.com/sheep_finder/guo-chan-fei-kong
本教程在Linux系统下,使用CMake构建项目,OpenOCD烧录程序,搭建AT32开发环境
使用的Linux发行版:Ubuntu
使用的芯片型号:AT32F435VMT7
0. 安装cmake和git
在正式开始之前,需要确保已经安装了git和cmake
sudo apt install git cmake
已经安装过的可以忽略
1. 从AT32官网下载开发工具
打开官网并进入所用芯片型号的页面,本教程以AT32F435为例
打开
https://www.arterytek.com/cn/product/AT32F435.jsp
往下拉找到资源下载的地方
下载BSP固件库
https://www.arterytek.com/file/download/2210
下载AT32修改版的OpenOCD
https://www.arterytek.com/file/download/2611
将固件库和OpenOCD解压到电脑中任意位置
给openocd可执行文件添加执行权限
chmod +x ${OPENOCD_PATH}/bin/openocd
${OPENOCD_PATH}指刚刚解压出的openocd的根目录
2. 下载ARM工具链
打开ARM官网:
https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads
下载 x86_64 Linux hosted cross toolchains 这一栏下的
arm-gnu-toolchain-13.3.rel1-x86_64-arm-none-eabi.tar.xz
要注意文件名中间是x86_64和arm-none-eabi
其中的13.3是版本号,可能根据现有的版本有所不同
下载完毕后将压缩包的内容解压
也可以直接用apt安装
sudo apt install gcc-arm-none-eabi
相比于官网,apt安装的版本会旧一些
3. 下载AT32CMake模版项目
用git将AT32CMake模版项目clone到本地
git clone https://github.com/fallenworld/AT32CMakeTemplate.git
打开项目下的CMakeLists.txt,将以下的变量修改为如下内容
set(FIRMWARE_PATH AT32固件库路径)
set(TOOLCHAIN_PATH ARM工具路径)
set(LINKER_SCRIPT 链接文件)
set(STARTUP_CODE 启动代码文件)
set(DEVICE_DEFINE 芯片型号定义)
set(OPENOCD_PATH OpenOCD路径)
链接文件(.ld)和启动代码文件(.s)均可以在固件库中找到
模版项目中使用的是AT32F435VMT7,使用其他型号,需根据情况修改CMakeLists.txt
打开项目下的at32.cfg,这里是OpenOCD用到的配置脚本
根据自己的下载器和芯片型号,设置好下载器和芯片对应的配置脚本
下载器和芯片的配置脚本位于${OPENOCD_PATH}/scripts下的interface和target下
4. 编译项目
将模板项目复制一份,相当于是新建了一个项目
打开复制好的项目的CMakeLists.txt,将project()下的AT32Template改为自己想要的项目名字
然后在想要放置编译结果的地方,执行
cmake 项目路径
make
等待一会儿,即可编译成功,生成elf、hex、bin文件
编译成功后,将烧录器连接开发板,然后插到电脑USB口上,接着执行
make flash-hex
即可将刚刚编译好的hex文件烧录至芯片中
5. 设置CLion(可选)
为了方便开发,我们可以用Clion这个IDE来编辑+构建+调试AT32项目
同样的思路也适用其他的IDE,如VSCode
打开项目
进入CLion → 打开,选择项目路径
在弹出的窗口中,将 <构建目录> 设置为希望进行编译的目录
用Clion编译出的二进制文件,会位于这个构建目录
如果之前用命令编译过,设置之前需要清空编译的目录
设置OpenOCD
设置 → 构建、执行、部署 → 嵌入式开发
将 <OpenOCD位置> 修改为第1步中的openocd可执行文件的位置
设置构建选项
菜单栏的运行 → 编辑配置 → 左上角+号 → OpenOCD下载并运行
将 <目标> 选择为flash-hex
将 <可执行的二进制文件> 选择为elf文件
将 <面板配置文件> 设置为项目根目录下的at32.cfg
构建和调试
点击上方的运行/调试配置图标,修改为有绿色芯片图标的flash-hex
在代码中打断点,点击上放的虫子图标进行调试
Clion会调用CMake编译项目,并用OpenOCD将hex文件烧写至AT32
可以看到包括断点在内的所有图形化调试功能可以正常使用
一切大功告成,可以开始写代码了!