TI中文支持网
TI专业的中文技术问题搜集分享网站

CC2640R2F task

各位技术工程师 大神们好

  我的开发情况是有两个带有CC2640R2F芯片的模块(分别做子节点和主节点),在子节点程序上有两个task任务,task1(优先级1)负责与主节点进行蓝牙通信,从缓存中取数发送给主节点,task2(优先级为2)利用spi通信进行数据采集、组帧发送到缓存。

  前提:单个子节点DEBUG调试时,spi通信没有问题,能够采集数据并写入缓存

  遇到的问题: 在不加spi通信部分的情况下 , 向缓存写固定数,子节点和主节点能够正常通信,,加上spi采集数据  子节点和主节点的蓝牙通信就会被打断 不传输数据。请问是什么原因,或者有什么修改建议? 谢谢~

  

Viki Shi:

TI RTOS里数值越大,优先级越高,你优先级设置错了

user6495349:

回复 Viki Shi:

你好 优先级调换过来蓝牙还是不通信、

Viki Shi:

回复 user6495349:

跟原先表现一样,还是被打断?

user6495349:

回复 Viki Shi:

对的 就是主节点和子节点之间不通信了

Viki Shi:

回复 user6495349:

“加上spi采集数据子节点和主节点的蓝牙通信就会被打断 不传输数据。” 你确定是被打断吗?会不会蓝牙功能根本没运行?主机能搜索到蓝牙的广播吗?

user6495349:

回复 Viki Shi:

抱歉 不是打断 是不通信。发送固定数 两节点是通信的 主节点能接收到数据,用SPI采集的数据替换固定数 蓝牙就不通信了,主节点搜不到蓝牙广播

Viki Shi:

回复 user6495349:

猜测是SPI加得不对,参考下这边的方法:
e2echina.ti.com/…/146489

user6495349:

回复 Viki Shi:

你好,可能是SPI的使用方式有问题,请问一下 1.两个task任务是并行执行的吗?会不会互相影响到?2.调试发现 在task2调用spi_transfer的地方,task1里相应位置的程序就会卡住不执行,spi传输模式是BLOCKING, 是不是这种模式影响了task1程序的进程呢?

Viki Shi:

回复 user6495349:

1、按优先级顺序执行
2、建议使用中断模式,且确保蓝牙的优先级比SPI的中断优先级高。为了能让低功耗蓝牙协议栈满足RF严格的时序要求,所有应用程序定义的Hwis都要以最低优先级执行。
3、实时多任务系统,影响调度的一般就这几个原因:任务优先级,中断优先级,阻塞非阻塞

赞(0)
未经允许不得转载:TI中文支持网 » CC2640R2F task
分享到: 更多 (0)