
О Raspberry Pi Pico, RP2040 и Baremetal
a_safyanov 28 минут назад О Raspberry Pi Pico, RP2040 и Baremetal Средний 41 мин 1.3K Программирование микроконтроллеров * C * Туториал Из песочницы В этой статье пойдет речь о первом поколении микроконтроллеров от...
<5 — 2026'da uzaya kaç SpaceX Starship fırlatması ulaşacak?
Вот важная новость с фронта ИИ: a_safyanov 28 минут назад О Raspberry Pi Pico, RP2040 и Baremetal Средний 41 мин 1. 3K Программирование микроконтроллеров * C * Туториал Из песочницы В этой статье пойдет речь о первом поколении микроконтроллеров от Raspberry Pi Foundation — RP2040 на основе двух ядер ARM Cortex‑M0+, и о плате, которая базируется на этом чипе — Raspberry Pi Pico. Статья призвана облегчить понимание некоторых принципов работы RP2040 и микроконтроллеров в целом.
RP2040 — очень дешевый и сравнительно мощный микроконтроллер (МК) с двухъядерной архитектурой, поддержкой USB и уникальными блоками PIO (Programmable I/O), чего хватает, к примеру, для эмуляции Macintosh 128K с поддержкой VGA, клавиатуры и мыши. Общая теория по RP2040 будет чередоваться с примерами кода по тем или иным пунктам с более детальным разъяснением оных: обсудим загрузчик, структуру простейшей прошивки, подготовим базис для написания программ. Весь последующий код — лишь мое непрофессиональное видение системы, приведенное в качестве примера для ознакомления.
Технические детали
Основную же смысловую нагрузку я постарался донести без искажения реальной информации. Все примеры доступны в репозитории. Выбор языкаРазработчики предлагают программировать плату на MicroPython, CircuitPython, C/C++ или в среде Arduino IDE.
Все примеры в этой статье написаны на Си (+ немного ассемблера), так как курс взят на низкоуровневое программирование и более глубокое понимание принципов работы микроконтроллера. Raspberry Pi Foundation предоставляет официальный Pico C/C++ SDK. Также для VS Code есть расширение, которое позволяет расставлять в коде breakpoint’ы, собирать проект, прошивать плату и производить отладку через SWD и консоль.
Pico SDK резервирует некоторые аппаратные ресурсы RP2040 (например, спинлоки), предоставляя разработчику готовые методы для реализации своих идей, что, очевидно, делает разработку кода легкой, но более абстрактной. Используя SDK, вы работаете с предопределенной за вас логикой управления железом. RP2040 — довольно гибкий и многофункциональный микроконтроллер с интересной системой загрузки, и для составления более детальной картины его работы дальнейшее повествование будет вестись без опоры на SDK.
Обзор RP2040 и Raspberry Pi PicoДаташит к RP2040 здесь. Рассмотрим аппаратный арсенал микроконтроллера и платы. Распиновка Raspberry Pi PicoСхема RP2040Из основного:2 ядра ARM Cortex‑M0+ с тактовой частотой до 133 МГц264КБ ОЗУ (SRAM) + 16КБ BootROMПоддержка до 16МБ внешней Flash‑памяти (2 МБ в Pico)30 контактов GPIO (25 доступно в Pico)По 2 блока UART, SPI и I2CPWM, 12-битный ADC, RTC, таймерDMA‑контроллерUSB 2.
Событие, по словам экспертов, усилит конкуренцию в сфере ИИ.





