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.

[参考译文] RTOS/CC2640:iCall_registerApp 导致 loader_exit ()

Guru**** 2551110 points
Other Parts Discussed in Thread: CC2650

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/578412/rtos-cc2640-icall_registerapp-cause-loader_exit

器件型号:CC2640
Thread 中讨论的其他器件:CC2650

工具/软件:TI-RTOS

我使用"simple_peripheral_cc2650"作为启动平台。  Abe 创建新任务并按如下方式运行 OK:

静态空 sensorTaskFxn (UARg a0、UARg A1)

// iCall_registerApp (&selectyMain、&sensorSemaphore);

while (真)

电池状态= PIN_getInputValue (Board_GPI_nCHRG);

DELAY_MS (SENSOR_SLEEP_PERIOD);//任务运行周期

但现在我想在超时之前唤醒任务,决定使用 iCall_Wait ()方法。

一旦我更改为跟随、代码跳转至" loader_exit"

静态 iCall_Semaphore sensorSemaphore;
静态 iCall_EntityID self EntityMain;

静态空 sensorTaskFxn (UARg a0、UARg A1)

  iCall_registerApp (&selectyMain、&sensorSemaphore);

while (真)

电池状态= PIN_getInputValue (Board_GPI_nCHRG);

iCall_Wait (sensor_sleep_period);

静态空 LOADER_EXIT (空)

#if 已定义(embed_CIO_BP)
_asm (".global C$$EXITE");
#if defined (__32bis__)
_asm ("C$EXITE:.word 0xDEFED0FE");
其他
_asm (".align 4");
#if defined (__big_endian__)
_asm ("C$EXITE:.half 0xDEFE");
其他
_asm ("C$EXITE:.half 0xD0FE");
#endif /*__big_endian__*/
#endif /*__32bis_*/

#else /*!embed_CIO_BP */
_asm (".global C$$$exit");
_asm ("C$$EXIT:NOP");
#endif

感谢您的建议

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Dilbert、

    应用程序是否在进入 while (true)循环之前失败?

    Derrick
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是的、确实如此。  奇怪的是,iCall_registerApp 是否只能在一个任务中调用一次??  可能是这样的错误、我尝试注册2个不同的任务。

    我现在跳过这个。