Nanopb — небольшая реализация Protocol Buffers на языке C, которая поддерживает стандарт ANSI. Она особенно подходит для использования в микроконтроллерах, но также подходит для любых систем с ограниченным объемом памяти.
Чтобы использовать библиотеку nanopb, вам нужно выполнить два действия:
protoc
.Сообщения Protocol Buffers определяются в файле .proto, который следует стандартному формату, совместимому со всеми библиотеками Protocol Buffers. Чтобы использовать его с nanopb, вам нужно сгенерировать файлы .pb.c и .pb.h из него: python generator/nanopb_generator.py myprotocol.proto # Для исходного checkout generator-bin/nanopb_generator myprotocol.proto # Для бинарного пакета
(Примечание: Для инструкций для nanopb-0.3.9.x и более ранних версий, увидьте документацию соответствующей версии здесь)
Бинарные пакеты для Windows, Linux и Mac OS X должны содержать все необходимые зависимости, включая Python, библиотеку python-protobuf и протокол protoc. Если вы используете git-checkout или обычное распределение исходного кода, вам потребуется отдельно установить Python. Как только у вас будет Python, вы можете установить другие зависимости с помощью pip install --upgrade protobuf grpcio-tools
. Вы можете еще больше настроить генерацию заголовков, создав файл .options
.
Подробнее см. документацию.
Если вы хотите продолжить разработку ядра nanopb или проверить его функциональность с вашим компилятором и платформой, вам потребуется запустить тестовый набор. Правила сборки для тестового набора реализованы с помощью Scons, поэтому вам нужно установить Scons (например, sudo apt install scons
или pip install scons
). Чтобы запустить тесты:
cd tests
scons
Это покажет прогресс различных тестовых случаев. Если выходные данные не заканчиваются ошибкой, тестовые случаи были успешными.Примечание: Mac OS X по умолчанию использует псевдоним 'clang' для 'gcc', не поддерживая при этом те же опции командной строки, что и gcc. Чтобы запустить тесты на Mac OS X, используйте: scons CC=clang CXX=clang++
. Точно так же можно использовать для запуска тестов с разными компиляторами на любой платформе.Для встроенных платформ существует поддержка запуска тестов на STM32 discovery board и simavr AVR симуляторе. Используйте scons PLATFORM=STM32
и scons PLATFORM=AVR
для запуска этих тестов.
C-код nanopb сам по себе разработан так, чтобы быть переносимым и легко собираться на любой платформе. Часто более серьезным препятствием является запуск генератора, который принимает файлы .proto
и выдает .pb.c
определения.
Существуют правила сборки для нескольких систем:
extra/nanopb.mk
, см. examples/simple
extra/FindNanopb.cmake
, см. examples/cmake
tests/site_scons
(только для генератора)BUILD.bazel
в корневом каталогеconanfile.py
в корневом каталогеИ также интеграция в платформенные интерфейсы:
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )