打印
[AT32F407]

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

[复制链接]
2076|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tinnu|  楼主 | 2021-2-11 19:40 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 tinnu 于 2021-2-20 19:22 编辑

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

  • 方法一:rtstudio
rtstudio是 rtthread 推出的一体化开发环境,在最新的2.0.0版本里增加了对雅特力系列的支持,不仅能够开发rtthread实时操作系统,也能够开发一般的裸机项目。

这种开发方式简单明了,就不多作介绍。
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

相关配置可以查看: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支持


使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

15

主题

71

帖子

0

粉丝