风过空庭,字句正徐来。
关于关于本站关于我给我点钱
更多时间线友链文件服务wiki
联系写留言发邮件GitHub
© 2024-2026 yono. | RSS 订阅 | 站点地图 | | Stay hungry. Stay foolish.
Powered by Mix Space&
白い
.
| 粤 ICP 备2024284785号-1 |
正在被0人看爆
纸白微明,未成篇章。

力荐插件!EIDE 替代 Keil

(已编辑)
/
564
AI·GEN

关键洞察

这篇文章上次修改于,可能部分内容已经不适用,如有疑问可询问作者。

力荐插件!EIDE 替代 Keil

  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • 大致介绍

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

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

    为什么选择 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 。

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

    开始使用

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

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

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

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

    开发环境的坑

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

    汇编编译的大坑

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

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

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

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

    单步调试的配置

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

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

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

    其中需要重点配置的是

    • "cwd":current working directory 当前工作目录,通常其他人将这里配置为 ${workspaceRoot},由于我们的工作区不止一个文件夹,我们至少会有 EIDE 工程文件夹和 SRC 源码文件夹两个,所以这里后面需要添加:EIDE的后缀,引到 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“:查看变量实时值和计算式答案的选项,实际上是默认开启的,可以不用配置