範例
SDK 隨附 40 個 FreeRTOS 應用,其中 37 個以 IPRO7/IPRO7AI 為目標、3 個以 IPRO6S 為目標。每個應用都是 apps/ 下的獨立目錄,內含 .config、CMakeLists.txt 與 Makefile。可在 IPRO7AI Reef EVK V4.0 上執行的 9 個應用各有一頁,寫出建置、燒錄與執行的步驟;其他應用需要別的板卡,只列在其他板卡的應用。
在 Reef 上建置
多數應用的預設 .config 是其他板卡,Reef 使用應用目錄中的 Reef 設定檔,以 DEFCONFIG= 選用:
make -C apps/bluetooth/ble/ipro_ble_remote DEFCONFIG=defconfig_reef
| 項目 |
規則 |
| 建置目錄 |
DEFCONFIG=defconfig_<名稱> 建置於 build_<名稱>/,.config 不變;不加 DEFCONFIG= 時建置於 build/ |
| 映像 |
<建置目錄>/build_out/<應用>_IPRO7.bin(IPRO6S 應用為 _IPRO6.bin) |
直接以 make 建置 Reef |
只有 ipro7ai_reef_demo、ipro_reef_teach 與 ipro_agora_sentino;其他應用不加 DEFCONFIG= 會建置成 IPRO7 EVB 或 IPRO7AI EVK 版 |
| 燒錄 |
--chipname ipro7 --chip-variant IPRO7AI;分割表、boot2 與 mfg 資料依各應用頁面 |
| 主控台 |
U6 的 UART0:除 ipro7_jpeg_decode 為 921600 外,Reef 設定都是 115200 baud |
| 一次完成 |
./build_freertos.sh -d defconfig_reef build flash monitor ipro_throughput_test,自動選用 --chip-variant IPRO7AI,以 -P 指定分割表;無法寫入 boot2 與 mfg 資料(見工具命令列) |
下載模式、主控台接線與第一次燒錄見 Reef 上手。
Reef EVK 範例
| 應用 |
用途 |
板卡與設定 |
主控台 |
ipro7ai_reef_demo |
Reef 開箱韌體:RGB LED、按鍵、喇叭與耳機、PDM 與耳麥麥克風、microSD、OV5640 相機各有一組 shell 指令;mic usb 讓板子成為 USB 麥克風,mic sdrec 把錄音存成 SD 卡上的 WAV 檔 |
Reef(.config);Reef+IPRO6S FIN 卡(defconfig_wifi_ipro6s:Wi-Fi 與 RTSP 相機串流) |
UART 115200 |
ipro_reef_teach |
Reef 的 Edge AI 韌體:一個映像包含三個 Teach 工具,image(USB 相機+影像分類)、voice(聲紋辨識)與 sensor(感測器分類),開機時依 Flash 中儲存的模式擇一執行,由 IPRO AI Studio 操作。完整操作見 IPRO AI Teach |
Reef(.config);image 模式需要 OV5640 相機 |
UART 115200 |
ipro_ble_remote |
GATT 參考應用:LED、按鍵、環境、UART、相機影像與影像上傳服務;Reef 版另有 Reef 硬體服務與 BLE A/B OTA。隨附 Android 示範 App ipro_remote_demo.apk。教學見第一個 BLE 應用 |
Reef(defconfig_reef:WS2812、相機、SD 卡、音訊與 BLE A/B OTA);.config、defconfig 為 IPRO7 EVB |
UART 115200 |
ipro_throughput_test |
兩板 BLE 吞吐量測試:1M/2M/Coded PHY、DLE、ATT MTU 247。教學見 BLE 吞吐量測試 |
兩塊 Reef(defconfig_reef);.config 為 IPRO7 EVB |
UART 115200 |
ipro_le_audio_headset |
LE Audio unicast 耳機:BAP unicast server、PACS、ASCS、CAP、CSIP、VCP,LC3 解碼後由 DAC 輸出。教學見 LE Audio 入門 |
Reef(defconfig_reef:DAC 輸出到耳麥孔與喇叭);.config、DAC.config、UAC.config 為 IPRO7 EVB |
UART 115200 |
ipro7_uvc_cam |
USB 網路攝影機:OV5640、ISP、硬體 MJPEG、USB Video Class;另一個 Reef 設定在 NPU 上跑剪刀石頭布並畫進影像。教學見 USB 網路攝影機與剪刀石頭布 |
Reef(defconfig_reef_ov5640:網路攝影機;defconfig_reef_rps:剪刀石頭布);.config 為 IPRO7 EVB 搭配 SC101IOT |
Reef:UART 115200
.config:UART 921600 |
ipro7_jpeg_decode |
以軟體(TJpgDec)把 JPEG 解碼成 RGB565/RGB888,附格式探測、內建測試圖與主機端工具;IPRO7 的 MJPEG 硬體只能編碼 |
Reef(defconfig_reef);.config 為 IPRO7AI EVK |
UART 921600 |
ipro_ai_link |
IPRO AI Studio「Run on board」的板端韌體:由 microSD(sd:/)載入 .inm 模型與輸入、在 NPU 上推論、輸出原始結果;也可在主控台手動操作 |
Reef(defconfig_reef);.config 為 IPRO7 EVB |
UART 115200(另有 USB CDC 主控台) |
ipro_agora_sentino |
Sentino 雲端 AI 語音對話:BLE 配網、經 IPRO6S FIN 卡連 Wi-Fi、MQTT 登入、Agora RTC 即時語音;需另備 Sentino 裝置三元組與 AOSL 核心 |
Reef+IPRO6S FIN 卡(.config,make 或 make BOARD=reef);BOARD=evk 為 IPRO7AI EVK(可建置,未經板上驗證) |
Reef:UART 115200 |
其他板卡的應用
以下應用沒有 Reef 設定,需要表中所列的板卡;點選名稱開啟 GitHub 上的原始碼。這些板卡的供應請洽 INTELPRO。
BLE
音訊與語音
| 應用 |
用途 |
板卡與設定 |
主控台 |
ipro_pdm_mic_demo |
PDM 麥克風收音、DAC 播放、經 BLE 以 LC3 串流、SMP 配對、PDS31 休眠與綁定重連;Android 範例 App 原始碼在 tools/android/IproMicDemo/。Reef 上的錄音與播放見 ipro7ai_reef_demo 的 mic 指令 |
需要 IPRO7 EVB(.config)或 IPRO7AI EVK(make BOARD=evk) |
EVB:UART 115200 EVK:UART 921600 |
| 應用 |
用途 |
板卡與設定 |
主控台 |
ipro7_demo |
全晶片參考:PWM、SPI、I2S、LCD、音訊 ADC/DAC、USB 裝置(CDC、HID、MSC、UAC、UVC)、檔案系統、TRNG、DSP 等,各有 shell 指令 |
需要 IPRO7 EVB;另有 defconfig_boot2_nopsram、defconfig_boot2_ota、defconfig_nist_fulltest、defconfig_security_cert |
UART 115200 |
ipro7ai_evk_demo |
IPRO7AI EVK bring-up:LCD、相機、麥克風、喇叭與 SD 卡;config_bt 加上 BLE 與 LE Audio |
需要 IPRO7AI EVK |
.config:UART 921600
config_*:UART 115200 |
ipro7ai_evk_launcher |
相機、LCD、麥克風與喇叭整合在單一映像,以 NPU 辨識手勢切換頁面 |
需要 IPRO7AI EVK |
UART 921600 |
AI 與影像
| 應用 |
用途 |
板卡與設定 |
主控台 |
ipro7ai_evk_person_detect |
相機預覽顯示在 LCD,疊加 NPU 執行 YOLOv8 的人形/寵物框 |
需要 IPRO7AI EVK |
UART 115200 |
ipro7ai_evk_rps |
與 NPU 上的 int8 CNN 玩剪刀石頭布,附模型與訓練腳本;Reef 上的同一個遊戲為 ipro7_uvc_cam 的 defconfig_reef_rps |
需要 IPRO7AI EVK |
UART 921600 |
ipro_speaker_recog |
以 NPU 辨識說話者,模型放在 mfg 分割區;Reef 上的聲紋辨識為 ipro_reef_teach 的 voice 模式 |
需要 IPRO7 EVB |
UART 921600 |
網路與 IPRO6S
| 應用 |
用途 |
板卡與設定 |
主控台 |
ipro7_sdio_wifi |
IPRO7 作為 SDIO 主機、IPRO6S 作為 Wi-Fi 無線電,提供 lwIP 網路介面 iproeth0 與 DHCP。Reef 上的同等功能為 ipro7ai_reef_demo 的 defconfig_wifi_ipro6s |
需要 IPRO7 EVB 與 IPRO6S |
UART 115200 |
ipro6_demo |
IPRO6S Wi-Fi 6 station/soft-AP 與 shell;defconfig_ipro6_lpwifi 加上 DTIM 省電,defconfig_ipro6_lp 為低功耗示範 |
需要 IPRO6S EVK(見 IPRO6S) |
UART 115200 |
ipro6_if_wifi |
IPRO6S Wi-Fi 6 橋接到主機:SDIO(defconfig_ipro6_sdio,也是 Reef FIN 卡的韌體)或 USB(defconfig_ipro6_usb) |
IPRO6S EVK;FIN 卡(defconfig_ipro6_sdio,以 --chipname ipro6 燒錄,見 IPRO6S) |
UART 115200 |
ipro6_fmac |
給 Linux cfg80211 主機的 FullMAC 韌體(defconfig_ipro6_fmac)與其 Flash 載入程式(defconfig_ipro6_fmac_loader);Linux 驅動程式不在 SDK 內 |
需要 IPRO6S EVK |
UART 115200 |
IPRO6S 應用以 --chipname ipro6 燒錄;建置與設定見 IPRO6S。
測試與 bring-up 程式
下一步