我手头上的是C6000系列的开发板,出于对实时性的要求。需要在原来的代码上进行优化处理。。原来的代码是用纯C写的,但是主要的循环处理太耗时间了。现在想把其中的核心的代码改为汇编,利用DSP的8个并行工作的能力来提速。但是这两天网上也找了一些资料。。我对于这种混合编程的原理还是没有搞清楚。。。编译器为CCS.....首先,我想直接在C中嵌入的写汇编。。就是在原来的C代码的地方直接改为汇编,但是格式好像只能是asm(“ ”)这样。。这样好像不能使并行处理。也只能是串行的逐条指令处理这样。。不知我理解的正确与否?再次。。我就想把那个汇编语句和C分开写。。但是这样的话每次运行到一处需要改动汇编的地方就需要调用一个.sa文件。。感觉挺麻烦的。。而且这样下来这个.sa文件也应该不少。。。所以我想能不能用直接嵌入的方式,而且还能并行处理?请各路大神指教。。。。多谢!!!!
------解决方案--------------------------------------------------------
不了解你这种CCS 编译器,也不了解你所说的并行是否vc中的多线程。
不过:
《intel 处理器》这本书中有不少 VC与汇编混合编程的例子,可以看看。
------解决方案--------------------------------------------------------
看对应C编译器是怎么支持嵌入asm的鸟。
------解决方案--------------------------------------------------------
貌似在某本书看过 tc可以的
------解决方案--------------------------------------------------------
“利用DSP的8个并行工作的能力”这应该是类似sse之类的simd指令,一条指令处理多个数据,是数据处理级的并行,不是指令级的并行。你需要研究一下它的指令集手册,把你的数据处理部分转换成并行算法。
------解决方案--------------------------------------------------------
TI C6000采用的是VLIW结构,有相应的汇编代码可以实现指令的并行化,只需在需要并行执行的指令前加上‘||’,则表示这条指令和上面的指令在同一个时钟周期(CYCLE)内执行。