[AT32F407] 【AT-START-F407测评】开源开发环境搭建,摆脱KEIL、IAR

[复制链接]
2614|0
 楼主| tinnu 发表于 2021-2-11 19:40 | 显示全部楼层 |阅读模式
本帖最后由 tinnu 于 2021-2-20 19:22 编辑

雅特力作为国产芯片厂商,既然使用了国产的硬件,怎么能够还继续受着MDK、IAR之流的束缚?为此专门探索了两种开源免费的方案搭建开发环境。

  • 方法一:rtstudio
rtstudio是 rtthread 推出的一体化开发环境,在最新的2.0.0版本里增加了对雅特力系列的支持,不仅能够开发rtthread实时操作系统,也能够开发一般的裸机项目。
L]G`FC%L0VOT5[$K2WL5BHL.png
这种开发方式简单明了,就不多作介绍。
rtstudio 有一定局限性,主要是开发环境仅限于windows。为了保证跨平台性,这里尝试在vscode下搭建。



  • 方法二: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
20.png
相关配置可以查看: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 添加进来。
41.png
compile configuration 里面选择GCC, 下面的 Linker Script 选择 linkscripts 下面的链接脚本。
42.png
Project Dependences里面 Macro List 添加全局宏定义。
43.png
编译
44.png

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
点击下载
71.png

8-仿真配置
配置 Cortex Debug :
81.png
这里红色框框错了,应该框上面一个

一般只需要配置两个地方:
91.png

92.png
但因为我把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 ,但明明我们是配置好了的。这个困扰了好几天没弄好,后来才发现很简单。
首先重新打开窗口,打开工程,这时候右下角有一个弹窗:

10.png

点击continus,再点F5就可以了

10-linux下的尝试
之后尝试了一下在linux下的pyocd,但很遗憾,ATLINK跟同样国产厂商的GDLINK一样,无法被LINUX识别,只有串口被识别到了。
我使用手上一个能够被linux识别的HTLINK(同样是DAP LINK),在WINDOWS下尝试给开发板烧录,但无法通讯上。
目前看来,在LINUX下开发AT32还有一定限制,可能需要JLINK支持


您需要登录后才可以回帖 登录 | 注册

本版积分规则

15

主题

73

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部