首页 > 其他分享 >将SDK合并到工程的办法

将SDK合并到工程的办法

时间:2024-12-20 11:59:33浏览次数:7  
标签:工程 AgRV 合并 framework board copy SDK

本文档适用于SDK1.5.0以及之后的版本。

.

现在的开发环境下,

用户工程所在路径:\AgRV_pio\platforms\AgRV\examples

SDK驱动所在路径:\AgRV_pio\packages\framework-agrv_sdk

board代码所在路径:\AgRV_pio\packages\AgRV\boards\agrv2k_xxx

这种分散结构的设计,目的是功能分离:把用户不会改动的SDK分离出去,不常改动的board分离出去,开发者只需要关注自己工程下代码即可。

但这种结构对习惯于iar/keil的开发者来说,会带来两种不便:

  1. 不方便在vscode下直接查看驱动和board代码;
  2. 代码管理时,不方便整个工程打包。

尤其是SDK出现大的版本升级(驱动有改动的情况下),只备份用户代码,后续在新SDK版本上运行时,需要重新测试。

为此,这里提供一种整合方式(不再使用上述的分散结构,而是让SDK跟着应用程序一起走),供开发者参考。

.

目标:把工程的SDK代码和board代码都整合到应用工程下。

步骤概述:

  1. 将sdk部分copy到工程下;
  2. 将board下的代码copy到工程下;
  3. 修改platformio.ini来使用新的代码进行编译。

.

步骤详述:

(以example工程为例)

1. 将sdk的部分copy到工程下:

在example工程下新建一个名为framworks的文件夹,然后将\AgRV_pio\packages\下的framework-agrv_sdk 目录copy过去。如下图:

2. 将board下的代码copy到工程下:

在example工程下新建一个名为boards的文件夹,然后将\AgRV_pio\platforms\AgRV\boards\下文件copy过去(如用407,就copy文件夹agrv2k_407和407.json)。

以上步骤一和步骤二执行后,在vscode中可以看到目录结构如下:

3. 修改platformio.ini来使用新的代码进行编译:

首先,添加 inline_framework_dir = ./frameworks 来告诉编译器,寻找framework时优 先从这里寻找。(这里的SDK相当于一个framework)

添加后如图:

然后,修改对board文件夹的编译配置:

到这里,整合完毕。

整合后,工程中的后续操作(编译、下载)跟原来分散结构都是一样的。

.

另外,其实这里的inline_framework_dir方式,不止可以整合SDK到工程里,其他的 framework(如lwip,freeRTOS等)也同样可以这样整合进来。

inline_framework_dir的意义,就是告诉编译器,编译这些关联的framework时,优先从这里指定的路径下去找。如果找不到,才再到安装的路径下去找。所以,只要挪到这个路径下的framework,都会被优先使用。也就达到了把framework整合到自己工程的目的。

标签:工程,AgRV,合并,framework,board,copy,SDK
From: https://blog.csdn.net/xinxingzhe5127/article/details/144607834

相关文章

  • SpringCloud03-SpringCloud起步-搭建父工程
    SpringCloud起步搭建父工程1、总体介绍我们会使用一个Dept部门模块做一个微服务通用案例Consurmer消费者(Client)通过REST调用Provider提供者(Server)提供的服务回忆Spring、SpringMVC、Mybatis等以往学习的知识Maven的分包模块架构复习一个简单的Maven模块结构是这样......
  • 运维工程师40岁以后出路,零基础入门到精通,收藏这篇就够了
    随着云计算、大数据、人工智能、网络安全等技术的飞速发展,运维领域最吃香的方向也逐渐清晰。以下是对当前运维实际工作进行分析后,总结出的10个热门方向,供参考。1.云计算与云运维随着云计算的普及,越来越多的企业选择将业务部署在云端,如AWS、Azure、阿里云等。云运维因此成......
  • Visual Studio 、 MSBuild 、 Roslyn 、 .NET Runtime、SDK Tools之间的关系
    1.VisualStudioVisualStudio是一个集成开发环境(IDE),为开发者提供代码编写、调试、测试和发布等功能。它内置了MSBuild、Roslyn和SDKTools,并提供图形化界面来方便开发者进行项目管理和构建。与其他组件的关系:MSBuild是VisualStudio的默认构建系统,用于管理项目的构......
  • 写一个方法将多个数组合并成一个数组
    在前端开发中,JavaScript是一种常用的编程语言。在JavaScript中,你可以使用多种方法来合并数组。以下是一个简单的示例,展示如何使用Array.prototype.concat()方法来合并多个数组:functionmergeArrays(...arrays){letmergedArray=[];for(leti=0;i<arrays.......
  • 你认为优秀的前端工程师需要具备哪些软技能?
    优秀的前端工程师除了需要掌握扎实的硬技能(如HTML、CSS、JavaScript等编程语言和技术)外,还需要具备一系列软技能。以下是我认为优秀前端工程师应具备的软技能:沟通能力:前端工程师经常需要与后端工程师、UI设计师、产品经理等多个角色进行沟通。因此,清晰、准确地表达自己的观点和......
  • 【外设篇】STMG4芯片-Hal库-I2C通信AS5600编码器(基础工程)
    引言:AS5600为绝对值编码器,其接口有I2C和ADC两种,为配合FOC的10KHZ运行速率,博主使用I2C的DMA模式+高速波特率1MHZ或ADC模拟的方式读取电机电角度,并讲明绝对值编码器在PMSM电机里如何让电角度对齐正确角度,最后用STM32Cubemx和keil5实习代码。1.I2C的HAL库函数及ADC的HAL库函数......
  • P4556 [Vani有约会] 雨天的尾巴 /【模板】线段树合并
    [Vani有约会]雨天的尾巴/【模板】线段树合并题目背景深绘里一直很讨厌雨天。灼热的天气穿透了前半个夏天,后来一场大雨和随之而来的洪水,浇灭了一切。虽然深绘里家乡的小村落对洪水有着顽固的抵抗力,但也倒了几座老房子,几棵老树被连根拔起,以及田地里的粮食被弄得一片狼藉。无......
  • 记录一下:小华半导体HC32F448建立MDK工程
    1.先到官网上下载文件a>下载驱动库:HC32F448_DDL_Rev1.1.0.zip驱动库中是包括了例程的。b>下载样例:HC32F448_Template_Rev1.0.1.zip可以直接复制官方的样例,就不用自己创建工程了。c>下载芯片支持包:HC32F448_IDE_Rev1.0.1.zip下载后双击安装即可。否则KEIL中找到不芯片。2.......
  • 一个Java程序员具备什么样的素质和能力才可以称得上高级工程师?
    一个Java程序员具备什么样的素质和能力才可以称得上高级工程师?这个问题也引发了我的一些思考,可能很多人会说,“作为高级工程师,基础得过硬、得熟练掌握一门编程语言、至少看过一个优秀开源项目的源代码、有过高并发/性能优化的工作经验、沟通能力强等等”。上面这些都很对,这些......
  • Python语言编写多表格批量合并思路
    运用Python语言,可将同一文件夹下的多个表格整合为一个,可避免人工重复性工作,且提高准确性。实现数据的高效汇聚与统一管理,充分彰显Python在数据处理领域的卓越效能与便捷特性。的第一步,精准地选定即将开展表格合并操作所对应的目标文件夹,此文件夹作为整个数据整合的基础数......