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.

如何移除OAD?

Genius 3030 points


SDK: simplelink_cc13x2_26x2_sdk_4_20_01_04

Project: simple_peripheral_oad_offchip_CC26X2R1_LAUNCHXL_tirtos_ccs

在.syscfg文件移除OAD后,如下图:

出现如下错误:

[17:53:40:260]====================
[17:53:40:263]SysCtrlResetSourceGet 4
[17:53:40:263]
[17:53:40:266]SBP Off-chip OAD v0001
[17:53:40:266]OAD failed to open
[17:53:40:274]Initialized
[17:53:40:277]
[17:53:40:314]====================
[17:53:40:318]SysCtrlResetSourceGet 4
[17:53:40:318]
[17:53:40:320]SBP Off-chip OAD v0001
[17:53:40:320]OAD failed to open
[17:53:40:329]Initialized
[17:53:40:329]
[17:53:40:368]====================
[17:53:40:372]SysCtrlResetSourceGet 4
[17:53:40:372]
[17:53:40:373]SBP Off-chip OAD v0001
[17:53:40:376]OAD failed to open
[17:53:40:382]Initialized
[17:53:40:383]
[17:53:40:422]====================
[17:53:40:426]SysCtrlResetSourceGet 4
[17:53:40:426]
[17:53:40:428]SBP Off-chip OAD v0001
[17:53:40:431]OAD failed to open
[17:53:40:436]Initialized
[17:53:40:439]
[17:53:40:476]====================
[17:53:40:479]SysCtrlResetSourceGet 4
[17:53:40:481]
[17:53:40:481]SBP Off-chip OAD v0001
[17:53:40:483]OAD failed to open
[17:53:40:490]Initialized
[17:53:40:491]
[17:53:40:531]====================
[17:53:40:533]SysCtrlResetSourceGet 4
[17:53:40:535]
[17:53:40:535]SBP Off-chip OAD v0001
[17:53:40:540]OAD failed to open
[17:53:40:545]Initialized

注释OAD初始化代码后还是无限重启:

[17:56:49:953]====================
[17:56:49:955]SysCtrlResetSourceGet 4
[17:56:49:959]
[17:56:49:959]Initialized
[17:56:49:962]
[17:56:49:997]====================
[17:56:50:002]SysCtrlResetSourceGet 4
[17:56:50:002]
[17:56:50:002]Initialized
[17:56:50:006]
[17:56:50:043]====================
[17:56:50:045]SysCtrlResetSourceGet 4
[17:56:50:049]
[17:56:50:049]Initialized
[17:56:50:049]
[17:56:50:088]====================
[17:56:50:091]SysCtrlResetSourceGet 4
[17:56:50:094]
[17:56:50:094]Initialized
[17:56:50:094]
[17:56:50:134]====================
[17:56:50:135]SysCtrlResetSourceGet 4
[17:56:50:138]
[17:56:50:138]Initialized
[17:56:50:141]
[17:56:50:179]====================
[17:56:50:180]SysCtrlResetSourceGet 4
[17:56:50:183]
[17:56:50:183]Initialized
[17:56:50:187]
[17:56:50:225]====================
[17:56:50:227]SysCtrlResetSourceGet 4
[17:56:50:230]
[17:56:50:230]Initialized
[17:56:50:233]
[17:56:50:270]====================
[17:56:50:272]SysCtrlResetSourceGet 4
[17:56:50:275]
[17:56:50:275]Initialized
[17:56:50:275]

  • 直接用沒有OAD的simple_peripheral例程不就好了

  • 有自己的OAD方法,需要用到flash驱动,所以没用simple_peripheral例程
  •             status = GapAdv_enable(advHandleLegacy,
                                       GAP_ADV_ENABLE_OPTIONS_USE_MAX, 0);
                Display_printf(dispHandle, SP_ROW_STATUS_1, 0,
                               "GAP_ADV_ENABLE_OPTIONS_USE_MAX status %d", status);
                Task_sleep(10000);
    
                SIMPLEPERIPHERAL_ASSERT(status == SUCCESS);

    注释OAD代码后程序跑到这里就出错了,将 GAP_ADV_ENABLE_OPTIONS_USE_MAX 改为 GAP_ADV_ENABLE_OPTIONS_USE_MAX_EVENTS 可以正常运行,为什么呢?

  • 出错具体信息是什么,无法正常广播?
    typedef enum { /** * Use the maximum possible value. This is the spec-defined maximum for * directed advertising and infinite advertising for all other types */ GAP_ADV_ENABLE_OPTIONS_USE_MAX, /** * Use the user-specified duration */ GAP_ADV_ENABLE_OPTIONS_USE_DURATION, /** * Use the user-specified maximum number of events */ GAP_ADV_ENABLE_OPTIONS_USE_MAX_EVENTS, } GapAdv_enableOptions_t;

    看下这里:e2e.ti.com/.../2685011

  • 一直重启。

  • uint32_t SysCtrlResetSourceGet ( void ) Returns last reset source (including "wakeup from shutdown"). Returns Returns one of the RSTSRC_ defines. Definition at line 666 of file sys_ctrl.c.

  • SysCtrlResetSourceGet = 4
  • //*****************************************************************************
    //
    //! \brief Returns the reset source (including "wakeup from shutdown").
    //!
    //! In case of \ref RSTSRC_WAKEUP_FROM_SHUTDOWN the application is
    //! responsible for unlatching the outputs (disable pad sleep).
    //! See \ref PowerCtrlPadSleepDisable() for more information.
    //!
    //! \return Returns the reset source.
    //! - \ref RSTSRC_PWR_ON
    //! - \ref RSTSRC_PIN_RESET
    //! - \ref RSTSRC_VDDS_LOSS
    //! - \ref RSTSRC_VDDR_LOSS
    //! - \ref RSTSRC_CLK_LOSS
    //! - \ref RSTSRC_SYSRESET
    //! - \ref RSTSRC_WARMRESET
    //! - \ref RSTSRC_WAKEUP_FROM_SHUTDOWN
    //! - \ref RSTSRC_WAKEUP_FROM_TCK_NOISE
    //
    //*****************************************************************************
    extern uint32_t SysCtrlResetSourceGet( void );

    不清楚你具体注释了哪些代码,只去除OAD部分一般不会出现这个问题,去除OAD没有指导文档,可以直接使用simple_peripheral例程