AM3358 анонс кода инициализации

Зимой 2010 года, создавая этот сайт, я делал первые шаги в области 32-битных вычислений. В те далёкие времена народ ещё диковато посматривал на новые камушки от ARM, и все (кто мог) тихо сидели на AVR8. Но именно вскрытие кортексов на уровне ассемблера дало толчок для перехода от 8-битных вычислений к 32-битным.

Уже тогда я понимал, что нужно двигаться дальше. И я стал мечтать о большем, нежели STM32F103. Мир далёких систем сверкал гигантскими оперативками и большими мониторами. А я сидел и через пень-колоду цеплял к МК какие-то ЖК..

Ожидания были вознаграждены. В начале 2012 года появились очень интересные камушки от TI в серии AM335x. Это был прорывной камушек, приближенный по своим характеристикам к человеку. Большинство функциональных модулей в нём хорошо документированы, что делало AM335x пригодным для использования на высоком уровне - для инициализации всех его периферийных модулей и управлением ресурсами процессора на ассемблере.

Вслед за этим камушком, закономерно возник народный проект в виде платки, названной BeagleBone. О это был взрыв!
О ней тогда все говорили. Маленькая красивая платка, недорогая, с огромной оперативкой! Но когда выпустили ревизию
с набортным HDMI, я понял - это знак. Всё. Потребовалось лишь немного времени, что бы осуществить свою мечту.

И вот она, лежит, сверкает огоньками. Парни! Это тинка! Это мега!!! Я в изумлении, от всей простоты и доступности её возможностей, от нового процессора и платы. Язык программирования тот же самый, что и в народной серии кортексов. Это всё тот же ARMv7 с его простым и понятным ассемблером. Но каким! Он гораздо шире. Ведь это уже настоящий процессор.

А знаете ли вы, что любимый всеми ARMv7 начинался вовсе не с M3 и L0? Именно Cortex-A8 был первым ядром семейства ARMv7. Не многие сейчас вспомнят, что с анонсированием Cortex-A8 человечеству был дан сопроцессор NEON. А за счёт приличного VFP двойной точности, набор стандартных ассемблерных инструкций значительно расширяется. NEON в связке с VFP имеет настолько обширный набор инструкций, что вы можете писать программы чисто в их синтаксисе. Это почти 200 новых инструкций. Имея под рукой банк из десятков дополнительных 32-64-128 битных регистров, ваш код превращается в мостра-генератора-пожирателя данных. Каково вам, оперировать несколькими 128-бит регистрами за один машинный цикл? Со скоростью доступа к ОЗУ более гигабайта в секунду!

В далёкие зимние дни января 2016 года, когда я взялся за разработку AM335x, мир был тихо потрясён исторической новостью. Компания Atmel прекратила своё существование. Это было знаковое событие для всех любителей подрыгать ножкой. Те времена, когда меги использовались как молотилки чисел, безвозвратно ушли..

Анонсированный летом 2015 Cortex М7 стал ещё одним этапом перехода в мир больших и жирных камушков. Это новое ядро лишь подтвердило мои догадки, что на "статичном" F4 человечество не остановится. Энтузиасты ногодрыга могут познакомиться с тем, что их ждёт в ближайшем будущем. Cortex-A8 с двумя сопроцессорами на борту, заточенные под одноцикловую работу с портами, не заставляют себя долго ждать. Одного гигагерца вычислительных ресурсов уже должно быть достаточным для каждого. Пол-гигабайта DDR3 и FullHD монитор заменят ваши индикаторы от нокии. В жизнь войдёт новая эра возможностей, недоступная ранее для простого человека.

Плату гоняю сутками, работает как часы. MultiSync E221W, в связке с ней, обрёл свою новую и прекрасную жизнь. Желающие войти в этот мир, посмотрите в сторону BeagleboneBlack ревизии C. К ней понадобится USB-COM шнурок, который в фирменном исполнении называется UART8000-U. Я взял именно этот шнурок, пусть немного дороговатый, зато работает чётко, без драйверов, и даже через USB3. Плату и шнурок я брал на ебэе у официального поставщика с ником 1588088. Для подключения монитора, вам понадобится шнурок или переходник с разъёма Micro HDMI, который установлен на плате. Например, бывают переходные шнурки Micro HDMI to DVI-D для подключения к обычному монитору.

На сегодняшний день готова инициализация всех основных модулей процессора. Чистый проект теперь будет содержать в себе полный цикл настройки камня и периферии. Рабочая среда всё та же, на основе трёх файлов из набора binutils. Фактически вам остаётся только начать писать программы. Выкладывать код я буду по весне. Нужно всё вычистить и подготовить для публикации. Кроме того, в работе мне помогали люди с запада, там уже вовсю копают на Ситарах чистый ассемблер в блокноте, так что и для них будет сделана англоязычная версия кода. Моя работа уникальна. Человечество нуждается в ней и ждёт анонса.

Что есть на сегодня. Итак. Первое, это настройка тактирования процессора. Далее идёт подъём контроллера DDR3.
Затем контроллер LCD. I2C для связи с периферией. UART0 для вывода отладочной информации в консоль. Настройка внешнего корнтроллера питания TPS65217C и вывод ядра на гигагерц. И пожалуй самое любопытное, HDMI Framer TDA19988. Это довольно известная микросхема с поддержкой HDMI 1.4. Вы можете встретить её на многих платах. Разведён порт I2S, можно гнать стереозвук на телевизор через hdmi. Все кому не лень, пихают эту микросхему куда попало. Вот и на Бону это чудо замело! Данный framer имеет одну интересную особенность. Он... закрыт под NDA. Документации нет и не предвидится. Чё с ним делать, непонятно. Пришлось немного повозиться. Я даже слегка устал..

На базе AM335x создано большое количество плат и мезонинных модулей. После анализа рынка, я останавливаюсь на выборе Боны. Существуют её промышленные версии.

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

Для BeagleBone делаются всевозможные капы. Чего только есть!
Это истинно народный проект. Потому что камушек хороший.

..... продолжение следует .....