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.

程序停在 ZMacInit() 函数

Other Parts Discussed in Thread: Z-STACK

如果不用jtag调试,程序是会停在 ZMacInit() 中的 MAC_Init () 函数, 直到触发了某个按键才往下执行。 该帖子的使用方法在应用层修改,应该不科学,因为  ZMacInit() 在osal初始化之前。

  • 请问您现在使用的例程及协议栈版本是什么?另外能否给出您现在IAR工程的预编译选项呢?

  • 一般停在MacInit,都是外部晶振什么硬件不正常导致的,遇到过好几次了,都是这样解决的

  • 协议版本是 Z-Stack Home 1.2.2a.44539,预编译选项如下;

    SECURE=1

    TC_LINKKEY_JOIN

    NV_INIT

     NV_RESTORE

    xHOLD_AUTO_START

    ZTOOL_P1    MT_TASK MT_APP_FUNC    MT_SYS_FUNC MT_ZDO_FUNC   xLCD_SUPPORTED=DEBUG     MULTICAST_ENABLED=FALSE     ZCL_READ xZCL_WRITE ZCL_REPORT     xZCL_EZMODE        ZCL_BASIC ZCL_IDENTIFY ZCL_ON_OFF ZCL_SCENES ZCL_GROUPS xZCL_LEVEL_CTRL ZCL_DIAGNOSTIC FEATURE_SYSTEM_STATS SINGLE_KEY KEY WDT_IN_PM1 MANAGED_SCAN

  • 完美解决了.

    默认的就是外部时钟源噢。如果外部没有接32K的,需要更改hal_board_cfg.cfg文件里面的设置。

    * hal_board_cfg.h




    /* ------------------------------------------------------------------------------------------------

    *                                          Clock Speed

    * ------------------------------------------------------------------------------------------------

    */

    #define HAL_CPU_CLOCK_MHZ     32

    #define OSC32K_CRYSTAL_INSTALLED     FALSE         // 插入此行!!!!!!!!!!!!!!!!



    /* 32 kHz clock source select in CLKCONCMD */

    #if !defined (OSC32K_CRYSTAL_INSTALLED) || (defined (OSC32K_CRYSTAL_INSTALLED) && (OSC32K_CRYSTAL_INSTALLED == TRUE))

      #define OSC_32KHZ  0x00 /* external 32 KHz xosc */

    #else

      #define OSC_32KHZ  0x80 /* internal 32 KHz rcosc */

    #endif