diff --git a/Linux/Files/GPIO_diagram.jpg b/Linux/Files/GPIO_diagram.jpg new file mode 100644 index 0000000..3766b58 Binary files /dev/null and b/Linux/Files/GPIO_diagram.jpg differ diff --git a/Linux/Files/raspberry_pi_circuit_note_fig2.webp b/Linux/Files/raspberry_pi_circuit_note_fig2.webp new file mode 100644 index 0000000..4b465cc Binary files /dev/null and b/Linux/Files/raspberry_pi_circuit_note_fig2.webp differ diff --git a/Linux/SBC RPi3 - Hardware.md b/Linux/SBC RPi3 - Hardware.md new file mode 100644 index 0000000..c747efb --- /dev/null +++ b/Linux/SBC RPi3 - Hardware.md @@ -0,0 +1,31 @@ +Все устройства в Linux живут тут: +`/dev` + +## I2C. Integrates +`/sys/bus/i2c/devices/` +По умолчанию шина отключена. +Включить можно следующими способами: +1. `sudo raspi-config` +2. Корректировкой `/boot/firmware/config.txt` + 1. Необходимо раскомментировать параметр `dtparam=i2c_arm=on` +Затем в устройство должно появиться в `/dev` как `i2c-1` + +Для работы с шиной и периферией есть библиотека `i2c-tools` + +## SPI + + +Команды для работы: +`cat /proc/device-tree/model` - модель платы для которой device tree создан +`ls /proc/device-tree/` - дерево устройств, которое kernel получил от GPU +`ls /sys/bus/platform/devices` - вывод устройств, которые kernel создал на основе DT +`lsmod` - просмотр загруженных модулей св + +## Commands +Система: +`vcgencmd get_config int` - параметры, которые передает GPU +`cat /etc/os-release` - просмотр версии системы + + + + diff --git a/Linux/SBC RPi3 - Lerning.md b/Linux/SBC RPi3 - Lerning.md new file mode 100644 index 0000000..1989b8b --- /dev/null +++ b/Linux/SBC RPi3 - Lerning.md @@ -0,0 +1,59 @@ +## Hardware starting. Процесс запуска и инициализации +Далее описан процесс запуска и инициализации оборудования следующих уровней: +Firmware layer +Hardware descriptional layer +kernal initialization stage + +1. Power On +2. Starting GPU on SoC +3. ROM внутри Video Core начинает выполнение. +4. GPU читает SD карту (загружаются) + Файлы расположены в /boot или /firmware/boot + 1. ==bootcode.bin== - FirstStage Bootloader. + Он инициализирует SDRAM и загружает прошивку start.elf + 2. ==start.elf== - Second Stage Bootloader + Инициализирует систему и загружает ядро линукс, управляет памятью + 3. ==config.txt== - файл конфигурации + Основной конфигурационный файл системы, считываемый GPU используемый для настройки оборудования + 4. ==cmdline.txt== + файл конфигурации, передаваемый ядру линукс при загрузке + 5. ==device tree== - подгружается дерево устройств. (файлы *dtb) + Передается в kernel. Хранятся в каталоге boot / firmware / overlays +5. Только после этого GPU включает ARM CPU +6. ARM начинает выполнение linux kernal + +## Device tree - Описание аппаратной конфигурации. + +Device Tree — это **описание аппаратной конфигурации конкретной платы**. +Применяется GPU до запуска ядра. +Device Tree Overlays - фрагмент device tree, который: + добавляет новое устройство + включает отключенный контроллер + меняет параметры существующего узла + +Пример изменения конфигурации DT без перекомпиляции ядра +Открыть config.txt и добавить `dtoverlay=i2c-rtc,ds3231` + +Что происходит: +1. GPU загрузит основной DTB +2. GPU применит overlay +3. GPU передаст модифицированный DT ядру +4. Ядро увидит новое устройство +5. Драйвер RTC автоматически загрузится + +Если удалить узел устройства (например SPI) из Device Tree то ядро просто не создаст SPI контроллер. + +Команды для работы: +`cat /proc/device-tree/model` - модель платы для которой device tree создан +`ls /proc/device-tree/` - дерево устройств, которое kernel получил от GPU +`ls /sys/bus/platform/devices` - вывод устройств, которые kernel создал на основе DT +`lsmod` - просмотр загруженных модулей + +## Commands +Система: +`vcgencmd get_config int` - параметры, которые передает GPU +`cat /etc/os-release` - просмотр версии системы + + + + diff --git a/README.md b/README.md index f705a4c..9f638fb 100644 --- a/README.md +++ b/README.md @@ -2,9 +2,10 @@ ## Obsidian Git-Vault 1. Habr guide: [HABR Возврат заметок домой](https://habr.com/ru/articles/814677/) -2. Token: +2. Настройка Obsidian + Git https://habr.com/ru/articles/843288/ +3. Token: ghp_kay9kXAiFP0gtK7w3arX7etsJif6wj2jqwh -3. Git-vault-link +4. Git-vault-link https://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@github.com/EmbedDevIOT/obsidian-vault-.git jazz only \ No newline at end of file