raspberry

Урок ОК05

Начальная страница курса

В уроке ОК05 используется код урока ОК04 чтобы послать сигнал SOS при помощи светодиода.

1. Данные

До сих пор, все что мы должны были сделать для нашей операционной системы это предоставить ей необходимые инструкции. Тем не менее иногда инструкции это не все. Операционная система может нуждается в данных.

Урок 0 Введение

Начальная страница курса


Этот вводный урок не содержит практической части, он создан чтобы объяснить основные концепты, что такое операционная система, что такое код ассемблера, и другие основные понятия. Если Вы просто хотите приступить к практике, пропустите этот урок.

Baking Pi – Разработка операционной системы

Недавно мне попался занятный курс Alex Chadwick'а из Кембриджа.
Представляю Вашему вниманию вольный перевод уроков данного курса.
Обратите внимание, что оригинальный курс не адаптирован для Raspberry Pi B+, 2 и 3. В свою очередь для я приведу код для B+.
Надеюсь будет полезно!

Подключение RTC ds1307 к raspberry pi при помощи Device Tree

Недавно писал о том как работать с i2c устройством из пространства пользователя в linux.
В качестве пациента у мня raspberry pi b+ и часы реального времени ds1307. В предыдущей статье описан метод работы с устройством при помощи i2c-dev, но в Linux уже есть драйвер для этих часов (drivers/rtc/rtc-ds1307.c).
Нам нужно только скормить устройство драйверу и установить время.

Для указания системе о наличии нового устройства можно воспользоваться командой:

I2c в Linux из пространства пользователя

Наконец дошли руки до i2c в raspberry pi. Шина i2c в Linux доступна из ядра и из пространства пользователя благодаря модулю i2c-dev.
Как работать с i2c устройствами в linux рассмотрим на примере часов реального времени DS1307.
У меня модуль Tiny I2C Clock.

Стоит модуль копейки, но мне с ним очень не фортануло. Получил бракованную плату. Под батарейкой 3 закороченные дорожки.

Сборка ядра для Raspberry Pi

В этой статье посмотрим как кроcскомпилировать ядро для raspberry pi (у меня b+).
Я буду производить махинации в Fedora, но суть идентична для всех дистрибутивов.
Для сборки нам понадобиться компилятор. Его можно собрать самому, скачать из репозиториев Вашей ОС или же с git raspberry.

Поставим из малинового гита.

Добавляем свой пакет в Buildroot

Как-то давно я писал о том как сделать ПО под autotools. Штука весьма интересная и широко применяемая.
Так вот дело пришло к сборке при помощи buildroot окружения для моего Raspberry Pi B+.
Я не выдумывал велосипеды и слил уже приспособленный для малины buildroot с github: https://github.com/gamaral/rpi-buildroot

Собственный SPI драйвер для Linux на Raspberry Pi

В распространенных дистрибутивах для Raspberry Pi уже есть драйвер SPI. Но иногда, по тем или иным причинам, нужно сделать свой. Например если вы хотите сделать драйвер для spi дисплея и пофиг что он уже давно есть готовый. Мы не ищем легких путей.

Для того, чтобы подсунуть ядру свой драйвер SPI нужно поправить файл порта для raspberry. Для других плат этот файл будет отличаться, во всем остальном же статья подойдет для любого встраиваемого решения.

Прерывания GPIO в модуле ядра Raspberry Pi B+

В данной статье рассмотрим как настроить прерывание ядра по сигналу на GPIO, замерим сколько времени на это уходит.
О том как настроить GPIO в модуле ядра linux.

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

Для работы с GPIO и прерываниями включаем такие заголовки: