当前位置: 首页 > news >正文

VS Code 用作嵌入式开发编辑器

使用 Keil MDK 进行嵌入式开发时,Keil 的编辑器相对于主流编辑器而言有些不方便,比如缺少暗色主题、缺少智能悬停感知(鼠标停在一个宏上,能自动展开最终的宏结果)、代码补全不好用等等,所以推荐使用 VS Code 来代替 Keil 的编辑器。本文用于记录所需的设置项。

  1. 安装 VS Code

  2. 安装 C/C++ 插件

  3. 使用 VS Code 打开 Keil 工程
    打开 VS Code,点击 File - Open Folder... 选中 Keil 工程文件夹。
    请添加图片描述

  4. 保存工作区(可选)

    主要目的是下次可以双击这个工作区图标来打开工程,一个 Keil 工程只需要保存一次。
    请添加图片描述

  5. 添加头文件

    Keil 工程文件夹内的头文件会自动查找,但工程依赖的一些头文件可能存在其它地方。所有不在工程文件夹内的头文件,都需要手动添加

    • 添加编译器提供的头文件

      编译器提供一些特定头文件和 C 库头文件,比如 stdint.h,缺少这个头文件,VS Code 识别不了代码中的 uint32_t

    • 添加 CMSIS 提供的头文件

    • 其它

    首先按下 F1 ,输入 c/c++ 选择C/C++:Edit configurations(UI):
    请添加图片描述
    Include path 中填入需要的头文件路径(注意:我这里使用的是 Keil MDK 编译器)。
    请添加图片描述

  6. 添加宏

    编译器会自带一些宏,比如 Keil 编译器则会定义宏 __CC_ARM,而有些代码和头文件会使用这些宏,在使用 VS Code 的时候就会找不到这些宏,从而导致语法错误。这些与编译器相关的宏需要我们自己添加。

    Defines 中,填入需要的宏(注意:我这里使用的是 Keil MDK 的 ARMCLANG编译器)
    请添加图片描述

  7. 从 Keil 中打开 VS Code工作区(可选)
    请添加图片描述
    Run Independent: 勾选,这样Keil不用等待VSCode执行完成。(这样就可以使用其它自定义工具菜单)。

  8. 隐藏不需要的文件和文件夹(可选)

    • 按下 ctrl+shift+P 打开显示所有命令,在输入框中输入settings 回车
    • 进入 User Settings 页面搜索 files.exclude
      请添加图片描述

相关文章:

VS Code 用作嵌入式开发编辑器

使用 Keil MDK 进行嵌入式开发时,Keil 的编辑器相对于主流编辑器而言有些不方便,比如缺少暗色主题、缺少智能悬停感知(鼠标停在一个宏上,能自动展开最终的宏结果)、代码补全不好用等等,所以推荐使用 VS Cod…...

【Python】网络爬虫经验之谈

爬虫经验之谈对爬虫的认识网站分析技术选型JS逆向反爬机制结语近段时间,因为工作需要做一些爬虫的开发,分享一下走过的坑和实战的经验吧!对爬虫的认识 F12查看的网络请求,找到相应的接口查看一下json数据来源和构造。我爬取的网站…...

数学建模美赛【LaTeX】公式、表格、图片

数学建模美赛【LaTeX】公式、表格、图片 1 宏包 \package{ } 就是在调用宏包,对计算机实在外行的同学姑且可以理解为工具箱。 每一个宏包里都定义了一些专门的命令,通过这些命令可以实现对于一类对象(如数学公式等)的统一排版&a…...

【大数据】YARN节点标签Node Label特性

简介 YARN 的 Node-label 特性能够将不同的机器类型进行分组调度,也可以根据不同的资源要求进行分区调度。运维人员可以根据节点的特性将其分为不同的分区来满足业务多维度的使用需求。YARN的Node-label功能将很好的试用于异构集群中,可以更好地管理和调…...

C# SolidWorks二次开发 API-命令标签页的切换与按钮错乱问题

