Keil 5 优化方案

您所在的位置:网站首页 jlink配置文件 Keil 5 优化方案

Keil 5 优化方案

#Keil 5 优化方案| 来源: 网络整理| 查看: 265

/** * @file Keil_5_优化方案 * @brief 使用了 VSCode + Embedded IDE + Cortex-Debug 搭建 STM32 开发 & 调试 环境.可从 Keil 无缝衔接至 VSCode. * @note 就结果而言,这套工作环境在大多数方面都达到了持平或高于 Keil 的水平,唯一的美中不足是 debug 的时候无法在程序运行时实时查看变量,不过该有的诸如内存/堆栈查看、更改寄存器值等操作还是都有的. * * @author LumiFlux * @date 2023-02-13 * @copyright Copyright (c) 2023 北京理工大学机器人队 * */

目前版本的 EIDE 仅支持导入MDK(.uvprojx)、IAR(.eww)与Eclipse(.cproject)项目,本文以 MDK 为例.

引言 为什么要从 Keil 转移到 VSCode

Keil 作为老牌嵌入式开发软件,并且在界面做的一坨答辩的情况下被一直沿用至今,其功能确实无可置疑的强,甚至她的 Debug 功能时至今日少有人能出其右.然而她的问题也很明显:

语法检查: keil 的语法检查没有大问题,甚至 AC6 用到了 llvm 系列的语法检查.然而她的显示延迟实在过大,相信每个人都曾在实际的工程中,看到改完代码后, 0 warning 0 error 的情况下看到红线迟迟不消失. 代码补全: Keil 确实有代码补全功能,但是这个功能及其玄学,时而出现时而没有,而且只支持逐字搜索,不能像 VSCode 或 JB 家的 IDE 一样实现跳跃搜索. 代码高亮: Keil 仅对最基本的代码格式实现了高亮,远远看去白纸黑字,根本分不清哪个是哪个.

除此之外还有许多问题,包括但不限于:

缺少代码格式化功能. 对{},[],()," "等符号的优化非常糟糕. 时至今日还依然使用单线程编译工程,以至于 rebuild 少则 40s 多则数分钟.

所以,米娜桑,加入光荣的进化吧,对 Keil 使用 VSCode 罢!

本文默认阅读者已经安装了Keil uVersion5并进行了一定时间的实践.如果你没有安装过,请自行搜索安装keil或ARMCC V5.

VSCode

到VSCode官网安装即可.

Embedded IDE

这一部分很大程度上来源于EIDE官方文档(官中,推荐阅读),这里只介绍EIDE的基础用法.

EIDE简介

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

EIDE支持数量众多的工具链与调试器,如OpenOCD、GNU Arm Embedded Toolchain、JLink等,且对很多工具提供了一键安装的功能,配置简单,同时EIDE还提供了更加高效的编译、烧录程序.

EIDE安装 前置插件 Chinese(Simplified)(简体中文) 中文汉化(可选) C/C++ 提供C/C++语法支持 EIDE本体

打开 VSCode 插件市场,搜索并安装 Embedded IDE

你也可以通过github/eide下载离线安装包

image 安装成功后,EIDE将启动并自动安装 eide-binaries  和  .NET6 X64 ,安装完成后,重启VSCode应用插件. image

EIDE推荐插件

安装EIDE后,可在VCSode插件市场搜索@recommended以显示所有推荐的插件,可以按需下载,这里列举几个比较有用的插件

插件 作用 Arm Assembly 提供ARM64汇编语言语法高亮 Output Colorizer 提供日志文件着色 EIDE配置

安装 EIDE 后,在 VSCode 活动栏中将出现 EIDE 图标,点击可以打开 EIDE 工作区.

工具链配置 配置 ARMCC 工具链

点击EIDE工作区 -> 设置工具链 -> Keil MDK,在弹出的窗口中找到本地的 TOOLS.INI 文件,EIDE将自动为你定位 ARMCC 编译器路径.如有需要,你也可以使用设置工具链 -> ARMCC V5或ARMCC V6来单独配置 AC5 与 AC6 的路径.

安装 Keil uVersion5 时 TOOLS.INI 文件将安装在 Keil安装路径\TOOLS.INI.

EIDE 其它内置工具链的配置方法

EIDE 支持许多工具链,且提供了一键下载功能.点击安装实用工具并在弹出的菜单中点击所需的工具链即可完成下载.

工具链会自动安装至/.eide/tools,然后EIDE将导出bin路径到系统环境变量.如需查看已安装的工具链路径,可在VSCode终端面板中新建EIDE Treminal终端,输入ls env:查看所有环境变量.

其他设置

点击活动栏 -> EIDE -> 打开插件设置,找到并勾选EIDE.ARM.Potion: Axf To Elf,以便于之后的调试.

导入项目

打开点击EIDE 工作区 -> 导入项目 -> MDK ,在弹出的窗口中选择项目工程文件的.uvprojx,即可导入项目. image

导入后 EIDE 会弹出窗口,询问 EIDE 的存放目录,选择是否给 EIDE 工作区设置独立路径均可.

