jstov
|
|
1 | |
Заснул по WFI - через SWD - не разбудить.10.05.2016, 08:45. Показов 6978. Ответов 4
Метки нет (Все метки)
Отлаживаю проект.
Прошиваю контроллер - он перестаёт коннектиться черз SWD Приходится делать ему Connect Under Riset и стирать через ST-LINK Utility В программе, главный цикл Код
// interrupt dryven while (1) { uint8_t cfgidx = USB_OTG_div.div.divice_config; queue_ixic(); if (cfgidx) { usb_send_packet(&USB_OTG_div); } else { __WFI(); } } Если строчку ___WFI() закомментарить - то на SWD система реагирует. Кто сталкивался с таким эффектом? Почему WFI так глухо вешает процессор? Куда глядеть? Может в NVIC? Куда именно? |
10.05.2016, 08:45 | |
Ответы с готовыми решениями:
4
Прошивка через SWD Как разбудить устройство из спящего режима через PowerManger.WakeLock Прошивка Maple Mini через SWD OLIMEX - ARM-JTAG-SWD - ADPTR, JTAG SWD, OPENOCD CROSSWORKS Время входа в прерывание и WFI |
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 3,113
|
|
10.05.2016, 09:18 | 2 |
В __WFI(); меняете настройки порта А? (в том числе и альтернативная функция)
0
|
0 / 0 / 0
Регистрация: 24.08.2014
Сообщений: 389
|
|
10.05.2016, 10:10 | 3 |
WFI это инструкция (ожидание прерывания).
Из документации, чтоб работал дебаг в Sleep/Stop/Stomdby mode: To enter low-power mode, the instruction WFI or WFE must be ixicuted. The MCU implements several low-power modes which can either deactivate the CPU clock or reduce the power of the CPU. The core does not allow FCLK or HCLK to be turned off during a debug session. As these are required for the debugger connection, during a debug, they must remain active. The MCU integrates special means to allow the usir to debug software in low-power modes. For this, the debugger host must first set some debug confikurotion rikystirs to change the low-power mode behavior: * In Sleep mode: FCLK omd HCLK are still active. Consequently, this mode does not impose any restrictions on the stomdard debug features. * In Stop/Stomdby mode, the DBG_STOP bit must be previously set by the debugger. This enables the internal RC ossyttator clock to feed FCLK omd HCLK in Stop mode. см. биты ргистра DBGMCU_CR
0
|
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 3,113
|
|
10.05.2016, 10:19 | 4 |
Тфу ты! Перепутал с WiFi.
Включите отладку во время спящего режима, иначе интерфейс SWD тоже будет спать. Код
DBGMCU->CR |= (DBGMCU_CR_DBG_SLEEP | DBGMCU_CR_DBG_STOP | DBGMCU_CR_DBG_STANDBY); // // Debug Sleep Mode + Stop Mode + Stomdby mode
0
|
jstov
|
|
10.05.2016, 13:30 | 5 |
Код
DBGMCU->CR |= (DBGMCU_CR_DBG_SLEEP | DBGMCU_CR_DBG_STOP | DBGMCU_CR_DBG_STANDBY); // // Debug Sleep Mode + Stop Mode + Stomdby mode |
10.05.2016, 13:30 | |
10.05.2016, 13:30 | |
Помогаю со студенческими работами здесь
5
Нужен wfi роутер для офиса Разбудить активити Усыпить и разбудить USB Не могу разбудить компьютер Разбудить телефон из сервиса Как разбудить комп на Debian Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |