缔冠期刊网

TigeiShark系列DSP的混合编程问题研究

2022-06-09

杜天有

(中国电子科技集团公司第二十研究所,陕西 西安 710068)

【摘要】介绍了在TS201上进行软件开发的几种方法,从工程实现的角度比较各自的优缺点,指出C/C++语言和汇编语言混合编程技术的优越性。之后详细阐述ccts编译器的C/C++运行时模型对TigerShark系列DSP芯片的C/C++混合编程所规定的调用规则和接口规范,并给出程序设计实例。对工程实践有很大的参考价值。

教育期刊网 http://www.jyqkw.com
关键词 DSP;混合编程

1C/C++语言和汇编语言混合编程特点

TS201的软件开发平台Visual DSP++允许用户从汇编语言、C语言的任意一种进行编程或者两种结合使用。C语言程序和汇编程序各具特点,根据不同的场合选择不同的编程语言。C语言程序除了具备可移植性好、兼容性好、软件资源丰富等优点外,对于这种DSP处理器的开发而言,采用C语言编写还能免去熟悉DSP指令体系、硬件的内部结构等工作,简单方便。但是,虽然汇编语言写程序代码长,程序检查也很困难,汇编语言的算法执行效率远远高于C语言。在程序设计的时候,可根据系统计算量、时间资源等选择适合的编程语言,同时也可以选择两种编程语言结合使用。在实际的工程中,常常采用的都是两种结合使用的方式,程序的框架和控制部分采用C语言设计,算法和数据传输部分采用汇编语言设计,这样程序就可读性好,同时执行效率高。

2混合编程参数传递规则

如果在C语言中调用汇编子程序,则这些汇编子程序必须遵守DSP运行规则,这些运行规则称为C语言实时运行模式。

2.1堆栈管理

实时运行堆栈就是内部存储器中的一个缓冲区,通过堆栈指针(j/k27寄存器)和帧指针(j/k26寄存器)进行堆栈的维护。堆栈主要用于保存局部变量,在函数中可能被修改的专用和保留寄存器的值,函数的输入输出参数以及链接信息。

ccts编译器目前使用两个堆栈。这两个堆栈位于不同的存储器块中,分别通过iALU寄存器J和K寻址。堆栈指针从存储器的高地址向低地址增长,且堆栈行4字为1组,帧指针指向当前堆栈帧的起始地址,而堆栈指针则指向下一个可用的存储器地址单元。

帧指针总是在实际帧基地址的基础上的,偏移量-0x40以便为局部变量提供较大的寻址范围,J帧指针可以保存到k24中。当在JALU中进行其他地址计算时,允许JFP相对寻址引用可以提高程序的执行效率。如果程序不使用k堆栈,就可以省去所有的操作,包括与k堆栈相关的链接信息等。在调用者的帧中,至少要为4个“参数字”分配空间,这样对于输入参数较少的叶子函数避免创建堆栈。

2.2参数传递规则

1)指针和整数类型通过j寄存器传递。

2)浮点数和双字变量通过XR寄存器来传递。

3)如果输入参数超过2个字,则调用者通过为变量分配存储空间,并将地址以通过j寄存器传递到被调函数中。前4个参数字一般通过寄存器来传递,这样就可以提高程序执行的效率,也大大方便了程序的编写。

4)如果函数原型有参数(“…”),则紧跟着省略号之前的那个参数和省略号后的参数都将通过存储器传递。

2.3返回值规则

返回值总是通过寄存器j8和X8、X9来传递。返回值的类型决定使用j寄存器还是使用寄存器X,指针和整数通过j寄存器来传递,浮点和双字结果通过两个X寄存器来传递。如果返回值大于2个字,则调用者必须为被调用者的返回值分配空间,并将此空间的地址以隐含参数的方式传递到被调函数中。

3实例分析

子函数:Rx_compute(plusenumber,X,Rx)

该子函数实现了计算矩阵的协方差矩阵的功能。由于输入和输出矩阵的大小都超过了两个字,所以可以采取分配存储空间,通过地址来进行参数传递。

输入参数:plusenumber→矩阵的大小

X→输入矩阵的地址

输出参数:Rx→输出矩阵的地址

则按照上面的顺序,子函数中三个参数分别在j4、j5、j6 中存储。

4结束语

本文介绍了基于TS201平台的C/C++语言和汇编语言混合编程方法。由示例程序的比较结果可以看出,这种方法既可以极大提高程序的执行效率,也可以方便用户编程。

教育期刊网 http://www.jyqkw.com
参考文献

[1]Visual DSP++4.0 C/C++ Compiler and Library Manual for TigerSHARC Processors[Z].2005.

[2]刘树明,苏涛,罗辉军.TigerSHARC DSP应用系统设计[M].北京:电子工业出版社,2004.

[3]ADSP-TS201 TigerSHARC Processor Programming Reference[Z].2003.

[责任编辑:邓丽丽]

论文中心更多

期刊百科
期刊投稿 期刊知识 期刊审稿 核心期刊目录 录用通知 期刊版面费 投稿期刊推荐 学术问答
基础教育
小学语文 中学语文 小学数学 中学数学 小学英语 中学英语 物理教学 化学教学 生物教学 政治教学 历史教学 地理教学 科学教学 音乐教学 美术教学 体育教学 信息技术 班主任管理 校长管理 幼教 教育管理 微课教学 作文教学 德育教学 教学设计
医学论文
内科医学 外科医学 预防医学 妇科医学 检测医学 眼科医学 临床医学 药学论文 口腔医学 中西医 中医学 外科 护理 基础医学 急救医学 老年医学 医学实验 儿科医学 神经医学 兽医学 肿瘤医学 综合医学
职业教育
教育学原理 电影文学教育 学前教育 教育学管理 高等教育学 教育技术学 职业技术教育 成人教育学 特殊教育学 教育心理学 家庭教育 教育毕业 中专中职教育 教学设计 国学教育 学术研究 大学教育
药学卫生
社区门诊 医药学 医患关系 医院管理 疾病预防 保健医学 公共卫生 医学教育
文科论文
农业经济 工商管理毕业 会计毕业 行政管理 法律毕业 市场营销 经济毕业 汉语言文学 财务管理 物流管理 人力资源 旅游管理 国际贸易 物业管理 新闻学 企业管理 金融银行 社会科学 食品安全 办公档案 审计学 税务税收学 外国文学 哲学
理科论文
机电毕业 土木工程 计算机毕业 电气毕业 建筑毕业 电子商务 工程毕业 设计毕业 机械制造 汽车毕业 园林毕业 农学毕业 数控毕业 软件技术 水利工程 环境生态 畜牧渔业 化工毕业 科技创新 石油矿藏
论文格式
开题报告 论文题目 摘要关键词 目录提纲 论文致谢 参考文献 附录其他 论文答辩
职业论文
教育论文 经济论文 科技论文 财会论文 管理论文 医学论文 法学论文 文学论文 工业论文 建筑论文 农业论文 水利论文 计算机论文 社科论文 机械论文 生态环境 中西文化

先发表后付款 不成功可退款

权威机构认证 专注期刊10余年 1000余家杂志社长期合作

缔冠期刊网

首页 网站地图 返回顶部
Copyright © 1998- 缔冠期刊网