CH583/2构建工程教程

CH583/2构建工程教程

  • 绪论
  • 资源
  • 移植步骤
    • 准备
    • 移植
      • 步骤一
      • 步骤二
    • 工程配置
      • 修改工程名
        • 修改前
        • 修改后
      • 工程配置
        • 修改资源文件
      • 修改C/C++ general
      • 修改C/C++构建
        • 修改汇编交叉编译
        • 修改C交叉编译
        • 修改GNU RISC-V Cross Linker
      • 修改跟编译
    • 移植注意事项

绪论

资源

CH583/2的SDK下载

移植步骤

准备

以CH583的BLE_UART程序ble_demo为模板创建自己的工程。
1.新建一个属于自己的工程ble_demo,工程名没有要求(可根据自己项目或者自己喜好来,非中文名即可)。本次移植教程以demo命名。
2.本次以CH583EVT\EVT\EXAM\BLE\BLE_UART下的“BLE_UART”工程为模板做移植。
3. 移植相关资源文件
(1)工程依赖的资源有CH583EVT\EVT\EXAM\SRC下Ld、RVMSIS、Startup、StdPeriphDriver文件夹资源;
(2)工程依赖的资源有CH583EVT\EVT\EXAM\BLE\HAL下的文件夹资源;
(3)工程依赖的资源有CH583EVT\EVT\EXAM\BLE\LIB下的文件夹资源;
(4)工程依赖的资源有CH583EVT\EVT\EXAM\BLE\BLE_UART下的文件夹资源;

移植

步骤一

将CH583EVT\EVT\EXAM\BLE\BLE_UART下的所有文件复制到ble_demo文件夹下
在这里插入图片描述

步骤二

将CH583EVT\EVT\EXAM\SRC下的所有文件复制到ble_demo文件夹### 步骤三
将CH583EVT\EVT\EXAM\BLE\HAL下的所有文件复制到ble_demo文件夹下### 步骤四
将CH583EVT\EVT\EXAM\BLE\LIB下的所有文件复制到ble_demo文件夹下

在这里插入图片描述

看到如上图目录结构后,表示工程文件准备完成,剩下就需要进行工程配置。

工程配置

双击“BLE_UART.wvproj”打开工程,进行工程配置。

修改工程名

第一步,点击工程右键找到修改工程名,将工程名改为“ble_demo”,方便我们移植(这一步非必须也可以不修改)。

修改前

在这里插入图片描述

修改后

在这里插入图片描述

工程配置

选中工程名右键单击找到属性选项点击进入,进去后如下:
在这里插入图片描述

修改资源文件

对链接的资源文件进行删除。
(1)删除前
在这里插入图片描述
(2)删除后

在这里插入图片描述

修改C/C++ general

打开路径和符号找到资源位置,将相关文件夹文件路径删除一遍。
(1)删除前
在这里插入图片描述
(2)删除后
在这里插入图片描述

修改C/C++构建

打开设置进入工具设置,如下图。
在这里插入图片描述
下面进行详细配置。

修改汇编交叉编译

修改路径到正确的位置。
(1)修改前
在这里插入图片描述

(2)修改后
在这里插入图片描述

修改C交叉编译

找到右上角的“+”,修改路径到正确的位置。
(1)修改前
在这里插入图片描述

(2)清除干净
删除掉原本的路径
在这里插入图片描述

(3)修改后
将工程下的路径全部引入进来。
在这里插入图片描述

修改GNU RISC-V Cross Linker

(1)更新general
更新Link.ld文件的路径,更新后如图(根据自己放置位置选定即可):
在这里插入图片描述
(2) Librariles
更新LIB、StdPeriphDriver到工程下的正确路径。
更改前:
在这里插入图片描述
更改后:
在这里插入图片描述
到这一步后点击应用跟关闭即可。

修改跟编译

(1)回到工程,进项编译后提示如下错误.
这个过程不是所有工程都会出现报错,如果编译通过则说明文件没有问题。这里报错是因为程序在这复用,我们直接将其排除不参与编辑即可。
在这里插入图片描述
(2)打开SDK的demo对比
在这里插入图片描述
(3)选择不需要参与编译的文件,点击右键选择排除编译,修改后如图。
在这里插入图片描述
(4)重新进行工程编译
重现编译后,可以看到工程可以正常编译了。
在这里插入图片描述
(5) 其他
打开工程hal部分开开,跟原工程对吧,有需要排除编译的可以做排除编译。

