DSP编程技巧之链接汇编代码与C/C++代码

来源:金沙电子游戏官网平台作者:金沙电子游戏官网平台 日期:2024-05-05 浏览:
本文摘要:在DSP的研发中,常用的算法都可以用C/C++代码来高效构建。但是对一些类似寄存器的读取,例如某些CPU寄存器的读取,因为C/C++代码无法必要对其采访,依然必须用于编撰代码展开操作者。 此外,在一些对代码执行时间拒绝很严苛的算法,例如很多个点的FFT、IFFT中,编撰代码的高效依然是C/C++所无法替代的。这些就牵涉到到了C/C++代码与编撰代码的模块问题,在此我们就来理解一下它们是如何交互的。

金沙电子游戏官网平台

在DSP的研发中,常用的算法都可以用C/C++代码来高效构建。但是对一些类似寄存器的读取,例如某些CPU寄存器的读取,因为C/C++代码无法必要对其采访,依然必须用于编撰代码展开操作者。

金沙电子游戏官网平台

此外,在一些对代码执行时间拒绝很严苛的算法,例如很多个点的FFT、IFFT中,编撰代码的高效依然是C/C++所无法替代的。这些就牵涉到到了C/C++代码与编撰代码的模块问题,在此我们就来理解一下它们是如何交互的。首先要遵循以下的九大原则:  1.所有的函数(不管是C/C++的还是编撰的)都要遵循特定的寄存器誓约  寄存器誓约用来规定编译器如何用于寄存器,主要所指的CPU/FPU的寄存器(因为它们在程序运行中是重复用于的),并且在函数调用前后如何留存寄存器的值。留存寄存器值的方法分成在函数入口处留存和在调用时留存,前者是由被调用的函数来已完成的,后者则是由调用别的函数的函数来已完成的。

在TMS320C28x编译器中,用于如下的规则,如表格1、表格2右图。通过表格1、2,我们还可以对CPU/FPU的寄存器有更进一步的解读,这样以后再行看见寄存器的名字时就不至于一头雾水了。

  表格1CPU寄存器用于和保有的誓约  表格2FPU寄存器用于和保有的誓约  编译器对CPU的状态寄存器ST中的某些位也有一定的誓约,如表格3、表格4右图;没佩在表中的状态寄存器的位则不不受编译器的影响。对其中的某些位,编译器不会假设它们在函数调用或者回到时具备特定的假想值;在系统初始化创建C语言的动态运营环境时,这些位也不会被初始化为特定的假象值。


本文关键词:DSP,编程技巧,之,链接,汇编,代码,与,C++,在,DSP,金沙电子游戏官网平台

本文来源:金沙电子游戏官网平台-www.2mariyachtesail.com

0
无法在这个位置找到: foot.htm