| 
 
| 本帖最后由 tinnu 于 2021-2-20 19:22 编辑 
 雅特力作为国产芯片厂商,既然使用了国产的硬件,怎么能够还继续受着MDK、IAR之流的束缚?为此专门探索了两种开源免费的方案搭建开发环境。
 
 rtstudio是 rtthread 推出的一体化开发环境,在最新的2.0.0版本里增加了对雅特力系列的支持,不仅能够开发rtthread实时操作系统,也能够开发一般的裸机项目。
 
 ![L]G`FC%L0VOT5[$K2WL5BHL.png L]G`FC%L0VOT5[$K2WL5BHL.png](/data/attachment/forum/202102/11/192820yct3n1sqy82c1tqe.png)  这种开发方式简单明了,就不多作介绍。
 rtstudio 有一定局限性,主要是开发环境仅限于windows。为了保证跨平台性,这里尝试在vscode下搭建。
 
 
 
 
 1-即使我们使用vscode,但最好还是事先安装rtstudio,因为需要rtstudio创建的工程来借壳生蛋,凭空是很难做好环境的。雅特力官方没给出GCC下的工程模板,而MDK的模板所使用的汇编启动文件是与GCC体系不一样的,不能被GCC体系识别,所需要用的startup文件在:
 Artery-AT32-MCU-Pack-main\BSP\AT32F4xx_StdPeriph_Lib_V1.2.9\Libraries\CMSIS\CM4\DeviceSupport\startup\gcc
 另外编译时所需的 linkscripts则需要rt-thread来提供,还是生态链伙伴选得好,啥都给你安排好咯。
 
 2-vscode安装插件 【Embedded IDE】、Cortex Debug
 
   相关配置可以查看:https://www.em-ide.com/docs/eide-manual
 但官方文档也不是很全,有些细节的地方没有提到很容易掉坑里
 
 3-打开 Embedded IDE ,选择 set toolchain path——ARM GCC Toolchain,这个可以通过 【Embedded IDE】 主页提示的网站下载(https://developer.arm.com/open-source/gnu-toolchain/gnu-rm/downloads) ,或者可以把借壳生蛋的精神发挥到极值。
 rtstudio本身就有一个交叉GCC编译链,在安装目录下:
 D:\RT-ThreadStudio\repo\Extract\ToolChain_Support_Packages\ARM\GNU_Tools_for_ARM_Embedded_Processors\5.4.1
 如果你安装了比如CubemxIDE、MCUXpresso这类,下面同样有:
 C:\nxp\MCUXpressoIDE_11.1.0_3209\ide\tools
 
 配置好之后,可以在vscode 安装目录下看到配置文件:
 C:\Users\<电脑名称>\AppData\Roaming\Code\User\setting.json
 
 4-new empty project 创建了一个空工程之后
 打开之前 rtstudio 创建好的工程 applications、drivers、libraries、linkscripts拷贝过来
 在工程下将 applications、drivers、libraries 添加进来。
 
   compile configuration 里面选择GCC, 下面的 Linker Script 选择 linkscripts 下面的链接脚本。
 
   Project Dependences里面 Macro List 添加全局宏定义。
 
   编译
 
   
 5.1-烧录前要安装pyocd
 打开CMD或者POWERSHELL,键入
 python
 如果你已经安装了python,他会有交互内容,如果没有,则会自动弹出微软商店,安装最新的python3.9,实际上我一度也想对rtstudio的python环境借壳的,但试了很久都没有成功
 
 5.2-安装usblib.dll
 根据官方文档到github下载最新的
 
 5.3-pyocd
 完了安装pyocd,打开CMD或者POWERSHELL,输入
 pip install pyocd
 安装玩pyocd之后可以在这里看见:
 C:\Users\<电脑名称>\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\Scripts
 直接输入pyocd是识别不了的,必须要把上述路径加入系统变量path。但vscode烧录会自己识别,不需要加入系统变量。
 
 6-如果加入了系统变量,可以试试看看能不能识别ATLINK,输入
 pyocd list
 
 7-选择upload的工具为Pyocd
 target名称为 AT32F407VGT7
 点击下载
 
   
 8-仿真配置
 配置 Cortex Debug :
 
   这里红色框框错了,应该框上面一个
 
 一般只需要配置两个地方:
 
   
 
   但因为我把pyocd的路径扔进了系统变量里,后面那个就不用配置了。
 
 9-仿真launch配置文件
 打开工程目录下的 .vscode
 创建一个launch.json文件
 输入内容:
 
 {
 "version": "0.2.0",
 "configurations": [
 {
 "cwd": "${workspaceRoot}",
 "type": "cortex-debug",
 "request": "launch",
 "name": "PyOCD",
 "servertype":"pyocd",
 "executable": ".\\build\\Debug\\at32-fourth.elf",
 "runToMain": true,
 "targetId": "AT32F407VGT7",
 "cmsisPack": ".\\Keil.AT32F4xx_DFP.1.3.5.pack",
 "svdFile": ".\\pack\\Keil\\AT32F4xx_DFP.1.3.5\\SVD\\AT32F407xx.svd"
 }
 ]
 }
 
 把rtstudio下面的pack文件夹也拷过来,还有 keil 的DFP支持包
 这时候你按F5进入仿真会一直报错,说你没有配置对 servertype ,但明明我们是配置好了的。这个困扰了好几天没弄好,后来才发现很简单。
 首先重新打开窗口,打开工程,这时候右下角有一个弹窗:
 
 
   
 点击continus,再点F5就可以了
 
 10-linux下的尝试
 之后尝试了一下在linux下的pyocd,但很遗憾,ATLINK跟同样国产厂商的GDLINK一样,无法被LINUX识别,只有串口被识别到了。
 我使用手上一个能够被linux识别的HTLINK(同样是DAP LINK),在WINDOWS下尝试给开发板烧录,但无法通讯上。
 目前看来,在LINUX下开发AT32还有一定限制,可能需要JLINK支持
 
 
 
 | 
 |