Armino 1.2.0
We are pleased to announce the release of Armino version 1.2.0.
备注
Armino is not designed from scratch, the baseline of Armino 1.2.0 is Beken Wi-Fi SDK v3.0, which has been used by many customers around the world. A lot of enhancements and changes have been made in Armino 1.2.0 compares to it’s baseline, that’s what we annouced in this release notes.
Major enhancements with this release include:
Support new software architecture, such as components and middleware etc
Support boot for RISC-V
Support new APIs for following drivers:
ADC
GPIO
DMA
UART
SPI
QSPI
Timer
TRNG
MailBox
Interrupt
Watchdog
Efusea
PWM
Vault
Support Wi-Fi 6 stack
Support new APIs for Wi-Fi
Support new APIs for BLE
Support BLE 5.x stack
Support POSIX for FreeRTOS
Upgrade FreeRTOS to v10.0
Upgrade LWIP to v2.1.2
Support CMake build
Support Kconfig and per-soc and per-project configuration
Support new documentation
The following sections provide detailed lists of changes by component.
Software Architecture
The software architecture has been redesigned:
A dedicated layer
components
has been added, it’s used to contain the reusable or service related modules.A dedicated layer
middleware
has been added, it works as the adapter between hardware and other components.A dedicated layer
projects
has been added to contains all applications, projects or examples.The FreeRTOS have been moved to Armino, Armino supports FreeRTOS by default.
FreeRTOS
The FreeRTOS has been upgrade from v9.0 to v10.0.
Posix APIs
The POSIX APIs has been supported.
Wi-Fi
Support Wi-Fi 6 stack
Support new Wi-Fi APIs
bk_wifi_init()
- init WiFi
bk_wifi_deinit()
- deinit WiFi
bk_wifi_set_country()
- set country code
bk_wifi_get_country()
- get country code
bk_wifi_send_raw()
- send raw 802.11 frame
bk_wifi_sta_start()
- start BK STA
bk_wifi_sta_stop()
- stop BK STA
bk_wifi_sta_set_config()
- set basic configurations BK STA, such as SSID etc
bk_wifi_sta_get_config()
- get basic configuration of BK STA
bk_wifi_sta_get_link_status()
- get link status of BK STA
bk_wifi_sta_get_mac()
- get STA MAC address
bk_wifi_ap_start()
- start BK AP
bk_wifi_ap_stop()
- stop BK AP
bk_wifi_ap_set_config()
- set the basic configuration of BK AP, such as SSID etc
bk_wifi_ap_get_config()
- get the basic configuration of BK AP
bk_wifi_ap_get_mac()
- get AP MAC address
bk_wifi_monitor_start()
- start the monitor
bk_wifi_monitor_stop()
- stop the monitor
bk_wifi_monitor_set_config()
- set basic configuration of the monitor
bk_wifi_monitor_get_config()
- get basic configuration of the monitor
bk_wifi_monitor_register_cb()
- register monitor callback function
bk_wifi_monitor_set_channel()
- set the channel of monitor
bk_wifi_scan_register_cb()
- register scan callback function
bk_wifi_scan_start()
- start the scan
bk_wifi_scan_stop()
- stop the scan
bk_wifi_scan_get_result()
- get the scan result
bk_wifi_scan_dump_result()
- dump the scan result
bk_wifi_scan_free_result()
- dump the scan result
bk_wifi_filter_set_config()
- set filter configuration
bk_wifi_filter_register_cb()
- register the filter callback function
BLE
Driver
The driver architecture has been redesigned:
The driver has been divided to 3 layers, the Driver layer, HAL layer and SoC Layer.
Some driver of the peripherals are re-implemented based on the new driver architecture, such as ADC etc.
ADC
ADC are re-designed in this release, here are the new ADC APIs:
bk_adc_aquire()
bk_adc_enable_saturate()
bk_adc_disable_saturate()
bk_adc_set_saturate()
GPIO
GPIO are re-designed in this release, here are the new GPIO APIs:
PWM
PWM are re-designed in this release, here are the new PWM APIs:
bk_pwm_set_duty_period()
DMA
DMA are re-designed in this release, here are the new DMA APIs:
UART
UART are re-designed in this release, here are the new UART APIs:
SPI
SPI are re-designed in this release, here are the new SPI APIs:
bk_spi_dma_write_bytes()
bk_spi_dma_read_bytes()
bk_spi_dma_transmit()
QSPI
QSPI driver are re-designed in this release, here are the new QSPI APIs:
Timer
Timer driver are re-designed in this release, here are the new Timer APIs:
TRNG
TRNG driver are re-designed in this release, here are the new TRNG APIs:
EFUSE
Efuse driver are re-designed in this release, here are the new Efuse APIs:
bk_efuse_write()
bk_efuse_read()
MailBox
Mailbox driver are re-designed in this release, here are the new Mailbox APIs:
mailbox_init()
mailbox_deinit()
mailbox_set_param()
mailbox_recv_callback_register()
mailbox_recv_callback_unregister()
mailbox_send()
Interrupt
Interrupt control are re-designed in this release, here are the new Interrupt APIs:
bk_get_int_statis()
bk_dump_int_statis()
Watchdog
Watchdog are re-designed in this release, here are the new Watchdog APIs:
Build System
The legacy GNU Makefile build system has been removed and the CMake build system has been supported.
Log
Following log APIs have been added:
BK_LOGI
BK_LOGD
BK_LOGV
Event
Following Event APIs have been added:
Netif
Following Netif APIs have been added:
Documentation
New documentation framework has been added to this release.
Examples
Following examples has been added: