Некоторое время назад я думал, что увеличу свою игру и перейду "вверх" из Arduino к чему-то более причудливому. Платформа nRF52 от Nordi c Semiconductor выглядела очень хорошо, так как я хотел играть с Bluetooth. Итак, я получил DK (комплект разработчика).
У меня все работает, и я могу создавать и развертывать код. Но я скучаю по богатой платформе, которую Arduino имел с библиотеками и прочим. Теперь я знаю, что вы можете запустить Arduino на nRF, но он не будет полностью функционировать.
У меня есть пара датчиков I2 C, которые я хотел бы попробовать, и с Arduino кто-то уже сделал он и сделал библиотеку, супер приятно. Для нрф? Не так много. Это трудоемкая работа через таблицу данных и выяснение всех команд активации, времени и тому подобного.
Итак, я осмотрелся ... Платформа STM32 также начинает выглядеть действительно хорошо. Но подождите немного, на ARM Cortext M4 работает и STM32, и nRF52 (STM32 работает на нескольких). Что мешает мне использовать те же библиотеки, которые были разработаны для STM32 на nRF52?
Я быстро взглянул и даже системные вызовы c для задержки отличаются, почему это так? Разве они не делают одну и ту же инструкцию для процессоров для задержки? Что такое Cortex M4? Просто «пустая» архитектура, на которую любой мог бы лицензировать и добавить, например, стек Bluetooth, как это сделал Nordi c со своим nRF? И можно ли по-прежнему использовать функции generi c для ожидания / задержки? Для nRF52 - nrf_delay_ms
, на STM32 - HAL_Delay
. Каждый производитель должен внедрить весь свой набор инструкций на чипе? И, таким образом, не делает какой-либо код перемещаемым даже для его сборки на чипе Cortex M4?