NXP i.MX7D  загрузка кода в камушек

Когда я впервые открыл документацию на новый i.MX, то с удивлением обнаружил, что в этих камушках отсутствует
стандартный загрузчик через UART. Его убрали много лет назад... Но разобравшись в теме, быстро понял,
что в мире больших чисел, UART не котируется..

Представьте небольшую программу, с десятком фоновых картинок, видеофайлом и парой звуковых дорожек.
Допустим это весит 300 мегабайт. Сколько эта глыба будет загружаться через UART?

Очевидно, что играясь с такими камушками-монстрами, даже в начале пути, 219 килобайт встроенной SDRAM будет явно недостаточно для загрузки всего проекта одним махом. Фон для FullHD экрана может занимать до восьми мегабайт!

На этапе отладки, вы будете использовать USB Serial downloader для загрузки программы в камень.
Причём не просто в камень, а непосредственно в DDR память, которая стартует без вашей помощи!

В i.MX реализована уникальная возможность, поднять DDR SDRAM до того, как начнёт загружаться код в камень.
И этот механизм называется DCD. В самом начале прошивки располагается заголовок с её описанием.
А за ним следуют device configuration data, 32-битные данные, предназначенные для прямой записи
в регистры процессора. Загрузчик интерпретирует листинг DCD, обновляет регистры и память стартует.
Механизм работает на лету. Делов на миллисекунды!

Далее в ожившую DDR загружается бинарный файл прошивки.

Для загрузки кода в камень используется утилита sb_loader. Откуда она берётся и где прячется? Очень далеко.
В недрах офсайта найдите и скачайте Manufacturing Tool. Желательно для своего камушка.

В папке sb_loader будет лежать заветная утилита. Она одна, для всей линейки i.MX.
Как это всё работает, легко понять из комплекта разработчика.

Установите в терминале скорость COM-порта в 1000000 бит/сек.
Заливайте код. Камушек должен отозваться.
И замигает светодиод на плате.


Всё просто! Когда знаешь ;-)