Имя [Брюс Лэнд] из Корнеллского университета будет знакомо многим читателям Hackaday, а поиск на сайте по запросу «ECE4760» откроет множество интересных тем, касающихся встроенного программирования. Каждый год [Брюс] к нашему большому удовольствию публикует еще больше студенческих работ. Этот проект на основе RP2040 немного более абстрактен, чем некоторые предыдущие работы, и демонстрирует еще одну реализацию старого хака, позволяющего использовать Аппаратное обеспечение DMA RP2040 в качестве еще одного ядра ЦП. Хотя основной задачей подсистемы DMA RP2040 является перемещение данных между пространствами памяти с минимальным вмешательством ЦП, блоки управления DMA имеют довольно сложное поведение. Это позволяет реализовать полный по Тьюрингу ЦП исключительно с использованием аппаратного обеспечения DMA и небольшого количества памяти.
Этот метод связывает три из двенадцати каналов DMA и, по оценкам, имеет производительность, аналогичную «Arduino», но [Брюс] не уточняет, какая из различных моделей может быть такой. Но кого это волнует? Программирование ЦП — это вопрос использования поведения аппаратного обеспечения, вся память которого отображается и нацеливается с помощью DMA. Например, ЦП может перемещать контакты GPIO, используя DMA для записи значений в адресное пространство периферийного устройства. Основной поток можно увидеть на изображении выше. DMA0 используется в качестве счетчика программ, который указывает DMA1 на массив блоков управления DMA, последовательность которых кодирует некоторые «кодов операций» модели ЦП. DMA0 подключается к DMA1 (передает управление ему), который считывает блоки управления и соответствующим образом настраивает себя. DMA1 выполняет любое запрограммированное перемещение данных, связываясь с DMA2, который, в свою очередь, перепрограммирует программный счетчик DMA0, чтобы он указывал на следующий блок в списке, который должен быть выполнен DMA1.
Используя DMA1 для изменения последующих управляющих блоков DMA1 (там происходит самомодифицирующийся код!), система может реализовать более полезные операции, такие как сложение, логические операции и условное ветвление. Операции, инициируемые транспортом в некоторых теневых регистрах разрешены атомарные операции установки, сброса и XOR. Все умные вещи и замечательный студенческий проект, в котором можно принять участие. [Брюс] указывает на бумагу (с использованием Pi2) из Семинар ВУОТ 2015 что могло бы предложить лучшее объяснение всего этого процесса.
Если вам все еще интересно, кто такой [Брюс Лэнд], и вы хотите немного разобраться в некоторых из этих тем, тогда посмотрите наше предыдущее покрытие. Если эта теоретическая часть немного тяжела (т. е. скучна), то некоторые проекты имеют более практическую направленность, например важная задача сортировки кеглей по цвету.
Миниатюрное изображение: Томас Глау, CC BY-SA 4.0.
- SEO-контент и PR-распределение. Получите усиление сегодня.
- Платоблокчейн. Интеллект метавселенной Web3. Расширение знаний. Доступ здесь.
- Источник: https://hackaday.com/2023/01/20/help-needed-on-thumb-image-rp2040-dma-hack-makes-another-cpu-core/
- a
- выше
- АБСТРАКТ НАЯ
- соответственно
- дополнение
- адрес
- Все
- позволяет
- и
- Другой
- около
- массив
- основной
- Лучшая
- между
- Немного
- Заблокировать
- Блоки
- Сверление
- приносить
- Брюс
- определенный
- цепи
- каналы
- код
- комплекс
- контроль
- может
- счетчик
- ЦП
- критической
- данным
- восторг
- ДМА
- не
- встроенный
- включить
- По оценкам,
- пример
- объяснение
- достаточно
- знакомый
- поток
- Фокус
- от
- большой
- мотыга
- Руки
- Аппаратные средства
- HTML
- HTTPS
- изображение
- осуществлять
- реализация
- в XNUMX году
- in
- интересный
- вмешательство
- вовлеченный
- саму трезвость
- Земля
- Используя
- Список
- ДЕЛАЕТ
- многих
- Вопрос
- Память
- метод
- может быть
- минимальный
- модель
- Модели
- изменять
- БОЛЕЕ
- двигаться
- перемещение
- имя
- следующий
- Следующий блок
- предлагают
- ONE
- Операционный отдел
- производительность
- выполняет
- штифты
- Платон
- Платон Интеллектуальные данные
- ПлатонДанные
- Точка
- пунктов
- практическое
- предыдущий
- первичный
- грунтовка
- процесс
- FitPartner™
- запрограммированный
- Программирование
- Проект
- проектов
- чисто
- читатели
- регистры
- публикации
- поиск
- Последовательность
- набор
- Shadow
- Шоу
- аналогичный
- сайте
- некоторые
- Space
- пространства
- По-прежнему
- "Студент"
- последующее
- такие
- система
- Сложность задачи
- Ассоциация
- Проекты
- теоретический
- три
- Галстуки
- в
- Темы
- правда
- ОЧЕРЕДЬ
- Университет
- Наши ценности
- который
- в то время как
- КТО
- Википедия.
- Дикий
- будете
- замечательный
- интересно
- Работа
- разрабатывать
- записывать
- год
- зефирнет