Микроконтроллер и Bootloader. Описание и принцип работы.


Использование кастомного Рекавери

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

Несмотря на это, пользователи, которые хотят поменять прошивку смартфона или установить операционную систему «со стороны» для устройства, заменяют заводской Recovery на кастомную версию.

Функционал пользовательской системы восстановления схож со стандартным аналогом. Хотя также существует несколько дополнительных возможностей кастомного Recovery, например, доступ к защищённым файлам и функциям. Чаще всего это используется как база для глобальных пользовательских изменений системы.

Наиболее надёжными пользовательскими система восстановления являются:

  • ClockworkMod Recovery.
  • Team Win Recovery Project (TWRP).

Bootloader — программа не позволяющая владельцу портативного устройства заменить прошивку на стороннюю. Однако существует несколько способов разблокировки ограничения от разработчиков.

Преимущества разблокированного загрузчика

Разблокированный bootloader открывает перед пользователем ровно те же возможности, что и на ПК, а именно:

  1. Прошить любую операционную систему (доступную для вашего устройства).
  2. Установка отдельных модулей, ядер ОС, приложений, патчей.
  3. Свободно мигрировать между стандартными прошивками, особенно если они основаны на разной версии Android.
  4. Без особого труда создавать резервные копии текущей ОС и\или приложений, а также восстанавливать их без использования ПК.
  5. Использовать Dual-Boot и устанавливать две и боле операционные системы, как во внутреннюю память, так и на внешнюю SD карту.
  6. Шире возможности восстановления, в случае неудачной прошивки.

И это далеко не весь список возможностей после заводской разблокировки андроид.

Основные причины поломки Bootloader Android

Наиболее популярная причина неполадок к системой Bootloader — проблема во время перепрошивки мобильного гаджета. Чаще всего это возникает из-за того, что выбранная версия кастомного Recovery содержит внутренние недочёты или во время установки компонентов произошёл сбой.

Рекомендуем: Увеличение громкости динамиков на Андроиде

Также Bootloader перестаёт функционировать из-за вируса, собравшего в файлы портативного гаджета.

Непоправимых ситуаций с работоспособностью внутренней системы портативного устройства нет. Файлы, отвечающие за восстановление ОС, находится в специализированном отделе памяти, к которому закрыт доступ пользователю. При поломке Bootloader или Recovery нарушается путь для запуска восстановления, однако сами данные остаются невредимыми. Переустановка дееспособной программы решает эту проблему.

Bootloader — как разблокировать загрузчик на Android

Bootloader — как разблокировать загрузчик на Android. Разблокировка Bootloader (загрузчика) на Android телефоне или планшете необходима, если вам потребовалось получить root (кроме тех случаев, когда вы используете для этого программы наподобие Kingo Root), установить собственную прошивку или кастомный рекавери. В этой инструкции пошагово описан процесс разблокировки официальными средствами, а не сторонними программами.

При этом, разблокировать загрузчик bootloader можно на большинстве телефонов и планшетов — Nexus 4, 5, 5x и 6p, Sony, Huawei, большинства HTC и других (разве что для безымянных китайских устройств и телефонов, привязанных к использованию одного оператора связи, это может быть проблемой).

Важная информация: при разблокировке bootloader на Android все ваши данные будут удалены. Поэтому, если они не синхронизированы с облачными хранилищами или не сохранены на компьютере, позаботьтесь об этом. Также при неправильных действиях и просто сбоях в процессе разблокировки загрузчика есть вероятность того, что ваше устройство просто больше не включится — эти риски вы берете на себя (как и возможность потерять гарантию — тут у разных производителей разные условия). Еще один важный пункт — перед тем, как начинать, полностью зарядите батарею вашего устройства.

Загрузка Android SDK и USB драйвера для разблокировки загрузчика Bootloader

Первый шаг — загрузить средства разработчика Android SDK с официального сайта. Перейдите на страницу https://developer.android.com и пролистайте ее к разделу «Other download options».

В разделе SDK Tools Only загрузите подходящий вам вариант. Я использовал архив ZIP с Android SDK для Windows, который после этого распаковал в папку на диске компьютера. Также для Windows присутствует и простой установщик.

Из папки с Android SDK запустите файл SDK Manager (если он не запускается — просто появляется и тут же исчезает окно, то дополнительно установите Java с официального сайта java.com).

После запуска отметьте пункт Android SDK Platform-tools, остальные пункты не нужны (разве что Google USB driver в конце списка, если у вас Nexus). Нажмите кнопку Install Packages, а в следующем окне — «Accept license» для загрузки и установки компонентов. По завершении процесса, закройте Android SDK Manager.

Помимо этого, вам потребуется загрузить драйвер USB для вашего Android устройства:

Способы восстановления через стандартное приложение Recovery

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

Для начала владелец устройства открывает режим Recovery. Делается это при включении смартфона или планшета. Во время запуска пользователь зажимает условленные сочетания клавиш на корпусе аппарата. Чаще попадаются следующие комбинации:

  • Кнопка уменьшения громкости и клавиша блокировки экрана.
  • Регулятор увеличения громкости звука и Power.
  • Обе кнопки регулировки громкости и блокировка экрана.
  • Клавиши «Домой» и Power.

Если сочетание кнопок выбрано верно, то на рабочем экране устройства появится опция Recovery. Остаётся только запустить восстановление в специальной вкладке — Wipe Data/Factory Reset.

После чего произойдёт полная перезагрузка системы и сброс до заводских настроек, что вернёт Bootloader в рабочее состояние.

Чем может быть полезна данная функция

Когда пользователь запустит функцию, перед ним откроется меню с интерфейсом на английском языке. Перемещения выполняются по нажатию на кнопки увеличения и понижения громкости, а кнопка Home служит для выбора.

В интерфейсе есть пункты, в которых пользователь:

  • Получит все сведения об устройствах, протестирует их или проанализирует работу операционной системы.
  • Заблокирует загрузчик, исправит имеющиеся баги с прошивкой.
  • Сменит установленную версию операционной системы на новую.
  • Удалит программы и софты, которые невозможно удалить в обычном режиме («вшитые» приложения от разработчика).
  • Сбросит настройки телефона до заводских, если гаджет функционирует со сбоями. Есть и другие способы сброса версии прошивки, но этот – действенный.

Рекомендуем: Что делать, если на Андроиде сами устанавливаются приложения

  • Очистит кэш. Мусорные файлы постепенно скапливаются в памяти устройства и затормаживают телефон. В первый год пользования смартфон работает с нормальной скоростью, но позже чаще подлагивает.

Пользователь на свой риск производит настройки в режиме загрузчика, т. к. велика вероятность сломать устройство при неправильном нажатии на кнопки.

Есть и другие задачи, выполняемые загрузчиком. К примеру, в Reboot to Bootloader владелец телефона при необходимости получит Root-права. Многие пользователи для этого устанавливают сторонние софты. Здесь же нужно разблокировать загрузчик, и Root-права будут предоставлены.

Восстановление через ПК

Восстановление bootloader загрузчика ОС Андроид на планшете или смартфоне также запускается при помощи компьютерных утилит.

Популярные программы с подобным функционалом:

  • FlashTool — для владельцев техники компании Sony.
  • Odin — для мобильных устройств Samsung.

При использовании этого метода, пользователь подключает портативный гаджет к ПК через USB-кабель. Возвращение первичного состояния происходит автоматически, при запуске функции в программе.

Микроконтроллер и Bootloader. Описание и принцип работы.

Приветствую всех на нашем сайте и сегодня мы после небольшого перерыва вернемся к теме микроконтроллеров. А если быть совсем точным, то мы начинаем обсуждать одну очень интересную и важную тему, а именно использование bootloader (загрузчика) при программировании контроллеров. Сегодня мы разберем теоретическую часть – зачем bootloader нужен, как он работает и что это вообще такое. Следующая статья будет посвящена целиком и полностью практике. Забегая вперед скажу, что мы напишем свой bootloader для любимых микроконтроллеров STM32!

Итак, простыми словами, bootloader – это специальная программа, которая располагается в памяти микроконтроллера и может самостоятельно перепрограммировать его. Давайте для лучшего понимания процесса посмотрим как вообще выполняется программа, прошитая в микроконтроллер, и где она располагается.

Как вы помните из статьи, посвященной flash-памяти микроконтроллеров STM32, основная пользовательская программа начинается с первой страницы памяти, а точнее с адреса 0х08000000. То есть при подаче питания контроллер сразу же убегает по этому адресу.

