Для тех, кто хотел бы сделать первый шаг и, возможно, немного поэкспериментировать, приведу последовательность действий, которые необходимо произвести, чтобы запустить простейшую программу на ассемблере на голом железе под эмулятором. Здесь я буду описывать процесс для Windows.
В прошлой заметке я рассказал о таком явлении, как программирование на голом железе и пообещал поделиться тем, что мне удалось накопать по данному вопросу. Однако прежде чем начать рассказывать про первые шаги в этом направлении, стоит провести небольшой экскурс в программное обеспечение, которое написано в данном стиле. Во-первых, это даст понять какого уровня программы можно написать в стиле bare metal. А во-вторых, большинство этих программ распространяется с исходными кодами, и, таким образом, там можно будет подсмотреть как реализован тот или иной момент.
Подавляющее большинство материала этой заметки — это перевод англоязычной статьи. Этот перевод был сделан несколько лет назад. К сожалению, я не сохранил ссылку на оригинальный материал, а повторно найти ссылку уже не смог, чтобы привести здесь первоисточник.
Это детальное описание процесса загрузки Raspberry Pi, собранное из различных источников, но в основном с официального форума. Прежде вам нужно знать, что RPi не загружается как обычный настольный компьютер. Видеоядро (VIdeoCore), или графический процессор, на самом деле загружается прежде, чем запускается процессор ARM.