Можно ли принудительно запустить загрузчик умных часов

Извините за длинное вступление, но оно помогает объяснить контекст вопроса.

Я пытался понять больше о том, как работают умные часы, чтобы написать для них собственную прошивку, прочитав код, похожий на arduino, который был размещен на github. Я заметил, что во всех примерах в функции loop() есть следующий код:

if(digitalRead(BUTTON)) standardShutdown();

Эта линия, по-видимому, отслеживает кнопку питания и, если она нажата, выключает часы. Однако это вызывает беспокойство. Цепочка загрузки как я понял пока такая: при включении часы начинают выполнять код загрузчика по адресу 0x08000000. Если USB подключен и пользователь нажимает кнопку в течение одной секунды, он входит в режим dfu и позволяет загрузить новую прошивку. В противном случае запускается код пользователя, который находится по адресу 0x08040000.

Что произойдет, если из-за ошибки программиста код войдет в бесконечный цикл и никогда не будет проверять кнопку питания или выключение? Есть ли способ принудительно перезагрузить часы (например, удерживая кнопку питания в течение пяти секунд, подключив USB-кабель с нажатой кнопкой или что-то в этом роде), чтобы снова запустить загрузчик и загрузить новую прошивку? Если нет, будет ли ошибка, вызывающая бесконечный цикл, навсегда заблокировать часы?

Обычно я бы просто попробовал и посмотрел, что произойдет, но я не хочу ломать свои часы, поэтому и спрашиваю здесь.


person user2671945    schedule 11.08.2013    source источник


Ответы (1)


Если вы отключите питание USB и будете удерживать кнопку в течение 10 секунд, питание выключится (при подаче питания через USB отключение питания невозможно). Волшебная последовательность восстановления заключается в том, чтобы выключить часы и подключить их к USB-кабелю, но пока НЕ ​​подключайте USB-кабель к ПК. Теперь нажмите кнопку питания часов, а затем подключите USB-разъем к компьютеру и отпустите кнопку питания. Вы должны сделать эту последовательность в течение одной секунды! Это переведет часы в режим DFU (на их дисплее внизу экрана появится зеленая полоса), и теперь вы можете их перепрошить.

Инструкция от Sony здесь:

http://developer.sonymobile.com/services/open-smartwatch-project/how-to-flash-alternative-firmware-to-smartwatch/

Возможно, часы нельзя разбить, но Sony, похоже, проделала достойную работу по настройке, чтобы вы могли восстановить их.

person Andy Valencia    schedule 12.08.2013
comment
Спасибо, я нигде не нашел на сайте Sony последовательности принудительного отключения питания. Его наличие делает меня более уверенным в работе с прошивкой. - person user2671945; 12.08.2013