Обновившийся mbed-cli наконец-то позволяет держать единый экземпляр mbed-os для нескольких разных проектов, что сильно экономит место. Но для начала надо обновить mbed-cli. У меня с версией 1.4 были проблемы и пришлось обновить:
pip install -U mbed-cli
С обновлённой 1.7.5 всё заработало.
Последовательность команд такая:
1. Создаём верхнюю директорию для проектов и заходим туда:
cd ~/prj/hw/mbed-projects
2. Скачиваем исходники mbed-os:
mbed import mbed-os
3. После этого задаём в глобальной конфигурации переменную MBED_OS_DIR. Не знаю зачем это нужно, но документация рекомендует.
mbed config -G MBED_OS_DIR ~/prj/hw/mbed-projects/mbed-os
4. Создаём проект. Ключ --program нужен чтобы создалась директория без закачивания mbed-os (а вот это в wiki пропустили)
mbed new --program -v myproject
5. Создаём main.cpp и копируем его под myproject/main.cpp, это может быть пример какой-нибудь blinky.
6. И наконец запускаем компиляцию в папке build/myproject, для проверки
mbed compile -t GCC_ARM -m NUCLEO_F401RE --source myproject --source mbed-os --build build/myproject
7. Если всё удачно, то экспортируем проект в Makefile (на мой вкус, удобно)
cd myproj
mbed export -i GCC_ARM -m NUCLEO_F401RE --source . --source ../mbed-os -v
make
--
Но, mbed генерирует большой код, а вот
Rexos меньше быстрее и вообще круче! К ней примериваюсь, буду осваивать.