1. 引言

对于一款MCU而言,工具链的好坏将成为其市场表现的关键之一。使用工具链开发程序,工具链的功能完备性、界面友好性等因素将会直接影响用户的使用体验,再者,芯片性能的发挥,也很大程度依赖于编译器的性能。

为了让用户应用MCU完成应用系统方案的设计及验证,MCU厂商一般有两种方式提供支持:一是MCU厂商通过自身研发,提供全套平台工具,二是客户寻求第三方通用工具(如IAR等)支持。

极海半导体根据自身产品特色及应用领域要求,自主研发建成了一套完整的软硬件开发工具,可帮助用户缩短产品开发周期、提高产品稳定性,为客户在完成MCU应用开发工作的过程提供强有力的支持。

本应用笔记提供极海软硬件工具基础使用指导,包括Geehy-Link、APM32PROG、APM32 ISP Multiport Programmer 与 DFUProgrammer的连接、配置操作流程指南。

  1. Geehy 工具链教程

> 准备工作

> 硬件准备

> Geehy-Link

> APM32 PROG

> USB转TTL模块

> APM32F0/1/4系列MCU 开发板

> 软件准备

> Keil uVision5(建议5.25以上版本)

> IAR EW for Arm 9.20.2

> APM32 PROG

> ISP Multiport Programmer

> DFUProgrammer

> APM32F0/1/4系列MCU SDK