При использовании загрузчика все выглядит несколько иначе. Основная программа записывается уже по другим адресам и располагается начиная, например, с адреса 0х0800A000. А область памяти (0х08000000 – 0х0800А000) целиком и полностью отдается bootloader’у. В итоге в flash-памяти контроллера у нас находятся две полноценные программы. При включении устройства управление получает bootloader (поскольку он находится в области, начинающейся со “стартового” адреса 0х08000000), а при дальнейшей работе bootloader, выполнив все свои задачи передает управление нашей основной программе, которая располагается по адресу 0х0800А000 (этот адрес мы взяли для примера). Вот небольшая схемка для демонстрации работы загрузчика:

Вроде бы понятно как устроено, но возникает вопрос – зачем все это надо? Давайте разбираться!

Первостепенной задачей bootloader’а является программирование микроконтроллера. Он не просто выполняет какие-то действия, а затем передает управление основной программе (переходит на адрес, который соответствует началу основной программы), он, в первую очередь, самостоятельно записывает эту основную программу в flash-память по нужным адресам.

Давайте разберем небольшой пример для лучшего понимания. Пусть мы создали bootloader (bootloader – точно такой же обычный проект, как и любая другая программа для микроконтроллера), который реализует взаимодействие с внешней картой памяти, ищет на карте файл программы и, если находит, записывает программу в нужную область памяти.

Небольшое отступление от основной темы… Поясню, что я тут имею ввиду под “файлом программы”.

Когда мы создаем проект (Keil, IAR – без разницы), то на выходе (после сборки проекта) мы получаем скомпилированный файл для прошивки в микроконтроллер. Чаще всего мы использовали .hex файл программы. Так вот именно этот файл нам и нужен в данном случае.

Но именно hex-файл не совсем подходит для наших целей, поскольку помимо кода нашей программы он несет в себе дополнительную служебную информацию. Чтобы ее не обрабатывать и не вытаскивать из hex-файла нужный нам код, который bootloader должен записать во flash, мы в настройках компилятора во вкладке Output попросим его генерировать нам вместо hex-файла bin-файл.

Бинарник, в отличие от hex, содержит в себе только последовательный код программы и ничего больше. То есть bootloader’у остается только читать байты из bin-файла и записывать их во flash-память. То есть в нашем примере задачей загрузчика является чтение байт из файла на карте памяти и запись их по адресам, начиная с 0х0800A000. Вот псевдокод для наглядности:

void main() { // Инициализируем интерфейс SDIO для общения с картой памяти SDIO_Init(); while(1) { // Ищем файл прошивки if (f_open(файл.bin) == FR_OK) { ProgramFlash(); JumpToMainProgram(); } } }

Конечно, это сильно упрощенная версия загрузчика. Тут мы в вечном цикле пытаемся открыть файл с программой, а как только это нам удается (пользователь записал на карту долгожданный файл) bootloader программирует flash-память и перескакивает на адрес записанной им же программы. После этого контроллер начинает выполнять пользовательскую программу. Еще раз повторюсь, это всего лишь псевдокод для примера, полноценный bootloader для STM32 мы обязательно напишем в следующей статье!

Все это, конечно, очень интересно, но по-прежнему, непонятно, зачем нужны все эти сложности….

С этим на самом деле все просто – вот, например, первая ситуация – есть огромное количество устройств, на заводе работники прошили в каждый контроллер (например, при помощи ST-Link) на каждой плате bootloader, который при подключении к плате флешки (в заранее предусмотренный разъем) ищет на ней файл прошивки и выполняет программирование. Основную программу, конечно же, тоже можно прошить вместе с bootloader’ом через ST-Link. Но тонкость тут в том, что проект bootloader’а остается всегда неизменным и перепрошивать его не надо, а вот версия основной программы может обновляться кучу раз в процессе тестирования устройств.

И тут уже гораздо проще один раз подключить ST-Link и прошить загрузчик, а впоследствии просто скидывать новую версию основной программы на флешку и втыкать ее в готовое устройство, где перепрошивкой займется bootloader, чем по сто раз бегать от одной платы к другой, втыкать ST-Link, при этом перенося с собой ноутбук с ST-Link Utility

Рейтинг
( 2 оценки, среднее 5 из 5 )
Понравилась статья? Поделиться с друзьями:
Для любых предложений по сайту: [email protected]