这是一个网友咨询的问题,说他想控制默认打开文件之后solidworks上方工具栏的当前激活标签页。 之前我们提到过,制作Solidworks的插件也会在上面增加一个标签页,用来放自己开发的命令,经常开发的人肯定会遇到有时候更新版本,或者标…...

ElasticSearch 7.6.1

疑问 ES为什么这么快? 全文检索 听过一个程序扫描文本的每一个单词,针对单词建立索引,并保存该单词在文本中的位置,以及出现的次数。在检索查询时候,通过建立好的索引进行查询,将索引中单词对应的文本位…...

Linux系列 操作系统安装及服务控制(笔记)

作者简介:一名在校云计算网络运维学生、每天分享网络运维的学习经验、和学习笔记。 座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页​​​​​​ 目录 前言 一.操作系统 1.Linux系统三大类 (1)ubu…...

Linux基础 - NTP时间同步

‍‍🏡博客主页: Passerby_Wang的博客_CSDN博客-系统运维,云计算,Linux基础领域博主 🌐所属专栏:『Linux基础』 🌌上期文章: Linux基础 - DNS服务进阶 📰如觉得博主文章写的不错或对你有所帮助…...

golang 入门教程:迷你 Twitter 后端

请记住,这个项目主要是为了稍微熟悉下Golang,您可以复制架构,但该项目缺少适当的 ORM,没有适当的身份验证或授权,我完全无视中间件,也没有测试。 我将在其自己的部分中讨论所有这些问题,但重要的…...

CPP2022-30-期末模拟测试03

6-1 引用作函数形参交换两个整数 分数 5 全屏浏览题目 切换布局 作者 李廷元 单位 中国民用航空飞行学院 设计一个void类型的函数Swap&#xff0c;该函数有两个引用类型的参数&#xff0c;函数功能为实现两个整数交换的操作。 裁判测试程序样例&#xff1a; #include <…...

华为OD机试真题Python实现【最多等和不相交连续子序列】真题+解题思路+代码(20222023)

🔥系列专栏 华为OD机试(Python)真题目录汇总华为OD机试(JAVA)真题目录汇总华为OD机试(C++)真题目录汇总华为OD机试(JavaScript)真题目录汇总文章目录 🔥系列专栏题目输入输出示例一输入输出说明示例二输入输出说明...

二叉搜索树

1.二叉搜索树 1.1.二叉搜索树概念 二叉搜索树又称二叉排序树&#xff0c;它或者是一颗空树&#xff0c;或者是具有一下性质的二叉树。 若它的左子树不为空&#xff0c;则左子树上的所有节点的值都小于根节点的值。若它的右子树不为空&#xff0c;则右子树上的所有节点的值都…...

数据结构(三):集合、字典、哈希表

数据结构&#xff08;三&#xff09;一、集合&#xff08;Set&#xff09;1.封装一个集合类2.集合常见的操作&#xff08;1&#xff09;并集&#xff08;2&#xff09;交集&#xff08;3&#xff09;差集&#xff08;4&#xff09;子集二、字典&#xff08;Map&#xff09;三、…...

Linux内核驱动开发(一)

Linux内核初探 linux操作系统历史 开发模式 git 分布式管理git clone 获取git push 提交git pull 更新 邮件组 mailing list patch 内核代码组成 Makfile arch 体系系统架构相关 block 块设备 crypto 加密算法 drivers 驱动&#xff08;85%&#xff09; atm 通信bluet…...

TCP/IP协议二十问

TCP/IP协议二十问 1. 什么是TCP网络分层&#xff1f; TCP网络分层一般分为五层&#xff1a; 应用层&#xff08;HTTP&#xff09;&#xff1a;组装数据包传输层&#xff08;TCP&#xff09;&#xff1a;增加TCP头部&#xff0c;包含端口号等信息网络互联层&#xff08;IP&am…...

常用Array数组操作方法

定义一个测试数组constplayers[{name:科比,num:24},{name:詹姆斯,num:23},{name:保罗,num:3},{name:威少,num:0},{name:杜兰特,num:35}]复制代码1、forEach参数代表含义item&#xff1a;遍历项index&#xff1a;遍历项的索引arr&#xff1a;数组本身Array.prototype.sx_forEach…...

【C++】set/multiset、map/multimap的使用

目录 一、关联式容器 二、set的介绍 1、接口count与容器multiset 2、接口lower_bound和upper_bound 三、map的介绍 1、接口insert 2、接口insert和operator[]和at 3、容器multimap 四、map和set相关OJ 1、前K个高频单词 2、两个数组的交集 一、关联式容器 vector、…...

vue3语法

vue3教程 //ps 这里是基本写法 一般项目不需要ref 因为需要一直return 这里是根据在不使用ts后缀 来在.vue里面写setup 如下图所示:setup setup是启动页面会自动执行的一个函数 项目里定义的所有变量&#xff0c;都要在setup当中 在setup定义的变量和方法&#xff0c;都需要r…...

对象之间的关系

目录1. 依赖2. 关联3. 聚合4. 组合Java的对象/类之间有四种关系&#xff1a;依赖、关联、组合、聚合。 1. 依赖 依赖&#xff08;Dependency&#xff09;&#xff1a; 一个对象的功能依赖于另一个对象。 类比&#xff1a;人类生存依赖食物和空气 体现&#xff1a;被依赖者体…...

云原生时代顶流消息中间件Apache Pulsar部署实操-上

文章目录安装运行时Java版本推荐Locally Standalone集群启动验证部署分布式集群部署说明初始化集群元数据部署BookKeeper部署BrokerAdmin客户端和验证Tiered Storage(层级存储)概述支持分级存储何时使用工作原理安装 运行时Java版本推荐 Locally Standalone集群 启动 # 下载…...

Python实现基于openCV+百度智能云平台实现《1:N人脸考勤机》文章最后附带源码!

目录 一、 项目介绍 1.1 项目名称 1.2 项目简介 1.3 项目物料 1.4 技术栈 二、 项目架构 三、项目细节 3.1 环境搭建 3.2 利用opencv实现摄像头调取及相关图像的采集 3.3 利用aips上传图像和结果返回 3.4 结果优化和处理 3.5 可扩展性 3.6 遗留问题和…...

因为锁的问题,我们被扣了1万

前言 春节放假期间&#xff0c;一个项目上的积分接口被刷&#xff0c;而且不止一个人在刷&#xff0c;并且东西也被兑走&#xff0c;放假晚上被人叫起来排查问题&#xff0c;通过这个人的积分明细观察&#xff0c;基本一秒就能获取一次&#xff0c;远远超过了积分规则限定的次…...

【STM32笔记】低功耗模式下的RTC唤醒(非闹钟唤醒,而是采用RTC_WAKEUPTIMER)

【STM32笔记】低功耗模式下的RTC唤醒&#xff08;非闹钟唤醒&#xff0c;而是采用RTC_WAKEUPTIMER&#xff09; 前文&#xff1a; blog.csdn.net/weixin_53403301/article/details/128216064 【STM32笔记】HAL库低功耗模式配置&#xff08;ADC唤醒无法使用、低功耗模式无法烧录…...

浏览器渲染中的相关概念

渲染 渲染流水线 构建 DOM 树 输入&#xff1a;HTML 文档&#xff1b;处理&#xff1a;HTML 解析器解析&#xff1b;输出&#xff1a;DOM 数据解构。 样式计算 输入&#xff1a;CSS 文本&#xff1b;处理&#xff1a;属性值标准化&#xff0c;每个节点具体样式&#xff08…...

【MySQL】数据类型

1、数据类型描述 类型类型举例整数类型TINYINT、SMALLINT、MEDIUMINT、INT(或INTEGER)、BIGINT浮点类型FLOAT、DOUBLE定点数类型DECIMAL位类型BIT日期时间类型YEAR、TIME、DATE、DATETIME、TIMESTAMP文本字符串类型CHAR、VARCHAR、TINYTEXT、TEXT、MEDIUMTEXT、LONGTEXT枚举类…...

L2-037 包装机

