banner
yono

yono

哈喽~欢迎光临
follow
github

24_7_12_力荐插件!EIDE替代Keil

大致介绍#

EIDE 是一个 VSCode 插件,用来开发单片机项目,比如: 是一个 VSCode 插件,用来开发单片机项目,比如:8051,  stm8,  stm32other cortex-m mcus ... ...

推荐 EIDE 做 keil 工程的后续应用开发,开板子开外设还是在 keil 中完成,毕竟是官方的,放心。同时 stm32cubemx 生成 keil 工程也是非常方便的,初探索外设还是 keil 进行好一些。

image

为什么选择 EIDE 而不是 PlatformIO IDE?#

最重要的是 EIDE 可以无缝导入 keil 工程!使得原本稳定的项目不必再验证,EIDE 支持 keil 唯一值钱的组件 ——AC6 编译器。

其次 EIDE 是国人开发的插件,社区沟通无压力,作者冲浪强度也很高、回帖非常及时,一些非插件的技术问题也可以试着骚扰作者。

以下为社区地址

Embedded IDE Forum (em-ide.com)

前期准备#

明确我们前期准备的目标,vscode+EIDE安装完成,并使得 EIDE 插件可以检测到 ARM-GCC 以及 AC6 的工具链存在。

安装这块本文就不手把手教学了

首要推荐是看官方文档,至少将官方文档中 "开始上手" 章节完整看完

安装 | Embedded IDE For VSCode (em-ide.com)

其次有一篇社区博文也不错,不过仍然最推荐跟着官方文档进行环境配置

[VSCODE] 基于 EIDE 插件搭建 vscode 下的 STM32 单片机开发环境 - Foriver - 博客园 (cnblogs.com)

额外准备#

额外准备是为调试而做的,众所周知,如果片上程序不能单步调试,那基本上是开发不了复杂程序的。

需要用到经典神器 Cortex-debug 插件。

再次引到官方社区的文档。

cortex-debug 用法 - 博客 - Embedded IDE Forum (em-ide.com)

简单来说,有如下两点需要配置

  1. 配置好 ARM-GCC 工具链地址,在我的环境中地址为C:\\111_APPS\\arm-gnu-toolchain-13.2.Rel1-mingw-w64-i686-arm-none-eabi\\bin,其中有 arm-none-eabi-gcc.exe、arm-none-eabi-ld.exe 等等工具链程序。
  2. 配置好你所需的 GDB 应用地址,例如我使用 JLink 调试,那么我需要配置好 JLink GDBServer Path ,在我的环境中地址为C:\111_APPS\SEGGER\JLink_V794f,其中有 JLinkGDBServer.exe 这个应用程序。如果你并非使用 JLink,或许需要借助 Openocd 调试,那么需要配置好 Openocd Path

我所设置的是设置中的这两项

image

image

开始使用#

对于初次使用 EIDE 插件的用户来说,首先建议弄一个备份过的 KEIL 工程用作测试,且在 KEIL 中保证这个工程可以正常编译、点亮板子。

依据官方文档导入这个工程

导入项目 | Embedded IDE For VSCode (em-ide.com)

导入时会弹出提示 —— 将 vscode 工作区项目放在何处,对于初次使用,建议直接和原来的 keil 工程文件放一起好了,避免额外的操作。但是使用测试工程熟悉新开发环境后,还是需要将各个不同开发环境的项目进行分离。如果不同的环境配置分离的能力都不具备,基本已经走远了。

image

开发环境的坑#

简单但又不简单的坑,与能否将开发环境开起来有关系,这里仅涉及到 AC6 编译器,gcc 编译器还是太弱了

汇编编译的大坑#

汇编器配置如下,这里有大坑!

我们拿到的汇编代码会使用不同的汇编格式编写。

  • gnu 格式,其特征:使用 /**/ 、//注释语句,使用  .syntax 、.section 、.global  之类的标签
  • arm 格式,其特征:使用 ; 作为注释开始,不使用 .xxx 开头的标签

那么需要自动选择汇编器类型,但是这里如果将汇编器类型配置为 auto,那么预处理器定义会不允许使用。就需要将汇编器选择为”arm-clang",然后加上汇编附加选项 “-masm=auto",就可以自动选择汇编器同时使用预定义了。

image

单步调试的配置#

众所周知,绝大多数 MCU 工程师都是假装软件工程师的硬件工程师。这些配置对于 MCU 工程师还是太困难了,这也是 KEIL 直到现在仍然是主流 IDE 的原因。

首先观察到调试页,添加一个工作区的调试配置,因为我们工程和源码分在不同的目录,还是以工作区作为调试配置的准则比较好

image

他会在工作区 json 下自动生成少量代码,通过补全手段或自己编写成如下的样子

其中需要重点配置的是

  • "cwd":current working directory 当前工作目录,通常其他人将这里配置为 ${workspaceRoot},由于我们的工作区不止一个文件夹,我们至少会有 EIDE 工程文件夹和 SRC 源码文件夹两个,所以这里后面需要添加的后缀,引到 EIDE 工程文件夹作为基址
  • "executable":是生成的可执行文件,在 EIDE 工程的编译输出目录去找
  • "name":调试任务的名字,后面会出现在调试页面的下拉框以供选择
  • "type":调试器类型,我们连接到芯片调试,填写 cortex-debug,使用 cortex-debug 插件调试即可
  • "device":芯片的完整型号,需要调试器支持,我们通常使用 JLink 的调试器 exe 可执行文件,那么也就是我们使用的 JLink 需要支持的名字,这里与烧录配置处的名字一样就好了。(如果烧录配置处配置错,麻烦就大了,叫人就好)
  • "servertype":根据你用的进行选择,这里我用的是 jlink,如果是 openocd 的改成 openocd 即可
  • "interface":调试接线方式
  • "svdFile":system view description,对于应用工程师这个可有可无,是用来在 debug 时看寄存器值的,想要有的话可以去 st 官网找,不过其他的单片机就可能不会公开 svd 文件了 (keil 的 pack 包可以提取到)
  • ”liveWatch“:查看变量实时值和计算式答案的选项,实际上是默认开启的,可以不用配置

image

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。