-
- Использую LPM0, LPM3. После команды входа в спячку ставлю __no_operation(); (подсмотрел в каком-то workaround). Отладка работает. А вот с LPM4 думаю такое не пройдёт - Vit(15.09.2013 22:44)
- А разве ядро уходит в полноценный спящий режим при активной отладке? Чтение регистров и памяти невозможно (?), но установка точек останова работает. - amx(15.09.2013 22:07)
- Выводится сообщение "communication error, check if hardware is connected". И усё, даже сброс не восстанавливает, только "Restart debugger" - Vladimir Ljaschko(15.09.2013 22:37)
- Странно. В основном отлаживаю микропотребляющие девайсы - ничего не отваливается. Естественно, только брейкпоинты, и только аппаратные. LPM4 тоже вроде дышит, если не пользовать reset. - Гyдвин(15.09.2013 22:50 - 22:53)
- JTAG или SBW? Может, это только SBW фича. - Vladimir Ljaschko(15.09.2013 22:53)
- Под SBW у меня работает на F6x. Правда не заморачивался, что на самом деле происходит со спящими режимами при отладке. Единственное LPMx.5 мне завести не удалось, но там есть сноска, что с отладчиком не работает. - amx(15.09.2013 22:59)
- У F1 не было SBW. Юзал отладчики на LPT и USB. Аппаратные бряки затираются только после reset, поэтому в спячке ничего не отваливается. - Гyдвин(15.09.2013 23:00)
- Гы :) Для информации: C софтовыми бряками еще кузявее - контроллер даже после сброса встает в отмеченной точке. Связь с отладчиком при этом не рвется... - Гyдвин(15.09.2013 23:42)
- IAR 6.3, G2553, SBW, отладчик встроенный в LaunchPad. - Гyдвин(15.09.2013 23:47 - 23:53)
- Гы :) Для информации: C софтовыми бряками еще кузявее - контроллер даже после сброса встает в отмеченной точке. Связь с отладчиком при этом не рвется... - Гyдвин(15.09.2013 23:42)
- JTAG или SBW? Может, это только SBW фича. - Vladimir Ljaschko(15.09.2013 22:53)
- Странно. В основном отлаживаю микропотребляющие девайсы - ничего не отваливается. Естественно, только брейкпоинты, и только аппаратные. LPM4 тоже вроде дышит, если не пользовать reset. - Гyдвин(15.09.2013 22:50 - 22:53)
- Работает установка аппаратных точек останова. Только толку-то он них, если ядро (и соответственно адресная шина) стоит? BP можно только в функции обработки прерывания словить. rezident(15.09.2013 22:21, ссылка)
- или выйти из обработчика по __low_power_mode_off_on_exit(); - Vit(15.09.2013 22:48)
- Угу. Бряк надо ставить в то место, где процессор не спит. - Гyдвин(15.09.2013 22:54)
- Дык и я об этом же. В LPM ядро "оживает" только при вызове прерывания. Вот там и нужно его будить для выхода из LPM. - rezident(15.09.2013 23:03)
- Угу. Бряк надо ставить в то место, где процессор не спит. - Гyдвин(15.09.2013 22:54)
- или выйти из обработчика по __low_power_mode_off_on_exit(); - Vit(15.09.2013 22:48)
- Выводится сообщение "communication error, check if hardware is connected". И усё, даже сброс не восстанавливает, только "Restart debugger" - Vladimir Ljaschko(15.09.2013 22:37)
- В LPM тактирование ядра выключено. Так что выполнить что-либо необходимое для дебага (чтение памяти/регистров, программные breakpoint) с помощью ядра не получится. Я лично для отладки использовал условную компиляцию и ставил программные заглушки rezident(26 знак., 15.09.2013 21:58)
- А расскажите подробнее про заглушки, не совсем понимаю, как их сделать. Сейчас сделано так: Vladimir Ljaschko(317 знак., 15.09.2013 22:33)
- Да примерно так и есть. Только цикл с опросом флага вместо перехода в LPM у меня условно-компилируемый. Т.е. он компилируется только для режима отладки, а для рабочей прошивки - другой код, в котором переход в LPM стоит. - rezident(15.09.2013 23:02)
- Там есть пример --> Vit(110 знак., 15.09.2013 22:46, ссылка)
- А расскажите подробнее про заглушки, не совсем понимаю, как их сделать. Сейчас сделано так: Vladimir Ljaschko(317 знак., 15.09.2013 22:33)