使用KeilAssistant代替keil的UI界面

news2025/4/19 0:35:29

目录

一、keil Assistant的优势和缺点        

二、使用方法

(1)配置keil的路径

(2)导入并使用工程

(3)默认使用keil自带的ARM编译器而非GUN工具链


一、keil Assistant的优势和缺点        

在日常学习单片机的过程中,常见的教学视频采取的都是keil这个IDE来进行开发,但是这个软件的UI界面实在是惨不忍睹,就好像上个世纪的产物,并且在代码补齐方面支持的不好,让我头疼了许久。

      偶然间发现VScode的插件keil Assistant可以进行代码编辑,但是这种方式并不能直接VScode中创建一个工程,同时也不支持调试,仅仅利用到了VScode强大的代码补齐功能。当然在网络上还有较为完善的EIDE+GUN+STLink的开发环境搭建教学,但是他们都是基于CubeMX这个软件的,其中有一个较为关键的是有一个的链接脚本文件,是由CubeMX生成的,但是本人并没有使用过CubeMX,只能暂且使用KeilAssistant。

        不过由于我目前还不怎么涉及到调试,并没有很强的在Vscode调试的需求。所以并没有研究如何使用EIDE。当后续如果使用到了再来学习。

        当然keil Assistant仅仅只是用于代码编辑,编译,下载的。并不直接支持创建工程、或者在工程中创建、删除文件,所以一切的一切都需要你能够在keil中搭建好工程的框架。这个我们在之前的文章中着重讲解了。

二、使用方法

(1)配置keil的路径

(2)导入并使用工程

当你在vscode中编辑了代码,再进入keil界面的时候可以看到代码已经发生了更改。

(3)默认使用keil自带的ARM编译器而非GUN工具链

  1. 工具链来源
    • Keil Assistant:使用 Keil 自带的 ARM 编译器,工具链与 Keil IDE 捆绑,版本由 Keil 安装包决定。
    • GNU 工具链:需用户手动下载并配置(如 GCC ARM Embedded),工具链独立于 Keil,版本由用户自行选择。
  2. 配置复杂度
    • Keil Assistant:几乎无需额外配置,插件自动关联 Keil 的编译器路径。
    • GNU 工具链:需手动设置编译器路径、链接器脚本、编译选项等,配置过程较复杂。
  3. 功能特性
    • Keil Assistant:专注于 Keil 工程,支持 Keil 特有的功能(如 CMSIS 包管理、设备数据库)。
    • GNU 工具链:提供更通用的编译选项,支持跨平台开发,但需用户自行处理 Keil 特有的功能(如通过脚本模拟 CMSIS 包管理)。
  4. 调试支持
    • Keil Assistant:依赖 Keil 的调试器(如 ULINK),调试功能与 Keil IDE 一致。
    • GNU 工具链:通常结合 OpenOCD 或 J-Link GDB Server 进行调试,调试流程与 Keil 不同。

从上面的介绍你可以总结出来:

(1)ARM编译器是keil下载的时候就已经存在的,他不需要用户手动选择,而是下载的时候由安装包自动配置好了。

(2)ARM编译器分为ARMCC(ARM Compiler 5)和ARMCLANG(ARM Compiler 6),这个可以在keil中选择。

(3)如果想要使用GUN工具链,则需要手动配置一系列东西。譬如编译器路径、链接器脚本、编译选项。而我们并没有链接器脚本,所以不能使用,如果你后续使用了CubeMx可以考虑更换成GUN工具链。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2336844.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

FreeRTOS菜鸟入门(五)·空闲任务与阻塞延时的实现

目录 1. 实现空闲任务 1.1 定义空闲任务的栈 1.2 定义空闲任务的任务控制块 1.3 创建空闲任务 2. 实现阻塞延时 2.1 vTaskDelay()函数 2.2 修改 vTaskSwitchContext()函数 3. SysTick 中断服务函数 4. SysTick 初始化函数 通过之前我们了解知道,任…

JBOSS反序列化漏洞解析与防范策略CVE-2017-12149

JBOSS反序列化漏洞解析与防范策略 引言 JBOSS是一个流行的开源应用服务器,广泛应用于企业级应用程序的开发和部署。然而,由于其广泛的使用和复杂的架构,JBOSS也成为了黑客攻击的常见目标。近年来,多个JBOSS漏洞被曝光&#xff0…

Web3技术下数字资产数据保护的实践探索

在这个信息爆炸的时代,数字资产已经成为我们生活中不可或缺的一部分。随着Web3技术的兴起,它以其去中心化、透明性和安全性的特点,为数字资产的管理和保护提供了新的解决方案。本文将探讨Web3技术在数字资产数据保护方面的实践探索&#xff0…

从PPT到PNG:Python实现的高效PPT转图工具

从PPT到PNG:Python实现的高效PPT转图工具 在日常工作中,PPT(PowerPoint)文件是我们常用的演示工具。然而,有时候我们需要将PPT的内容提取为图片格式(如PNG)以便于展示或保存。手动将每一页PPT保…

Rust-引用借用规则

目录 一、概述 二、借用规则 三、详细解释 3.1 第一条规则 3.2 第二条规则 3.3 第三条规则 四、总结 Welcome to Code Blocks blog 本篇文章主要介绍了 [Rust-引用借用规则] ❤博主广交技术好友,喜欢文章的可以关注一下❤ 一、概述 Rust为确保程序在运行时不…

