Сделал проект на базе примера usbmsd

Перестал запускаться кварц - висит на ожидании

Код
    /* Wait for clock to stabilize if requested */
    if (wait)
    {
      while (!(CMU->STATUS & status))
     ;
    }


Мог бы предположить, что сломал что-то, но код от начала main до места зависания не менялся:

Код
  /* Chip errata */
  CHIP_Init();

  /* If first word of user data page is non-zero, enable eA Profiler trace */
  BSP_TraceProfilerSetup();

  CMU_ClockSelectSet( cmuClock_HF, cmuSelect_HFXO );
  CMU_OscillatorEnable(cmuOsc_LFXO, true, false);
  CMU_ClockEnable(cmuClock_GPIO, true);


Что это такое может быть?
Начало программы не поменялось, но результат драматичный.
Причем эта версия работала, отмотал в svn.

Загружаю родной пример - эту точку проходит.
Загружаю чвой проект с неизменной начальной частью - в этой точке виснет.

Бредятина какая-то sad.gif

Разницу нашел, но легче не стало - кварц все равно не запускается

Код
bool BSP_TraceProfilerSetup(void)
{
  volatile uint32_t *userData = (uint32_t *) USER_PAGE;    // Ссукии!

  /* Check magic "trace" word in user page */        
  if (*userData == 0x00000000UL)
  {
    return false;
  }
  else
  {
    BSP_TraceSwoSetup();
    return true;
  }
}


Ну и последние новости с фронта - в двух проектах, работающих на одном и том же стартките, считывается разная ревизия чипа.