Я разработчик приложений высокого уровня (C #, python), и я бы хотел испачкать руки разработкой низкоуровневых встроенных приложений. Кембриджский университет опубликовал серию учебных пособий, в которых рассказывается, как создать операционную систему для Raspberry Pi под названием Baking Pi. Я намеревался опубликовать свой вопрос относительно этого урока здесь и обновлять ответы по мере продвижения. Может быть, даже опубликовать некоторые моменты, которые я понял сам.
Так что я следовал за уроком 1 и уже запутался. Вот ссылка на страницу .
Первая часть урока говорит, что нам нужно (я полагаю) включить контроллер GPIO, записав значение 0x20200000 для регистрации r0. Я не могу найти такую актуальную информацию нигде в листе данных. ( ссылка ). Я посмотрел на раздел GPIO, но не увидел никаких признаков 16 регистров или r0. Где эта информация?
ОБНОВИТЬ
Прежде всего, в руководстве рассказывается о включении светодиода OK, который является светодиодом состояния. Вы можете спросить, где в Руководстве сказано, что GPIO 16 подключен к индикатору OK. Не будет Вам нужно взглянуть на Raspberry Schematics и найти, к какому GPIO подключен status_led. Вот ссылка на схему. Страница 2, Блок BCM2835.
Таким образом, цель состоит в том, чтобы выбрать вывод GPIO16. (больше обновлений, чтобы прибыть ...)
источник
Спасибо Jivings и emcconville за ответ на вопрос.
В листе данных pdf, стр. 6, раздел ARM физический адрес , есть раздел, который говорит
Переходя к странице 90, первая строка таблицы гласит:
поэтому 0x7E200000 преобразуется в физический адрес 0x20200000, который является 0-битным выбором функции GPIO.
Что касается r0, в ARM есть 16 регистров общего назначения, которые мы можем использовать для хранения чисел, и поэтому в руководстве он выбирает r0, поскольку это первый бесплатный регистр.
источник
Реестр
r0
черезr12
общего назначения. Естественно, проще всего начать сr0
. Как отметил Дживингс, в руководстве перечислены все адреса и указано:источник