> 以上Geehy相关的软件均可在Geehy资料下载获取([APM32微控制器 (geehy.com)](https://geehy.com/support/apm32))

  1. Geehy-Link 使用教程

Geehy-LINK是一款仿真器和编程器一体化的开发工具,可以在Keil、IAR等集成开发环境下对APM32全系列MCU产品进行在线调试仿真。支持全速运行、单步调试、断点设置等各种调试方式。

图 1 官网上的Geehy-Link链接

使用USB线将Geehy-LINK连接电脑,连接成功后,设备管理器上会出现:Geehy DAP USB Device ,如下图

图 2 设备管理器中的Geehy DAP USBDevice

  1. Keil MDK 下 配置Geehy-Link调试器

    1. Pack支持安装

目标环境下需提前准备好Keil uVision5(建议5.25以上版本)环境,安装需要调试的APM32F0/1/4系列MCU 的Pack,安装方法(以APM32F003F6P6芯片为例)如下:

打开下载好的“APM32F00x_SDK_v1.2\Package”下的Pack。

图 3 选中SDK文件中的pack文件

安装Pack(左键双击即可)至Keil的Pack安装目录(一般为默认路径即可)。

图 4 安装目录示例

等待安装完毕。

图 5 安装完毕示例

  1. 配置Geehy-Link调试器

打开工程文件“APM32F00x_SDK_v1.2\Examples\SysTick\SysTick\Project\MDK\SysTick.uvprojx”后选择“Options for Target”选项卡。

图 6 选择”Options for target…”选项卡

在“Debug”选项下载选择仿真器为“CMSIS-DAP Debugger”后选择“Setting”。

图 7 选择”CMSIS-DAP Debugger”后选择”Settiongs”

在“CMSIS-DAP Cortex-M Driver Setup”界面选择“Geehy CMSIS-DAP”(旧版本为“Apex CMSIS-DAP”)后点击“OK”。仿真器到此配置结束。

图 8 选择”Geehy CMSIS-DAP”后点击”OK”

  1. IAR EW for Arm 下 配置Geehy-Link调试器

打开工程文件“APM32F00x_SDK_v1.2\Examples\SysTick\SysTick\Project\IAR\SysTick.eww”后选择“Options ”选项卡。

图 9 打开工程文件后选择”Options”

在“Debugger”中选择“CMSIS DAP”仿真器后点击“OK”。

图 10 选择”CMSIS-DAP”后点击”OK”

  1. APM2PROG 使用教程

    1. APM32PROG 软件上位机

下载好上位机软件 Apex-APM32-Setup.msi 后进行安装(安装界面省略),打开软件后连接APM32PROG,连接成功后上位机会读取当前APM32PROG的固件版本,如下图中最底部的红框。若当前APM32PROG的固件版本低于最新版本将会有更新固件版本信息提示。

图 11 APM32 PROG功能区域

整个APM32PROG 上位机的功能区域分为文件打开区域、配置区域(含序列号配置、配置写入)、离线或在线操作区域。APM32PROG配合上位机可以实现对目标MCU进行编程,读取,加解密等许多功能。下面以APM32F003F6P6为例介绍一下APM32PROG的离线下载及在线读取MCU的方法。其他功能读者可以此类推,根据软件帮助及使用说明书进行探索。

  1. APM32PROG 离线编程

我们的芯片选型为APM32F003F6P6,该芯片仅支持SWD调试,我们的 APM32PROG配置如下图。

图 12 APM32F003F6P6 APM32 PROG配置

选择需要下载的hex(或bin)文件,

1. Product-Series APM32F003

2. Product-Type APM32F003F6P6

此时APM32PROG 上位机会弹出配置选项字节的窗口,有配置MCU选项字节需求的读者可以使用该功能,本次离线烧录暂未使用该功能,此处省略。

图 13 配置选项字节窗口

3. External-Power 选择 Power ON

4. Comm-Protocol 选择 SWD

5. BaseAddress 设置为 0x00000000

6. Operation-Mode 选择 Program

Serial-Number无需求暂时不配置。设置完以上配置后点击“Write-Config”,将配置写入至APM32PROG。然后点击“DownLoad(Offline)”下载程序至APM32PROG。此时配置信息及程序已下载至APM32PROG,接下来仅需为APM32PROG供电后连接目标芯片,然后点击烧录启动按钮,等待烧录提示灯变绿色即可完成离线烧录工作。

  1. APM32PROG 在线读取

APM32PROG不仅可以完成对目标MCU的离线操作,还可以对MCU进行在线读取或其他操作。本小节将以APM32F003F6PU为例,读取我们上一节烧录的程序。

参数配置如前2.2小结,在读取的设置界面

1. StartAddress  设置为  0x00000000

2. Length(Bytes) 设置为  0x00008000

最后选择的操作为“Read(Online)”(APM32PROG需连接目标MCU与PC)即可读取目标目标MCU的起始地址为0x00000000,大小为0x8000 Bytes的内容。

图 14 读取烧录的程序

等待读取进度条。

图 15 读取进度条

读取成功后弹出数据窗格界面,可点击“Save”按钮对读出的数据进行保存。

图 16 数据窗格界面

  1. APM32 ISP Multiport Programmer & DFUProgrammer

    1. 关于 APM32 MCU的BootLoader

APM32F0/1/4与APM32E1系列MCU在出厂时都内置了一段BootLoader程序与系统存储区域,以方便用户通过ISP的方式对MCU进行程序下载、选项字节编程等操作。其中各芯片的BootLoader对支持升级的通信方式有所不同。

表格 1 各芯片通信方式

通用MCU系列

是否支持ISP升级

支持接口

BootLoader进入方式

APM32F003x4x6

-

-

APM32F030x8/051x8

USART(PA9/PA10、PA14/PA15)

Boot0接1

APM32F030xC/091xC

USART(PA9/PA10、PA14/PA15)
I2C

Boot0接1

APM32F072xB

USB(PA11/PA12)
USART(PA9/PA10、PA14/PA15)
I2C(PB6/PB7)

Boot0接1

APM32F103xBxCxE

USART(PA9/PA10)

Boot0接1、Boot1接0

APM32F405xG APM32F407xExG

APM32F415xG

APM32F417xExG

USB(PA11/PA12)
USART(PA9/PA10、PB11/PB12、PC11/PC12)
CAN(PB5/PB13)

Boot0接1、Boot1接0

APM32E103xE

USART(PA9/PA10)

Boot0接1、Boot1接0

本小结将对常用的USART、USB的PC端工具使用进行较为基础的芯片连接、编程的使用方法进行介绍,更多内容欢迎至Geehy官网或技术支持工程师获取。

  1. APM32 ISP Multiport Programmer

本小结将以APM32F103VBT6芯片为例,介绍 APM32 ISP Multiport Programmer 的基础功能--芯片编程与擦除。该软件可在Geehy官网获取。

  1. 连接MCU前准备工作

由于 APM32 ISP Multiport Programmer与MCU通信方式是USART,所以这里我们需要使用USB转TTL模块将PC于MCU进行连接。接线方式如下。

表格 2 接线方式

PC

USB转TTL

APM32F103VBT6 MINIBOARD

USB

USB

TX

PA10

RX

PA9

GND

GND

VCC

VCC

完成接线后需安装相应的USB转TTL模块的驱动。驱动安装正常后会在“设备管理器”中看到有相应的“USB Serial Port”端口。

图 17 “设备管理器”中的”USB Serial Port”端口

  1. APM32 ISP Multiport Programmer 连接MCU

如5.1小节的表格,APM32F103VBT6进入BootLoader需要将“Boot0接1、Boot1接0”(跳帽重新连接前MCU已上电情况下,需复位MCU)。完成所有的接线操作后打开安装好的APM32 ISP Multiport Programmer(安装过程略过)。

APM32 ISP Multiport Programmer连接MCU的一般过程如下,

1. 点击 主界面下的加号 Add New Window 得到设置窗口

2. 在设置窗口的COM下选择对应的系统USB Serial Port 我这里是COM3

3. 在设置窗口的Bandrate下设置需要的波特率,我这里设置为 115200

4. 在设置窗口的Timeout下设置连接超时时间,我这里设置为 2

5. 最点击Setting下的Connect按钮完成对目标MCU的连接

图 18 连接MCU

连接成功后会在同一个界面显示当前连接芯片的信息,与可操作的一些选项。

图 19 当前连接芯片的信息与可操作选项

  1. APM32 ISP Multiport Programmer 下载程序

在5.2.2节,成功连接APM32F103VBT6芯片后,我们可以看到可操作项有许多,如:Erase Setting下可以选择对芯片进行全擦还是区域擦除。在Download File可以选择下载的文件,在Write Option Byte可选择对选项字节进行操作,在Download Setting可选择下载后的一些操作。

这里我们选择对APM32F103VBT6进行程序下载,采取全擦,选项字节不操作,下载后校验并执行程序。相关的设置界面如下所示。

图 20 设置页面

完成以上选项勾选后点击“Execute”执行我们的设置。等待进度条走条完毕,我们可以在“Execute Result”窗口查看我们的操作log。

图 21 “Execute Result”窗口

  1. DFUProgrammer

该软件功能与APM32 ISP Multiport Programmer基本类似,只不过是其支持使用USB作为升级外设的MCU的软件。本小结将以APM32F407IGMINIBOARD演示DFUProgrammer的芯片程序读取功能。

  1. 连接MCU前准备工作

其安装包可以在Geehy官网获取。里面包括了软件的安装说明。

驱动正确安装后,将APM32F407IGMINIBOARD“Boot0接1、Boot1接0”(跳帽重新连接前MCU已上电情况下,需复位MCU)。使用USB线缆连接PC与开发板。此时我们会在设备管理器上看到在“通用串行总线控制器”下看到“APM32 Bootloader”设备。

图 22 “设备管理器”界面的”APM32 Bootloader”

  1. DFUProgrammer 连接MCU

打开DFUProgrammer软件,若此时电脑已经连接好一个“APM32 Bootloader”设备,初始界面如下所示,若未找到设备点击“搜索设备”按钮即可搜索设备。点击“连接设备”按钮即可连接目标MCU。

图 23 DFUProgrammer软件主界面

目标MCU连接成功后,我们可以在log界面看到相应的提示信息。

图 24 设备成功连接状态

  1. DFUProgrammer 读取程序

点击左侧的“读取芯片”按钮来到芯片内容读取界面,在该界面可设置读取的芯片内容及大小,点击“读取芯片”按钮可读取相应的数据,点击“保存数据”按钮可保存数据至PC。

图 25 读取芯片

图 26 保存数据至PC

数据保存成功后可在log窗口得到数据保存成功信息。

图 27 数据保存成功

至此程序读取操作完成。

【应用笔记】AN1080_APM32_工具链使用指南(已更新V1.1)相关推荐

  1. 方舟编译器只能编译Java_方舟编译器学习笔记8 工具链可运行(helloworld编译成功)...

    前面的文章 方舟可执行文件简介和 对java2jar及方舟工具链的进一步分析 对工具链中的可执行文件以及测试用例的编译都进行了分析,并对java2jar进行了修改,保证了其可运行.但是后续的jbc2m ...

  2. 树莓派学习笔记——交叉编译工具链

    0.前言 [1]为什么要使用交叉编译     交叉编译工具较快开发的速度.树莓派中已经安装了gcc工具链,可在树莓派中直接编译源代码生成可执行文件.于此同时,PC机上也可使用gcc工具链生成可执行代码 ...

  3. Java学习笔记——从零开始(2018.04.22已更新)

    2018.04.08 --Java开发入门-- -计算机基本概念- •什么是计算机 计算机是一种能够按照程序运行,自动.高速处理海量数据的现代化智能电子设备.由硬件和软件所组成,没有安装任何软件的计算 ...

  4. android7 编译配置摄像头,MTK平台新增摄像头指南 -- 已更新android 7.0路径的更改。...

    增加驱动及配置到Kernel 层: 增加驱动文件夹到如下目录: mediatek\custom\common\kernel\imgsensor\ mediatek\custom\mt6582[mt81 ...

  5. 网络拓扑自动扫描工具推荐-S-mart市场已上新

    蓝鲸社区S-mart市场一直为大家免费提供一些脚本工具.应用系统.以及一些实用插件. 产品的贡献方除了蓝鲸外,也有不少来自蓝鲸合作伙伴,到目前S-mart市场已上架了79个不同的产品! 作为蓝鲸唯一的 ...

  6. CLion 使用 clang-cl 工具链时未正确链接 vcpkg 中的 Boost 外部库

    TL;DR: 简单来说是 CLion 的问题; 解决方法就是避免使用 clang-cl 工具链. 2023/02/24 更新: 最新的 CLion EAP 似乎已经修正了这个问题. 昨天比较闲, 就给 ...

  7. devops 开源工具链_使用开源工具构建DevOps管道的初学者指南

    devops 开源工具链 DevOps已成为修复缓慢,孤立或其他功能不正常的软件开发流程的默认答案. 但是,当您不熟悉DevOps并且不确定从哪里开始时,这并不意味着什么. 本文探讨了什么是DevOp ...

  8. 区块链技术指南学习笔记2

    区块链技术指南学习笔记2 密码学 Hash 算法与数字摘要 常见hash算法 数字摘要 加解密算法 加解密系统基本组成 对称加密算法 非对称加密算法 消息认证码与数字签名 消息认证码 数字签名 数字证 ...

  9. TQ2440 学习笔记—— 8、自己制作工具链

    (韦东山--嵌入式Linux 应用开发完全手册) 自己编译工具链: 如果要基于gcc 和glibc 来制作工具链,可以使用crosstool 来进行编译: 如果要基于gcc 和uClibc 来制作工具 ...

最新文章

  1. 选择最合适的预测性维护传感器
  2. asp.net mvc 自定义全局过滤器 验证用户是否登录
  3. spring map使用annotation泛型注入问题分析
  4. 互联网晚报 | 9月20日 星期一 | 阿里淘菜菜新增“找好友微信代付”入口;百度进军货运赛道;北京环球度假区今起正式开放...
  5. mysql项目数据库文档_项目mysql数据库
  6. w2008 R2 401 - 未授权: 由于凭据无效,访问被拒绝。
  7. java.lang.ExceptionInInitializerError解决办法
  8. HDU 1301 - Jungle Roads( Prim求最小生成树 )
  9. 数位板驱动压力测试_【又来甩锅了】数位板/数位屏延迟怎么办?
  10. 小程序毕设作品之微信美食菜谱小程序毕业设计成品(6)开题答辩PPT
  11. 跨平台 H264 H265/HEVC 编解码 硬件加速
  12. 用51单片机演奏Beyond《海阔天空》
  13. 2017 年终总结 --- 忙碌而又颇有意义的一年
  14. @程序员:连小学生都开始学编程了,你们怕了吗?
  15. 【SpringBoot实战】分布式定时任务锁Shedlock
  16. 基于javaweb的自习室图书馆座位预约管理系统(java+ssm+jsp+easyui+mysql)
  17. n平方的求和公式_1到N的平方和,立方和公式是怎么推导的?
  18. 标准紧固件、垫片、轴环
  19. mysql_check_mysql CHECK约束 语法
  20. 浙大PAT考试1077~1080(2014上机复试题目)

热门文章

  1. 如何写好外贸函电?利用7C原则
  2. 邮箱怎么发邮件,邮件发信量多少,职场新人怎么发汇报邮件呢?
  3. 图片缩放、旋转、加水印
  4. linux系统压缩与解压
  5. 五虎遁月 和 五鼠遁时 法
  6. 教你如何用TreeView树形菜单创建像CSDN左边那样的导航之一:如何安装配置TreeView
  7. 攻防世界-web新手区wp
  8. Timeunit与sleep
  9. ipsec VPN技术(基础篇二)
  10. 青少年使用计算机过度头疼事例,青少年间歇性头疼怎么回事