Перейти к содержанию
    

razrab83

Участник
  • Постов

    383
  • Зарегистрирован

  • Посещение

  • Победитель дней

    3

Сообщения, опубликованные razrab83


  1. она может отпустить и тутже захватить мутех снова, а более сильная так и остается в ожидании.

    Почему так происходит? как побороть?

    а при отпускании мьютекса вызывается планировщик? Если нет, то планировщик вызывается в системные тики, и при принудительном вызове (например в прерывании). Возможна ситуация, когда между 2 тиками слабая нитка отпускает мьютекс и тут же захватывает. Т.к. планировщик не вызывается, то переключение на приоритетную задачу не происходит.

  2. Нужно отлаживаться со стопом. Процессор stm32L051. Пользуюсь халом.

    ухожу в стоп так

     

    ...
          __HAL_RCC_DBGMCU_CLK_ENABLE();//разешаем тактирование 
        HAL_DBGMCU_EnableDBGStopMode();//разрешаетм отладку со стопом
            HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI);// уход в стоп 
    ...

     

    Программа входит в HAL_PWR_EnterSTOPMode() и не задерживаясь выходит. Хота прерывания не срабатывают. (хотя все не проверял.... но в основные обработчики прерываний не попадаю)

    если закоментить строки

    ...
          //__HAL_RCC_DBGMCU_CLK_ENABLE();//разешаем тактирование DBG
        //HAL_DBGMCU_EnableDBGStopMode();//разрешаетм отладку со стопом
            HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI);// уход в стоп 
    ...

    То нормально захожу в стоп моде и проц засыпает. Вроде раньше работал стоп с отладкой. в какеот время перестал. может я что-то сломал. не могу понять куда капнуть.

×
×
  • Создать...