【FR801xH】Ubuntu24.04搭建富芮坤FR801xH系列开发环境教程
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