ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

DAVE用户手册-Getting Started 7

2021-10-06 10:30:34  阅读:214  来源: 互联网

标签:Started APP 视图 DAVE API 移除 用户手册 连接


7.DAVE APP剖析

使用DAVE APP完成一个应用,还调试了一把,现在可以揭开盖子看看APP的组成了。
一个DAVE APP:

  1. 向用户提供API
  2. 被内部连接在一起的硬件资源为中心环绕
  3. 自行完成用例
  4. 或者,成为APP层级的一部分。

DAVE APP图例

在这里插入图片描述
图1:一个APP的剖面图

构建一个应用

在这里插入图片描述
图2:DAVE APP的堆叠
在上图中,BLDC马达控制APP聚合了2种硬件资源,一种用于位置检测,另一种用于inverter switches所需的PWM生成。它需要追踪实时马达数据,传送给一个分析工具。因此它使用了TRACE APP的服务。TRACE APP使用了UART APP把追踪数据传送给运行在PC上的分析工具。即:BLDC APP的API调用了TRACE APP的API,而后者调用了UART APP的API。
BLDC和UART APP都需要CLOCK APP来配置时钟资源。
在这里插入图片描述
在工程中添加APP后,其API并不能立即被使用,你还需要使用GUI配置它,并让DAVE生成代码。这样才能产生源代码文件,APP提供的API就位于其中。

代码生成

代码生成,就是根据你键入的配置信息生成APP源代码库的过程。
为工程加入一个APP后,DAVE创建一个基于数据模型的数据容器,来容纳该APP的所有数据。多个APP需要多个数据容器。
在这里插入图片描述
当你使用GUI配置APP时,你实际上是在配置APP运行所需的资源。你的配置会进入APP的数据容器。当生成代码时,DAVE的代码引擎拾取容器中的数据,使用C语言创建包含配置信息的数据结构。该数据结构将由你的应用代码传送给APP的初始化API。

从工程中移除APP

有时工程中添加了错误的APP,或者APP不再需要了。DAVE提供了如下2种选项来移除APP。

  1. 移除被选中的APP以及依赖树中其上的所有APP
  2. 移除被选中的APP以及依赖树中其上和其下的所有APP

可以通过下述方法移除APP:

  1. 在APP依赖树视图中选中APP,按Del键。
  2. 在APP依赖树视图中选中APP,点右键,选择‘Remove’
  3. 在APP依赖视图中选中APP,按Del键。
  4. 在APP依赖视图中选中APP,点右键,选择‘Remove’

移除APP时,会弹出一个窗口提示用户选择移除选项
在这里插入图片描述
图3:移除选项对话框

DAVE APP源代码结构

一个APP:

  • 生成<app_name>_conf.c和可选的<app_name>_conf.h
  • 从模板中拷贝事务逻辑,生成<app_name>.h和<app_name>.c
  • 例如,gpio_conf.c(生成的),gpio_h和gpio.c(拷贝的,不是生成的)

APP信号连接-获取芯片中合适的资源

注意看下图
在这里插入图片描述
图4:外设之间的连接
一个CCU4外设有4个独立的定时器,图4展示了其中的2个。
Microcontroller-A把CC40的TIMER_STATUS输出连接到ADC-2的TRIGGER,把CC41的输出连接到P5.2引脚。
Microcontroller-B把CC40的TIMER_STATUS输出连接到DMA,把CC41的输出连接到ADC-0。
想象这个方案。我们有了一个实现定时器服务管理的APP,可称之为TIMER APP。类似地,可以利用ADC功能开发一个ADC APP。
在这里插入图片描述
这里并不指定APP使用的硬件资源,也就是说,TIMER APP只是要求一个CC4,但没有指明是CC40还是CC41.
现在,假设你想创建一个如下应用:
在这里插入图片描述
图5:使用未指定硬件的APP创建的应用
在Microcontroller A和B上,这个应用都可以正常运行。通配符 ’*‘ 表示 “这些APP不需要指定CC4和ADC里的哪个实例,只要选择好一个实例给它们连接上就可以”
在这里插入图片描述
在上面的应用中,把2个信号连接起来,就是告诉DAVE在Microcontroller 上分配一个CC4片(指CC40~CC43其中之一),用于与一个ADC的实例连接。后面会细说。
如果在Microcontroller A上做这个应用,DAVE会分配CC40和ADC2。而在Microcontroller B上,分配的可能是CC41和ADC0。根据信号连接情况,DAVE会自动分配合适的资源。

在这里插入图片描述
记住,如果你在一款XMC MCU上实现了一个应用,想把这个应用移植到另一款XMC MCU上,你不必再去读参考手册。你要做的只是使用DAVE的移植功能,把工程移植到另一款MCU上。DAVE会评估移植的可行性。如果可行,会自动选择适合你的应用的外设。

APP信号连接-外设之间的连接编程

这是另一幅图
在这里插入图片描述
图6:可编程的顶层连接
图6展示了CC40的TIMER_MATCH_EVENT信号有2个连接目标 - DMA,和一个NVIC节点。寄存器CC40EVENTSEL的TM_DEST位决定了连接目标。
现在看看这个
在这里插入图片描述
图7:可编程的顶层连接
把CCU APP的TIMER_MATCH_EVENT信号连接到INTERRUPT APP的INTERRUPT信号时,DAVE自动计算要赋给TM_DEST位的值。这些位域在 <app_name>_Init 接口函数中编程。<app_name>_Init 接口函数从<app_name>_conf.c中的配置数据结构中取值。
在这里插入图片描述
作为最终用户,你永远不用操心这些与多路复用、多路分配和切换相关的顶层内部连接的编程。DAVE和APP会精确的做好这些。

HW Connectivity视图

向工程中添加了必要的APP之后,切换到HW Connectivity视图,可以快速进行APP与硬件资源之间的连接。
让我们用生成PWM信号的APP操练一下。新建一个工程,添加PWM APP。
在这里插入图片描述
图8:切到HW connectivity视图
在这里插入图片描述
图9:HW Connectivity视图
在图9中可以看到CLOCK_XMC4、GLOBAL_CCU4和PWM这些APP的硬件资源的连接。
在这里插入图片描述
图9展示了PWM APP建立的连接。你可以通过编程来修改它们,从而设定你自己的“预先建立”连接。

继续。向工程添加一个INTERRUPT APP。然后把PWM APP的compare match信号连接到INTERRUPT APP的NVIC节点信号。保存。
在这里插入图片描述
图10:用户连接
注意观察连接线的颜色:用户建立的连接的颜色与APP自动建立的连接的颜色是不同的。

标签:Started,APP,视图,DAVE,API,移除,用户手册,连接
来源: https://blog.csdn.net/luge1983/article/details/120610463

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有