Компилируем device tree
Для загрузчика и ядра Linux требуется двоичное представление дерева устройств (Device Tree), которое создается с помощью компилятора дерева устройств – dtc. Компиляция создает файл с расширением .dtb, который называется бинарным деревом устройств или блобом дерева устройств.
Вот как это сделать:
1. Компилятор dtc встроен в исходный код Linux в директории scripts/dtc/dtc и также доступен в виде пакета для большинства дистрибутивов Linux.
2. Чтобы скомпилировать простое дерево устройств (без использования #include), выполните команду:
⚠️ Важно: Компилятор dtc не выдает подробных сообщений об ошибках и проверяет только базовый синтаксис, поэтому ошибки в исходном файле могут быть сложными для отладки.
Более подробно погрузиться в предметную область можно на нашем курсе “Основы разработки встраиваемых систем на базе Embedded Linux”
Для загрузчика и ядра Linux требуется двоичное представление дерева устройств (Device Tree), которое создается с помощью компилятора дерева устройств – dtc. Компиляция создает файл с расширением .dtb, который называется бинарным деревом устройств или блобом дерева устройств.
Вот как это сделать:
1. Компилятор dtc встроен в исходный код Linux в директории scripts/dtc/dtc и также доступен в виде пакета для большинства дистрибутивов Linux.
2. Чтобы скомпилировать простое дерево устройств (без использования #include), выполните команду:
$ dtc simpledts-1.dts -o simpledts-1.dtb
DTC: dts->dts on file "simpledts-1.dts"
⚠️ Важно: Компилятор dtc не выдает подробных сообщений об ошибках и проверяет только базовый синтаксис, поэтому ошибки в исходном файле могут быть сложными для отладки.
Более подробно погрузиться в предметную область можно на нашем курсе “Основы разработки встраиваемых систем на базе Embedded Linux”
👍3
Управление переменными окружения в U-Boot
В U-Boot есть ряд команд для работы с переменными окружения, позволяющими управлять конфигурациями загрузки и системными настройками:
✏️printenv [name ...] — выводит значения переменных окружения. Без аргументов отображает все переменные, а если указаны имена переменных, выводит только их значения.
✏️printenv_dynamic — отображает все динамические переменные.
✏️envreset — сбрасывает все переменные окружения к заводским настройкам. Не затрагивает постоянные настройки, такие как wlanaddr или ethaddr, которые хранятся в NVRAM.
✏️saveenv — сохраняет текущие значения переменных в NVRAM, чтобы они были доступны после перезагрузки.
✏️setenv name [value] — устанавливает значение для переменной с именем name. Если значение value не указано, переменная удаляется. Если переменная динамическая, она будет сброшена на значение по умолчанию.
🔖 Более подробно погрузиться в предметную область можно на нашем курсе “Углубленный тренинг по загрузчику”
В U-Boot есть ряд команд для работы с переменными окружения, позволяющими управлять конфигурациями загрузки и системными настройками:
✏️printenv [name ...] — выводит значения переменных окружения. Без аргументов отображает все переменные, а если указаны имена переменных, выводит только их значения.
✏️printenv_dynamic — отображает все динамические переменные.
✏️envreset — сбрасывает все переменные окружения к заводским настройкам. Не затрагивает постоянные настройки, такие как wlanaddr или ethaddr, которые хранятся в NVRAM.
✏️saveenv — сохраняет текущие значения переменных в NVRAM, чтобы они были доступны после перезагрузки.
✏️setenv name [value] — устанавливает значение для переменной с именем name. Если значение value не указано, переменная удаляется. Если переменная динамическая, она будет сброшена на значение по умолчанию.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1👏1
Архитектура графической подсистемы Linux
Делимся материалами, которые помогут вам глубже разобраться в данной теме:
1. Embedded Graphics Drivers in Mesa (ELCE 2019). Ссылка: https://youtu.be/By_XgayTSrY?si=0giFf4YJHXMv2WN3
2. "Panfrost: Open Source meets Arm Mali GPUs" - Robert Foss (LCA 2020). Ссылка: https://youtu.be/ABdoZo3AXlw?si=bJfMBX3861sgp2O6
3. Wayland Architecture. Ссылка: https://www.cnblogs.com/psbec/p/13543682.html
Делимся материалами, которые помогут вам глубже разобраться в данной теме:
1. Embedded Graphics Drivers in Mesa (ELCE 2019). Ссылка: https://youtu.be/By_XgayTSrY?si=0giFf4YJHXMv2WN3
2. "Panfrost: Open Source meets Arm Mali GPUs" - Robert Foss (LCA 2020). Ссылка: https://youtu.be/ABdoZo3AXlw?si=bJfMBX3861sgp2O6
3. Wayland Architecture. Ссылка: https://www.cnblogs.com/psbec/p/13543682.html
🔥2
Дайджест популярных постов этой осени
Собрали для вас небольшую подборку наиболее полезных постов за последние несколько месяцев. Сохраняйте, чтобы не потерять!
Команды для работы с USB для Uboot
Сетевые команды для Uboot
Ресурсы для подготовки к тренингу “Разработка драйверов Linux”
Ресурсы для подготовке к тренингу “Основы разработки для Embedded Linux”
Собрали для вас небольшую подборку наиболее полезных постов за последние несколько месяцев. Сохраняйте, чтобы не потерять!
Команды для работы с USB для Uboot
Сетевые команды для Uboot
Ресурсы для подготовки к тренингу “Разработка драйверов Linux”
Ресурсы для подготовке к тренингу “Основы разработки для Embedded Linux”
👍2
Основы разработки встраиваемых систем на базе Embedded Linux (Базовый уровень)
Какие темы рассматриваются?
Тема 1. Linux Kernel
Тема 2. Исходный код
Тема 3. Kernel Configuration
Тема 4. Загрузка ОС
Тема 5. Безопасность и уязвимости
Подробнее ознакомиться с программой и темами тренинга вы можете на нашем сайте: https://linuxcourses.rtsoft.ru
Какова продолжительность тренинга?
Наш интенсив занимает 2 насыщенных дня - обучение длится около 8 часов в каждый из дней.
Выдается ли сертификат по окончании обучения?
Да, мы выдаем сертификат собственного образца
Предусмотрены ли практические занятия?
Да! Мы в каждом нашем тренинге выделяем часы для проведения практических (“лабораторных”) работ .
Пример лабораторной работы: Пример сборки образов, добавления рецепта для пользовательского приложения (с Makefile и CMake), рецепта для модуля ядра
Please open Telegram to view this post
VIEW IN TELEGRAM
linuxcourses.rtsoft.ru
Корпоративное обучение системному программированию на Linux
Интенсивные программы «Системное программирование для Linux» и «Разработка драйверов для Linux», которые помогают слушателям выйти на новый уровень понимания этой операционной системы.
Работа с памятью в U-Boot: команды cp и cmp
Одними из ключевых команд для работы с памятью являются cp (копирование) и cmp (сравнение).
Команда cp используется для копирования данных из одной области памяти в другую. Формат:
Команда cmp сравнивает содержимое двух областей памяти. Формат команды:
Одними из ключевых команд для работы с памятью являются cp (копирование) и cmp (сравнение).
Команда cp используется для копирования данных из одной области памяти в другую. Формат:
cp [адрес источника] [адрес назначения] [количество слов]
Команда cmp сравнивает содержимое двух областей памяти. Формат команды:
cmp [адрес 1] [адрес 2] [количество слов]
Публикуем программу тренинга по 4diac 🔥
1. Обзор 4diac и Forte
• Среда разработки и среда исполнения
• Базовое приложение
• Приложения с сетевым соединением по MQTT и Modbus
2. Структура исходных кодов проектов Forte
3. Функциональные блоки и обработка событий
• События
• Входные переменные
• Типы функциональных блоков
• Композитные функциональные блоки
4. Собственные функциональные блоки
• Типы функциональных блоков
• Кастомные функциональный блоки
5. Сетевая подсистема и система ввода-вывода
• Стандартные функциональные блоки
• Архитектура сетевой подсистема
• Архитектура подсистемы ввода-вывода
6. Протокол взаимодействия 4diac и Forte
• Файлы конфигурации
• Взаимодействие 4diac и forte
7. 4diac как система реального времени
Продолжительность тренинга: 2 дня
Даты тренинга на данный момент формируются по запросу.
Для записи необходимо направить заявку по почте: [email protected]
1. Обзор 4diac и Forte
• Среда разработки и среда исполнения
• Базовое приложение
• Приложения с сетевым соединением по MQTT и Modbus
2. Структура исходных кодов проектов Forte
3. Функциональные блоки и обработка событий
• События
• Входные переменные
• Типы функциональных блоков
• Композитные функциональные блоки
4. Собственные функциональные блоки
• Типы функциональных блоков
• Кастомные функциональный блоки
5. Сетевая подсистема и система ввода-вывода
• Стандартные функциональные блоки
• Архитектура сетевой подсистема
• Архитектура подсистемы ввода-вывода
6. Протокол взаимодействия 4diac и Forte
• Файлы конфигурации
• Взаимодействие 4diac и forte
7. 4diac как система реального времени
Продолжительность тренинга: 2 дня
Даты тренинга на данный момент формируются по запросу.
Для записи необходимо направить заявку по почте: [email protected]
Please open Telegram to view this post
VIEW IN TELEGRAM
Конференция будет полезна разработчикам системного и встраиваемого ПО, специалистам по разработке ядра и драйверов, специалистам по SoC, сетевым инженерам.
Спикеры расскажут о работе с ядром Linux, а также поделятся докладами про прототипы SoC, драйверы на Rust, параллельное программирование без ОС и системное программирование.
Полную программу можно посмотреть на сайте конференции.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6👍2
Коллеги, анонсируем новые даты курсов на 2025 год 🔥
Основы разработки встраиваемых систем на базе Embedded Linux - 16-17 января 2025
Разработка драйверов Linux - 3-7 февраля 2025
Углубленный тренинг по загрузчику - 25-26 февраля 2025
Тренинг по 4diac - 13-14 марта 2025
Тренинг по ML для Embedded - 27-28 марта 2025
*даты потоков могут меняться в зависимости от набора группы
Зарегистироваться можно на нашем сайте: https://linuxcourses.rtsoft.ru
Основы разработки встраиваемых систем на базе Embedded Linux - 16-17 января 2025
Разработка драйверов Linux - 3-7 февраля 2025
Углубленный тренинг по загрузчику - 25-26 февраля 2025
Тренинг по 4diac - 13-14 марта 2025
Тренинг по ML для Embedded - 27-28 марта 2025
*даты потоков могут меняться в зависимости от набора группы
Зарегистироваться можно на нашем сайте: https://linuxcourses.rtsoft.ru
linuxcourses.rtsoft.ru
Корпоративное обучение системному программированию на Linux
Интенсивные программы «Системное программирование для Linux» и «Разработка драйверов для Linux», которые помогают слушателям выйти на новый уровень понимания этой операционной системы.
Device Firmware Upgrade (DFU)
Device Firmware Upgrade (DFU) – это важный механизм, который позволяет загружать и выгружать прошивки в U-Boot через USB.
В U-Boot поддержка DFU осуществляется с помощью команды dfu, опцией CONFIG_DFU, а также с использованием стека DFU, который включает файлы common/dfu.c и common/spl/spl_dfu.c. При этом используется USB DFU, который реализован в файле drivers/usb/gadget/f_dfu.c.
Доступ к носителям осуществляется через бэкенды DFU, находящиеся в driver/dfu. В настоящее время поддерживаются:
• MMC (RAW, FAT, EXT2, EXT3, EXT4, SKIP, SCRIPT)
• SCSI (UFS, RAW разделы, FAT, EXT2, EXT3, EXT4, SKIP, SCRIPT)
• NAND
• RAM
• SF (серийная флеш-память)
• MTD (все устройства MTD: NAND, SPI-NOR, SPI-NAND)
• Виртуальный
Подробнее о Uboot можно узнать на наших тренингах: https://linuxcourses.rtsoft.ru
Device Firmware Upgrade (DFU) – это важный механизм, который позволяет загружать и выгружать прошивки в U-Boot через USB.
В U-Boot поддержка DFU осуществляется с помощью команды dfu, опцией CONFIG_DFU, а также с использованием стека DFU, который включает файлы common/dfu.c и common/spl/spl_dfu.c. При этом используется USB DFU, который реализован в файле drivers/usb/gadget/f_dfu.c.
Доступ к носителям осуществляется через бэкенды DFU, находящиеся в driver/dfu. В настоящее время поддерживаются:
• MMC (RAW, FAT, EXT2, EXT3, EXT4, SKIP, SCRIPT)
• SCSI (UFS, RAW разделы, FAT, EXT2, EXT3, EXT4, SKIP, SCRIPT)
• NAND
• RAM
• SF (серийная флеш-память)
• MTD (все устройства MTD: NAND, SPI-NOR, SPI-NAND)
• Виртуальный
Подробнее о Uboot можно узнать на наших тренингах: https://linuxcourses.rtsoft.ru
👍3
Вебинары от ЦПР РТСофт возвращаются!
Уже через неделю, 19.12 (четверг) в 11.00, состоится новый бесплатный вебинар на тему “Изюминки микропроцессорных архитектур. Часть 3”.
Зарегистрироваться можно по ссылке: https://rtsoft-swdc.timepad.ru/event/3148858/
Уже через неделю, 19.12 (четверг) в 11.00, состоится новый бесплатный вебинар на тему “Изюминки микропроцессорных архитектур. Часть 3”.
Зарегистрироваться можно по ссылке: https://rtsoft-swdc.timepad.ru/event/3148858/
🔥5👍4
Темы, которые будут рассмотрены: организация обработки прерываний на различных архитектурах (m68k, x86, powerpc, arm и др.); некоторые особенности обработки в различных ОС; типичные проблемы.
Регистрация доступна по ссылке: https://rtsoft-swdc.timepad.ru/event/3148858/
Please open Telegram to view this post
VIEW IN TELEGRAM
Регистрация доступна по ссылке: https://rtsoft-swdc.timepad.ru/event/3148858/
Please open Telegram to view this post
VIEW IN TELEGRAM
19.12 в 11.00 состоялся вебинар на тему “Изюминки микропроцессорных архитектур. Часть 3”.
Если вы присутствовали на вебинаре, пожалуйста, заполните форму с обратной связью: https://forms.yandex.ru/u/6769101fe010db1ffb1505c2/. Заполнение займет не более 1 мин. Спасибо!
Если вы присутствовали на вебинаре, пожалуйста, заполните форму с обратной связью: https://forms.yandex.ru/u/6769101fe010db1ffb1505c2/. Заполнение займет не более 1 мин. Спасибо!
Дорогие коллеги!
ЦПР РТСофт поздравляет вас с наступающим 2025 годом и желает вам профессиональных и творческих свершений, благополучия и счастья!
Пусть этот год принесет множество новых возможностей, ярких идей и успешных проектов, и станет годом исполнения ваших мечт, роста и процветания!
С праздником! С Новым годом! 🎄✨
ЦПР РТСофт поздравляет вас с наступающим 2025 годом и желает вам профессиональных и творческих свершений, благополучия и счастья!
Пусть этот год принесет множество новых возможностей, ярких идей и успешных проектов, и станет годом исполнения ваших мечт, роста и процветания!
С праздником! С Новым годом! 🎄✨
🎄9👍1
Коллеги, делимся новыми датами тренингов на январь и февраль 2025:
➡️ Разработка драйверов Linux - 3-7 февраля 2025
➡️ Углубленный тренинг по загрузчику - 21-22 января 2025 (успейте подать заявку!)
‼️ Новые даты тренинга “Основы разработки встраиваемых систем на базе Embedded Linux” будут объявлены позднее!
Для регистрации необходимо заполнить и отправить форму на сайте: https://linuxcourses.rtsoft.ru/
Для регистрации необходимо заполнить и отправить форму на сайте: https://linuxcourses.rtsoft.ru/
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
Подборка кейсов по ML и Computer Vision
Мы регулярно занимаемся выполнением заказов, связанных с разработкой систем на основе машинного обучения и компьютерного зрения, поэтому сегодня решили поделиться наиболее интересными кейсами из практики:
📌 Компьютерное зрение на производстве: система контроля качества продукции предприятия - https://outsource.rtsoft.ru/blog/computer-vision-in-manufacturing
📌 Наш опыт интеграции мультимедийной приставки на базе RK3588 и AR/VR-очками - https://outsource.rtsoft.ru/blog/rk3588-virtual-reality
📌 Оптическое распознавание символов и автоматизация бизнеса- https://outsource.rtsoft.ru/blog/ocr
📌 Система компьютерного зрения для распознавания пассажиропотока в транспорте - https://outsource.rtsoft.ru/blog/underground-passengers-monitoring
📌 AI тренировки на смартфоне - https://outsource.rtsoft.ru/blog/ai-movement-recognition
Мы регулярно занимаемся выполнением заказов, связанных с разработкой систем на основе машинного обучения и компьютерного зрения, поэтому сегодня решили поделиться наиболее интересными кейсами из практики:
Please open Telegram to view this post
VIEW IN TELEGRAM
Поделитесь в комментариях, какие темы бы было интересно разобрать?
Please open Telegram to view this post
VIEW IN TELEGRAM
Тренинг “Разработка драйверов Linux” переносится на 24-28 февраля.
Успейте подать заявку на обучение по ссылке: https://linuxcourses.rtsoft.ru/
Please open Telegram to view this post
VIEW IN TELEGRAM
linuxcourses.rtsoft.ru
Корпоративное обучение системному программированию на Linux
Интенсивные программы «Системное программирование для Linux» и «Разработка драйверов для Linux», которые помогают слушателям выйти на новый уровень понимания этой операционной системы.
Выбираем оборудование и фреймворки для EML (Embedded Machine Learning)
Основная задача EML — адаптировать мощные алгоритмы машинного обучения к работе на ресурсозависимых платформах.
Самые популярные устройства:
➡️ Raspberry Pi (для начальных экспериментов и лёгких приложений)
➡️ NVIDIA Jetson Nano/AGX Xavier (для задач с интенсивными вычислениями, например, компьютерного зрения)
➡️ Google Coral Dev Board (для инференса моделей TensorFlow Lite с поддержкой Edge TPU)
➡️ ASUS Tinker Board, Banana Pi (альтернативы для недорогих приложений IoT)
Фреймворки:
TensorFlow Lite позволяет уменьшать модели через квантизацию, что помогает сделать их более компактными и эффективными для мобильных устройств.
MicroTVM интегрируется с популярными библиотеками глубокого обучения (TensorFlow, PyTorch) и оптимизирует их для микроконтроллеров.
Для ARM-процессоров идеально подходит CMSIS-NN.
Если используется Google Coral, то можно использовать Edge TPU Compiler для ускорения инференса и оптимизации моделей для работы с Edge TPU.
Основная задача EML — адаптировать мощные алгоритмы машинного обучения к работе на ресурсозависимых платформах.
Самые популярные устройства:
Фреймворки:
TensorFlow Lite позволяет уменьшать модели через квантизацию, что помогает сделать их более компактными и эффективными для мобильных устройств.
MicroTVM интегрируется с популярными библиотеками глубокого обучения (TensorFlow, PyTorch) и оптимизирует их для микроконтроллеров.
Для ARM-процессоров идеально подходит CMSIS-NN.
Если используется Google Coral, то можно использовать Edge TPU Compiler для ускорения инференса и оптимизации моделей для работы с Edge TPU.
Please open Telegram to view this post
VIEW IN TELEGRAM