嵌入式软件工程师常用的

e940da3546e433044cdf12d0b688edc2.png

最近我换工作了,看见不同嵌入式软件工程师用的平台都不一样,所以我整理了一下。

PlatformIO:

多平台支持: PlatformIO支持多种嵌入式平台,包括Arduino、ESP8266、ESP32、STM32等,通过一致的开发接口实现平台无关性。

内置库管理: 提供内置的库管理系统,使得搜索、安装和更新开源库变得非常方便。

调试支持: 集成了多种调试器的支持,方便在硬件上进行调试。

优势: PlatformIO提供了简便易用的开发流程,适用于初学者和专业开发者。其跨平台性和丰富的平台支持使得在不同硬件平台上进行开发变得更加灵活。

Visual Studio Code (VSCode):

插件生态系统: VSCode拥有丰富的插件生态系统,包括用于嵌入式开发的插件,如调试器、语法高亮、代码补全等。

内置终端: 集成了终端,允许在编辑器内运行命令,提高开发效率。

版本控制: 内置Git支持,方便进行版本控制。

优势: VSCode的轻量级、高度可扩展的特性使得它适用于各种嵌入式项目。插件系统支持多种嵌入式平台和调试器。

Eclipse IDE for C/C++ Developers:

插件支持: Eclipse通过插件支持多种嵌入式平台,提供完整的工具链,包括编译器、调试器和仿真器。

代码重构: 提供丰富的代码重构工具,方便进行代码优化和维护。

项目管理: 强大的项目管理工具,支持各种构建系统。

优势: Eclipse是一个通用性强的IDE,通过插件可以满足各种嵌入式开发需求。它的开源特性使得团队可以灵活定制工具链。

Keil µVision:

ARM支持: 专为ARM架构的微控制器设计,提供完整的ARM工具链。

CMSIS支持: 集成了CMSIS,提供了一致的API和设备支持,方便开发者使用标准接口进行开发。

仿真: 具有强大的仿真器,用于在不同ARM Cortex-M微控制器上测试代码。

优势: Keil µVision专注于ARM架构的微控制器开发,提供了高度优化的工具链和仿真环境,适合需要对ARM平台进行深度开发的项目。

IAR Embedded Workbench:

编译器: 提供高度优化的编译器,支持多种架构,包括ARM、AVR等。

调试: 集成了调试器和性能分析工具,支持多种实时操作系统。

RTOS支持: 支持多种实时操作系统,方便开发多任务应用。

优势: IAR Embedded Workbench提供了一套完整的工具链,特别适用于对代码效率和性能有严格要求的项目。其实时操作系统支持使得多任务应用开发更加方便。

Qt Creator:

Qt集成: 提供了对Qt应用程序的深度集成,包括Qt Designer和Qt Assistant,方便进行界面设计和文档查看。

C++和QML支持: 支持C++和QML,适用于嵌入式Linux系统和Qt应用程序的开发。

调试: 集成了直观的调试器,方便调试Qt应用程序。

优势: Qt Creator是一个专为Qt应用程序开发设计的IDE,对于需要在嵌入式Linux系统上进行Qt应用程序开发的项目非常有优势。

MPLAB X IDE:

工具链: 集成了完整的开发工具链,包括编译器、调试器和仿真器。

插件支持: 提供了丰富的插件支持,以适应不同的项目需求。项目管理: 提供直观的项目管理和配置,方便快速启动项目。

优势: MPLAB X IDE是Microchip专为其PIC和dsPIC系列微控制器提供的集成开发环境,提供了完整的工具链和丰富的支持。

==========

往期回顾:

单片机的RTC获取网络时间

我都不知道的PWM的很偏的问题

一个小细节,精度提供一大截
最近发生了很多事情,聊聊心里话

==========

6ca03d5b9767bfa8483f40007f13bb8c.png

2d71b26aa654209a907c753d60524dcc.png

64bf33a29db859243f746d7902410fed.png

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

使用ClickHouse UDF与OpenAI模型集成

本文字数:14683;估计阅读时间:37 分钟 作者:Dale McDiarmid 审校:庄晓东(魏庄) 本文在公众号【ClickHouseInc】首发 Meetup活动 ClickHouse Shenzhen User Group第1届 Meetup 火热报名中&#x…

计算机提示找不到vcruntime140.dll,无法继续执行代码怎么办?如何修复

“找不到vcruntime140.dll,无法继续执行代码”。这个问题可能会让你感到困惑,不知道如何解决。那么,vcruntime140.dll是什么文件?它为什么会丢失?又该如何解决这个问题呢?本文将为你详细介绍vcruntime140.d…

教师未来前景发展

教师是一个光荣而重要的职业,他们承担着培养下一代的责任和使命。随着社会的不断发展和变化,教师的前景也在不断扩大和改变。本文将探讨教师未来的前景发展,并提供一些思考和建议。 首先,教师的就业前景将继续扩大。随着人口的增长…

自定义Springboot项目启动横幅⭐️ 附平平淡淡的周末日常

2023/12/24 天气晴 温度适宜 一觉睡到九点半,谁是神仙,我是神仙日常三联,喂鸡,刷博,肝任务今阳光甚好,遂寻吾之莆田,翻其面,光得以入之,余卧炕&#xff0…

单片机原理及应用

一、任务说明 1.主要任务 本实践环节“51单片机商用电子计价秤设计”要求收集市场电子秤的应用场景的功能列表,给出本系统各功能的参数范围,分析质量检测功能的实现方法,设计单片机仿真系统并通过Proteus进行测试,电子秤是利用物…

注意:国内发生多起Oracle 勒索病毒!