选择是否与 Keil 存放在同一目录下各有利弊,如果使用独立的 EIDE 工作目录可以保证工程文件的结构性,结构清晰,也便于多人协作时传输文件.但可能对 intelliSence 等功能产生一定的影响.

同时 EIDE 会在所选的工作区生成一个.code-workspace文件,之后可以使用打开项目打开之前的EIDE工程.

项目设置

在导入项目后,还需对项目的构建、烧录选项进行一些设置,每个工程仅需设置一次.

构建配置

这里可以设置项目所使用的编译器,点击构建配置右侧按钮即可配置(这里以ARMCC V5为例),选择AC5.同时在构建配置的下拉菜单中可以进一步的设置CPU类型,RAM/FLASH布局等.这些选项对应原Keil中的魔法棒工具,一部分在导入时会自动配置,一般保持默认即可.

烧录配置

这里可以设置项目所使用的烧录器类型,目前可供选择的有JLink,STLink,pyOCD,OpenOCD,Shell五种,根据需要选择即可.

JLink与OpenOCD可在安装使用工具中一键下载. STLink若找不到驱动/未安装驱动,在烧录时会询问是否自动安装,点击是即可.

CMSIS组件导入

EIDE 不支持一键导入 MDK 下的 RTE 组件,因此如果使用了一些包(例如arm_math),则需要手动导入,打开活动栏 -> 工程项目 -> 项目资源,在展开的::CMSIS文件夹上右键,选择添加文件,添加相应的组件即可.

无法打开源文件"arm_math.h"报错的解决办法

产生这个问题的原因为上一节所提到的RTE组件问题,在::CMSIS文件夹上右键,选择添加文件,找到并添加arm_cortexM4lf_math.lib, 并在项目属性 -> 包含目录中添加arm_math.h及相关库的头.

如果安装了Keil,arm_cortexM4lf_math.lib将位于Keil安装目录/ARM/PACK/ARM/CMSIS/5.0.1/Lib/ARM/,arm_math.h的包含目录为Keil安装目录/ARM/PACK/ARM/CMSIS/5.0.1/Includes

Cortex-Debug

EIDE仅提供了代码的编译及烧录功能, debug 功能由 Cortex-Debug 完成.

Cortex-Debug简介

ARM Cortex-M GDB Debugger support for VSCode

Cortex-Debug安装

打开 VSCode 插件市场,搜索 cortex-debug并安装.同时会自动安装debug-tracker-vscode,MemoryView,RTOS Views三个附加组件. image 此外,还需手动下载一个待调试芯片的支持包(这里以 STM32F4 为例) image

Cortex-Debug配置

点击VSCode活动栏中的EIDE按钮,选择安装实用工具,安装GNU Arm Embedded Toolchain (stable)与OpenOCD Programmer安装调试环境. 点击VSCode活动栏中的调试和运行按钮,点击齿轮图标. image 在弹出的窗口中选择(这里以OpenOCD-STLink为例)Cortex Debug: OpenOCD),紧接着会生成一段配置文件,主要修改以下配置:

"configFiles": [ "interface/stlink.cfg", -> 这个是你调试器的型号 "target/stm32f4x.cfg" -> 这个是芯片的型号 ], "executable": "build/debugDemo/debugDemo.elf" -> 这个是.elf文件的路径

更多使用方法可以查看Cortex-Debug Wiki或Cortex-debug 用法

一个工程示例

这里以队内代码框架(MDK工具链)举例

导入工程

在EIDE工作区点击导入项目.在弹出的下拉菜单中选择MDK image 在弹出的窗口中找到FrameDemo/MDK-ARM/FrameDemo.uvprojx点击打开 image 选择不与Keil项目储存在同一目录下,立即切换工作区 image 项目工程导入完成

配置工程

在EIDE工作区 -> FrameDemo -> 项目资源 -> ::CMSIS上右键,选择添加文件,找到并添加arm_cortexM4lf_math.lib,并在EIDE工作区 -> FrameDemo -> 项目属性 -> 包含目录添加Includes,具体细节参见 #无法打开源文件"arm_math.h"报错的解决办法

EIDE工作区 -> FrameDemo -> 构建配置选择AC5

EIDE工作区 -> FrameDemo -> 烧录配置选择STLink(以STLink为例)

编译&烧录

点击页面右上角烧录按钮,出现以下信息即编译成功 image 链接要烧录的板子,点击页面右上角烧录按钮,出现以下信息即烧录成功 image

终端的进度条出现乱码属于正常现象,为ARMCC5版本特性(

调试

点击活动栏 -> 运行和调试在调试按钮旁的下拉菜单中选择对应的调试器,点击调试按钮,出现以下页面即成功 image

如出现错误,请按照 #Cortex-Debug配置 配置launch.json

一些可以提高编写舒适度的外围插件 插件 作用 Doxygen Documentation Generator 一键生成函数注释及文档注释 C/C++ Snippets 使用代码块模板,避免重复性工作 TabNine AI Autocomplete AI 代码自动补全


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3