当前位置:网站首页>沁恒MCU从EVT中提取文件建立MounRiver独立工程
沁恒MCU从EVT中提取文件建立MounRiver独立工程
2022-08-05 05:15:00 【偶可不乖呢】
沁恒的MCU程序开发包简称EVT,是沁恒官方给出的芯片使用参考例程。
EVT开发包为了减少体积,将很多工程的文件复用。
当修改一个公用文件(像link.ld,StdPeriphDriver文件夹中的库文件)时,就会导致其他的工程无法使用。
然而复制整个EVT然后删除其他无用工程的做法,让每次打开工程都需要层层打开文件夹,比较麻烦。所以本文将讲解如何从EVT中提取文件,建立独立的工程。
沁恒系列ARM内核的基本通过KEIL打开,KEIL网上教程众多,所以这里将只讲解在MounRiver下如何根据自己的习惯建立独立的工程。
本文同时可以作为MounRiver如何添加头文件、如何添加库文件的教程。
这里以CH573作为示例芯片,我们首先要下载CH573的EVT开发包。

下载完EVT开发包后,将其解压出来:

CH573_List.txt中说明了整个EVT中的文件目录:

选择一个EVT中的工程文件夹,因为在工程中有很多需要设置的芯片参数,直接复制现有工程可以不需要单独设置芯片信息等参数,所以这里将其复制到打算存放独立工程的文件夹中:

将该工程文件夹重命名改为你想要的名字,然后进入文件夹中,打开MRS工程:

通过上图可以看到,工程中有一些文件找不到了,此时我们需要去EVT中将文件都复制到文件夹中,根据自己的喜好放置文件夹。
本文将根据本人的习惯讲解如何设置:
在工程目录下新建Core文件夹,该文件夹存放和芯片本身相关的文件:Link.ld、Startup.S、core_riscv.c等文件。
所以将EVT目录中的EXAM\SRC下面的Ld、RVMSIS、Startup三个文件夹复制到新建的Core文件夹下:

在工程目录下新建Drivers文件夹,该文件夹存放芯片外设驱动和其他的一些外部程序功能支持。
所以将EVT中用到的一些驱动支持先复制到Drivers文件夹中:


新建Src文件夹,将本来APP文件夹和Profile文件夹移动到Src中:

此时我们工程文件目录结构就整理好了:

此时就需要去MRS中调整工程参数了,打开MRS,右键本工程,选择properties:

首先删除虚拟链接的目录:

进入properties中的Resource下的Linked Resources选项,将Linked Resources选项卡下的所有链接目录彻底删除:

然后再去C/C++ General下Path and Symbols选项中的Source Location中,将所有的选项删除:

全删除后,会自动出现一个工程名的目录,此时不要继续删除,所以删除后如图:

点击Apply and Close即可。
至此,工程文件目录设置结束,该设置会自动搜索工程文件夹下所有的c文件,将其全部编译。准备添加其他c文件时,直接将文件复制到该工程文件夹下面的任意目录都可以。
此时我们在MRS中选中工程,右击,选择refresh:

刷新后,工程目录将改变为下图中的样子:

更改完工程的文件目录信息,就可以开始更改工程的头文件路径文件配置,右键工程,进入properties,按图指示进入头文件设置界面:

根据工程中现有的头文件目录,结合自己将文件移动到哪个目录,将头文件路径一一修改为移动后的文件夹,添加其他头文件点击修改旁边的新建即可:

头文件修改完毕后,继续修改ld文件配置:

因为ld文件复制到了其他位置,所以需要重新选择ld文件,修改后如下:

ld文件修改好后,需要修改库的所在位置,在上一步设置ld的下方就有Libraries选项卡,点击进入设置页面:

这里,右上方的选项是我们工程用到的Library的名字,下方是library的所在文件夹,这里我们将只需要修改文件夹信息,将文件夹改为移动后的位置,修改后如下:

如果还需要将其他库移动到本工程,首先根据第2步将库的头文件添加到工程,然后在此页面设置库文件,先在右上方添加库的名称(不知道名称可以去移植库的工程中查看),然后在右下方设置中添加库所在文件夹的位置即可。
最后点击Apply and Close,库文件的设置就结束了,整个工程的建立也就完成了。
最后测试一下编译效果:

可以看到编译成功,独立的工程建立完毕!
边栏推荐
- 【NFT开发】设计师无技术基础保姆级开发NFT教程在Opensea上全套开发一个NFT项目+构建Web3网站
- [Pytorch study notes] 9. How to evaluate the classification results of the classifier - using confusion matrix, F1-score, ROC curve, PR curve, etc. (taking Softmax binary classification as an example)
- SharedPreferences和SQlite数据库
- 【数据库和SQL学习笔记】3.数据操纵语言(DML)、SELECT查询初阶用法
- [Go through 11] Random Forest and Feature Engineering
- CVPR best paper winner Huang Gao's team from Tsinghua University presented the first dynamic network review
- 学习总结week2_1
- [Remember 1] June 29, 2022 Brother and brother double pain
- Spark ML学习相关资料整理
- 用GAN的方法来进行图片匹配!休斯顿大学提出用于文本图像匹配的对抗表示学习,消除模态差异!
猜你喜欢

轻松接入Azure AD+Oauth2 实现 SSO

【数据库和SQL学习笔记】4.SELECT查询2:排序(ORDER BY)、聚合函数、分组查询(GROUP BY)

CVPR best paper winner Huang Gao's team from Tsinghua University presented the first dynamic network review

Mysql-连接https域名的Mysql数据源踩的坑

【NFT开发】设计师无技术基础保姆级开发NFT教程在Opensea上全套开发一个NFT项目+构建Web3网站

解决端口占用问题

The difference between the operators and logical operators

SQL(1) - Add, delete, modify and search

Flink Distributed Cache 分布式缓存

CVPR2021 - Inception Convolution with Efficient Dilation Search
随机推荐
【Pytorch学习笔记】9.分类器的分类结果如何评估——使用混淆矩阵、F1-score、ROC曲线、PR曲线等(以Softmax二分类为例)
发顶会顶刊论文,你应该这样写作
Flink 状态与容错 ( state 和 Fault Tolerance)
dataframe 常用操作
数据库期末考试,选择、判断、填空题汇总
spingboot 容器项目完成CICD部署
IJCAI 2022|边界引导的伪装目标检测模型BGNet
BroadCast Receiver(广播)详解
【NFT网站】教你制作开发NFT预售网站官网Mint作品
Map、WeakMap
Day1:用原生JS把你的设备变成一台架子鼓!
Kubernetes常备技能
flink实例开发-batch批处理实例
读论文- pix2pix
【论文精读】R-CNN 之预测框回归(Bounding box regression)问题详述
【NFT开发】设计师无技术基础保姆级开发NFT教程在Opensea上全套开发一个NFT项目+构建Web3网站
Facial Motion Capture 调研
SparkML-初探-文本分类
ES6基础语法
2022年中总结关键词:裁员、年终奖、晋升、涨薪、疫情