一种自动包装机的结构如图 1 所示。首先机器中有 N 条轨道&#xff0c;放置了一些物品。轨道下面有一个筐。当某条轨道的按钮被按下时&#xff0c;活塞向左推动&#xff0c;将轨道尽头的一件物品推落筐中。当 0 号按钮被按下时&#xff0c;机械手将抓取筐顶部的一件物品&#x…...

MySQL -查询日志、二进制日志、错误日志、慢查询日志

文章目录1.错误日志2.二进制日志3.查询日志4.慢查询日志1.错误日志 错误日志是 MySOL中最重要的日志之一&#xff0c;它记录了当 mvsald 启动和停止时&#xff0c;以及服务器在运行过程中发生任何严重错误时的相关信息当数据库出现任何故障导致无法正常使用时&#xff0c;建议…...

TCP实现可靠传输的实现

TCP实现可靠传输的实现 目录TCP实现可靠传输的实现ARQ协议停止等待协议&#xff08;古老&#xff09;连续ARQ协议累计重传&#xff08;回退N帧的ARQ协议&#xff09;缓存确认&#xff08;选择重传ARQ协议&#xff09;超时重传的时间选择TCP的流量控制零窗口探测报文段Nagle算法…...

2/14考试总结

时间安排 7:30–7:50 看题,T1可能是个数据结构之类的东西&#xff0c;T2是 dp &#xff0c;T3 构造。 7:50–8:20 T3,仿照样例的构造&#xff0c;可以通过一部分测试点。 8:20–9:20 T1,发现题目实际上要求子树内各儿子的深度信息&#xff0c;可以 dsu &#xff0c;对于不能暴…...

程序环境和预处理详解

文章目录一、程序环境1.1 - 翻译环境1.1.1 - 编译1.1.1.1 - 预编译&#xff08;预处理&#xff09;1.1.1.2 - 编译1.1.1.3 - 汇编1.1.2 - 链接1.2 - 执行环境二、预处理详解2.1 - 预定义符号2.2 - #define2.2.1 - #define 定义标识符2.2.1.1 - 语法2.2.1.2 - 建议2.2.2 - #defi…...

建设银行网站适用浏览器/厦门seo全网营销

Java中的set是一个不包含重复元素的集合&#xff0c;确切地说&#xff0c;是不包含e1.equals(e2)的元素对。Set中允许添加null。Set不能保证集合里元素的顺序。 在往set中添加元素时&#xff0c;如果指定元素不存在&#xff0c;则添加成功。也就是说&#xff0c;如果set中不存在…...

苏州seo建站/qq群排名优化

一、HTML5的data 属性&#xff0c;本质就是&#xff1a;一个用于保存数据的自定义属性。它们总是以 data- 作为前缀&#xff0c;后面跟随着描述性的&#xff08;只允许小写字母和连接字符-hyphens&#xff09;。 一个元素可以有任意数量的 data 属性。 <li data-id"1…...

住房城乡建设委 房管局 官方网站/微信crm

http://store.raspberrypi.com/projects?page3&categorygames...

给你一个网站怎么做性能测试/seo优化神器

在IBatis中我们可以灵活的选择DAO类型&#xff0c;也就是可以在底层选用不同的数据库操作方式。有常规方式、配置文件的方式、Hibernet的方式等&#xff1a;1、常规方式和我们之前的ADO.NET开发较为类似&#xff0c;都是将sql语句写在cs代码中进行调用&#xff1a;首先通过配置…...

wordpress鼠标点击/搜索引擎论文3000字

cubic从2.6.37到3.0之间有7个patch&#xff0c;从3.0到3.8(当前最新版本)中无patch。 描述 以下是提交者Stephen Hemminger对这个patch的描述&#xff1a; fix comparison of jiffies Jiffies wraps around therefore the correct way to compare is to use cast to signed val…...

wordpress下划线 代码/专业精准网络营销推广

最近对于 js 的 this 有些困惑. 说下目前, 我理解的一些场景的 this 的具体表示含义 在函数外, this 总是表示 window 对象在函数内, this 与调用者有关addEventListener 的回调函数, this 表示当前触发事件的元素内联事件, 例如元素的 onclick 属性, 如果 this 作为参数, 表…...