Относительно недавно вышел миникомпьютер Raspberry Pi 2. Это устройство размером чуть больше кредитной карточки имеет на своем борту четырехъядерный процессор ARM Cortex-A7, работающий на тактовой частоте 900 МГц, 1 ГБ оперативной памяти, а также много разъемов для различных интерфейсов. С помощью Raspberry Pi 2 теперь можно будет выполнять более смелые в плане возможностей проекты, начиная с области домашней автоматизации и заканчивая робототехникой. Raspberry Pi 2 сохранил все положительные особенности первой модели (на нем также можно запускать те же операционные системы, что и на первом Raspberry Pi), а также внес свои.
Миникомпьютер Raspberry Pi 2, безусловно, превосходит по вычислительной мощности своих предшественников (Raspberry Pi Model A, Model B, Model B+ и т.д.). Многочисленные бенчмарки лишь подтверждают это. Но насколько быстра периферия у этого миниПК, в частности линии GPIO?

Чтобы узнать это, были проведены тесты с использованием различных языков программирования и различных библиотек. Измерения проводились с помощью PicoScope 5444B. В итоге получили следующие результаты.
Язык | Библиотека | Raspberry Pi 1 | Raspberry Pi 2 | Разница |
Shell | /proc/mem access | 2.8 КГц | 7.0 КГц | 2,5x |
Shell / wiringPi | WiringPi gpio utility | 40 КГц | 95 КГц | 2,4x |
Python | RPi.GPIO | 70 КГц | 243 КГц | 2,5x |
Python | Сборка wiringpi2 | 28 КГц | 103 КГц | 3,7x |
Ruby | Сборка wiringpi | 21 КГц | N/A | N/A |
C | Native library | 22 МГц | 41.7 МГц | 1,9x |
C | BCM2835 | 5.4 МГц | 7.2 МГц | 1,3x |
C | WiringPi normal GPIO wiringPiSetup() | 4.1 МГц | 9.3 МГц | 2,3x |
C | WiringPi GPIO wiringPiSetupGpio() | 4.6 МГц | 9.4 МГц | 2x |
C | WiringPi sys wiringPiSetupSys() | 120 КГц | 185 КГц | 1.5x |
Perl | BCM2835 | 48 КГц | 154 КГц | 3.2x |
Не все примеры кода работали без проблем на Raspberry Pi 2. Например, в strobe.c базовый адрес нужно было сменить с 0x20000000 на 0x3F000000:
#define BCM2708_PERI_BASE 0x3F000000А сборка на Ruby для wiringpi совершенно отказывалась работать.
В итоге, основываясь на вышеприведенных результатах, порты GPIO на Raspberry Pi 2 работают в 2-3 раза быстрее, то есть у пользователей второй версии есть возможность мигать светодиодом значительно чаще, хотя для человеческого глаза это уже не будет иметь никакого значения. Также стоит отметить, что большинство библиотек, подходящих для первой модели, пригодны и для использования на Raspberry Pi 2.
Впрочем, следует отметить, что не только миганием светодиода должен заниматься новый Raspberry Pi. Такое преимущество в скорости работы линий GPIO, безусловно может пригодиться в каких-нибудь частотных приложениях.