移植注意事项

(1)当遇到找不到头文件或者路径提示时,说明路径没有引入完全,找到对象文件夹重新引入即可。

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

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

相关文章

Java课题笔记~ 整合第三方技术

1. 整合JUnit 问题导入 回忆一下Spring整合JUnit的步骤&#xff1f; 1.1 Spring整合JUnit&#xff08;复习&#xff09; 1.2 SpringBoot整合JUnit 【第一步】添加整合junit起步依赖(可以直接勾选) <dependency><groupId>org.springframework.boot</groupId…

flutter对数组中某个数据二次加工成单独的数组

如何将数据[2,1,2,2,2,1,2,2,3,2,2,2,2,3,2,2,2,2,2,3,2,4,2,2,1,2,3,2,4,2]加工成 [[2], 1, [2, 2, 2], 1, [2, 2], 3, [2, 2, 2, 2], 3, [2, 2, 2, 2, 2], 3, [2], 4, [2, 2], 1, [2], 3, [2], 4, [2]]。这是实际工作中遇到的问题&#xff0c;UI要求将某一类型数据&#xff…

前端实习day30

今天又是一个繁忙的一天&#xff0c;加功能&#xff0c;改样式&#xff0c;改得头皮发麻&#xff0c;预定的任务还是没能完成&#xff0c;改起来真得太头疼&#xff0c;代码太乱了&#xff01;&#xff01;昨天那个bug&#xff0c;今天问了一下同事&#xff0c;不到五分钟就解决…

无涯教程-PHP - intval() 函数

PHP 7引入了一个新函数 intdiv()&#xff0c;该函数对其操作数执行整数除法并将该除法返回为int。 <?php$valueintdiv(10,3);var_dump($value);print(" ");print($value); ?> 它产生以下浏览器输出- int(3) 3 PHP - intval() 函数 - 无涯教程网无涯教程网…

Ubuntu Touch OTA-2 推出,支持 Fairphone 3 和 F(x)tec Pro1 X

导读UBports 基金会近日宣布为基于 Ubuntu 20.04 LTS (Focal Fossa) 的 Ubuntu Touch 移动操作系统发布并全面提供 OTA-2 软件更新。 Ubuntu Touch OTA-2 在首次 OTA 更新整整四个月后发布&#xff0c;支持新设备&#xff0c;包括 Fairphone 3、F(x)tec Pro1 X 和 Vollaphone X…

HarmonyOS开发第一步,熟知开发工具DevEco Studio

俗话说的好&#xff0c;工欲善其事&#xff0c;必先利其器&#xff0c;走进HarmonyOS第一步&#xff0c;开发工具必须先行&#xff0c;当然了&#xff0c;关于开发工具的使用&#xff0c;官网和其他的博客也有很多的讲解&#xff0c;但是并没有按照常用的功能进行概述&#xff…

C++信息学奥赛2049:【例5.19】字符串判等

这段代码的功能是比较两个输入的字符串是否相等&#xff08;忽略大小写和空格&#xff09;&#xff0c;并输出 “YES” 或 “NO”。 解析注释后的代码如下&#xff1a; #include<bits/stdc.h> using namespace std; int main() {string arr; // 定义字符串变量arr&…

solidity0.8.0的应用案例9:代理合约

代码由OpenZeppelin的Proxy合约简化而来。 代理模式 Solidity合约部署在链上之后,代码是不可变的(immutable)。这样既有优点,也有缺点: 优点:安全,用户知道会发生什么(大部分时候)。坏处:就算合约中存在bug,也不能修改或升级,只能部署新合约。但是新合约的地址与…

Keepalive+LVS群集部署

一、Keepalive概述 keepalived 软件起初是专为 LVS 负载均衡软件设计的&#xff0c;用来管理并监控 LVS集群中各个服务节点的状态&#xff0c;后来又加入了可以实现高可用的 VRRP 功能。因此&#xff0c;keepalived 除了能够管理 LVS集群外&#xff0c;还可以为其他服务&#…

内网安全:WMI协议与SMB协议横向移动

