Bouffalo Lab BL602 и его старший брат BL604 с дополнительными GPIO – это микроконтроллеры RISC-V с Wi-Fi и Bluetooth LE, которые предлагают альтернативу Espressif Systems ESP32 WiSoC, хотя они были объединены с ESP32-C3 – собственным решением Espressif RISC-V.
Вскоре после «анонса» в октябре 2020 года мы обнаружили SDK и относительно дешевую плату BL602, но в SDK есть много двоичных файлов с закрытым исходным кодом. После этого Sipeed и Pine64 выразили заинтересованность в разработке набора инструментов с открытым исходным кодом и даже стека Wi-Fi (и BLE) с открытым исходным кодом. Прошло время и в январе мы получили плату Pinecone, но ничего не делали с ней, учитывая статус программного обеспечения.
Того же нельзя сказать о Люпе Юэне Ли (он же MrTechBlog), который много времени посвятил работе с модулем и платой Pine64 BL602, включая использование и тщательное документирование своей работы с Tensorflow Lite, подключение платы к модулю LoRa и многое другое (перейдите по этой ссылке и прокрутите до раздела “Публикации” для получения дополнительной информации).
Совсем недавно он решил поработать над непростой задачей – создать стек Wi-Fi и Bluetooth с открытым исходным кодом, и написал длинный пост, посвященный процессу обратной разработки кода WiFI в BL602 SDK.
Этот процесс включает в себя прохождение всех функций кода, чтобы понять основы, такие как подключение к маршрутизатору WiFi и отправка некоторых HTTP-пакетов с использованием демонстрационной прошивки, поскольку часть кода является только двоичной, она была декомпилирована на язык C для дальнейшего анализа. Эта часть не проста, но он просмотрел ее, чтобы проверить, какая часть может быть использована для обратной разработки, как показано ниже.
Весь процесс представляет собой танец между исходным кодом SDK и декомпилированным исходным кодом C, чтобы попытаться понять, что происходит … и в конечном итоге оказывается, что код WiFi исходит из прошивки/программного обеспечения CEVA RivieraWaves, используемого во многих решениях WiFi. Люп Юэн Ли даже заметил, что код BL602 очень похож на код запроса WiFi RK3399.
Большинство функций, не связанных с WiFi, имеют открытый исходный код, и анализ также показал, что SDK использует исходный код из различных проектов, включая встроенную платформу AliOS для многозадачности и драйверы устройств, AWS Cloud для IoT и сервисы MQTT (Message Queue), встроенную базу данных EasyFlash. , FreeRTOS, работающий под управлением AliOS, Lightweight IP (LWIP) и Mbed TLS.
Но вся эта работа – лишь отправная точка для дальнейшей работы. Вы можете много узнать о обратной разработки стека WiFi, прочитав полный текст сообщения .
Выражаем свою благодарность источнику из которого взята и переведена статья, сайту cnx-software.com.
Оригинал статьи вы можете прочитать здесь.