Professional Documents
Culture Documents
(6030) ÍºÈ BLEÅV Ñ Õ W
(6030) ÍºÈ BLEÅV Ñ Õ W
SW MAC team
Confidential
需求
2
Confidential
配网
( ADV )
DUT PHO
ADV : AP NE
SSID/PSW
Scanner Legacy
ADV
DUT PHO
NE
Legacy Scanner
ADV
ADV : STA
Status
3
Confidential
目的
• 由於廣播 /scan 無需 BLE stack ,直接對 controller (Link Layer) 發出
HCI cmd 命令它工作,希望藉由 ssv6x5x-sw_ble.bin ,但不需要 Linux
BlueZ 協助下,完成我們的目標。
4
Confidential
Host driver 啟動 BLE 收發 app data
在 <ssvdriver folder>/ 目錄下
1. 編輯 config.mak, 打開 compiler flag, ( 新增 CONFIG 定義 BLE_USE_LL_ONLY)
## NIMBLE 使用 (( 注意与 BLE 的使用为 2 选 1))
## 使用 ssv6x5x-sw_nimble.bin
#ccflags-y += -DCONFIG_NIMBLE
2. 編譯 driver
# make
################################################################################
# Firmware name
#
# 若有設定 firmware path 的話才有用 , 內部預設 firmware name 使用 "ssv6x5x-sw.bin"
#
################################################################################
#firmware_name = ssv6x5x-sw.bin
firmware_name = ssv6x5x-sw_ble.bin
4. 載入 driver
# ./load.sh
5
Confidential
BLE app 收發 BLE LL 的 data
在 <ssvdriver folder>/tools/ble/ble_app/ 目錄下
1. 編輯 Makefile, 打開 compiler flag, ( 新增 BLE_USE_LL_ONLY)
CC = gcc
CFLAGS = -c -Wall -fshort-enums
CFLAGS += -DBLE_USE_LL_ONLY
LDFLAGS =
2. 編譯 ble_app
3. 執行 ble_app, 並 CLI command “init=1”
# ./ble_app
ble> init=1
bleinit=1
ble: HCI Reset
ble: set event mask
ble: set le event mask
6
Confidential
CLI 指令範例
1. init
ble> init=1
bleinit=1
ble: HCI Reset
ble: set event mask
ble: set le event mask
3. scanparam
ble> scanparams=1,0,0,320,48,1
blesetscanparams=1,0,0,320,48,1
ble: set scan parameter
4. scan
ble> scan=1
blestartscan=1
ble: scan enable
2. BLE APP RX
1. RX packet handler callback
=> 提供 callback 註冊 , 當有 RX packet 時呼叫 callback 處理
3. BLE DRV
1. init: 做 BLE init, 但不向 BlueZ 註冊 device
2. TX: 透過 netlink 打來的 TX packet 送往 firmware
3. RX: RX packet 透過 netlink 送往 APP
8
Confidential
BLE LL API
typedef void (*ssv_ble_ll_rx_pkt_cb_t)(uint8_t *, uint32_t); ///< BLE LL RX packet callback type
9
Confidential
注意事項
10
Confidential
Thank you
Confidential