AI浪潮下嵌入式软件开发如何拥抱AI:VSCODE + MarscodeAI插件+Embedded IDE

AI浪潮下嵌入式软件开发如何拥抱AI:VSCODE + MarscodeAI插件+Embedded IDE

一、引言
AI浪潮席卷各个领域,各领域都在探索与AI技术深度融合以创新并提升效率。嵌入式软件开发领域同样面临此机遇与挑战。VSCODE作为流行的开源代码编辑器,与MarscodeAI插件、eide相结合,为嵌入式软件开发的AI融合提供了新思路与方法。
二、VSCODE在嵌入式软件开发中的基础地位
(一)多功能代码编辑
VSCODE代码编辑功能强大,支持多种编程语言,这对嵌入式软件开发意义重大。嵌入式软件常涉及C、C++等底层语言编写,VSCODE的语法高亮、自动补全和格式化功能可提高代码编写效率与准确性。例如编写ARM架构嵌入式系统启动代码时,语法高亮助开发者区分指令集和数据类型,自动补全可减轻记忆负担,快速输入函数名和变量名。
(二)丰富的插件生态系统
VSCODE的插件生态系统是一大优势。除AI插件外,还有众多嵌入式开发插件,如调试插件、版本控制插件等。这些插件可与AI插件协同工作,全方位支持嵌入式软件开发。例如调试嵌入式Linux系统应用程序时,可同时用AI插件获取优化建议,用版本控制插件确保代码迭代的稳定性和可追溯性。
三、MarscodeAI插件:为嵌入式软件开发注入AI能力
(一)智能代码补全与优化
MarscodeAI插件用AI算法分析代码,提供更智能的代码补全功能。在嵌入式软件开发中,能依上下文和项目需求更精准预测开发者要输入的代码片段。例如开发传感器数据采集处理的嵌入式程序时,插件可根据传感器初始化代码智能补全后续数据处理算法代码。它还能对已有代码提出优化建议,如发现循环冗余计算并给出改进方案,这有助于提升嵌入式软件性能,在资源受限的嵌入式设备上可减少内存占用和执行时间。
(二)代码错误检测与修复
MarscodeAI插件能检测嵌入式代码错误。嵌入式软件的特殊性在于小错误可能致系统崩溃。插件利用AI模型对代码语义分析,可发现指针越界、内存泄漏等常见错误,且不仅指出错误还提供修复建议。例如动态内存分配的嵌入式程序有内存泄漏风险时,插件可建议添加内存释放代码,提高软件稳定性和可靠性。
四、eide:嵌入式集成开发环境增强
(一)项目管理与构建自动化
eide负责嵌入式软件开发的项目管理与构建自动化,可与VSCODE和MarscodeAI插件无缝集成。项目管理上,eide能便捷组织嵌入式项目文件结构,管理不同硬件平台和软件版本。例如支持多微控制器的嵌入式项目,eide可清晰划分不同硬件平台的代码目录和配置文件。构建自动化方面,eide根据项目配置自动构建软件,减少手动构建错误。结合AI技术时,可利用AI插件分析结果优化构建过程,如根据代码复杂度和优化建议调整编译参数以提升性能。
(二)硬件抽象与设备驱动支持
eide提供硬件抽象层,方便嵌入式软件开发人员与不同硬件设备交互。在AI浪潮下,可与AI技术结合实现更智能的硬件管理。例如用AI算法监测和预测硬件设备运行状态,提前发现故障并在软件中采取措施。eide对设备驱动的支持也可借AI技术优化,如自动生成部分驱动代码或优化现有代码,提高设备运行效率和兼容性。
五、三者结合的工作流程
(一)先安装vscode,作为嵌入式开发,一直用keil或者iar来编译单片机,只有开发嵌入式Linux的时候才会用工具链+编辑器(understand或者sourceinsight),没有vscode的先安装,直接区vscode官网免费下载安装即可。
安装好之后打开

在这里插入图片描述

接下来安装插件

在这里插入图片描述

安装这些插件即可,其他的按需添加也可以。
Github copilot需要使用github账号或者微软账号,我一般不用,
点开Marscode AI,如果第一次点开会提示用抖音扫码,用抖音app扫一下就行了,点开如下:

在这里插入图片描述

再点开Embedded IDE,选择import,

在这里插入图片描述

选择keil ,注意只支持keil5及以上的工程

在这里插入图片描述

选择arm

在这里插入图片描述

选择自己的keil工程文件

在这里插入图片描述


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


在这里插入图片描述

添加完成后的eide的工程

在这里插入图片描述

编译试试看

在这里插入图片描述

完成
为了方便搜索代码,可以再工作区里面添加目录

在这里插入图片描述

Add folder to workspace

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述

(二)代码编写与AI辅助
代码编写时,MarscodeAI插件发挥作用,实时分析输入代码,提供智能补全、优化建议和错误检测等功能。开发者根据建议调整代码,同时VSCODE确保代码格式正确、易读。

在这里插入图片描述

有三个模型可以切换

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述

还支持文件分析和整个工程分析

在这里插入图片描述

还内置里ai指令,注释,分析,还有写单元测试用例

在这里插入图片描述

