Часто встречаются вопросы, типа "Как дрыгать ногой SAM9260", "Как включать-выключать реле", "Как зажечь светодиод" и т.п.
Привожу пример программы, которая мигает светодиодом на ногах 1 и 3 разъема X1 с интервалом 1 секунда. Доступ сделан через memory mapping (/dev/mem), специальный драйвер ядра не нужен.
В прикрепленном архиве файлы gpio.c и Makefile, сборка простым make, никакие файлы больше не требуются, перфикс кросс-компилятора в переменной CC в Makefile - измените на свой, если не armv5l-linux-uclibc...
Таким же образом можно писать-читать ЛЮБЫЕ адреса памяти или устройств (т.к. в SAM все девайсы отображены на память, см. datasheet). Что такое mmap и как оно работает - см. мануал libc.
Еще проще сделать не могу... Проверено - собирается и работает.
Собрал под вмварей в редхате что с диска. Положил бинарник в /root
Загружаю платку , делаю chmod 777 gpio
пытаюсь запустить /root/gpio или ./gpio на что ругается
"-ash: /root/gpio: not found"
В чем моя ошибка может быть ? Мб дело в бизибоксе ? он не дает запускать ?
Добавил в ccflags опцию -static и все заработало и светодиод замигал и hello world заработал. Но при этом и возрос размеры бинарников почти 500 кб каждый
Насколько понимаю без -static он пытается найти какие то модули на плате , и не находит , тогда какие именно либы он хочет ?
Наконец то у меня получилось собрать этот же пример и в моей ubuntu .... не нравится мне этот rh enterprice.
Мб ктонибудь сделает нормальный дистрибутив какого нибудь дистрибутива линукса со всем необходимым , чтоб народ не мучался ?