This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

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

Part Number: LAUNCHXL-CC1310
Other 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?

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

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

  • 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ㄒ)/~~

    请问这个有示例嘛?)

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

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

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

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

    在例程中 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可以干别的,程序可以继续执行的。

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

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

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

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

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

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

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

    开启就关闭是什么意思

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

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

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

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

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

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

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

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

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

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

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

  • 已回复,将关闭这个帖子