(三)构建与调试
代码编写完成后,eide构建项目。构建中根据AI插件优化建议调整构建参数。构建完成后如需调试,VSCODE调试插件结合eide硬件支持,方便调试嵌入式软件
六、面临的挑战与解决方案
(一)AI模型的准确性
MarscodeAI插件有效性取决于AI模型准确性。但嵌入式软件开发复杂多样,AI模型可能误判。解决方法是不断优化模型,收集更多嵌入式代码样本训练,结合人工审核机制筛选验证插件建议。
(二)系统资源占用
嵌入式设备资源有限,运行带AI功能的开发工具可能增加资源占用。可优化AI算法,在保证功能前提下减少内存和计算资源需求。如采用轻量级AI模型或量化压缩模型,eide在构建时根据目标设备资源情况决定是否启用某些AI功能。
(三)兼容性问题
VSCODE、MarscodeAI插件和eide需保持良好兼容性。各工具更新换代可能产生兼容性问题。需建立版本管理和测试机制,更新工具时测试整体兼容性,及时修复兼容性错误。
七、结论
AI浪潮下,嵌入式软件开发通过VSCODE + MarscodeAI插件+eide的组合能更好拥抱AI技术。该组合带来智能代码补全、错误检测修复、项目管理优化等优势。虽面临挑战,但不断优化改进有望进一步提升嵌入式软件开发效率和质量,推动嵌入式系统在更多智能应用场景发展。

Read more

Haversine 距离算法详解(零基础友好版)

作为算法领域的研究者,我会从用途、核心原理、前置知识、公式拆解、代码实现五个维度,给你讲清楚 Haversine 距离算法 —— 它是计算地球表面两点球面直线距离的经典算法,日常用的地图测距、打车软件预估里程,背后都有它的身影。 一、 算法的核心用途 我们生活的地球是一个近似球体,如果要计算两个地点(比如北京到上海)的 “直线距离”,不能直接用平面几何的勾股定理(因为地球表面是曲面)。 Haversine 算法的作用,就是基于两点的经纬度坐标,计算它们在地球球面上的最短距离(这个最短距离也叫大圆距离,即穿过球心的平面切割球面形成的圆弧长度)。 二、 必须掌握的前置知识 在理解公式前,先记住 3 个关键概念: 1. 经纬度的定义 * 纬度 (latitude):衡量地点南北位置,范围是 [-90°, 90°],赤道是 0°,北极是 90°N,南极是 90°S。

By Ne0inhk
Flutter 组件 simplify 的适配 鸿蒙Harmony 实战 - 驾驭路径精简算法、实现鸿蒙端高性能地理足迹渲染与矢量图形优化方案

Flutter 组件 simplify 的适配 鸿蒙Harmony 实战 - 驾驭路径精简算法、实现鸿蒙端高性能地理足迹渲染与矢量图形优化方案

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 组件 simplify 的适配 鸿蒙Harmony 实战 - 驾驭路径精简算法、实现鸿蒙端高性能地理足迹渲染与矢量图形优化方案 前言 在鸿蒙(OpenHarmony)生态的运动健康轨迹展示、高精度室内导航以及大规模矢量地图看板开发中,“路径性能”是决定用户滑动流畅度的核心红线。面对用户运动 1 小时产生的包含数万个(X, Y)坐标点的原始 GPS 序列。如果直接将其交给鸿蒙端的渲染层进行绘制,不仅会引发由于顶点(Vertices)过多导致的 GPU 负载饱和。更会由于频繁的坐标点内存申请(Memory Allocation),产生严重的 UI 掉帧与功耗飙升。 我们需要一种“去重存精、视觉无损”的几何精简艺术。 simplify 是一套专注于极致性能的 Douglas-Peucker 及其增强算法实现。它能瞬间将冗余的、

By Ne0inhk
【C++例题 / 训练】二分算法(模板 & 例题)

【C++例题 / 训练】二分算法(模板 & 例题)

引言 二分也就是二分查找,又叫折半查找。这种算法正如其名,每一次都要分一半。 二分算法可以分为二分查找和二分答案。 以在一个升序数组中查找一个数为例,每次考察数组当前部分的中间元素,如果中间元素刚好是要找的,就结束搜索过程;如果中间元素小于所查找的值,那么左侧的只会更小,不会有所查找的元素,只需到右侧查找;如果中间元素大于所查找的值同理,只需到左侧查找  二分法的使用条件 二分法是适用于解决具有“二段性”(单调性)的问题的方法,通常表现为求解满足某一条件的最大值或者最小值 上下界确定。 我们可以通过上下界的折半来优化查找。二段性: 对某一范围内的数据,存在一个临界点,使得临界点某一侧的所有数据都满足某一性质,另一侧的所有数据都不满足这一性质,就称这一范围内的数据具有二段性。 二段性包括单调性,即区间内有序,这样二分出来的结果是严格大于或者小于或等于target的。 但是,二段性也体现在非单调性上,也称为局部有序,可以参考 162. 寻找峰值 和 33. 搜索旋转排序数组。由这些题我们可以得知,二分法的奥义(本质)不在于单调性,而是二段性。也就是我们能对整体无序但局部有序的

By Ne0inhk

【顶尖无人机企业都在用的避障方案】:TOP 5算法对比及选型指南

第一章:无人机避障技术的发展现状与挑战 近年来,随着无人机在物流、农业、测绘和安防等领域的广泛应用,避障技术作为保障其安全飞行的核心能力,得到了快速演进。现代无人机避障系统普遍融合了多种传感器与智能算法,以实现对复杂环境的实时感知与响应。 主流避障传感器对比 不同类型的传感器在精度、成本和适用场景上各有优劣,常见的组合包括: 传感器类型探测距离优点局限性超声波0.1–5 m成本低,测距稳定易受温度和表面材质影响红外0.1–3 m响应快,体积小易受强光干扰激光雷达(LiDAR)1–100 m高精度,远距离成本高,体积较大立体视觉(Stereo Vision)0.5–20 m可识别纹理与形状依赖光照,计算量大 基于深度学习的动态避障策略 当前前沿研究倾向于将卷积神经网络(CNN)与强化学习结合,实现动态路径规划。例如,使用YOLOv8进行实时障碍物检测,并通过决策网络输出避障指令。 # 示例:使用OpenCV与YOLO进行障碍物检测 import cv2 net = cv2.

By Ne0inhk