碧波液压网 欢迎你,游客。 登录 注册

TMS320C62XDSP的混合编程研究

版权信息:站内文章仅供学习与参考,如触及到您的版权信息,请与本站联系。

      目前,C语言和汇编语言的混合编程已经在TI公司的TMS320C62X上成为一种最流行的编程方法。阐述了基于TMS320C62X的C语言和汇编语言混合编程应遵循的接口规范以及并行汇编代码的编写。给出了一个基于TMS320C62X的运动补偿的混合编程设计实例。

    TMS320C62X美德州仪器公司TI的新一代高性能定点数字信号处理器(DSP)芯片。基于DSP的软件设计问题,就是采用编程语言进行算法实现并使程序效率尽量满足实时性要求。TI DSP的软件设计可以采用汇编语言、高级语言C/C++以及C语言与汇编语言的混合编程。完全采用汇编语言编程复杂性高、开发周期,而完全采用C语言编程则程序的执行效率相对较低,不能满足实时性的要求。

       为了设计出性价比最好、开发周期较短、比较复杂的DSP系统,可以采用混合语言编程,把C语言和汇编语言的优点有效地结合起来。C语言和汇编语言的混合编程有三种形式:在编写C语言代码中插入汇编语句只需在汇编语句两边加上双引号和括号,在括号前面加上标识asm,如asm“汇编语句”;在编写C代码的过程中调用内联函数TMS320C62X中有一些直接映射为内联的C6000指令的特殊函数,内联函数用前下划线_表示,使用时同调用C语言的库函数一样调用它,如b=_nassertN>=10;汇编代码以C代码可以调用的函数出现。本文采用第三种形式。为了使程序代码的执行具有尽可能高的执行效率,本文将着重点放在并行汇编代码的编程,而不是线性汇编代码的编程。

   1 C语言与汇编语言混合编程的接口规范和标准

  用C语言编写的代码中核心代码常常只是整个程序代码的5%,但是却占用了整个程序约95%的执行时间。对些核心代码采用汇编语言编写,可以大大提高代码的执行效率,而C语言程序可以象调用C程序的一个函数那样去调用这个汇编函数。为了实现C语言和汇编语言的混合编程,需要注意一些规定的接口规范和标准。

  (1)采用C语言和汇编语言混合编程时,TMS320C62X定义了一套严格的寄存器规则。这个寄存器规则表明了编译器如何使用这些寄存器以及在函数调用过程中如何保护这些寄存器。

  调用函数保护了寄存器A0~A9和B0~B9,这就使得在编写汇编程序的时候可以任意的使用这几个寄存器而不需保护它们。但当使用到寄存器A10~A15或B10~B15的时候,则必须自行对它们进行保护。长型、双精度型或者是长双精度型的数据对象要放在一个奇/偶寄存器对(如A1:A0)里,奇数寄存器存放着数据的符号位、指数位和最高有效位,而偶数寄存器则存放着低有效位。

你没有登陆,无法阅读全文内容

您需要 登录 才可以查看,没有帐号? 立即注册

标签:
点赞   收藏

相关文章

发表评论

请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。

用户名: 验证码:

最新评论