This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

【求教】基于ARM和DSP双核的程序结构问题



我有一个图片压缩算法,想要移植到DM8148(674x核+cortex a8)的平台上。ARM主要用来控制,DSP用来做 图片压缩处理。ARM上跑的是linux系统,DSP上是SYS/BIOS,开发环境是CCS。按我的想法,程序结构是:

(1)DSP和ARM的程序是在同一个main函数里,建立多个线程,线程1用于ARM端写共享buffer,线程2用于DSP 压缩处理;线程3用于ARM端接收压缩数据并组装压缩数据

(2)程序开始,ARM接收图像数据并把其写入共享内存块buf1中,同时DSP挂起等待;

(3)当ARM写完一块数据,SEM1++通知DSP开始取数据并进行压缩(4)DSP读取完buf1数据,SEM1--通知ARM继续向buf1写数据;同时DSP进行压缩,压缩完后数据写入共享内存 块buf2中,SEM2++通知ARM开始取数据 ...循环以上步骤

 

问题:

(1)我的程序结构是否是对的?应该不会是ARM核和DSP核各烧一个程序文件吧?那样的话我不知道怎么通信 。。

(2)最终CCS编译出来的程序是烧到ARM核上还是DSP核上呢?

(3)关于程序里的ARM和DSP双核信号通信,linux和SYS/BIOS的信号写法都不一样,该怎么统一,这是我最弄 不明白的地方...请高手指导...

(4)我目前CCS是在Windows下安装的,这样编译可以吗,还是需要在linux系统下的CCS编译?

 以上请专家指导,感谢~~~

  • ARM和DSP代码是分开的两套。在CCS下可以分别下载代码到ARM和dsp上。在实际运行中DSP的代码是ARM下载到DSP的内存里的。

    请参考一下syslink和IPC,是ARM和DSP通信相关的。

    一般来所ARM跑Linux,代码编译要在Linux环境,不是用CCS,而是Linux的编译器。DSP跑BIOS。DSP的代码一定是用TI的编译器编译的。在CCS下,或者用脚本都可以,和window/linux没有关系。