Содержание
Урок 1. Первый проект
Урок 2. Управление кнопками
Урок 3. Подключение LCD
Урок 4. Использование ШИМ
Урок 5. Таймеры
Урок 6.1. Статическая индикация
Урок 6.2. Динамическая индикация
Урок 7.1. Генерация звука
Урок 7.2. Генерация звука. Продолжение
Урок 8.1. Передача данных через UART
Урок 8.2. Передача данных через UART. Продолжение»
Урок 9. Передача данных через SPI
Урок 10. Изучение АЦП. Простой вольтметр
Урок 11. Получение синуса при помощи ШИМ
Урок 12. Измерение температуры
Урок 13. Внешние прерывания.
Урок 14. Использование отладчика
Урок 15.1. Управление инкрементальным энкодером
Урок 15.2. Управление громкостью, при помощи энкодера
Урок 16. Управление RGB светодиодом
Урок 17. Использование ИК
Урок 18.1. Знакомство с графическим дисплеем
Урок 18.2 Вывод изображения на графический дисплей
Урок 18.3 Вывод русскоязычного текста
Урок 19. Формирование сигнала, при помощи ЦАП (R2R)
Урок 20. Опрос матричной клавиатуры
Урок 21. Сторожевой таймер
Урок 22.1 Воспроизведение wav. Введение.
Урок 22.2 Воспроизведение wav. Продолжение.
Урок 23.1 Работа с внешней памятью
Урок 23.2 Работа с файловой системой Fat

Писать программы для малины и компилить их на самой малине, то еще удовольствие. Сегодня попробуем написать простую программу и настроить средства для ее компиляции на десктопной машине с linux mint.

На самом деле, хоть ничего сложного в самой идее собирать сишный код на компе нет, но сам процесс имеет некоторые тонкости, которые по факту заключаются в правильной подготовке тулчейна, т.е. программ который помогут нам собрать наш исходник, для нужной нам архитектуры. В этой статье вы не найдете подготовки QT или Eclipse, мной намеренно выбран самый универсальный путь через make файл.

Для raspberry имеется готовый набор, который нам нужно установить. Я использую linux mint, поэтому в убунте по идее все должно быть точно также.

git clone https://github.com/raspberrypi/tools

Пишем исходник, например можно взять из прошлой статьи. Далее создаем файл Makefile

sudo nano Makefile

По сути, как бы делали уже тоже самое в прошлой статье

gcc hello.c -o hello

Простейший makefile выглядел бы точно также

all:
	gcc -o hello hello.c

Просто для его запуска нужно в консоли набрать make.

Теперь разница в том, что мы используем специально настроенный компилятор gcc, флаг ARCH=arm говорит об целевой платформе.

export ARCH=arm

all:
	/home/user/rpi_toolchain/tools/arm-bcm2708/arm-bcm2708-linux-gnueabi/bin/arm-bcm2708-linux-gnueabi-gcc -o hello hello.c

Дальше закрываем файл и сохраняем. Выполняем make. Все. в текущей папке появится файл hello

Можно сделать более универсальный makefile на будущее, с блекджеком

COMPILER_PATH="/home/user/rpi_toolchain/tools/arm-bcm2708/arm-bcm2708-linux-gnueabi/bin"
export CROSS_COMPILE=arm-bcm2708-linux-gnueabi-
export PATH="${COMPILER_PATH}":$PATH
export CROSS="${COMPILER_PATH}/${CROSS_COMPILE}"
export CC=${CROSS}gcc
export CXX=${CROSS}g++
export CPP=${CROSS}cpp
export LD=${CROSS}ld
export AS=${CROSS}as
export AR=${CROSS}ar
export RANLIB=${CROSS}ranlib
export STRIP=${CROSS}strip
export ARCH=arm

all:
	$(CC) -o hello hello.c

Полученный файл hello надо залить на плату, можно гемороиться и копировать через флешку, но как по мне удобнее его скопировать через SSH. Но перед этим создадим папку в /opt/gpio, на малине и дадим полные права кому угодно писать в эту папку, если это не сделать, то при попытке скопировать будет acess denied

sudo chmod 777 gpio

Далее скопируем наш исполняемый файл через SSH. Локальный адрес, нужно конечно же указать свой.

sudo scp /home/user/rpi_toolchain/projects/gpio_test/hello pi@192.168.0.40:/opt/gpio

В результате файл появится в папке /opt/gpio теперь можно его запустить ./hello и убедиться что он работает!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Счетчик
Яндекс.Метрика