目录 网络拓扑图 网络环境说明 WMI协议 SMB协议 域内信息收集 WMI协议 - 横向移动 利用方式一&#xff1a;wmic命令 利用方式一&#xff1a;cscript 利用方式一&#xff1a;impacket SMB协议 - 横向移动 利用方式一&#xff1a;psexec 利用方式二&#xff1a;psexe…

Linux下的Shell编程——正则表达式入门(四)

前言&#xff1a; 正则表达式使用单个字符串来描述、匹配一系列符合某个语法规则的字符串。在很多文本编辑器里&#xff0c;正则表达式通常被用来检索、替换那些符合某个模式的文本。 在Linux 中&#xff0c;grep&#xff0c;sed&#xff0c;awk 等文本处理工具都支持…

golang 协程的实现原理

核心概念 要理解协程的实现, 首先需要了解go中的三个非常重要的概念, 它们分别是G, M和P, 没有看过golang源代码的可能会对它们感到陌生, 这三项是协程最主要的组成部分, 它们在golang的源代码中无处不在. G (goroutine) G是goroutine的头文字, goroutine可以解释为受管理的…

MFC为控件添加背景图片

1、 添加选择Bitmap导入图片&#xff0c;图片文件最好放在项目res目录中&#xff0c;同时是BMP格式。上传后的图片在资源视图&#xff0c;命名为IDB_BITMAP_M_BACK。 2、在cpp的C***Dlg::OnPaint()函数下添加如下代码 void C***Dlg::OnPaint() {CPaintDC dc(this); // device…

科技项目验收检测报告获取有哪些注意事项,作用都有哪些?

验收测试报告 软件从研发到结束是一个很长的周期&#xff0c;对于软件想要完成上市或者是交付到用户手中之前我们还需要进行一次全面检测&#xff0c;也就是科技项目验收测试&#xff0c;此测试有着严格的要求&#xff0c;需要第三方软件测评机构来完成&#xff0c;并出具科技…

软件配置安装(破解)--- maven下载配置

检查环境是否已有 首先检查一下电脑里有无maven环境&#xff0c;有的话就不用安装了 查看path环境中没有maven&#xff0c;开始准备接下来的重头戏 下载maven 下载bin.zip版 解压mavenxxxbin.zip &#xff08;建议把解压的文件放在一个文件夹内&#xff0c;命名英文的env…

C++,类的特殊函数练习

设计一个Per类&#xff0c;类中包含私有成员:姓名、年龄、指针成员身高、体重&#xff0c;再设计一个Stu类&#xff0c;类中包含私有成员:成绩、Per类对象p1&#xff0c;设计这两个类的构造函数、析构函数和拷贝构造函数。 #include <iostream> using namespace std;cla…

无类别域间路由(Classless Inter-Domain Routing, CIDR):理解IP网络和子网划分(传统的IP地址类ABCDE:分类网络)

文章目录 无类别域间路由&#xff08;CIDR&#xff09;&#xff1a;理解IP网络和子网划分引言传统的IP地址类关于“IP地址的浪费” IP地址与CIDRIP地址概述网络号与主机号CIDR记法&#xff08;网络 网络地址/子网掩码&#xff09;网络和广播地址 CIDR的优势减少路由表项缓解IP…

PDF校对:追求文档的精准与完美

随着数字化时代的到来&#xff0c;PDF已经成为了多数机构和个人首选的文件格式&#xff0c;原因在于它的稳定性、跨平台特性以及统一的显示效果。但是&#xff0c;对于任何需要公开或正式发布的文档&#xff0c;确保其内容的准确性是至关重要的&#xff0c;这就是PDF校对显得尤…

item_search_shop-获得淘宝/天猫店铺的所有商品

一、接口参数说明&#xff1a; item_search_shop-获得店铺的所有商品&#xff0c;点击更多API调试&#xff0c;请移步注册API账号点击获取测试key和secret 公共参数 请求地址: https://api-gw.onebound.cn/taobao/item_search_shop 名称类型必须描述keyString是调用key&…

图像分割unet系列------TransUnet详解

图像分割unet系列------TransUnet详解 1、TransUnet结构2、我关心的问题3、总结与展望 TransUnet发表于2021年&#xff0c;它是对UNet非常重要的改进&#xff0c;专为医学图像分割任务设计&#xff0c;特别用于在医学图像中分割器官或病变等解剖结构。 1、TransUnet结构 TransU…