APP下载

基于TMS320C6678的通用嵌入式软件开发平台的研究

2019-07-19殷耀文

现代职业教育·职业培训 2019年4期
关键词:嵌入式软件存储空间外设

殷耀文

[摘           要]  论述了基于TMS320C6678 DSP通用嵌入式软件开发平台构建过程,从时钟、外设、资源分配三个维度的构建进行论述。通用嵌入式软件平台具有高度集成性、通用性、可扩展性。平台的构建成功为使用此款DSP开发的人员提供了极大的便利性。

[关    键   词]  TMS320C6678;通用嵌入式软件开发平台;外设;时钟;资源

[中图分类号]  TP319              [文献标志码]  A             [文章编号]  2096-0603(2019)12-0158-02

TMS320C6678是德州仪器公司研发的一款高性能定点计算和浮点计算数字信号处理器(DSP),基于TI的KeyStone多核体系结构,集成了八个C66X CORIPAC DSP,每个DSP的主频为1~1.25 GHz,最高能达到10 GHz主频。该DSP功耗低,支持高性能信号处理应用,广泛应用于机器视觉领域、通信、雷达领域、嵌入式分析领域、高端机床领域、多媒体领域、成像领域和计算机处理等领域。

一、概述

由于该DSP高速外设较多,主要有SRIO、PCIe、HyperLink、Gigabit Ethernet、64-Bit DDR3、EMIF、UART。如此多的外設加上时钟、电源、存储资源划分的配置,通常情况下,都是按需选取一两种外设进行开发使用。笔者结合多年的嵌入式软件开发工作经验,借鉴软件无线电的思想,将众多的外设、时钟配置、RAM存储资源整合在一个通用的软件开发平台上。本文将重点论述构建此平台的过程。

构建此平台的核心思想是追求通用性与易用性,能确保使用此款DSP芯片的开发者不用关心芯片的各种外设和使用细节,开发者所要做的只是在这个平台上部署自己的编程逻辑,通过与各种封装好的函数来操控DSP,平台达到了封装DSP硬件细节的作用,通过在实际项目过程中的实际应用,极大地简化了发者的开发过程。构建平台的主要过程为:①选择CCS V5开发环境配置DSP时钟->②配置DSP的DDR存储器->③配置UART->④配置配置SPI->⑤配置SRIO->⑥配置EDMA->⑦配置GPIO->⑧配置NDK(千兆网)->⑨配置CFG->配置L1P、L1D、L2->⑩平台构建完成。通用开发平台为CCS V5.3,开发语言为C语言,库文件为TI公司的bios_mcsdk_02_00_09_21_setupwin32,下文将按类型分步论述平台构建的具体过程。

二、时钟

TMS320C6678 DSP常用的时钟为1GHz,此外还有1.25GHz和800MHz,本文以配置主频是1GHz的过程来进行论述,具体配置过程如下:①通过配置pllc_hwSetup存器结构体来设置PLLC硬件参数->②通过调用CorePllGetHwSetup()函数来配置pll ->③通过调用SetPaPllConfig()函数配置PA_SS PLL->④配置完成,封装成Config_pll()函数。

上述过程描述了时钟的配置过程,主要是通过一系列配置寄存器和调用系统函数完成,最终封装成配置时钟的函数ConfigPll()函数供开发者调用。

三、外设

TMS320C6678 DSP集成了丰富的外设,该通用软件开发平台将众多的外设集成在一起,以供用户的不同实际调用需求,开发过程中的难点,一是各个软件外设驱动的开发,二是各外设在软件平台集成过程中资源冲突的问题,下文将以几个代表性的外设论述具体的外设集成过程。

(一)UART

TMS320C6678 DSP拥有一个UART串口,波特率可设置为1115200bps、9600bps、4800 bps等多种速率,主要用途为在数据量和速率要求较低时的数据通信和控制外围设备作用,UART的具体配置过程如下:①通过调用UartInit()函数初始化UART外设->②通过调用UartSetBaudRate()函数设置UART外设波特率->③通过封UartReadData()函数和UartReadData()函数设置UART读写函数->④配置完成,封装成Config_Uart()函数。