摘要:近期,国内发生多起针对Oracle 数据库的勒索病毒案例,通过分析,该勒索病毒通过网络流传的“PL/SQLDeveloper破解版”进行传播。 1.病毒发起的原因及问题现象 近期,国内发生多起针对Oracle 数据库的勒索病毒案例&…

池化层(pooling)

目录 一、池化层 1、最大池化层 2、平均池化层 3、总结 二、代码实现 1、最大池化与平均池化 2、填充和步幅(padding和strides) 3、多个通道 4、总结 一、池化层 1、最大池化层 2、平均池化层 3、总结 池化层返回窗口中最大或平均值环节卷积层对位置的敏感性同样有窗口…

每日一题——LeetCode888

方法一 个人方法: 交换后要达到相同的数量,那么意味着这个相同的数量就是两个人总数的平均值,假设A总共有4个,B总共有8个,那么最后两个人都要达到6个,如果A的第一盒糖果只有1个,那么B就要给出6…

祝福各位CSDN的小伙伴圣诞快乐

1.源码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><title>圣诞树&#x1f384;</title><link rel"stylesheet" href"https://cdnjs.cloudflare.com/ajax/libs/normalize/5.0.0/n…

分布式事务2PC二阶段提交详解

文章目录 概述和概念执行过程和工作流程特点优劣势应用场景总结demo代码样例 概述和概念 二阶段提交&#xff08;2PC&#xff09;是一种用于确保在分布式系统中的所有节点在进行事务提交时保持一致性的算法 二阶段提交&#xff08;Two-Phase Commit&#xff0c;2PC&#xff09…

身为Java“搬砖”程序员,你掌握了多线程吗?

摘要&#xff1a;互联网的每一个角落&#xff0c;无论是大型电商平台的秒杀活动&#xff0c;社交平台的实时消息推送&#xff0c;还是在线视频平台的流量洪峰&#xff0c;背后都离不开多线程技术的支持。在数字化转型的过程中&#xff0c;高并发、高性能是衡量系统性能的核心指…

做到这两条,破解35岁中年危机

最近我在看吴军老师的《富足》这本书&#xff0c;其中有一篇文章讲的是如何破解35岁中年危机&#xff0c;我觉得讲清楚了这个问题的本质&#xff0c;我在这里分享给你&#xff0c;以下内容大部分摘抄自《破解35岁中年危机》一章。 35岁中年危机的原因 35岁中年危机的说法好像…

Navicat for mysql备份与恢复

文章目录 一、Navicat for mysql备份1.打开navicat&#xff0c;找到备份2.点击新建备份&#xff0c;直接点备份3.备份完成 二、恢复数据1.删除表2.点击备份&#xff0c;选中备份文件&#xff0c;点击还原备份3.还原完成 三、其他命令四、视频演示总结 一、Navicat for mysql备份…

ZLMediaKit中的RingBuffer

前面的文章讲到ZLMediaKit转流&#xff0c;提到过RingBuffer&#xff0c;它是比较核心的数据结构。这篇文章就来讲讲RingBuffer的用法。 RingBuffer的类体系 RingBuffer是由多个类组成&#xff0c;分为两大功能&#xff1a;存储和数据分发。 存储功能由类RingStorage实现&…

图形图像处理车牌识别系统设计matlab

wx供重浩&#xff1a;创享日记 对话框发送&#xff1a;车牌识别 获取完整源码源文件论文报告 一、 摘要: 随这图形图像技术的发展&#xff0c;现在的车牌识别技术准确率越来越高&#xff0c;识别速度越来越快。无论何种形式的车牌识别系统&#xff0c;它们都是由触发、图像采…

【JavaWeb学习笔记】15 - jQuery

项目代码 https://github.com/yinhai1114/JavaWeb_LearningCode/tree/main/jquery 目录 零、官方文档 一、jQuery基本介绍 1.基本介绍 2.原理图 二、JQuery入门使用 1.下载JQuery 2.jQuery快速入门 三、jQuery对象 1.什么是jQuery对象? 2.DOM对象转换成jQuery对象 …

电子电器架构(E/E)演化 —— 主流主机厂域集中架构概述

电子电器架构(E/E)演化 —— 主流主机厂域集中架构概述 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。…

2008-2021年商业银行数据(农商行、城商行、国有行、股份制银行)

2008-2021年商业银行数据&#xff08;农商行、城商行、国有行、股份制银行&#xff09; 1、时间&#xff1a;2008-2021年 2、范围&#xff1a;1700银行 3 、指标&#xff1a;证券简称、year、证券代码、资产总计、负债合计、所有者权益合计、利润总额、净利润、贷款总额、存…

【六大排序详解】中篇 :选择排序 与 堆排序

选择排序 与 堆排序 选择排序 选择排序 与 堆排序1 选择排序1.1 选择排序原理1.2 排序步骤1.3 代码实现 2 堆排序2.1 堆排序原理2.1.1 大堆与小堆2.1.2 向上调整算法2.1.3 向下调整算法 2.2 排序步骤2.3 代码实现 3 时间复杂度分析 Thanks♪(&#xff65;ω&#xff65;)&#…

你真的理解了阻塞和非阻塞、同步和异步吗?

阻塞和非阻塞是一种状态&#xff0c;关键要看调用线程有没有被挂起。以处理I/O为例&#xff0c;如果是调用线程处理阻塞型I/O&#xff0c;那么调用线程会被挂起&#xff0c;此时调用线程就是阻塞的&#xff1b;如果调用线程处理的是非阻塞I/O&#xff0c;调用线程开启了I/O之后…