TI中文支持网
TI专业的中文技术问题咨询交流网站

LAUNCHXL-CC1310: TI-NOROTS :M3 and M0 work separately

Part Number:LAUNCHXL-CC1310Other Parts Discussed in Thread:CC1310

Great Ti engineers
I'm He 。I'm  very confused!
At cc1310 norots

How does the program keep the serial port working synchronously while keeping the radio working?

(各位大牛!程序是如何实现在 保持无线电工作的状态下 同步保持串口工作的呢?)

Kevin Qiu1:

radio和UART使用不同的内核,M0 用于 RF 内核,M3用于用户应用程序,因此可以独立工作

,

LanYi:

Hello, yes.

Thank you very much for your reply.

That's what the document says.

I do the function implementation based on the official library.

However, I can't let m3 and M0 work separately in the program code, and M3 can handle when there is data sending and receiving (M0 needs data interaction)/ (ㄒoㄒ)/~~

Is there an example of this?

(您好,是的。非常感些您的回复。文档也是这么说的 。我是基于官方提供的库的基础上去做功能实现。可是我无法在程序代码里让M3与M0各自单独工作,且在有数据收发时(需要M0进行数据交互)M3可以处理。/(ㄒoㄒ)/~~

请问这个有示例嘛?)

,

Kevin Qiu1:

M3与M0不是完全独立的,RF命令是从 M3内核调度的。

用户不需要关心两个核的具体通信过程,这在带有RF功能的例程中已经实现了

rtos版本中有更多的例程:C:\ti\simplelink_cc13x0_sdk_4_20_01_03\examples\rtos\CC1310_LAUNCHXL

,

LanYi:

您好~  根据您的建议,我又理了理自己现有的思路,且进行了测试。

在例程中 M3调用M0,使能射频工作除了easylink示例是超时退出外(本身是不想它退出),其它的设置基本由下面这个函数:

//extern RF_EventMask RF_runCmd(RF_Handle h, RF_Op *pOp, RF_Priority ePri, RF_Callback pCb, RF_EventMask bmEvent); 去实现RF,除了数据发送RF_EventMask可以不设置,即用即发送且退出外。当使用其进入接收模式时RF_EventMask有对应的设置,发现有“RF_EventModulesUnlocked     (1 << 29)  ///< As part of the boot process, the CM0 has opened access to RF core modules and memories”这一设置 ,且争对接收有多种模式设置。然而都是阻塞/死等(意思就是程序一旦调用这个函数 打开M0工作程序就堵塞在这儿了)。我尝试更该了多种模式的切换,然而没有一种是M3调度RF工作后,RF继续工作,而M3可以干别的,程序可以继续执行的。

┭┮﹏┭┮臣妾做不到,求大牛深度讲解~

,

LanYi:

多线程去运行时,我知道 可以各自实现自己的功能。但是由于我想要做的功能很简单,所以是不带系统,从而应该是无法使用多线程的吧?

,

LanYi:

回归正题  我依旧还是很疑惑 写进M3的程序里  是如何实现调用RF进入接收模式后,程序能继续往下执行从而去处理其它的事情的?

,

Kevin Qiu1:

RF_runCmd是阻塞的,尝试使用RF_postCmd替换它,参考:

https://www.ti2k.com/wp-content/uploads/ti2k/DeyiSupport_1GHz_681746

,

LanYi:

您好~  我看到他的写法了。且进行了测试。分析来说存在丢包的问题,当然这个丢包问题与周期时间有关。他的串口是基于RF接收成功后进行的写操作,这样来说是不影响他射频与串口的分步处理的。修改RF_EventMask为RF_EventRxEntryDone确实不会造成阻塞,但是可以将其看成进入RF退出RF再退出再进入。。。丢包问题需要慎重考虑。

,

LanYi:

且当 串口开启进入读写操作时,串口配置参数里基本是阻塞的,哪怕是说明文档里的非阻塞回调,从而当外部串口未连接,串口工作是处于等待或阻塞的。所以 当串口读写与RF在同一个while(1)内时RF_EventMask为RF_EventRxEntryDone不会造成阻塞,但是串口也是阻塞了 RF新一轮的开启。。。这个我也做了测试,当然也不知道自己做的对不对。但是串口配置能修改的状态也就两个,我也不知道是否有其它的配置操作让串口可以和RF的一样(开启就关闭。。。好奇怪的样子)。。所以我才一直寄托于M0独立工作,M3只是调度了M0,调度完就不再影响写进M3程序的下一步执行。M0有数据接收就触发/上报就好~

,

Kevin Qiu1:

nortos下没有太多的可操作空间

LanYi 说:我也不知道是否有其它的配置操作让串口可以和RF的一样(开启就关闭

开启就关闭是什么意思

,

LanYi:

鉴于我找不到解决的办法,“nortos下没有太多的可操作空间 ”真是个不幸的消息~哭叽叽~

“开启就关闭”:就是RF调用时,RF_EventMask为RF_EventRxEntryDone,给的解释是Rx queue data entry changing state to Finished。我给理解为开启了又关闭了。。。。(*Φ皿Φ*),因为它是放在死循环内,生命周期很短~

,

Kevin Qiu1:

uart也可以使用uart open和close API开启和关闭,但应该不能实现你说的相互独立工作的功能

,

LanYi:

大神 你知道cc1310 nortos 低功耗是咋实现的嘛?

我是自唤醒的,无法使用Power_shutdown();从而外部唤醒实现低功耗。

我使用了sleep();待机模式?常处在2mA。。。

我又尝试了Power_sleep();到电源策略来 降低功耗。。。但是 我不知Power_sleep(uint_fast16_t sleepState);的参数sleepState该给啥。。。当然也不知是否会降低功耗。。。

大神 你知道cc1310 nortos 低功耗是咋实现的嘛?

,

Kevin Qiu1:

这是另一个问题了,为方便论坛管理,请为此重开一个新帖

,

LanYi:

嗯嗯 已重新开贴~    ❀期待大佬上线❀

e2echina.ti.com/…/cc1310-cc1310-nortos

,

Kevin Qiu1:

已回复,将关闭这个帖子

赞(0)
未经允许不得转载:TI中文支持网 » LAUNCHXL-CC1310: TI-NOROTS :M3 and M0 work separately
分享到: 更多 (0)

© 2022 TI中文支持网   网站地图 鲁ICP备2022002796号-1