Программирование ARM Bouffalo SDK Sat, May 04 2024  

Поделиться

Нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.

Bouffalo SDK Печать
Добавил(а) microsin   

Bouffalo SDK это программный пакет для IOT и MCU, предоставленный Bouffalo Lab Team. Пакет поддерживает все чипы компании Bouffalo. Также BouffaloSDK является комбинацией bl_mcu_sdk и bl_iot_sdk.

Архитектура SDK:

Bouffalo SDK architecture

Назначение основных каталогов:

bsp/board BSP расшифровывается как Board Support Package. Код для поддержки особенностей аппаратуры процессоров и плат разработчика. Инициализация тактов, мультиплексирования выводов чипа, кучи, консоли вывода отладочных сообщений (clock, pinmux, memoryheap, console).

bsp/common Общий драйвер BSP.

components Различные программные компоненты.

docs Документация по быстрому старту, API, демонстрационным проектам.

drivers/lhal LHAL расшифровывается как Lowlevel Hardware Abstraction Layer. Общие драйверы периферийных устройств чипов bouffalo, относящиеся к поддержке всех чипов.

drivers/soc SOC расшифровывается как System On Chip. Драйверы bouffalo, обеспечивающие поддержку особенностей периферийных устройств чипов.

drivers/rfparam Драйверы для параметров радиотракта.

examples Официальные примеры приложений.

tools Утилиты для прошивки и дополнительный инструментарий.

[Драйверы LHAL]

Драйверы LHAL, разработанные Bouffalo Lab, обеспечивают единообразный API для доступа к периферийным устройствам чипов BL60x, BL70x, BL61x, BL80x. В следующей таблице приведена общая информация о доступной поддержке периферийных устройств у разных чипов. Символ √ означает наличие поддержки, × отсутствие поддержки, ○ означает не протестированную пока поддержку. Символ - означает отсутствие у чипа такого периферийного устройства.

Периф. BL602/BL604 BL702/BL704/BL706 BL616/BL618 BL808
ADC
CAM -
CKS
CSI - - -
DAC
DMA
EFUSE × × × ×
EMAC -
FLASH
GPIO
I2C
I2S
IR
MJPEG × ×
PWM_v1 - -
PWM_v2 - -
RTC
SEC_AES
SEC_TRNG
SEC_PKA
SPI
TIMER
UART
USB_v1 - - -
USB_v2 - -
WDG

Беспроводные интерфейсы:

Периф. BL602/BL604 BL702/BL704/BL706 BL616/BL618 BL808
WIFI4 × - - ×
WIFI6 - - -
BT - - ×
BLE × × ×
ZIGBEE - × × ×

ILI9341 spi/dbi SPI для всех чипов, DBI для BL616/BL808
ILI9488 spi/dbi/dpi SPI для всех чипов, DBI для BL616/BL808, DPI для BL808
ST7789V spi SPI для всех чипов
GC9503V dpi DPI для BL808

BF2013 DVP DVP для BL702/BL616/BL808
GC0308 DVP DVP для BL702/BL616/BL808
GC0328 DVP DVP для BL702/BL616/BL808
GC2053 DVP/CSI DVP для BL702/BL616/BL808, CSI для BL808
OV2685 CSI CSI для BL808

[Документация по настройке рабочего окружения]

Где взять тулчейн:

Windows: riscv64-unknown-elf-gcc.
Linux: riscv64-unknown-elf-gcc.
MacOS: T-HEAD официально не предоставляет тулчейн для MacOS, так что вы должны выполнить его сборку самостоятельно, см. build_toolchain_macos.

Тулчейн для компиляции кода Linux: linux-riscv64-linux-gcc.

Как компилировать проекты. Перед тем, как запустить сборку кода из командной строки, вам нужно выбрать тулчейн, подходящий для вашей операционной системы, сконфигурировать системные переменные окружения для тулчейна, и установить утилиты сборки make или ninja. Как это делается, см. [2]. После этого можно приступить к следующим шагам.

Выберите один из интересующих вас демонстрационных проектов в каталоге examples. Перейдите в его корневую директорию, там где находятся файлы main.c (основной код приложения) и Makefile (скрипт компиляции для make).

К примеру, если надо скомпилировать проект helloworld для чипа BL616 с помощью утилиты make, то выполните команды:

$ cd examples/helloworld
$ make CHIP=bl616 BOARD=bl616dk

Если используются чипы BL808 или BL606P, то также нужно добавить опцию CPU_ID с установкой m0 или d0:

$ make CHIP=bl808 BOARD=bl808dk CPU_ID=m0

Если вы хотите использовать ninja, то команды компиляции должны быть такими:

$ cd examples/helloworld
$ make ninja CHIP=bl616 BOARD=bl616dk
 
$ cd examples/helloworld
$ make ninja CHIP=bl808 BOARD=bl808dk CPU_ID=m0

[Прошивка кода в память чипа]

Обычно чипы прошиваются через последовательный интерфейс (переходничок USB - TTL UART). На операционных системах Linux по умолчанию может быть запрещен доступ к устройству последовательного интерфейса. Решением проблемы может быть запуск команды прошивки через sudo. Также можно добавить текущего пользователя в группу dialout и перезапустить Linux, чтобы установка вошла в силу. Например, здесь xxx это имя текущего пользователя:

$ sudo usermod -aG dialout xxx # 

Как прошивать:

$ cd examples/helloworld
$ make flash CHIP=chip_name COMX=xxx

Здесь параметр chip_name должен быть bl602/bl702/bl616/bl808/bl606p. Параметр COMx задает имя последовательного устройства в система. Для Windows это обычные имена наподобие COM5, COM6 и т. п., а на Linux это может быть имя /dev/ttyxxx, обычно /dev/ttyUSB0. Если вы используете BL808 или BL606P, то нужно также добавить CPU_ID с m0 или d0.

$ cd examples/helloworld
$ make flash CHIP=chip_name CPU_ID=m0 COMX=xxx

Различные чипы преобразователей последовательных интерфейсов USB - UART могут иметь разные возможности по установке скорости передачи, что необходимо учитывать при выборе скорости интерфейса.

Чип USB Скорость бит
CH340 До 500K
CP2102 До 2M
FT232 До 2M
BL702 До 8M
BL616 До 10M

Как использовать утилиту прошивки, см. [5].

К сожалению, большинство документации ([2, 3, 4]) доступно только на китайском языке, но можно воспользоваться удобной функцией переводчика Google для файлов PDF, а для HTML-документации функцией перевода браузера Chrome.

[Ссылки]

1. bouffalolab / bouffalo_sdk.
2. BouffaloSDK Environment Setup.
3. Документация по чипам Bouffalo.
4. Онлайн-документация BouffaloSDK.
5. Bouffalo Flash Cube, инструкции по использованию.

 

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


Защитный код
Обновить

Top of Page