想用6678的1个核实现一个数据处理功能的软件,数据通过网口收发,对数据做滤波、组帧处理。
现在考虑将网口收发、滤波、组帧分别划为3个任务来实现。其中网口收发想利用CCS提供的client历程,采用TCP的方式
但client里采用的是回调函数的方式,不知该如何与另外2个任务实现多任务的调度
希望能得到一些帮助
King Wang1:
一些建议仅供参考:
1。 使用BIOS搭建3个任务的平台,任务1,2,3分别是收发,滤波和组帧处理函数,同时设置3个信号量,每个任务都等待信号量才能执行。
2。设置收包中断,中断完成后释放任务1的信号量,进入任务1;
3。任务1完成后,释放任务2的信号量;进入任务2。任务2完成后释放任务3信号量,进入任务3;
流程基本如上述所示,优先级应该是任务1<2<3。
bo yang6:
回复 King Wang1:
谢谢指点。
根据这种方案,我有一个进一步的问题,就是我的任务该在哪里创建,因为我要基于NDK进行网口数据收发
NDK的TCP协议栈要在Net_start执行后启动,这是我的任务是不是要在它的回调函数networkopen中创建?
King Wang1:
回复 bo yang6:
任务任何时候启动都可以,因为你有信号量控制。比如你先启动一个任务,任务运行到查询信号量的时候,如果没有信号量,任务就会自动阻塞,转去做其他任务。
所以你只要控制什么时候发信号量就能控制什么时候真正的执行任务。因此创建任务没有先后限制的。