Как указан чипсет в документации
Обновлено: 21.11.2024
Использование MicroPython — отличный способ получить максимальную отдачу от вашей платы ESP32. И наоборот, чип ESP32 — отличная платформа для использования MicroPython. В этом учебном пособии вы узнаете, как настроить MicroPython, получить приглашение, использовать WebREPL, подключиться к сети и установить связь с Интернетом, использовать аппаратные периферийные устройства и управлять некоторыми внешними компонентами.
Начнем!
1.1. Требования¶
Первое, что вам нужно, это плата с чипом ESP32. Программное обеспечение MicroPython поддерживает сам чип ESP32, и любая плата должна работать. Основной характеристикой платы является способ подключения контактов GPIO к внешнему миру и наличие на ней встроенного последовательного USB-преобразователя, чтобы сделать UART доступным для вашего ПК.
Имена выводов в этом руководстве будут даваться с использованием названий микросхем (например, GPIO2), и будет несложно найти, какой вывод соответствует на вашей конкретной плате.
1.2. Питание платы¶
Если на вашей плате есть USB-разъем, то, скорее всего, она получает питание через него при подключении к компьютеру. В противном случае вам нужно будет подключить его напрямую. Дополнительные сведения см. в документации к вашей плате.
1.3. Получение прошивки¶
Первое, что вам нужно сделать, это загрузить .bin-файл самой последней прошивки MicroPython на ваше устройство ESP32. Вы можете загрузить его со страницы загрузок MicroPython. Отсюда у вас есть 3 основных варианта:
Стабильные сборки прошивки
Ежедневные сборки прошивки
Ежедневные сборки прошивки с поддержкой SPIRAM
Если вы только начинаете работать с MicroPython, лучше всего выбрать стабильные сборки встроенного ПО. Если вы продвинутый и опытный пользователь MicroPython ESP32, который хотел бы внимательно следить за разработкой и помогать в тестировании новых функций, существуют ежедневные сборки. Если ваша плата поддерживает SPIRAM, вы можете использовать либо стандартную прошивку, либо прошивку с поддержкой SPIRAM, и в последнем случае у вас будет доступ к большему объему оперативной памяти для объектов Python.
1.4. Развертывание прошивки¶
После того, как у вас есть прошивка MicroPython, вам необходимо загрузить ее на свое устройство ESP32. Для этого есть два основных шага: сначала вам нужно перевести ваше устройство в режим загрузчика, а во-вторых, вам нужно скопировать прошивку. Точная процедура этих шагов сильно зависит от конкретной платы, и вам нужно будет обратиться к ее документации за подробностями.
К счастью, большинство плат имеют USB-разъем, USB-последовательный преобразователь и контакты DTR и RTS, подключенные особым образом, поэтому развертывание встроенного ПО должно быть простым, поскольку все шаги могут выполняться автоматически. Платы с такими функциями включают платы Adafruit Feather HUZZAH32, M5Stack, Wemos LOLIN32 и TinyPICO, а также наборы для разработки Espressif DevKitC, PICO-KIT, WROVER-KIT.
Для достижения наилучших результатов рекомендуется сначала стереть всю флэш-память вашего устройства, прежде чем устанавливать новую прошивку MicroPython.
Версии, начинающиеся с 1.3, поддерживают как Python 2.7, так и Python 3.4 (или новее). Старая версия (требуется как минимум 1.2.1) работает нормально, но для нее потребуется Python 2.7.
Используя esptool.py, вы можете стереть flash командой:
А затем разверните новую прошивку, используя:
Возможно, вам потребуется изменить параметр «порт» на что-то другое, подходящее для вашего ПК
Возможно, вам придется уменьшить скорость передачи, если вы получаете ошибки при прошивке (например, уменьшите до 115200, добавив в команду --baud 115200)
Для некоторых плат с определенной конфигурацией флэш-памяти вам может потребоваться изменить режим флэш-памяти (например, добавив в команду -fm dio)
Имя файла прошивки должно совпадать с именем файла, который у вас есть
Если приведенные выше команды выполняются без ошибок, значит, на вашей плате должен быть установлен MicroPython!
1,5. Серийная подсказка¶
После того, как у вас есть прошивка на устройстве, вы можете получить доступ к REPL (приглашение Python) через UART0 (GPIO1 = TX, GPIO3 = RX), который может быть подключен к последовательному USB-преобразователю, в зависимости от вашей платы. Скорость передачи 115200.
Теперь вы можете следовать руководству по ESP8266, потому что эти два чипа Espressif очень похожи, когда дело доходит до использования MicroPython на них. Учебное пособие по ESP8266 можно найти в учебнике MicroPython для ESP8266 (но пропустите раздел «Введение»).
1.6. Устранение неполадок при установке¶
Если у вас возникли проблемы во время прошивки или с запуском прошивки сразу после нее, вот рекомендации по устранению неполадок:
Имейте в виду и постарайтесь исключить проблемы с оборудованием. Есть 2 распространенные проблемы: плохое качество источника питания и изношенная/дефектная флэш-память. Говоря об источнике питания, важна не только чистая сила тока, но и низкие пульсации и шум/электромагнитные помехи в целом. Самый надежный и удобный источник питания — USB-порт.
В приведенных выше инструкциях используется скорость прошивки 460800 бод, что является хорошим компромиссом между скоростью и стабильностью. Однако, в зависимости от вашего модуля/платы, преобразователя USB-UART, кабелей, хост-ОС и т. д., указанная выше скорость передачи данных может быть слишком высокой и приводить к ошибкам. В таких случаях попробуйте использовать более распространенную скорость 115 200 бод.
Чтобы отловить неверное содержимое флэш-памяти (например, из-за дефектного сектора на чипе), добавьте параметр --verify к приведенным выше командам.
Если вам удается записать прошивку, но параметр --verify возвращает ошибки даже после нескольких попыток, возможно, у вас неисправна микросхема FlashROM.
© Авторское право — Документация MicroPython защищена авторским правом © 2014–2022, Дэмиен П. Джордж, Пол Соколовский и соавторы. Последнее обновление: 28 марта 2022 г.
При запуске экземпляра виртуальной машины (ВМ) в Compute Engine виртуальная машина использует одну из платформ ЦП, доступных в Compute Engine. Платформа ЦП содержит один из доступных ЦП, описанных в следующей таблице. Compute Engine предлагает процессоры Intel и AMD для ваших виртуальных машин.
Если не указано иное, экземпляр ВМ использует процессор по умолчанию зоны, в которой должен работать экземпляр. При желании можно указать другой процессор вместо процессора по умолчанию, если в выбранной зоне доступен другой процессор. Список зон и доступных процессоров ЦП см. в разделе Регионы и зоны.
В Compute Engine каждый виртуальный ЦП (вЦП) реализован как один аппаратный многопоток на одном из доступных процессоров ЦП. В процессорах Intel Xeon технология Intel Hyper-Threading поддерживает несколько потоков приложений, работающих на каждом физическом ядре процессора. Вы настраиваете свои экземпляры ВМ Compute Engine с одним или несколькими из этих многопотоков в качестве виртуальных ЦП. Конкретный размер и форма вашего экземпляра ВМ определяет количество его виртуальных ЦП.
Попробуйте сами
Если вы новичок в Google Cloud, создайте учетную запись, чтобы оценить, как Compute Engine работает в реальных сценариях. Новые клиенты также получают бесплатные кредиты в размере 300 долларов США для запуска, тестирования и развертывания рабочих нагрузок.
Процессоры Intel
В следующей таблице описаны процессоры Intel, доступные для виртуальных машин Compute Engine. Они перечислены в обратном хронологическом порядке (сначала новые).
* Виртуальные машины N2, имеющие более 80 виртуальных ЦП, используют ЦП Intel Ice Lake.
Процессоры AMD
В следующей таблице описаны процессоры AMD, доступные для виртуальных машин Compute Engine:
Частота поведения
В этом документе описываются аппаратные характеристики процессоров, доступных в Compute Engine, но следует помнить о следующих моментах:
- Большинство ВМ получают турбочастоту для всех ядер, даже если в гостевой среде объявляется только базовая частота.
- Гостевая среда ВМ отражает базовую тактовую частоту, независимо от того, на какой частоте фактически работает ВМ.
- C-state поддерживается только для типов компьютеров C2. Для других ВМ C-State или P-State в настоящее время не поддерживаются, поэтому бездействие виртуальных ЦП в гостевой среде может работать не так, как ожидалось.
- Базовая тактовая частота. Нижняя граница частоты ЦП и частота, с которой увеличивается значение счетчика меток времени (TSC).
- Турбочастота для всех ядер. Частота, с которой обычно работает каждый ЦП, когда все ядра в сокете не простаивают одновременно.
Что дальше
- Подробнее о семействах компьютеров.
- Подробнее об экземплярах виртуальных машин.
- Подробнее об изображениях.
- Узнайте, как указать минимальную платформу ЦП.
Если не указано иное, содержимое этой страницы предоставляется по лицензии Creative Commons Attribution 4.0, а образцы кода — по лицензии Apache 2.0. Подробнее см. в Правилах сайта Google Developers. Java является зарегистрированным товарным знаком Oracle и/или ее дочерних компаний.
Обновление, 24.05.18, 12:15 по тихоокеанскому времени: Intel добавила Z390 в официальную документацию по чипсету, которую вы можете найти здесь. Помимо подробностей, которые мы уже раскопали, документация включает дополнительную информацию о линиях HSIO (высокоскоростной ввод-вывод), которую мы включили в альбом ниже. Совет PCGamesHardware за найденное обновление.
Корпорация Intel без особой помпы разместила на своем сайте краткое описание набора микросхем Z390. В документе описываются характеристики нового набора микросхем, который в значительной степени отражает характеристики новых наборов микросхем серии 300, выпущенных компанией с последней серией процессоров Coffee Lake. К сожалению, в документе не подтверждается, что новый чипсет будет поддерживать широко распространенную модель настольного компьютера с восемью ядрами, но, учитывая информацию, которую мы уже собрали из нескольких источников, это почти наверняка.
Intel рекламирует чипсет Z390 как совместимый с процессорами восьмого поколения.Корпорация Intel уже перечислила ожидаемые восьмиядерные процессоры на своем веб-сайте, поэтому мы знаем, что они также попадут в семейство процессоров восьмого поколения.
Bluechip, немецкий OEM-производитель ПК, также недавно случайно опубликовал дорожную карту, в которой указывалось, что Intel Z390 появится на Computex с восьмиядерным процессором, который появится в третьем квартале. С тех пор Bluechip удалила дорожную карту, но вы можете увидеть ее здесь.
В апреле Intel обновила свой набор микросхем серии 300, установив 14-нм процессор Cannon Lake PCH, тогда как в наборе микросхем Z370 использовался 22-нм техпроцесс.
Новый PCH от Intel появился только на новых материнских платах H-, B- и Q-серий, которые, как ни странно, оставили платформу Z370 (единственный чипсет с возможностью разгона) с немного устаревшим чипсетом. Новый документ Z390 не раскрывает никаких новых потрясающих подробностей. Вместо этого набор микросхем просто доводит наборы микросхем серии Z до уровня новых моделей серии 300.
Таблица характеристик набора микросхем Intel серии 300 (обновления за апрель 2018 г.) | ||||||
---|---|---|---|---|---|---|
Z390 | Z370 | Q370 | H370 | B360 | H310 | |
Разгон DDR4 | Да | Да | Нет | Нет | Нет | Нет |
конфигураций PCI Express*3.0 на процессоре | 1X16 или 2X8 или 1x8+2X4 | 1x16 или 2x8или1x8 +2x4 | 1x16 или 2x8или1x8+2x4 | 1x16 | 1x16 | 1x16 |
3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/2 | |
Каналов памяти / модулей DIMM на канал | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/1 |
Разгон процессора | Да | Да | Нет | Нет | < td>НетНет | |
Встроенная поддержка Intel Wireless-ACSupport (CNVi) | Да | Нет< /td> | Да | Да | Да | Да |
Intel Optane Поддержка памяти | Да | Да | Да | Да | Да | Нет |
Максимальное количество линий высокоскоростного ввода/вывода | 30? | 30 | 30 | 30 | 24 | 14 |
Максимум портов USB 3.1: Gen 2/Gen 1 | 6/10 | 0/10 | 6/10 | 4/8 | 4/6 | 0/4 |
Максимум портов SATA 6 Гбит/с | 6 | 6 | 6 td> | 6 | 6 | 4 |
Максимум линий PCI Express* 3.0 | 24 (v3.0) | 24 (v3.0) | 24 (v3.0) | 20 (v3.0) | 12 (v3.0) | 6 (v2.0) |
Технология Intel Rapid Storage | Да | Да | Да | Да | Да | Нет |
Максимальный Intel RST для портов хранения PCIe (x2 M.2 или x4 M.2) | 3 | 3 | 3 | 2 | 1 | 0 |
Intel RST PCIe RAID 0, 1, 5 | Да | Да | Да | Да | Нет | Нет |
Intel RST SATA RAID 0, 1, 5 , 10 | Да | Да | Да | Да | Нет | Нет |
Intel RST для подключенного к ЦП хранилища Intel PCIe | Да | Да | Да | Нет | Нет | Нет |
Набор микросхем Z390 имеет встроенную поддержку USB 3.1 Gen2 (до шести портов). Intel также добавила в Z390 поддержку Wireless-AC 2x2 160 МГц и Bluetooth 5. Intel интегрировала MAC в чипсет, но для работы ему по-прежнему требуется PHY. Intel предлагает собственный модуль CNVi в качестве второй половины интегрированного решения, но компания также поддерживает сторонние решения. Соединение обеспечивает пропускную способность до 1700 Мбит/с, если ваш маршрутизатор поддерживает это. Мы подробно рассказали о новых чипсетах серии 300, которые также включают в себя улучшенный звуковой DSP, в нашей стартовой статье. Отправляйтесь туда, чтобы узнать подробности.
Чтобы добавить поддержку Zephyr для новой доски, вам как минимум понадобится каталог доски с различными файлами в нем. Файлы в каталоге платы наследуют поддержку как минимум одного SoC и всех его функций. Поэтому Zephyr также должен поддерживать вашу SoC.
Платы, SoC и т. д.¶
Иерархия поддержки оборудования Zephyr состоит из следующих уровней, от наиболее конкретных к наименее специфичным:
Плата: конкретный экземпляр ЦП и его периферийные устройства в конкретной спецификации оборудования
SoC: точная система на чипе, частью которого является процессор платы
Серия SoC: небольшая группа тесно связанных SoC
Семейство SoC: более широкая группа SoC со схожими характеристиками
Вы можете визуализировать иерархию следующим образом:
Рис. 39 Иерархия конфигурации ¶
Вот несколько примеров. Обратите внимание, что уровни серии и семейства SoC используются не всегда.
Убедитесь, что ваша SoC поддерживается¶
Для начала убедитесь, что ваш SoC поддерживается Zephyr. Если это так, пришло время создать каталог доски. Если не знаете, попробуйте:
проверить Поддерживаемые доски, чтобы найти подходящие названия, и прочитать документацию по отдельным доскам, чтобы убедиться в этом.
обратитесь к поставщику SoC
Если вам нужно добавить SoC, ядро ЦП или даже поддержку архитектуры, это не та страница, но вот несколько общих советов.
Архитектура¶
Ядро ЦП¶
Файлы поддержки ядра ЦП находятся в подкаталогах ядра в папке arch, например. арх/x86/ядро.
См. Настройка цепочки инструментов для получения информации о цепочках инструментов (компилятор, компоновщик и т. д.), поддерживаемых Zephyr. Если вам нужно поддерживать новую цепочку инструментов, Build and Configuration Systems — хорошее место для начала изучения системы сборки. Обратитесь к сообществу, если вам нужен совет или вы хотите сотрудничать в поддержке цепочки инструментов.
Файлы поддержки Zephyr SoC находятся в подкаталогах soc, зависящих от архитектуры. Как правило, они сгруппированы по семейству SoC.
При добавлении нового семейства или серий SoC для поставщика, у которого уже есть поддержка SoC в Zephyr, постарайтесь извлечь общие функции в общие файлы, чтобы избежать дублирования. Если поддержки вашего вендора еще нет, вы можете добавить ее в новую директорию zephyr/soc// ; пожалуйста, используйте понятные имена каталогов.
Создайте каталог доски¶
После того, как вы нашли существующую плату, использующую вашу SoC, обычно можно начать с копирования/вставки ее каталога платы и изменения ее содержимого для вашего оборудования.
Вы должны дать своей доске уникальное имя. Запустите западные доски, чтобы получить список имен, которые уже заняты, и выберите что-нибудь новое. Допустим, ваша доска называется доской (пожалуйста, не используйте это имя).
Каталог вашей доски должен выглядеть следующим образом:
Конечно, замените доску названием вашей доски.
plank.dts: описание оборудования в формате дерева устройств. Это объявляет ваш SoC, разъемы и любые другие аппаратные компоненты, такие как светодиоды, кнопки, датчики или коммуникационные периферийные устройства (USB, контроллер BLE и т. д.).
Kconfig.board , Kconfig.defconfig , plank_defconfig : конфигурация программного обеспечения в форматах системы конфигурации (Kconfig). Это обеспечивает настройки по умолчанию для программных функций и драйверов периферийных устройств.
CMakeLists.txt: если вам нужно добавить в сборку дополнительные исходные файлы.
Одним из распространенных способов использования этого файла является добавление файла pinmux.c в каталог вашей платы в сборку, который настраивает контроллеры выводов во время загрузки. В этом случае CMakeLists.txt обычно выглядит так:
doc/index.rst , doc/plank.jpg : документация и изображение вашей платы. Это нужно только в том случае, если вы отправляете свою доску в Zephyr.
plank.yaml : файл YAML с различными метаданными, используемыми средством выполнения тестов (Twister).
Напишите свое дерево устройств¶
В общем, plank.dts должен выглядеть так:
Если вы спешите, простое оборудование обычно можно поддерживать путем копирования/вставки с последующим методом проб и ошибок. Если вы хотите разобраться в деталях, вам необходимо прочитать остальную часть документации по дереву устройств и спецификацию дерева устройств.
Пример: FRDM-K64F и Hexiwear K64¶
В этом разделе содержатся конкретные примеры, связанные с написанием дерева устройств вашей доски.
Дерево устройств платы FRDM-K64F и Hexiwear K64 определено в файлах frdm_k64fs.dts и hexiwear_k64.dts соответственно. На обеих платах установлены SoC NXP из одного семейства SoC Kinetis, K6X.
Общие определения дерева устройств для K6X хранятся в файле nxp_k6x.dtsi, который включен в оба файла платы .dts. nxp_k6x.dtsi, в свою очередь, включает файл armv7-m.dtsi, который имеет общие определения для ядер Arm v7-M.
Поскольку файл nxp_k6x.dtsi должен быть универсальным для плат на базе K6X, многие устройства остаются отключенными по умолчанию с помощью свойств состояния. Например, есть контроллер CAN, определенный следующим образом (с пропущенными неважными частями):
На усмотрение платы. .dts или файлы оверлея приложения позволяют включить эти устройства по желанию, установив статус = "okay" . Файлы платы .dts также отвечают за любую конфигурацию устройства, относящуюся к плате, например за добавление узлов для встроенных датчиков, светодиодов, кнопок и т. д.
Например, FRDM-K64 (но не Hexiwear K64) .dts включает CAN-контроллер и устанавливает скорость шины:
&can0 < . >; синтаксис добавляет/переопределяет свойства узла с меткой can0 , то есть узла can@4002400, определенного в файле .dtsi.
Другие примеры индивидуальной настройки платы — это указание свойств в псевдонимах и выбор нужных узлов (см. Псевдонимы и выбранные узлы), а также назначение GPIO/pinmux.
Запись файлов Kconfig¶
Zephyr использует язык Kconfig для настройки функций программного обеспечения. Ваша плата должна предоставить некоторые настройки Kconfig, прежде чем вы сможете скомпилировать для нее приложение Zephyr.
Установка значений конфигурации Kconfig подробно описана в разделе Установка значений конфигурации Kconfig .
В каталоге платы есть три обязательных файла Kconfig для платы с именем plank :
Включено boards/Kconfig, чтобы включить вашу доску в список опций.
Это должно как минимум содержать определение параметра BOARD_PLANK, которое выглядит примерно так:
Значения по умолчанию для конкретных плат для параметров Kconfig.
Весь файл должен находиться внутри пары строк if BOARD_PLANK / endif, например:
Фрагмент Kconfig, который объединяется как есть с окончательным каталогом сборки .config всякий раз, когда приложение компилируется для вашей платы.
Вы должны как минимум выбрать SOC вашей платы и выполнить все обязательные настройки системных часов, консоли и т. д. Результаты зависят от архитектуры, но обычно выглядят примерно так:
Фрагмент Kconfig, который объединяется как есть с окончательным каталогом сборки .config всякий раз, когда приложение компилируется для вашей версии платы x.y.z .
Сборка, тестирование и исправление¶
Теперь пришло время создать и протестировать приложения, которые вы хотите запускать на своей доске, пока вы не будете удовлетворены.
Сведения о работе west flash см. в разделе Поддержка Flash и отладки ниже. Вы также можете просто прошить build/zephyr/zephyr.elf , zephyr.hex или zephyr.bin любым другим удобным для вас инструментом.
Общие рекомендации¶
Для единообразия и упрощения пользователями создания универсальных приложений, не предназначенных для вашей платы, при переносе следуйте этим рекомендациям.
Если в этом разделе явно не указано иное, оставьте периферийные устройства и их драйверы отключенными по умолчанию.
Настройте и включите системные часы вместе с источником тактов.
Предоставьте конфигурацию выводов и драйверов, соответствующую ценным компонентам платы, таким как датчики, кнопки или светодиоды, и коммуникационным интерфейсам, таким как USB, разъем Ethernet или микросхема Bluetooth/Wi-Fi.
Если на вашей плате используется общеизвестный стандарт разъемов (например, разъемы Arduino, Mikrobus, Grove или 96Boards), добавьте узлы разъемов в DTS и соответствующим образом настройте мультиплексоры контактов.
Настройте компоненты, позволяющие использовать эти контакты, например, настройте экземпляр SPI для использования обычных контактов Arduino SPI.
Если доступно, настройте и включите последовательный вывод для консоли с помощью выбранного узла zephyr,console в дереве устройств.
Если ваша плата поддерживает работу в сети, настройте интерфейс по умолчанию.
Включите все порты GPIO, подключенные к периферийным устройствам или разъемам расширения.
Если доступно, включите драйверы pinmux и контроллера прерываний.
Рекомендуется включить MPU по умолчанию, если он поддерживается аппаратно. Для плат с ограниченными ресурсами памяти допустимо ее отключение. Когда MPU включен, рекомендуется также включить аппаратную защиту стека (CONFIG_HW_STACK_PROTECTION=y) и, таким образом, позволить ядру обнаруживать переполнения стека, когда система работает в привилегированном режиме.
Поддержка Flash и отладки¶
Zephyr поддерживает сборку, перепрошивку и отладку с помощью команд западного расширения.
Чтобы добавить поддержку west flash и west debug для вашей платы, вам необходимо создать файл board.cmake в каталоге вашей платы. Задача этого файла — настроить «бегун» для вашей доски. (Нет ничего особенного, чтобы получить поддержку западной сборки для вашей платы.)
"Runners" – это специфичные для Zephyr классы Python, которые обертывают инструменты хоста flash и отладки и интегрируются с west и системой сборки zephyr для поддержки west flash и связанных команд. Каждый бегун поддерживает перепрошивку, отладку или и то, и другое. Вам необходимо настроить аргументы этих скриптов Python в файле board.cmake для поддержки таких команд, как в этом примере board.cmake :
В этом примере настраиваются исполнители nrfjprog , jlink и pyocd.
Названия бегунов обычно соответствуют инструментам, которые они объединяют, поэтому бегун jlink объединяет инструменты Segger J-Link и т. д. Но параметры командной строки запуска, такие как --speed и т. д., специфичны для скриптов Python.
Подробнее:
Запустите west flash --context, чтобы увидеть список доступных бегунов, которые поддерживают перепрошивку, и west flash --context -r, чтобы просмотреть конкретные параметры, доступные для отдельного бегуна.
Запустите west debug --context и west debug --context, чтобы получить одинаковые выходные данные для бегунов, поддерживающих отладку.
Запустите west flash --help и west debug --help, чтобы просмотреть параметры верхнего уровня для прошивки и отладки.
Ищите файлы board.cmake для других досок, похожих на вашу, для получения дополнительных примеров.
Чтобы увидеть, что именно делает команда west flash или west debug, запустите ее в подробном режиме:
Подробный режим печатает все команды хост-инструмента, которые использует бегун.
Порядок вызовов include() в файле board.cmake имеет значение. Первое включение устанавливает бегун по умолчанию, если он еще не установлен. Например, включение nrfjprog.board.cmake первым означает, что nrfjprog является программой запуска флеш-памяти по умолчанию для этой платы. Поскольку nrfjprog не поддерживает отладку, по умолчанию используется jlink.
Несколько версий платы¶
См. Создание версии платы, чтобы узнать об этой функции с точки зрения пользователя.
Чтобы создать новую версию доски для доски, создайте следующие дополнительные файлы в папке доски:
Когда пользователь строит для доски plank@ :
Необязательные настройки Kconfig, указанные в файле plank_.conf, будут объединены с конфигурацией Kconfig платы по умолчанию.
Необязательное наложение дерева устройств plank_ .overlay будет добавлено в общий файл дерева устройств plank.dts
Файл ревизии.cmake управляет тем, как система сборки Zephyr сопоставляет строку @, указанную пользователем при создании приложения для платы.
В настоящее время это может быть числовая версия в стиле MAJOR.MINOR.PATCH, например 1.5.0 , целое число, например 1 , или одна буква, например A , B и т. д. Zephyr предоставляет функцию расширения платы CMake, board_check_revision() , чтобы упростить сопоставление любого стиля из ревизии.cmake .
Действительные версии платы могут быть указаны в качестве аргументов функции board_check_revision(), например:
VALID_REVISIONS можно опустить, если все действительные версии имеют определенные фрагменты Kconfig, такие как _0_1_0.conf , _0_3_0.conf . Это позволяет вам просто размещать фрагменты ревизий Kconfig в папке платы и не синхронизировать соответствующие VALID_REVISIONS.
В следующих разделах описано, как поддерживать эти стили номеров редакций.
MAJOR.MINOR.PATCH ревизии¶
Допустим, вы хотите добавить поддержку версий 0.5.0 , 1.0.0 и 1.5.0 платы plank как с фрагментами Kconfig, так и с оверлеями devicetree. Создайте ревизию.cmake с помощью board_check_revision(FORMAT MAJOR.MINOR.PATCH) и создайте следующие дополнительные файлы в каталоге платы:
Обратите внимание, что точки («.») в номере версии заменены символами подчеркивания («_»).
Нечеткое сопоставление ревизий¶
Для поддержки «нечеткого» сопоставления ревизий MAJOR.MINOR.PATCH для доски для досок используйте следующий код в ревизии.cmake :
Если пользователь выбирает версию из доступных, используется ближайший номер версии, не превышающий номер, выбранный пользователем. Например, если пользователь выполняет сборку для plank@0.7.0 , система сборки будет ориентироваться на версию 0.5.0 .
Система сборки напечатает это во время настройки CMake:
Это позволяет создавать файлы конфигурации версий только для номеров версий плат, которые вносят несовместимые изменения.
Любая редакция ниже установленного минимума будет считаться ошибкой.
Вы можете использовать 0.0.0 в качестве минимальной версии для сборки, создав файл plank_0_0_0.conf в каталоге платы. Это будет использоваться для любой версии ниже 0.5.0 , например, если пользователь собирает для plank@0.1.0 .
Точное соответствие ревизии¶
Кроме того, ключевое слово EXACT можно указать для board_check_revision() в файле ревизии.cmake, чтобы разрешить только точные совпадения, например:
С этой версией.cmake сборка для plank@0.7.0 в приведенном выше примере приведет к следующему сообщению об ошибке:
Сопоставление версий букв¶
Давайте вместо этого предположим, что вам необходимо поддерживать версии A , B и C доски для досок. Создайте следующие дополнительные файлы в каталоге платы:
И добавьте в ревизию.cmake следующее:
Сопоставление номеров ревизий¶
Давайте вместо этого скажем, что вам нужно поддерживать версии 1 , 2 и 3 доски для досок. Создайте следующие дополнительные файлы в каталоге платы:
И добавьте в ревизию.cmake следующее:
детали board_check_revision()¶
Эта функция поддерживает следующие аргументы:
FORMAT LETTER : соответствует только однобуквенным версиям от A до Z
ЧИСЛО ФОРМАТ: соответствует целому числу ревизий
FORMAT MAJOR.MINOR.PATCH: соответствует ровно трем цифрам. Командная строка допускает свободный ввод, то есть -DBOARD= @1 и -DBOARD= @1.0 будут обрабатываться как -DBOARD= @1.0.0 . Фрагмент Kconfig и файлы наложения дерева устройств должны иметь полную нумерацию, чтобы избежать двусмысленности, поэтому разрешены только файлы _1_0_0.conf и _1_0_0.overlay.
EXACT : если задано, требуется точное соответствие версии. В противном случае будет выбрана ближайшая совпадающая версия, не превышающая выбор пользователя.
DEFAULT_REVISION : если указано, это версия по умолчанию для использования, когда пользователь не выбрал номер версии. Если не указано, система сборки выводит ошибку, когда пользователь не указывает версию платы.
HIGHEST_REVISION : если указано, указывает самую высокую допустимую версию платы. Это можно использовать, чтобы гарантировать, что более новая плата не может быть использована со старым Zephyr. Например, если текущий каталог платы поддерживает версии 0.x.0-0.99.99 и 1.0.0-1.99.99, и ожидается, что реализация не будет работать с версией платы 2.0.0, то присваивание HIGHEST_REVISION 1.99. 99 вызывает ошибку, если пользователь выполняет сборку с использованием @2.0.0 .
VALID_REVISIONS : если указано, указывает список версий, допустимых для этой платы.Если этот аргумент не указан, то каждый фрагмент Kconfig вида _ .conf в папке платы будет использоваться как допустимая ревизия для платы.
Пользовательские файлы ревизии.cmake¶
Некоторые платы могут не использовать версии платы, поддерживаемые board_check_revision(). Для поддержки ревизий любого типа в файле review.cmake можно реализовать пользовательское сопоставление ревизий без вызова board_check_revision() .
Чтобы сигнализировать системе сборки о том, что она должна использовать версию, отличную от той, что указана пользователем, ревизия.cmake может установить переменную ACTIVE_BOARD_REVISION на используемую вместо нее версию. Соответствующие файлы Kconfig и оверлеи devicetree должны называться _.conf и _.overlay .
Например, если пользователь выполняет сборку для plank@zero , ревизия.cmake может установить ACTIVE_BOARD_REVISION в единицу, чтобы использовать файлы plank_one.conf и plank_one.overlay .
Размещение вашей доски¶
Если вы хотите поделиться своей доской с Zephyr, сначала спасибо!
Есть несколько дополнительных вещей, которые вам нужно сделать:
Убедитесь, что вы выполнили все общие рекомендации . Это требования для плат, входящих в состав Zephyr.
Добавьте документацию для своей доски, используя файл шаблона doc/templates/board.tmpl. Информацию о том, как создать документацию перед отправкой запроса на включение, см. в разделе Создание документации.
Подготовьте запрос на добавление вашей доски в соответствии с Правилами участия .
© Copyright 2015-2022 Участники проекта Zephyr и отдельные участники. Последнее обновление: 28 марта 2022 г.
Читайте также: