MyTetra Share
Делитесь знаниями!
GPIO для чайников (дополнение)
Время создания: 30.08.2013 22:19
Раздел: Компьютер - Аппаратное обеспечение - Raspberry Pi - Цикл статей "GPIO для чайников"
Запись: xintrea/mytetra_syncro/master/base/13778867981estr97s7g/text.html на raw.github.com

В связи с тем, что библиотека bcm2835 периодически обновляется, то в неё вносятся изменения, которые могут повлиять на работоспособность ранее написанных примеров.


Так, на сегодняшний день доступна библиотека версии 1.16.


Если вы установили себе библиотеку более новой версии, чем 1.8 (установка которой описана в первой статье "GPIO для чайников"), то у вас может

возникнуть проблема с компиляцией написанных программ.

Например при компиляции может вылезти сообщение:


/usr/local/lib/libbcm2835.a(bcm2835.o): In function `bcm2835_delayMicroseconds':

/home/pi/bcm2835-1.15/src/bcm2835.c:350: undefined reference to `clock_gettime'

/home/pi/bcm2835-1.15/src/bcm2835.c:360: undefined reference to `clock_gettime'

collect2: ld returned 1 exit status


Чтобы обойти эту проблемму, достаточно при компиляции добавить опцию -l rt

Т.е., если раньше мы компилировали нашу программу button командой:


gcc -o button button.c -l bcm2835


то теперь нужно писать так:


gcc -o button button.c -lbcm2835 -lrt


Просто автор библиотеки в более новых версиях модифицировал функцию bcm2835_delayMicroseconds, которая теперь учитывает скорость выполнения команд процессором

и ей требуется обращение к real-time функциям.



Если вы владелец Raspberry PI Version2:


Для ревизии платы Raspberry PI v2 необходимо изменять определения портов GPIO.


Например, если мы для ревизии v1 писали определение для порта Р1_03 так:


#define PIN RPI_GPIO_P1_03


то для ревизии v2 эта строка должна выглядеть вот так:


#define PIN RPI_V2_GPIO_P1_03


Т.е. для определения любых портов ревизии v2 нужно добавлять в запись "_V2" между "RPI" и "_GPIO"


В прочем, это необходимо только тогда, когда вы используете в своих проектах порты с номерами: Р1-03, Р1-05 и Р1-13.


Для других портов это не имеет никакого значения, какое определение вы используете, т.к. остальные порты GPIO совпадают в обеих ревизиях.


Зато в ревизии v2 вывели дополнительно 4 новых порта на разъём Р5. Этих портов нет в ревизии v1 вобще. Обладатели же ревизии v2 могут использовать эти порты абсолютно так же, как и прочие. Номера этих портов: Р5-03, Р5-04, Р5-05 и Р5-06.


Соответственно псевдонимами этих портов будут:


RPI_V2_GPIO_P5_03

RPI_V2_GPIO_P5_04

RPI_V2_GPIO_P5_05

RPI_V2_GPIO_P5_06


 
MyTetra Share v.0.59
Яндекс индекс цитирования