8-900-374-94-44
[email protected]
Slide Image
Меню

Mbed compiler offline: Offline version of mbed IDE? — Question

ide — Экспортированный проект ОС Mbed не строится на System Workbench

спросил

Изменено 4 года, 4 месяца назад

Просмотрено 276 раз

Начинаю разработку на ОС MBED. Я хочу работать офлайн.

Я экспортировал пример «мигающего» приложения в System Workbench IDE. Экспортированный проект не строится. Ошибки компиляции довольно простые (отсутствуют включаемые пути):

 arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -mfloat-abi=softfp -mfpu=fpv4-sp-d16 -std=c99 '-DDEVICE_CRC=1' '-DDEVICE_SPI=1' '-DDEVICE_I2C =1' '-D__MBED__=1' '-DDEVICE_I2CSLAVE=1' '-D__FPU_PRESENT=1' '-DDEVICE_PORTOUT=1' -DUSBHOST_OTHER '-DDEVICE_PORTINOUT=1' -DTARGET_RTOS_M4_M7 '-DDEVICE_RTC=1' '-DDEVICE_SERIAL_ASYNCH=1' - D__CMSIS_RTOS '-DDEVICE_ANALOGOUT=1' -DTOOLCHAIN_GCC '-DDEVICE_I2C_ASYNCH=1' -DTARGET_STM32L476xG -DTARGET_CORTEX_M -DTARGET_LIKE_CORTEX_M4 -DTARGET_STM32L476RG -DTARGET_M4 -DTARGET_STM32L4 '-DDEVICE_SPI_ASYNCH=1' '-DDEVICE_LPTICKER=1' '-DDEVICE_PWMOUT=1' '-DDEVICE_INTERRUPTIN=1 ' -DTARGET_CORTEX -DTARGET_NUCLEO_L476RG '-DTRANSACTION_QUEUE_SIZE_SPI=2' -D__CORTEX_M4 '-DDEVICE_USTICKER=1' '-DDEVICE_STDIO_MESSAGES=1' -DTARGET_FF_MORPHO -DTARGET_FAMILY_STM32 -DTARGET_FF_ARDUINO '-DDEVICE_PORTIN=1' -DTARGET_RELEASE -DTWO_RAM_REGIONS -DTARGET_STM '-DDEVICE_SERIAL_FC=1' ' -DMBED_BUILD_TIMESTAMP=1540971180.
81' '-DDEVICE_TRNG=1' -DTARGET_LIKE_MBED -D__MBED_CMSIS_RTOS_CM '-DDEVICE_SLEEP=1' -DTOOLCHAIN_GCC_ARM '-DDEVICE_CAN=1' '-DDEVICE_SPISLAVE=1' '-DDEVICE_ANALOGIN=1' '-DDEVICE_SERIAL=1'_ '-DDEVICE -DARM_MATH_CM4 -DMBED_DEBUG '-DMBED_TRAP_ERRORS_ENABLED=1' -DMBED_DEBUG '-DMBED_TRAP_ERRORS_ENABLED=1' -DNDEBUG -DNDEBUG -includeC:/mbed-os-example-blinky2_sw4stm32_nucleo_l476rg/mbed-os-config-f/mbed_example-blinky.2 char -fno-delete-null-pointer-checks -fomit-frame-pointer -fmessage-length=0 -fno-builtin -g3 -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -ffunction- разделы -fdata-sections -c -MMD -MP -MF"mbed-os/features/storage/FEATURE_STORAGE/cfstore/source/configuration_store.d" -MT"mbed-os/features/storage/FEATURE_STORAGE/cfstore/source/configuration_store .o" -o "mbed-os/features/storage/FEATURE_STORAGE/cfstore/source/configuration_store.o" "../mbed-os/features/storage/FEATURE_STORAGE/cfstore/source/configuration_store.c" @"mbed- ОС/функция es/storage/FEATURE_STORAGE/cfstore/source/includes.
args" ../mbed-os/features/storage/FEATURE_STORAGE/flash-journal/flash-journal-strategy-sequential/strategy.c:18:10: фатальная ошибка: flash-journal-strategy-sequential/flash_journal_crc.h: такого нет файл или каталог

