Изучаем САПР Altera Quartus II / Intel Quartus Prime, язык описания аппаратуры Verilog HDL и кое-что про VHDL. Программируем FPGA Altera / Intel Cyclone III, Cyclone IV, MAX II, MAX10. Экспериментируем с платами разработчика FPGA серии Марсоход, Марсоход2, Марсоход3. А еще разбираемся с FPGA Gowin.
Итак, мне нужно откомпилировать Linux для Системы-на-Кристалле на базе проекта Amber ARM. Для этого мне потребуются красные глаза вот этого пингвина.
На первый взгляд, компиляция не должна быть проблемой, ведь есть оригинальная инструкция автора, как это сделать. И инструкция надо сказать совсем простая. Она находится в файле sw/vmlinux/README.txt:
# Download the kernel source wget http://www.kernel.org/pub/linux/kernel/v2.4/linux-2.4.27.tar.gz tar zxf linux-2.4.27.tar.gz ln -s linux-2.4.27 linux cd ${LINUX_WORK_DIR}/linux
# Build the kernel make dep make vmlinux
Сам Linux можно выкачать с kernel.org. Патчи есть в проекте. Я думал это работа так, минут на тридцать. Но не тут-то было. Признаюсь честно – для меня это было не просто. Так в чем же проблема?
MIDI-синтезатор реализованный на ПЛИСобладает минимальной задержкой от нажатия на клавишу и до начала звучания, это заметно, особенно по сравнению с софтовыми синтезаторами. Но главное, такое решение открывает широкое поле для музыкальных экспериментов, поскольку сочетает гибкость программного со скоростью, производительностью и реакцией аппаратного.
Конечно, хотелось бы получить от системы максимум возможного. «Идея-фикс» - это, конечно, запустить Linux в плате. К сожалению, я не являюсь таким уж большим специалистом в Linux, но отношусь к ней, как к «божеству», считая ее одним из важнейших достижений человечества .
Ну хоть какую нибудь версию, пусть не самую последнюю, запустить бы!
Как известно, все цифровые схемы строятся по общему принципу «машины состояния». Вся схема проекта состоит как-бы из двух частей: регистров, которые хранят текущее состояние системы и комбинационной логики, которая вычисляет из текущего состояния машины ее следующее состояние. Вся схема тактируется некой опорной частотой. Обычно по фронту сигнала тактовой частоты регистры производят запоминание следующего вычисленного состояния, и так происходит каждый такт. Так «машина состояний» работает, переходя из одного состояния в другое, третье и так далее.
Вот меня интересуют такие вопросы:
Почему цифровые схемы используют только один фронт сигнала тактовой частоты?
Почему нельзя использовать и фронт и спад?
Существуют ли в природе регистры, которые могли бы запоминать состояние и по фронту и по спаду одновременно?
Будет ли выигрыш по быстродействию или по потреблению энергии при использовании таких регистров?
Могу ли я сам ответить хотя бы на некоторые из этих вопросов?
Система на кристалле Amber реализует ARM процессор. Чтобы лучше понять, как он работает нужно разобраться в его системе команд. Скажу честно, понимать ассемблерный код вообще не очень просто. Еще труднее понимать код для ARM процессора – очень много странных суффиксов у команд, существуют разные непонятные значки возле операндов в командах. Понять не очень просто, но стоит однажды разобраться, чтобы потом с легкостью ориентироваться в чужом коде.
Надеюсь эта статья поможет в освоении процессоров семейства ARM. Несмотря на то, что в системе Amber реализован процессор самой младшей серии ARM v2a очень многое остается в силе и для более старших моделей процессоров.
Подробнее...