微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > 在Sensor Controller Studio中对一个工程设计多个任务,在IAR中如何操作每个任务?

在Sensor Controller Studio中对一个工程设计多个任务,在IAR中如何操作每个任务?

时间:10-02 整理:3721RD 点击:

   官方SC Studio 实例提供的所有demo都是针对单工程单任务结构的,在SC Studio中对一个工程添加多个任务的方式很简单,

那么在IAR中如何对每个任务进行调度呢,多个任务是否可以同时进行,还是说每次必须选定一个执行?可否提供demo,谢谢!

请问您特指的是哪几个任务呢?

UART的任务应该是只能跑一次的

另外多个任务之间的调度可以参考SensorTag的代码来看的

谢谢你的回复!

Q:请问您特指的是哪几个任务呢?

A:打个简单的比方(当然实际应用不做这么做的,有点傻),在Sensor Controller Studio建立一个工程LED_FLASH,此工程下建立2个task:

   task1:LED1  20Hz频率闪烁,task2:LED2 1Hz频率闪烁。底层驱动完成后,在IAR工程中如何根据需要启动相应的task ID:

  比如变量var_LED ==1,启动task1,关闭task2,var_LED ==2,启动task2,关闭task1?

Q:UART的任务应该是只能跑一次的

A:Sensor Controller Studio里面的实例,我都有看过了,UART因为是软件模拟的,help里也说明了,只能跑一个uart,这个理解的;

Q:另外多个任务之间的调度可以参考SensorTag的代码来看的

A:这个是多任务操作的,但是不是我所说的多任务,SensorTag没有使用到Sensor Controller的。

 

请问您是否有尝试添加SCS产生的代码到CC2640的SDK工程里面去?现在例子的做法是作为一个task在main.c里面启动 然后在APP层建立消息调用。

感觉可启动不同的task然后在APP层选择调用参数

最近项目挺赶的,所以想找个现成的一个Demo来修改的,来节约最基本的底层研究,看来还是自己研究了:)

今晚研究了下,最基本的分享下:

1、在SCS里面建立多个task的方法很简单的,就不多说了,每个任务都是独立的,也就说可以有名称相同的变量;

2、使用scifStartTasksNbl(TaskID),scifStopTasksNbl(TaskID)来启动停止相应的Task;

3、APP层Callback是使用的同一个,根据变量(在CSC里面定义)是否满足来区别是哪个task产生的“中断”,来执行相应的代码;

基于以上3点,多任务就可以完成了。下一步在深入研究具体的实现原理。

PS,还有一个疑问:scifStartTasksNbl(TaskID),scifStopTasksNbl(TaskID)是启动、停止任务,这个好理解,但其中有个scifExecuteTasksOnceNbl(TaskID),

“Executes the specified tasks once”,从字面理解,就是执行一次,但是在“UART Emulator”却使用该API来启动任务,就有点困惑了,望指教

 

 

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top