Хотя этот короткий курс называется «Baking Pi — Operating System Development», он более реалистично описывает программирование на «голом железе» на языке ассемблера ARM. То есть программирование без помощи ОС.
Этот курс предназначен для объяснения реальных основ вычислений — между вами и оборудованием нет ничего. Вы пишете программу на языке ассемблера ARM, и базовый загрузчик запускает ее на Raspberry Pi.
Что вы делаете, так это создаете файл машинного кода и копируете его на SD-карту с загрузочной ОС. То есть вы заменяете kernel.img файлом, содержащим вашу собственную программу. В этом смысле вы пишете ОС — ваша программа работает вместо ОС.
Первоначально программа просто мигает светодиодом, но не путем вызова предусмотренных подпрограмм. Вместо этого вы напрямую программируете аппаратный чип, контроллер GPIO. Отсюда есть еще несколько уроков по использованию светодиода, а затем описывается встроенный таймер. Веселье со светодиодами завершается мигалкой кода Морзе.
Отсюда мы переходим к программированию прямо на экране. Это больше, чем просто работа с графическим устройством с отображением памяти. Графический чип такой же мощный, как и процессор, поэтому работать с ним немного сложнее. Несколько уроков перейдут от случайных точек к тексту.
Последние два урока посвящены работе с устройствами ввода. Первый из них начинается с признания того, что программировать такой ввод с нуля сложно, и поэтому для его упрощения используются некоторые библиотеки. Я могу понять, что ученик немного разочарован в этом месте, но так обстоят дела в реальном мире. Вы не пишете USB-библиотеку, если она доступна, даже если вы создаете ОС. В конце двух уроков у вас есть программа с клавиатурой и экраном, которую можно использовать как тупой терминал.
Используемые инструменты представляют собой ассемблер YAGARTO ARM, размещенный в Eclipse для Windows, Mac или Linux. Инструкции по настройке инструментов не особенно подробны, и, если у вас возникнут проблемы с курсом, ассемблер будет запущен.
В целом это выглядит как хороший способ вернуться к основам, и Raspberry Pi достаточно дешев, чтобы купить его, чтобы просто поиграть с ассемблером ARM.
Безудержное веселье.