摘要

上一期讲了如何跨过DSP2803x的首个学习门槛,快速入门这个系列芯片。这期给大家介绍一下这款芯片中算法加速利器CLA(Control Law Accelerator):独立可编程 且具备32bit浮点运算的协处理器。

什么是CLA

DSP2803x芯片是TI推出的经济型芯片,适用于对成本比较敏感的产品,所以主频相对较低(60MHz),不仅比不上面向高端的DSP28335,甚至还比不上古老的DSP281x。不过TI为了平衡性价比,在DSP2803x中加入了可编程浮点处理器。这个处理器可以独立于主CPU进行浮点运算,然后与主CPU交换数据。此外它还可以直接访问ePWM+HRPWM, Comparator 以及 ADC Result寄存器。如此,我们在编程的时候,可以将浮点运算放入CLA中运行,加快控制算法的计算频率。

CLA原理框图

CLA框图如下所示。

CLA任务触发机制(总计支持8个任务):

- 1. 可以通过主CPU用IACK指令触发

- 2. 也可以通过ADCINTx,EPWMx_INT或者CPU Timer 0进行触发.

- 3. 举例:Task 1:ADCINT1 or EPWM1_INT

存储区与数据外设共享

- 1. 有两块数据RAM区作为数据共享区:一块CLA可读写,CPU只读;另外一块CLA只读,CPU可读写

- 2.  CLA的程序和数据区可以通过CPU映射到CLA自有的或者CPU中区域

- 3. CLA可以直接访问ePWM+HRPWM, Comparator 和 ADC Result registers

- 4. 注意:除了1, 2, 3点描述的区域外,CLA访问其他区域的数据或者代码是无效的,回读的值为0.

主频: 最大频率为SYSCLKOUT的最大频率60Mhz.

编程语言

CLA支持的汇编指令相比完全版的TI DSP汇编指令要少了不少。最初CLA只支持用汇编编写,不过只要CGT版本大于6.4.x(具体版本号不太确定了,反正从CCS5开始就已经支持),CLA部分的代码也可以使用C语言进行编写。需要注意的是CLA部分的代码需要以.CLA结尾,这样编译器才能正常解析为汇编。

如何使用CLA

  1. 前期准备:可以遵照上一篇提到的方法和链接获取CLA的参考手册和工程源码。【DSP入门】一文带你跨过TI TMS320F2803x 首个学习门槛

  2. 打开TI的CLA范例工程,这边以CLA fir32为例:

    - 其中F28035_CLA_C.cmd为链接文件,里面重定义部分RAM和Flash区域,用于CLA的代码和共享数据存储;

    - fir32.cla:前面章节提到的task1-task8的执行代码

    - fir32_shared_data.c/fir32_shared.h:定义了CLA和CPU共享的

    - fir32_main.c:初始化代码和main loop

    - fir32_run.c/fir32_report.c:为了验证CLA的结果,在CPU中执行相同的浮点算法进行对比。

  3. 对照着芯片手册,查看各部分代码,理清程序脉络,开发自己的应用代码。

  4. 如果汇编基础较好,也可以直接用汇编编写CLA部分代码,这样就能够最大程度发挥CLA的效能。

转载是一种动力 分享是一种美德。欢迎扫码关注本公众号:芯连心嵌入式设计交流

