Obsługa GPIO na NewMarsboard A20, całość została sprawdzona na:
MarsBoard_A20_Debian_Wheezy_7.5_Lxde_Desktop
Przykład jak uruchomić wyjście PH20 i sterować LEDem do niego podłączonym
Informacja o funkcjach wyprowadzeń zapisana jest z pliku script.bin który jest przetwarzany w czasie uruchomienia systemu i własnie z nim musimy udostępnić wyprowadzenie PH20.
instalujemy niezbędne oprogramowanie:
sudo apt-get install libusb-1.0-0 libusb-1.0-0-dev git wget fakeroot kernel-package zlib1g-dev
instalujemy sunxi-tools, oprogramowanie służące do konwersji pliku script.bin > script.fex który możemy łatwo edytować w edytorze tekstu
będąc w naszym katalogu domowym
git clone https://github.com/linux-sunxi/sunxi-tools
cd sunxi-tools
make clean
make
montujemy partycje startową do systemu plików:
mount /dev/nanda /mnt
cd /mnt
konwertujemy plik script.bin na script.fex
bin2fex script.bin > script.fex
edytujemy plik script.fex
nano scrip.fex
interesuje nas sekcja:
[gpio_para]
gpio_used = 1
gpio_num = 3
gpio_pin_1 = port:PH12
gpio_pin_2 = port:PH21
gpio_pin_3 = port:PH09
zmieniamy na:
[gpio_para]
gpio_used = 1
gpio_num = 4
gpio_pin_1 = port:PH12
gpio_pin_2 = port:PH21
gpio_pin_3 = port:PH09
gpio_pin_4 = port:PH20
konwertujemy plik script.fex na script.bin
fex2bin script.fex > script.bin
uruchamiamy system ponownie: reboot
konfiguracja gpio4
echo 4 > /sys/class/gpio/export
po tej operacji w /sys/class/gpio pojawi się gpio4_ph20
ustawiamy gpio jako wyjście
echo "out" > /sys/class/gpio/gpio4_ph20/direction
sterowanie wyjściem:
stan wysoki:
echo 1 > /sys/class/gpio/gpio4_ph20/value
stan niski:
echo 0 > /sys/class/gpio/gpio4_ph20/value
modyfikując plik script.bin możemy również uruchomić magistrale I2C, SPI itp.
Za sterowanie podświetlaniem wyświetlacza LCD odpowiada wyprowadzenie PH2 - sterując nim możemy wyłączyć podświetlanie wyświetlacza - dotyk będzie wciąż działał.