本文是上一篇的后续。
核心代码如下(部分省略):
//------------------------------------------------------------------------------
void main(void)
{
//.........................................
while(1)
{
msg_s.id = MSG_GET_READY;
Mailbox_pend(mbox_srcimg, &msg_s, BIOS_WAIT_FOREVER);
ImageProc(msg_s.img_hdr.data,msg_s.img_hdr.width,msg_s.img_hdr.height);
msg_s.id = MSG_IMGPROC_FINISHED;
Mailbox_post(mbox_result, &msg_s, BIOS_WAIT_FOREVER);
}
//.........................................
}
static void NetworkOpen()
{
DaemonNew(SOCK_DGRAM,0,PORT,Daemon_proc,...);
}
int Daemon_proc(SOCKET s, UINT32 unused)
{
//....................................
// Receive image data
msg_s.id = MSG_SRCIMG_RECEIVED;
Mailbox_post(mbox_srcimg, &msg_s, BIOS_WAIT_FOREVER);

本文详细分析了使用CCS+C6678LE进行多核协作的关键代码,通过OpenMP实现。核心代码包括从邮箱接收数据,执行ImageProc处理,再将处理结果发送回邮箱的流程。 Daemon_proc函数专注于数据传输,每次循环接收PC数据并放入邮箱,等待处理。处理后的结果返回给PC,并通过放置特定消息通知系统启动新循环。
最低0.47元/天 解锁文章
3886





