На лабиринт, думаю, пойдёт робот на EFM32GG12, если, конечно, не успею к тому времени изготовить и настроить робота на шасси Zumo. Вот с linefollower не знаю пока что делать - пускать старого или чуть по-новее. Здесь, ведь такая вещь, что в этих соревнованиях на одно соревнование один участник имеет право выставить только одного робота. Так что я не могу представить на лабиринт два робота: на MSP432 и на EFM32. Хотя глянул на правила соревнований - этого пункта больше не нахожу.
Zumo-робот стоит в ожидании. Основную плату я ему уже заказал, её изготовили и уже выслали. Детали под неё я тоже подобрал и заказал. Вот только Farnell что-то тормозит. Заказ уже стоит больше недели и... никакого движения. А когда-то я радовался, что сегодня заказал - на следующий день вечером уже получил. На маузере было бы быстрее. Вот только я себе заказал винтики (метрические) для изготовлния стен лабиринта, которых на маузере нет. Будет смешно, если из китая платы придут быстрее фарнеловских деталей.
Но пока нет плат и деталей, подумал, что нужно уже подготавливать фирмварь, что буду грузить в BGM240. Думал-думал и придумал, что так как референс мануал на EFR32bg24 и EFR32mg24 один и тот же, то можно начать прототипировать на платке BRD2601 с EFR32MG24 на борту. Как обычно, сначала сделал кнопочки и светодиодики, затем UART. Передача в компьютер идёт нормально. А вот как проверить обратное направление? Хм, можно подключить командную строку, чтобы с роботом поговорить как компьютер с компьютером. Но, командная строка потянула за собой кучу других модулей. Так что пришлось разбираться с таймерами, АЦП, SPI и I²C. С таймерами всё здорово - у прескалера появилась возможность указать оюбой коэффициент деления, а не только степени двойки. Так что даже тактовая частота 39 МГц проблем не создала. А вот в модуле profiler у меня случились сразу две проблемы. Как выяснилось, у этого кристалла нет BITBAND. С регистрами проблем нет - почти все регистры имеют помимо себя еще толпу _CLR, _SET, _TGL. А вот в ОЗУ так не залезешь. Пришлось один кусок, где программа проверяет биты в байте на непрерывность переписать с помощью масок. Но самый удар был, когда я захотел подцепить еще и блютус... В общем, прерывание PendSV, которое использует у меня профайлер, оказалось требуется блютус стеку. Так что мне нужно придумать как иначе запускать итерации профайлера.
Помимо этого обнаружил разницу в LE_Timer - нужно было добавить опрос бита синхронизации перед записью в некоторые регистры. И... счетчик в этом таймере стал на 8 бит длиннее. В результате, тестовая задержка в 2 с половиной секунды удлиннилась до десятка минут. Еще, особенности доступа к регистрам мне спутали планы у АЦП. Оно у меня инициализируется в двух разных местах - SCAN в сенсоре линии, а SINGLE в опросе напряжения батареи. Теперь так нельзя сделать - надо их будет в одну функцию слить вместе.
И всё это происходит на фоне того, что я приобрёл себе новый ноутбук. И взбрело мне на него попробовать поставить линукс. Так как эклипсные IDE, как правило есть под линукс. Так что я поставил себе и Simplicity Studio, и Code Compose Studio. Еще в планах и остальной софт поставить. Правда, если с CCS всё прошло легко и просто, то Simplicity Studio создал много головной боли. Поначалу не хотел опознавать подключенные платки - выдавал id:null. Но потом гуглом нашел решение. Оказалось, что в инсталяторе 5 версии куда-то подевался запуск скрипта который прописывал UDEV скрипты. Правда, иногда есть проблема, что SS не опознаёт свеже подключенные платы - приходится перезапускать SS. Потом был болезненный переход от SDK3 к SDK4, в результате которого из проектов исчезали app.c и main.c. Потом, при попытке создать проект BT SoC Empty, удавалось найти только Bluetooth Mesh - SoC Empty - вылечилось переустановкой SDK. Ну и еще есть какие-то непонятки с пользовательским интерфейсом - тыкаешь мышкой в поле ввода, а курсор не появляется. Особенно выражено в .slcp - Software Components. А с выпадающими списками - вообще ужос. Еле-еле удалось в Power Manager изменить Lowest Energy mode allowed с EM2 на EM1. Мышкой тыкаешь - ничего не происходит. Курсорными клавишами - тоже самое.
Так как я пытаюсь научиться пользоваться GitHub-ом немного удивляло то, что в CCS поддержка Git уже есть а в SS - нет. Причем те рецепты, которые описывают его установку - не работают. Пока не набрёл на одну тему, где специалиста наконец достали и он написал инструкцию и выложил ссылку на неё. Вот по этой инструкции у меня всё получилось под обоими операционными системами.
Есть еще толпа проблем с софтом под Линукс. Например, EAGLE CAD. Да, он есть под линукс. И даже, до пятой версии я его использовал под FreeBSD. Но, в своё время я был купивши Make лицензию... Ну там возникло недоразумение. У Olimex было какое-то странное предложение - очень выгодная цена за виндузную и линуксовскую лицензию разом. Я её купил, а когда пришел пакет -там оказалась только лицензия под виндовс. Оказалось, в списке продаж была ошибка и они за эти деньги не могут продать то что я хотел. Вот так я и стал обладателем виндузной лицензии. К тому времени я принял решение перейти на виндовс, так как под FreeBSD новые версии EAGLE больше не работали из-за проблем с эмуляцией новой версии ядра линукса. Вот, даже сейчас в портах стоит всё еще Eagle v5. Ну с Eagle пока поступаю так - запускаю под Wine и всё, вроде, работает.
Была мысль плюнуть и поставить 11-й виндовс, но меня удерживает пока то, что местный портал в бровзере под линуком не достаёт блокировкой из-за того что у меня установлен AdBlock.