上述过程表述了外设UART的配置过程,完成对应的配置后,用户可根据实求通过集成通用平台调用读写函数(UartReadData()和UartWriteData()函数)完成通信和外围设备通信和控制功能。

(二)SRIO

SRIO是TMS320C6678 DSP的一个主要外设,具有高速率通信速度,如果配置成4*5GGbps模式,则最高速率可达20Gbps通信速率,同时支持读写两种数据传输模式,是本芯片的主要通信方式,承担骨干通信的任务,具体配置过程如下所示:①配置CPPI和QMSS设备->②配置SRIO寄存器(通信模式、大小端、速率)->③建立SRIO通信链路链接->④注册SRIO中断函数->⑤设置SRIO读写函数->⑥配置完成,最终封装成Config_srio()初始化函数、Srio_Send()数据发送函数、Srio_Read()数据接收函数、Srio_Doorbell()门铃发送函数、SrioDioIsr()中断响应函数。

通过上述的配置过程,开发者根据实际需要,调用集成平台的Config_srio()初始化函数、Srio_Send()数据发送函数、Srio_Read()数据接收函数、Srio_Doorbell()门铃发送函数、SrioDioIsr()中断响应函数实现TMS320C6678外设SRIO的使用。

四、资源

TMS320C6678 DSP有内部存储空间(L2SRAM),每个核的地址范围为(0x00800000-0x00078000),每个核的容量为512K,八个核共计4MB,属于高速读写存储介质。

外部存储空间(DDR3),最大容量支持2G,起始地址为(0x80000000),属于低速大容量读写存储介质。共享存储空间(MSMCSRAM),地址范圍为(0x0c000000-0x00400000),容量共计4MB,属于较高速读写存储介质。

根据每种存储资源的属性和特性,存储资源的配置规则如下:

1.将用户要求实时性处理最高的数据、程序段、系统开销,高速外设配置应该配置内部存储空间(L2SRAM);

2.将用户要求实时性处理较高的数据、程序段应该配置在共享存储空间(MSMCSRAM);

3.将用户要求实时性处理较低的数据、代码段、大容量数据、低速外设配置在片外空间(DDR3);

4.L1P和L1D由系统自动分配,按不同存储区域对DSP各存储元素进行了归类配置,经过实际验证,DSP在此配置模式下,通用软件集成平台能较稳定快速的运行。

五、结束语

TMS320C6678是当下一款非常主流多核DSP,此软件集成开发平台将开发者从繁重的底层设计中“解脱”出来,可以专注于自己算法功能的具体实现。该通用软件开发平台集通用性、便利性、集成性于一体,在实际的科研开发实践中,已应用于多个科研开发机构,并形成一定的标准化思想,下一步准备从优化平台框架入手,开发出更具轻便性的通用嵌入式软件开发平台。

参考文献:

[1]牛金海.TMS320C66x KeyStone 架构多核 DSP 入门与实例精解[M].上海:上海交通大学出版社,2014.

[2]邓豹.TMS320C6678多核DSP的加载配置和实现方法[J].航空计算技术,2017(1).

[3]董渊文,张永军,高晓亮,等.基于TMS320C6678多核DSP的分布式通信系统[J].微机与应用,2014.

[4]陈令刚,彭惠,孙谦,等.基于TMS320C6678 的双以太网UDP通讯系统设计与实现[J].工业控制计算机,2018(5).

编辑 李 静

猜你喜欢

嵌入式软件存储空间外设
基于ARM7TDMI架构的嵌入式软件逆向工程分析方法
苹果订阅捆绑服务Apple One正式上线
用了就回不去的APP
用好Windows 10保留的存储空间
浅析嵌入式软件技术的现状与发展动向
基于模型检查的嵌入式软件构件化分析与验证
嵌入式软件在计算机软件开发过程中的运用
外设天地行情
外设天地行情
外设天地行情