00. 目錄
文章目錄
- 00. 目錄
- 01. FR801xH概述
- 02. FR801xH特性
- 03. gcc-arm-none-eabi-10.3-2021.10概述
- 04. gcc-arm-none-eabi-10.3-2021.10下載
- 05. gcc-arm-none-eabi-10.3-2021.10安裝
- 06. FR801xH-SDK編譯
- 07. 附錄
01. FR801xH概述
FR801xH 系列芯片是面向 SOC(片上系統),易于 快速開發的低功耗藍牙芯片。基于 Freqchip 的藍牙 智能固件和協議棧的支持,完全兼容藍牙 V5.3(LE 模式)協議。同時用戶可以基于芯片內置的 ARM CorteM3 嵌入式 32 位高性能單片機開發各種應用程 序。
藍牙智能固件包括 L2CAP 服務層協議、安全管理器 (SM)、屬性協議(ATT)、通用屬性配置文件 (GATT)和通用訪問配置文件(GAP)。此外,還 支持應用程序配置文件,例如接近度、健康溫度計、 心率、血壓、血糖、人機界面設備(HID)和 SDK (包括驅動程序、OS-API 等)。SDK 還集成了用于 網絡應用程序的 SIG Mesh 協議。
采用 Freqchip 的創新技術,將 PMU(鋰電池充電 器+LDO)、帶 XIP 模式的 QSPI FLASH ROM、 I2C、UART、GPIO、ADC、PWM 集成在一塊芯 片中,為客戶提供:
- 競爭力的功耗
- 穩定的藍牙連接
- 極低的 BOM 成本
02. FR801xH特性
CPU 和存儲器
CPU
- 內置 32 位 ARM Cortex-M3 內核,支 持最高 48MHz 的時鐘頻率
存儲器
- 256KB/512KB/1MB Flash 用戶軟件和數據存儲
- 48KB SRAM
- 128KB ROM
- BOOT 啟動代碼
- 控制器(controller)協議棧
ROM 固件
-
BLE Profile & Protocol: GATT, LM, LC
-
API 驅動
-
SIG MESH 協議棧
藍牙
-
藍牙 V5.3 LE 標準
-
支持 2M/1M/500K/125K 數據速率
數字接口
-
通用 GPIO
-
Timer
-
Efuse 128bit
-
SPIM
-
SPIS
-
UART(FIFO 深度 16/32)
-
SPI/QSPI
-
I2C (FIFO 深度 8/32)
-
PWM
-
PDM
03. gcc-arm-none-eabi-10.3-2021.10概述
gcc-arm-none-eabi-10.3-2021.10-x86_64-linux
是 ARM 官方維護的嵌入式專用工具鏈,適用于無操作系統的 Cortex-M/R 開發。其優勢在于:
? 開源免費,兼容主流裸機場景;
? 集成 newlib 庫,資源占用低;
? 支持 GCC 10.3 的現代優化特性(如 LTO 壓縮)。
啟用硬件浮點(如 Cortex-M4F):編譯參數添加 -mfloat-abi=hard -mfpu=fpv4-sp-d16
工具鏈對比
特性 | gcc-arm-none-eabi | arm-linux-gnueabi | armcc |
---|---|---|---|
適用系統 | 裸機/RTOS | Linux 應用層 | 裸機/RTOS(Keil/ADS) |
C 庫 | newlib(輕量級) | glibc(完整功能) | 專用庫(閉源) |
浮點處理 | 默認 softfp (兼容 soft/hard)10 | 可選 softfp 或 hard 9****10 | 依賴芯片 FPU 配置 |
許可證 | 開源(GPL) | 開源(GPL) | 商業收費 |
04. gcc-arm-none-eabi-10.3-2021.10下載
下載:gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.rar
下載:gcc-arm-none-eabi-10.3-2021.10-aarch64-linux.tar.bz2
下載:gcc-arm-none-eabi-10.3-2021.10-src.tar.bz2
05. gcc-arm-none-eabi-10.3-2021.10安裝
5.1 解壓
deng@local:~$ tar -xjvf gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2
5.2 剪切到/var/opt目錄下
deng@local:~$ sudo mv gcc-arm-none-eabi-10.3-2021.10 /var/opt/
06. FR801xH-SDK編譯
6.1 解壓FR801xH-SDK-master.zip
deng@local:~$ unzip FR801xH-SDK-master.zip
6.2 進入到FR801xH-SDK-master/components/toolchain/gcc目錄中
deng@local:~/FR801xH-SDK-master/components/toolchain/gcc$ pwd
/home/deng/FR801xH-SDK-master/components/toolchain/gcc
deng@local:~/FR801xH-SDK-master/components/toolchain/gcc$
6.3 修改Makefile.posix文件
deng@local:~/FR801xH-SDK-master/components/toolchain/gcc$ vim Makefile.posix
6.4 修改Makefile.posix文件交叉編譯器路徑,內容如下
#GNU_INSTALL_ROOT ?= /usr/local/gcc-arm-none-eabi-6-2016-q4-update/bin/
GNU_INSTALL_ROOT ?= /var/opt/gcc-arm-none-eabi-10.3-2021.10/bin/
GNU_VERSION ?= 6.2.1
GNU_PREFIX ?= arm-none-eabi
6.5 切換到examples/none_evm/ble_simple_peripheral/gcc目錄中
deng@local:~/FR801xH-SDK-master/examples/none_evm/ble_simple_peripheral/gcc$ pwd
/home/deng/FR801xH-SDK-master/examples/none_evm/ble_simple_peripheral/gcc
deng@local:~/FR801xH-SDK-master/examples/none_evm/ble_simple_peripheral/gcc$ ls
ldscript.ld Makefile
6.6 編譯ble_simple_peripheral案例
deng@local:~/FR801xH-SDK-master/examples/none_evm/ble_simple_peripheral/gcc$ pwd
/home/deng/FR801xH-SDK-master/examples/none_evm/ble_simple_peripheral/gcc
deng@local:~/FR801xH-SDK-master/examples/none_evm/ble_simple_peripheral/gcc$ make
mkdir build
cd build && mkdir ble_simple_peripheral
Compiling: ../code/proj_main.c
Compiling: ../code/ble_simple_peripheral.c
Compiling: ../code/user_task.c
Compiling: ../../../../components/modules/button/button.c
Compiling: ../../../../components/ble/profiles/ble_simple_profile/simple_gatt_service.c
Compiling: ../../../../components/driver/driver_iic.c
Compiling: ../../../../components/driver/driver_pmu.c
Compiling: ../../../../components/driver/driver_keyscan.c
Compiling: ../../../../components/driver/driver_pmu_qdec.c
Compiling: ../../../../components/driver/driver_rtc.c
Compiling: ../../../../components/driver/driver_uart.c
Compiling: ../../../../components/driver/driver_wdt.c
Compiling: ../../../../components/driver/driver_i2s.c
Compiling: ../../../../components/driver/driver_exti.c
Compiling: ../../../../components/driver/driver_timer.c
Compiling: ../../../../components/driver/driver_efuse.c
Compiling: ../../../../components/modules/platform/source/exception_handlers.c
Compiling: ../../../../components/modules/platform/source/app_boot_vectors.c
Compiling: ../../../../components/modules/patch/patch.ctext data bss dec hex filename100552 1660 3520 105732 19d04 build/ble_simple_peripheral.out
Generate: build/ble_simple_peripheral.bin
Generate: build/ble_simple_peripheral.txt
DONE ble_simple_peripheral
deng@local:~/FR801xH-SDK-master/examples/none_evm/ble_simple_peripheral/gcc$
6.7 編譯結果
編譯生成的bin文件就在當前目錄中build/ble_simple_peripheral.bin。
07. 附錄
SDK下載:FR801xH-SDK-master.zip
gitee下載:FR801xH-SDK-master.zip