IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 基于TMS32F28035的CLA学习 -> 正文阅读

[嵌入式]基于TMS32F28035的CLA学习

? 部分内容参考:? ? DSP28035 CLA配置与调试步骤_lijialin_bit的博客-CSDN博客_cla调试??

????????控制律加速器通过添加并行处理来扩展?C28x?CPU?的功能。?CLA?处理的时间关键控制环路可实现低?ADC采样输出延迟。?因此,?CLA?支持更快速的系统响应和可高频率的控制环路。?将?CLA?用于时间关键任务可将CPU?解放出来去同时执行其它系统和通信功能。

以下是?CLA?主要特性列表
??时钟速率与主?CPU?一致?(SYSCLKOUT)
??一个独立的架构使得?CLA?能够独立于主?C28x?CPU?之外进行算法执行。
–?完整的总线架构:
??程序地址总线和程序数据总线
??数据地址总线、?数据读取总线、?和数据写入总线
–?独立的?8?级管道。
–?12?位程序计数器?(MPC)
–?4?个?32?位结果寄存器?(MR0-MR3)
–?2?个?16?位辅助寄存器?(MAR0,?MAR1)
–?状态寄存器?(MSTF)
??指令集包括:
–?IEEE?单精度(32?位)?浮点数学运算
–?带有并行载入或者存储的浮点数学
–?带有并行加法或者减法的浮点乘
–?1/X?和?1/sqrt(X)?估值
–?数据类型转换。
–?条件分支指令和调用
–?数据载入/存储操作
??CLA?程序代码能够包含多达?8?个任务或者中断处理例程。
–?每一个任务的开始地址由?MVECT?寄存器指定。
–?只要任务符合?CLA?内的程序内存空间,?对任务大小就没有限制。
–?每次处理并完成一个任务。?无任务嵌套。
–?任务完成时,?在?PIE?内标志一个任务专用中断。
–?当一个任务结束时,?下一个具有最高优先级的等待任务自动开始。
??任务触发机制:
–?借助于?IACK?指令的?C28x?CPU
–?任务?1?至?任务?7:?相应的?ADC?或?ePWM?模块中断。?例如:
??任务?1:?ADCINT1?或者?EPWM1_INT
??任务?2:?ADCINT2?或者?EPWM2_INT
??任务?7:?ADCINT7?或者?EPWM7_INT
–?任务?8:?ADCINT8?或者由?CPU?定时器?0?发出的任务。
??内存和共用外设:
–?两个专用消息?RAM?用于?CLA?和主?CPU?间的通信。
–?C28x?CPU?能够将?CLA?程序和数据内存映射到主?CPU?空间或者?CLA?空间。
–?CLA?可直接访问?ADC?结果寄存器、?比较器寄存器、?和?ePWM+HRPWM?寄存器。

CLA?被设计成减轻?CPU?的控制任务负担,?从而在主?CPU?(C28x)?内核上释放带宽。?它对诸如?PWM?和ADC?等与主?CPU?共用的控制外设具有访问权限。?如下图中所示,?CLA?有其自身的程序和数据总线,?并且独立执行主内核。?CLA?使用消息?RAM?与主内核进行交互,?并且与主?CPU?同时具有对控制外设的访问权限。?

CLA?不具有支持全标准?C?语言编译程序所需的硬件支持,?例如,?CLA?没有堆栈。?此外,?CLA?的指令集被精简了,?并且不能支持标准?C?语言编译程序的所有函数。?因此,?可提供编辑?CLA?的“CLA-C?编译程序”,?此编译程序支持大多数,?但不是全部?C?语言编译程序函数。?例如,?CLA?只支持函数调用的一级嵌套以避免函数调用中的系统开销。

程序调试说明:?

程序参考文件目录如下(Ti官网库函数):

??

CLA程序代码可包含多大8个任务或中断服务程
序,每个任务有两种触发机制:主CPU触发和外设中断信号触发:
1.?CPU触发:C28x?CPU通过IACK指令来触发任务执行,可以通过主CPU软件控制。
2.?外设中断触发:Task1-7可以通过ADC或者ePWM来触发控制;?

为了使用CLA,需要配置两块RAM区域,用于CLA与主CPU通讯使用,分别为CPUtoCLARAM以及CLAtoCPURAM,其中CPUtoCLARAM区域数据CPU可读可写,CLA只能读不能写,CLAtoCPURAM区域数据CLA可读可写,CPU只能读不能写。CLA可以直接访问ePWM、HRPWM、比较器和ADC结果寄存器?

CLA配置过程:

CMD文件配置

与没有CLA的工程相比,带有CLA的工程需要为CLA配置一个RAM区域存放代码和数据。?作为CLA与主CPU进行数据通讯的RAM空间,用于存放交互数据。

????????SECTION块为CLA部分相关的块分配地址,对应空间为PAGE中分配的CLA空间

主程序配置

在主程序中,需要对CLA进行初始化工作。首先设备初始化函数DeviceInit()中使能CLA的时钟

此例程需要运行任务Task1,Task1由ADC1的中断触发,当ADC1采样完成后,执行Task1程序进行数据处理,所以设置Task1的中断源为ADCINT1,并使能中断响应。

CLA初始化

CLA的函数需要在程序启动后主动运行一次,比如数据的初始化工作,因此在配置CLA时,使能CLA应答IACK,并且强行执行一次CLA任务。这里将Task8指定响应M_INT8中断,并使用CLA1ForceTask8()函数执行一次Task8任务,完成CLA数据的初始化。?

CLA程序的编写

CLA是可以直接操控PWM、ADC寄存器,操控PWM输出及读取ADC的采样结果;

CLA中进行操作的数据在声明时,需要注意这部分数据存放在CLA映射的RAM区域中。

对于CLA需要与CPU进行通讯的变量,指定存储在CPUtoCLA的RAM区域,这部分区域的数据,CPU可读可写,CLA只能读不能写。(同样如CLA程序需传递给CPU数据,在CPU中定义数据变量在RAM的CLA_CPU_MSGRAM区域,CLA可读可写,CPU只能读不能写

CLA程序的调试

CLA程序是不能通过仿真器打断点形式进行调试,必须通过在程序中插入debug语句才能调试。插入__medebugstop(),则程序会停止在此处。CLA可支持单步运行。

添加完debug后,在开发环境中进行设置,右键点击工程选择Properties->Built->C2000?Compiler->Processor?Options,Specify?CLA?support?必须设置为cla0。

调试步骤:

(1)编译程序,点击甲壳虫按钮进入调试界面

(2)调试界面选择XDS100V3?USB?Emulator_0/CLA然后右键点击Connect?Target

(3)连接成功后下载.out文件,Run->Load->Load?Symbols、

(4)下载成功后,断点直接跳到cla程序的debug,接下来可以进行单步调试了

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-04-09 18:36:52  更:2022-04-09 18:37:31 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 4:26:31-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码