У меня 2 вопроса:

  • похоже, что либо я что-то упускаю, либо функциональность экспорта недостаточно развита. Каков ваш отзыв об этом?

  • Я попытался самостоятельно добавить пути включения в настройках проекта, но это не сработало. И я заметил, что командная строка gcc игнорирует настройки проекта и вместо этого использует файл include.args. Единственная проблема в том, что последний файл не существует. Я предполагаю, что он должен быть сгенерирован System Workbench при создании Makefiles?

PS: экспортированный проект для IAR строится нормально.

  • иде
  • стм32
  • мбэд

Что вы думаете об этом?

Я считаю, что зрелость функции экспорта зависит от экспортера. Как вы упомянули, экспортер IAR создал правильный файл проекта.

Я полагаю, он должен генерироваться System Workbench при создании файлов Makefile?

У меня тоже такое впечатление. Судя по сообщению об ошибке, arm-none-eabi-gcc не может найти файл include.args и ищет путь на один уровень выше того, где он был вызван. Это означает, что arm-none-eabi-gcc был вызван в каталоге, который сам не содержит исходный код. Вместо этого Makefile, вероятно, настроен на запуск компилятора из каталога сборки. Возможно, в вашем каталоге сборки можно найти mbed-os/features/storage/FEATURE_STORAGE/cfstore/source/includes.args .

Похоже, что ../mbed-os/features/storage/FEATURE_STORAGE/flash-journal/ или mbed-os/features/storage/FEATURE_STORAGE/flash-journal/ отсутствует во включенных путях. Это может решить непосредственную проблему, добавив этот путь к путям включения.


Теперь несколько общих советов:

Я хочу работать в автономном режиме.

Пробовали ли вы Mbed-CLI?

Когда вы запустили экспорт из онлайн-компилятора? Мы постоянно исправляем ошибки в онлайн-компиляторе, и вы могли столкнуться с чем-то, что мы исправили за это время.

Экспорт из Mbed CLI в целом проще, и участники тестируют свой экспортер, поэтому он может работать лучше.

2

Зарегистрируйтесь или войдите в систему

Зарегистрируйтесь с помощью Google

Зарегистрироваться через Facebook

Зарегистрируйтесь, используя адрес электронной почты и пароль

Опубликовать как гость

Электронная почта

Требуется, но не отображается

Опубликовать как гость

Электронная почта

Требуется, но не отображается

nRF52832-MDK Документация

Введение

Arm Mbed OS — это встроенная операционная система с открытым исходным кодом, разработанная специально для «вещей» в Интернете вещей. Он включает в себя все функции, необходимые для разработки подключенного продукта на базе микроконтроллера Arm Cortex-M, включая безопасность, возможность подключения, ОСРВ и драйверы для датчиков и устройств ввода-вывода.

Mbed OS предоставляет платформу, которая включает в себя:

  • Фундаменты безопасности.
  • Облачные службы управления.
  • Драйверы для датчиков, устройств ввода-вывода и подключения.

Arm Mbed OS позволяет вам писать приложения, работающие на встроенных устройствах, предоставляя уровень, который интерпретирует код вашего приложения так, как его может понять аппаратное обеспечение.

Код вашего приложения написан на C и C++. Он использует интерфейсы прикладного программирования (API), которые предоставляет Mbed OS. Эти API позволяют вашему коду одинаково работать на разных микроконтроллерах. Это упрощает начало работы с микроконтроллерами на базе Arm и интеграцию крупных программных проектов.

Для получения дополнительной информации посетите сайт разработчиков Mbed OS.

Использование Arm Mbed CLI

В экосистеме Arm Mbed у вас есть выбор, как вы хотите развиваться: онлайн или офлайн. Для автономной разработки предоставляется интерфейс командной строки Arm Mbed. Mbed CLI совместим с Windows, Linux и OSX. Этот вариант предоставляет больше параметров конфигурации, но также требует немного большей настройки.

Установить Mbed CLI

Процесс установки Arm Mbed CLI зависит от вашей операционной системы. Пожалуйста, выберите операционную систему хоста. Инструкции по установке для каждой операционной системы помогут вам установить Mbed CLI локально.

В Windows самый простой способ установить Mbed CLI для запуска установщика Mbed CLI Windows .exe.

Примечание

Программа установки Windows устанавливает только встроенный инструментарий GNU Arm. Если вы хотите скомпилировать с помощью Arm Compiler 5 или IAR, посетите страницу поддерживаемых компиляторов.

В Linux и macOS можно использовать Python и Pip:

 $ pip установить mbed-cli
# если вы установили mbed-cli, вы можете обновить его с помощью:
$ pip установить mbed-cli --upgrade
 

Вы можете убедиться, что Mbed CLI установлен правильно, запустив mbed help из командной строки.

Настройка среды

Для любой установленной цепочки инструментов обязательно добавьте глобальную конфигурацию Mbed CLI:

 $ mbed config -G GCC_ARM_PATH "<путь к корзине GNU Arm>"
[mbed] <путь к GNU Arm bin> теперь установлен как глобальный GCC_ARM_PATH
$ конфигурация mbed --list
[mbed] Глобальная конфигурация:
GCC_ARM_PATH=<путь к корзине GNU Arm>
 

Примечание

Вы также можете применить ту же конфигурацию к цепочкам инструментов IAR и ARM, используя IAR_PATH или ARM_PATH .

Скомпилируйте и запрограммируйте плату

Теперь можно попробовать скомпилировать один из примеров. Для простоты воспользуемся примером mbed-os-example-blinky .

Откройте терминал и измените каталог на:

 $ cd ./nrf52832-mdk/examples/mbedos5/mbed-os-example-blinky/
 

Добавить библиотеку mbed-os в каталог примера:

 mbed-os-example-blinky$ корень конфигурации mbed .
mbed-os-example-blinky$ mbed добавить https://github. com/makerdiary/mbed-os.git
 

Вызовите mbed compile и укажите название вашей платформы и установленный набор инструментов (GCC_ARM, ARM, IAR). Например, для платформы NRF52832_MDK и встроенного инструментария GNU Arm:

.
 mbed-os-example-blinky$ mbed compile --target NRF52832_MDK --toolchain GCC_ARM --flash
 

Аргумент --flash автоматически записывает скомпилированную программу на вашу плату, если она подключена к вашему компьютеру. Вы можете добавить идентификатор локального производителя и название платформы для nRF52832-MDK и посмотреть, какие платы подключены к mbed обнаружить :

 $ mbedls --mock=1024:nRF52832_MDK
 

Обратите внимание, что зеленый светодиод мигает:

Совет

Вы также можете следовать разделу «Как запрограммировать nRF52832-MDK», чтобы прошить скомпилированную программу.

Примеры BLE

Репозиторий nrf52832-mdk содержит набор примеров приложений BLE, основанных на ОС mbed и созданных с помощью интерфейса командной строки Arm Mbed.

 ./nrf52832-mdk/examples/mbedos5/mbed-os-example-ble
├── BLE_BatteryLevel
├── BLE_Beacon
├── BLE_Button
├── BLE_EddystoneObserver
├── BLE_EddystoneService
├── BLE_GAPButton
├── BLE_HeartRate
├── BLE_LED
├── BLE_LEDBlinker
├── BLE_Термометр
└── README.md
 

С помощью инструмента командной строки перейдите в любой из примеров каталогов, например BLE_BatteryLevel :

.
 $ cd BLE_BatteryLevel
 

Добавить библиотеку mbed-os в каталог примера:

 BLE_BatteryLevel$ добавить https://github.com/makerdiary/mbed-os.git
 

Скомпилируйте и запустите пример приложения на вашей плате:

 BLE_BatteryLevel$ mbed compile --target NRF52832_MDK --toolchain GCC_ARM --flash
 

Откройте nRF Connect 9Приложение 0222 на вашем телефоне. Найдите свое устройство, которое должно называться BATTERY .

Затем установите соединение с вашим устройством. Узнайте об услугах и характеристиках устройства.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *