摘要

上一期讲了如何跨过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. loader调用过程
  2. big sur无法验证macos_网易邮箱出现重大失误,忘记续期HTTPS证书导致大量用户无法使用...
  3. php搜索文件名,php实现按文件名搜索文件的远程文件查找器
  4. leetcode- Sqrt(x)
  5. 试写函数显示当前具体时间:
  6. Centos/Red Hat6.8 安装、配置、启动Gitlab (内网环境)心得分享
  7. 理解lambda在linq中的应用
  8. python中嵌套函数的应用实例-实例详解python函数的对象、函数嵌套、名称空间和作用域...
  9. HDU——1134 Game of Connections
  10. float、定位、inline-block、兼容性需注意的特性总结
  11. 局域网共享工具_局域网共享精灵 V1.0局域网便携共享文件+打印机——墨涩网
  12. 从30天到1天,专业视频制作背后的技术探索之路
  13. 产品更新|用于语音压缩的新型极低比特率编解码器,Lyra 长什么样?
  14. 分形之皇冠(Crown)
  15. 认识计算机重点知识,认识计算机教案
  16. Markdown中如何打对勾/对号
  17. 手把手带你从0完成医疗行业影像图像检测三大经典模型InceptionV3-RestNet50-VGG16(附python源代码及数据库)——改变世界经典人工智能项目实战(一)手把手教学迁移学习
  18. 哪款蓝牙耳机游戏体验感好?适合打游戏的蓝牙耳机推荐
  19. Twincat3之C++
  20. 使用同步锁来实现线程安全---生产者与消费者

热门文章

  1. 20个PCB快捷键操作,提升绘图效率
  2. 用USBoot制作U盘启动盘
  3. DSP程序中 ,如何完成延时且不影响整体程序的工作效率
  4. Github 源码阅读神器:Octotree
  5. Octotree在GitHub中出错
  6. 判断系统误差的matlab,基于MATLAB的误差数据处理实验报告
  7. 前端常见的安全问题及防范措施
  8. FPGA设计标准I2S协议音频编解码器
  9. 【车标识别】基于SIFT算子的车标识别算法matlab仿真
  10. 移动平均法,滑动平均模型法(Moving average,MA)