如何保障企业数据的安全?软件开发中的数据安全防护措施

引言 随着数字化转型的推进,数据已经成为企业最重要的资产之一。然而,随着数据量的增长,数据泄露、丢失和滥用的风险也不断增加。如何保障企业数据的安全,成为企业在进行软件开发时必须重点关注的问题。本文将介绍软件开发中的一些…

Linux安装开源版MQTT Broker——EMQX服务器环境从零到一的详细搭建教程

零、EMQX各个版本的区别 EMQX各个版本的功能对比详情https://docs.emqx.com/zh/emqx/latest/getting-started/feature-comparison.html

【软件工程大系】净室软件工程

净室软件工程(Cleanroom Software Engineering)是一种以缺陷预防(正确性验证)为核心的软件开发方法,旨在通过严格的工程规范和数学验证,在开发过程中避免缺陷的产生,而非依赖后期的测试和调试。…

软考 系统架构设计师系列知识点之杂项集萃(49)

接前一篇文章:软考 系统架构设计师系列知识点之杂项集萃(48) 第76题 某文件管理系统在磁盘上建立了位视图(bitmap),记录磁盘的使用情况。若磁盘上物理块的编号依次为:0、1、2、……&#xff1b…

JVM 调优不再难:AI 工具自动生成内存优化方案

在 Java 应用程序的开发与运行过程中,Java 虚拟机(JVM)的性能调优一直是一项极具挑战性的任务,尤其是内存优化方面。不合适的 JVM 内存配置可能会导致应用程序出现性能瓶颈,甚至频繁抛出内存溢出异常,影响业…

封装Tcp Socket

封装Tcp Socket 0. 前言1. Socket.hpp2. 简单的使用介绍 0. 前言 本文中用到的Log.hpp在笔者的历史文章中都有涉及,这里就不再粘贴源码了,学习地址如下:https://blog.csdn.net/weixin_73870552/article/details/145434855?spm1001.2014.3001…

Linux 入门九:Linux 进程间通信

概述 进程间通信(IPC,Inter-Process Communication)是指在不同进程之间传递数据和信息的机制。Linux 提供了多种 IPC 方式,包括管道、信号、信号量、消息队列、共享内存和套接字等。 方式 一、管道(Pipe&#xff09…

Redis之缓存更新策略

缓存更新策略 文章目录 缓存更新策略一、策略对比二、常见的缓存更新策略三、如何选择策略四、实际应用示例五、使用 Cache-Aside TTL 的方式,实现缓存商铺信息详情1.引入StringRedisTemplate2.将查询商铺信息加入缓存3.更新商铺信息时移除缓存总结 六、注意事项 一…

【leetcode100】杨辉三角

1、题目描述 给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中,每个数是它左上方和右上方的数的和。 示例 1: 输入: numRows 5 输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]示例 2: 输入: numRows 1 输出: [[1]…

Selenium2+Python自动化:利用JS解决click失效问题

文章目录 前言一、遇到的问题二、点击父元素问题分析解决办法实现思路 三、使用JS直接点击四、参考代码 前言 在使用Selenium2和Python进行自动化测试时,我们有时会遇到这样的情况:元素明明已经被成功定位,代码运行也没有报错,但…

OpenStack Yoga版安装笔记(十九)启动一个实例(Self-service networks)

1、概述 1.1 官方文档 Launch an instancehttps://docs.openstack.org/install-guide/launch-instance.html 《OpenStack Yoga版安装笔记(十四)启动一个实例》文档中,已经按照Option1: Provider networks创建网络。 本文按照Option2&#…

数学教学通讯杂志数学教学通讯杂志社数学教学通讯编辑部2025年第6期目录

课程教材教法 “课程思政”视域下的高中数学教学探索与实践——以“函数概念的发展历程”为例 赵文博; 3-617 PBL教学模式下高中统计教学的探索与实践——以“随机抽样(第一课时)”为例 陈沛余; 7-10 “三新”背景下的高中数学教学困境与应对…

C#容器源码分析 --- Dictionary<TKey,TValue>

Dictionary<TKey, TValue> 是 System.Collections.Generic 命名空间下的高性能键值对集合&#xff0c;其核心实现基于​​哈希表​​和​​链地址法&#xff08;Separate Chaining&#xff09;。 .Net4.8 Dictionary<TKey,TValue>源码地址&#xff1a; dictionary…

在 Visual Studio Code 中安装通义灵码 - 智能编码助手

高效的编码工具对于提升开发效率和代码质量至关重要。 通义灵码作为一款智能编码助手&#xff0c;为开发者提供了全方位的支持。 本文将详细介绍如何在 Visual Studio Code&#xff08;简称 VSCode&#xff09;中安装通义灵码&#xff0c;以及如何进行相关配置以开启智能编码…

idea报错java: 非法字符: ‘\ufeff‘解决方案

解决方案步骤以及说明 BOM是什么&#xff1f;1. BOM的作用2. 为什么会出现 \ufeff 错误&#xff1f;3. 如何解决 \ufeff 问题&#xff1f; 最后重新编译&#xff0c;即可运行&#xff01;&#xff01;&#xff01; BOM是什么&#xff1f; \ufeff 是 Unicode 中的 BOM&#xff0…