【DSP入门】DSP2803x算法加速利器之CLA相关推荐

  1. DSP芯片上算法加速技巧总结

    #1    将多层或者双层循环改为单层循环.     让循环只形成一个pipeline,充分利用dsp的流水线,      #2    使用const关键字限定目标.         C6000编译器 ...

  2. OpenCV算法加速的一些学习总结

    一.概述 算法加速在实际软件层面应用来说 大数据和复杂计算的过程中 算法优化,指降低算法计算复杂度,设计新算法快速求解,比如Hungarian匹配算法.或牺牲一些内存,预计算一些重复计算的过程,减少程 ...

  3. 献给初学者-DSP入门教程【转】

    献给初学者-DSP入门教程 helloDSP论坛 前言:此资料也是来源于网络,并不是我们原创,但是希望这些资料能够给初学DSP的 朋友们一点帮助,也希望你们能够把这里当成是你们学习DSP技术的一个家园 ...

  4. 基于FPGA的深度学习算法加速

    学习总结--基于FPGA的深度学习算法加速 1.深度学习算法加速的方法 2.为什么用FPGA来加速YOLOV2 3.FPGA简介 4.PYNQ框架与HLS加速理论 5.实验结果 1.深度学习算法加速的 ...

  5. OpenCV算法加速(4)官方源码v4.5.5的默认并行和优化加速的编译选项是什么?请重点关注函数cv::getBuildInformation()的返回值

    举例opencv v4.5.5版本源码,Windows x64,VS2019,CMake https://github.com/opencv/opencv/tree/4.5.5 https://sou ...

  6. OpenCV算法加速(1)OpenMP/PPL/TTB基础知识

    一.提高OpenCV的运算速度,有以下几种方法: 1.利用x86转为x64提速,可以提高1倍的速度 2.多线程的openmp或Intel TBB提速,将cpu的利用率从20%多提高到100% 3.利用 ...

  7. dsp指令ixh_第一章 DSP入门教程(非常经典).pdf

    DSP 入门教程 1.TI DSP 的选型 主要考虑处理速度.功耗.程序存储器和数据存储器的容量.片内的资源,如定时器的数量. I/O 口数量.中断数量.DMA 通道数等.DSP 的主要供应商有 TI ...

  8. python利器的使用-图文详解python开发利器之ulipad的使用实践

    Ulipad是一个国人limodou编写的专业Python编辑器,它基于wxpython开发的GUI(图形化界面).下面这篇文章主要介绍了python开发利器之ulipad的使用实践,文中介绍的非常详 ...

  9. python利器怎么编程-Python任务调度利器之APScheduler详解

    任务调度应用场景 所谓的任务调度是指安排任务的执行计划,即何时执行,怎么执行等.在现实项目中经常出现它们的身影:特别是数据类项目,比如实时统计每5分钟网站的访问量,就需要每5分钟定时从日志数据分析访问 ...

  10. ML之FE:pandas库中数据分析利器之groupby分组函数、agg聚合函数、同时使用groupby与agg函数组合案例之详细攻略

    ML之FE:pandas库中数据分析利器之groupby分组函数.agg聚合函数.同时使用groupby与agg函数组合案例之详细攻略 目录 pandas库中数据分析利器之groupby分组函数.ag ...

最新文章

  1. 2021全国大学生智能汽车竞赛中小学组国赛获奖名单
  2. 国际软件设计文档——概要设计说明书
  3. webpack打包后引用cdn的js_利用CDN加速react webpack打包后的文件详解
  4. 基于spring的观察者模式
  5. MindSpore手写数字识别初体验,深度学习也没那么神秘嘛
  6. LintCode,hihoCoder,LeetCode有什么区别?
  7. docker提交容器成一个新的镜像commit和push,以及docker常用命令
  8. mysql字段是否存在_mysql怎么查询字段是否存在?
  9. 5G浪潮推动 射频产业风起云涌
  10. pandas表字段为空用其余表替换
  11. mysql之我们终将踩过的坑(优化)
  12. python之pygame,详解坦克大战
  13. SD卡无法格式化的原因分析
  14. linux 安全删除文件_如何在Linux上安全删除文件
  15. Unity中模型的面数问题
  16. 数据分析与挖掘(一)误差与精度
  17. 2022.12.14 英语背诵
  18. XDOJ-歌德巴赫猜想-35
  19. 4年外包终上岸,我只能说这类公司能不去就不去
  20. matlab接入交易,金字塔与MATLAB通过数据库交易对接

热门文章

  1. 计算机房空调设计标准,《数据中心制冷与空调设计标准》的要点
  2. 操作 神通数据库_国产神通数据库教程
  3. 网络安全|墨者学院在线靶场|投票系统程序设计缺陷分析
  4. 给大家推荐一个前端非常好用的量图软件(只能量psd的哦)像素大厨 PxCook 像素大厨使用方法
  5. 在JFlash中添加未知类型的单片机
  6. arm开发板挂载win10和ubuntu haneWIN NFS Server
  7. pandas填充空数组_Pandas 数据处理:空值清理、联级、合并、缺省空值填充
  8. 2023王道C语言训练营(哈希查找,串--KMP)
  9. layer.js之回调销毁对话框
  10. post请求测试软件,简单的Http请求测试工具(支持get,post)