文章目录
基于假设读者处于本人大一暑假学完32单片机,接触PID等自控算法前的程度。
2.2 最后的准备——开发环境搭建
2.2.1 关于MDK的一些知识
如若没有下载MDK,可以参考“6、AT32官方资料\Keil”文件夹。
来科普一些概念,Keil 即是一家公司名称,也是一款软件名称。Keil 有几个出名的软件(IDE),包括 MDK、 C51。而µVision(或uVision)是一种开发环境,µVision5是其第5个版本。相关内容参考:
Keil科普教程 | Keil C51 和 MDK 的区别 - strongerHuang的文章 - 知乎
https://zhuanlan.zhihu.com/p/458885846
(1)工程文件
(这类文件不能删除) *.uvprojx:µVision5工程文件
(2)工程选项配置文件
(这类文件不能删除) *.uvoptx:µVision5工程选项配置文件
(3)项目界面布局文件
(这类文件可以删除) *.uvguix[.user-name]:µVision5项目界面布局文件。删除之后,重新打开工程,界面布局会恢复到默认布局。如Demo.uvguix.Administrator。
其中[.user-name]为计算机的用户名,若使用联想电脑,默认为.lenovo,如文件:template.uvguix.lenovo
(4)删除过程文件.bat
.bat为winbows批处理文件,是一种调用DOS命令的可执行文件,可以看作一个小软件,一般双击运行来删除编译过程产生的文件。
(5)EventRecorderStub.scvd
EventRecorderStub:事件记录器存根(可能记录了一些用户操作之类的信息)
(6)JLinkSettings.ini
是对Jlink进行一些配置的文件。
INI文件格式是某些平台或软件上的配置文件的非正式标准,以节(section)和键(key)构成,常用于微软Windows操作系统中。这种配置文件的文件扩展名多为INI
(7).axf文件
初始输出文件,用于转化为.hex、.bin等最终输出文件。
2.2.2 芯片Pack包安装
参考“6、AT32官方资料\(1)教程\(1)AT32F435_437固件库BSP&Pack应用指南.pdf”的“2.2 Keil_v5 Pack 安装”
“6、AT32官方资料\Keil”下的Keil5_AT32MCU_AddOn.zip为AT32在MDK(或keil公司软件)下的pack压缩包(芯片支持文件包)。
具体版本见包内实际内容,安装步骤如
下:
- ① 解压 Keil5_AT32MCU_AddOn.zip,里面包含了所有目前支持的 Keil5 pack 安装包,都是标准的
Keil_v5 DFP 安装文件。 - ② 选择所需系列的安装包,双击 ArteryTek.AT32xxxx_DFP.2.x.x.pack 完成一键式安装。
- ⑤ 查看 Keil_v5 Pack 是否安装成功。按如下步骤操作和查看:
- 点击魔术棒。
- 选择 Device 选项卡。
- 出现 ArteryTek 及相关型号信息。
图 2.2.2.1 查看 Keil_v5 Pack 安装情况
2.2.3 USB下载程序
(1)ISP
AT32的官方资料可以在https://www.arterytek.com/cn/product/AT32F435.jsp#Resource 中下载。
AT32官方提供的ISP工具是一个程序下载软件,
有UI界面(6、AT32官方资料\Tool_工具\Artery_ISP_Programmer_V2.0.08\Artery ISP Programmer_V2.0.08 下的ArteryISPProgrammer.exe)
与
命令行版本(6、AT32官方资料\Tool_工具\Artery_ISP_Console_Win_V3.0.05\Artery_ISP_Console_Win_V3.0.05 中的 AT32_ISP_Console.exe)
命令行版本要使用.bat批处理文件命令进行控制,在文件目录下DFU_download.bat等三个……download.bat文件就是分别使用usb_dfu、uart、I2C来下载程序用的。可以放在工程文件夹下使用,使用时先按住BOOT键上电启动进入Bootloader下载模式,然后双击DFU_download.bat即可,之后移植的AT32工程将使用到ISP。
鉴于UI界面版的ISP使用时步骤太多,之后的程序会使用命令行版本的ISP进行下载,ISP使用的命令参考:
6、AT32官方资料\Tool_工具\Artery_ISP_Console_Win_V3.0.05\Document
注意,要保证DFU_download.bat中的程序下载文件地址与工程生成的.bin文件一致。
(2)MDK生成.bin文件
为了使用命令行版本的ISP,需要工程输出.bin文件。如图2.2.3.1 ,“2”中的界面是设置编译过程中扩展运行的软件,“3”处表示编译后要运行的软件,勾选“3”处的“Run#1”,并在其后填入参数“fromelf --bin --output ./obj/template.bin ./obj/template.axf” (“Run#2”是生成反汇编文件用的,可以不用)
图2.2.3.1
参数中:
- “template”是Keil工程的名字
- “fromelf --bin --output”是MDK自带的一个软件及运行参数
- “./obj/template.bin”中包含了要生成.bin文件相对于工程文件的位置
- “./obj/template.axf”是包含初始输出文件的位置,可以在“魔术棒”(即options for target,目标选项)中的“Output”中设置。
(3)USB下载试验
由于AT32飞控没有RST按键,为了USB下载方便,可以考虑发一个带开关的USB延长线。
图2.2.3.2
这里进行USB下载的试验:
-
- 进入“2、飞控例程\1_LED”,先双击“删除过程文件.bat”清空工程过程文件。
-
- 双击打开“template.uvprojx”工程,并进行编译
-
- 按住BOOT键上电启动进入Bootloader下载模式“1_Download_by_usb.bat”开始下载程序,如图2.2.3.3所示:
图2.2.3.3
下载成功后飞控的两个LED会呈流水灯式的效果。
2.2.4 J-LINK OB下载与调试程序
(1) J-LINK OB调试器
目前AT32只支持AT-link与J-link调试器,而如J-link等调试器,具有下载程序、查看程序运行流程与变量值、查看芯片寄存器值等功能。说实话,在有能正常运行例程的情况下,除非你进行汇编与寄存器方面的开发,基本上也只会使用到程序下载的功能,在可以USB下载程序的情况下调试器并非是必需的。毕竟查看变量值什么的完全可以用串口发送,不过大型工程找bug还是有用的,而且其用来下载程序确实是更方便与快速。
对软件的下载与调试这里使用J-LINK OB(与普通J-link功能相同,但价格低的多),淘宝链接:
https://detail.tmall.com/item.htm?abbucket=19&id=670538147682&ns=1&spm=a21n57.1.0.0.63a4523ctkXFEb&skuId=5015440542446
图2.2.4.1
Jlink驱动安装,参考"5、软件资料/J-LINK OB全套资料"下文档,这里不再累述。
(2) 选择AT32的Jlink驱动设备
当使用AT32 keil工程设置Debug为jlink时可能会出现如下提示:
图2.2.4.2
该提示表示在Jlink驱动中查找不到AT32F435VMT7这个设备,这里先点击Yes来手动选择芯片设备。
然后会出现如下界面:
图2.2.4.3
这里 “Cotex-M4” -> “OK”。
至于具体原因,来看下AT32飞控参数:
CPU: AT32VMT7
主频: 288MHz
引脚: 100 Pin(“V”)
Flash: 4032 KB(“M”)
RAM: 384 KB
内核:32位ARM® Cortex®-M4内核
故选择Cotex-M4这个设备。
(3)调试中可能出现的问题
MDK Debug的使用具体可以参考“3、参考资料\STM32F1开发指南(精英版)-库函数版本_V1.2 .pdf”中的"3.4 程序下载与调试"小节。
使用Jlink调试过程中可能出现如下报错:
图2.2.4.4
其错误提示为:Encountered an improper argument(遇到不恰当的争论)
错误原因其实是在调试完结束时候,有断点(红色圆点)还没有去掉,所以一点击停止调试之后,keil就会马上弹出这个错误,然后你就会发现你的keil关不掉了。。。,别问我怎么知道的,因为我自己崩了不下二三十次,试了keil的两个不同版本都会出现这种情况(当然不是所有版本都这样,因为本人只试了两个版本),直到我发现只有把断点(红色圆点)全部去掉,关调试的时候才不会弹出这种提示和导致keil崩。新版本的Keil可能已经解决该问题。
解决方法:
如果想要规避这种情况的话,在你调试结束时候记得检查是否有断点没有去掉!!!重要的事说三次~
同时,这里跟你说一下,如果已经弹出如上图所示提示,keil可能已经崩了,正常是关不了了,我基本上是通过任务管理器强行关掉的。然后再打开工程就好,并且你再调试时候那个没有去掉的红点依然在,记得这次把点去了就好。
参考:https://blog.csdn.net/OMGMac/article/details/126614887
2.2.5 逻辑分析仪简介
比起调试器,逻辑分析仪这玩意儿是更实用的,其虽然只能测3.3V的引脚高低电平(0与1),但却有强大的通信协仪解析功能。开发SPI、IIC、USART传感器模块或者PWM、SVPWM什么的,绝对是利器。传统的逻辑分析仪老贵,但难不倒开源的前辈们,所谓“开源万岁,免费不贵!”,迷你的逻辑分析仪已经降到几十元了。动手能力强的当然可以自制一个,但以金钱换时间还是合算的。
图2.2.5.1
迷你nanoDLA逻辑分析仪工程链接:
https://github.com/wuxx/nanoDLA
或“5、软件资料\迷你nanoDLA逻辑分析仪”
淘宝链接:https://www.bilibili.com/video/BV1Rg411j7nn/?vd_source=39d30ee096c038b5a1df9425e13dde50
视频教程:https://www.bilibili.com/video/BV1Rg411j7nn/?vd_source=39d30ee096c038b5a1df9425e13dde50
2.2.6 资料简介
最后介绍一下AT32官方提供的资料与AT32飞控相关的资料。
两个资料分别位于“6、AT32官方资料”与“7、AT32飞控官方资料”中。
其中AT32官方的资料都可以在其官网中下载:
https://www.arterytek.com/cn/index.jsp
飞控使用芯片的资料在:“产品讯息” -》 “高性能MCU” -》 “AT32F435系列” -》 “下载资源”
即:https://www.arterytek.com/cn/product/AT32F435.jsp#Resource
-
- AT32官方资料
-
“(1)教程与文档”:
含有AT32库函数的详细介绍的文档、AT32寄存器相关的手册、例程功能描述、FreeRTOS使用教程、AT32F435 引脚定义、AT32F435_入门指南及AT32各系列芯片的选型手册等。 -
“AN0025_FreeRTOS_on_AT32_MCU_V2.0.4”
FreeRTOS相关例程与教程 -
“AT_START_F435_开发板”
官方提供的基于立创EDA的AT32F435开源开发板。 -
“BSP_板级支持包_AT32F435”
官方提供的AT32例程,以及FreeRTOS、USB等的Demo(示例) -
“Keil”
软件与芯片在Keil上的pack包(芯片支持文件包) -
“Tool_工具”
AT32下载工具与AT32官方IDE等。
-
- AT32飞控官方资料
-
“(1)AT32 飞控烧录指南”
各版本固件与程序下载工具。 -
“AT32飞控 固定翼部分(INAVflight)”
INAVflight相关的固件、地面站、说明书。 -
“AT32飞控PCB资料”
AT32飞控PCB的Gerber生产文件、AT32飞控说明书。 -
“BF 最新地面站及新手入门教程”
Betaflight相关固件