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

CC3220SF在进行sl_send时无法进行SPI_transfer收发

Other Parts Discussed in Thread:CC3220SF

你好,我使用CC3220SF开启了两个线程,分别是TCP通讯(lv1)与SPI通讯(lv2)。我的想法是:在SPI传输设置完成,并在等待回调函数的sem信号时,cpu应该是空闲的,那应该可以用来设置TCP/IP的网络发送,于是我在SPI设置好通讯的时候,就发送sem信号给TCP线程,让TCP线程一直发送消息。按照正常逻辑,就是我使用SPI接收的数据包个数以及内容会是正确的,而且在次期间上位机还能收到消息,可实际是,SPI传输根本接收不到消息,然后TCP线程一直在发送。请问下,这是否是因为TCP是阻塞发送,会与SPI抢占 Bus Matrix Multi-Layer AHB 总线?从而导致无法正常运行?因为SPI线程等级高于TCP线程,按理说SPI线程触发回调,会发送sem信号,从而让SPI线程抢占TCP线程,使其设置好下一次传输的啊。为什么SPI线程无法运行?

Viki Shi:

ARM核通过内部的NWP SPI (LSPI) 跟NWK通信,此SPI可以跟用户SPI一起使用,但是由于调度程序或RTOS中断等,可能存在总线冲突。建议还是排查流程,是否有冲突

,

user6458813:

你好,您的意思是说。GSPI会与TCP冲突,因为它们都是使用 Bus Matrix Multi-Layer AHB 总线是吗?

,

Viki Shi:

存在冲突的可能,但设计好调度程序可以避免。你改成非阻塞模式试试

,

user6458813:

你好,我之前曾经设置过非阻塞模式,但是查询手册发现对于TCP的发送,没有sl_send的非阻塞模式。此外,我从您另一位同事Kevin Qiu1那里得知TCP的发送无法设置成非阻塞模式。是不是没办法从TCP这部分入手了呢?

,

Viki Shi:

tcp可以设置成非阻塞模式,请看下面文档的6.7 Operation Modes进行设置:
www.ti.com/…/swru455l.pdf

赞(0)
未经允许不得转载:TI中文支持网 » CC3220SF在进行sl_send时无法进行SPI_transfer收发
分享到: 更多 (0)