项目简介
本项目基于Nordic Semiconductor的nRF系列芯片和蓝牙低功耗(BLE)协议栈开发。目标是打造一个安全、稳定的BLE通信环境,着重于安全特性的配置与管理,适用于蓝牙设备的安全连接和数据传输场景。固件遵循BLE标准协议,通过优化实现数据安全传输和高效通信,功能丰富且具备扩展性,能满足物联网应用领域的广泛需求。
项目的主要特性和功能
- 支持nRF52系列芯片,如nRF52840,硬件芯片为PCA10056 ARM Cortex - M4F CPU。
- 支持蓝牙低功耗协议栈,实现高效数据传输。
- 支持多种安全连接模式,包括LE Secure Connections和LE Legacy paring模式。
- 提供丰富的服务和特性处理函数,支持自定义扩展和配置。
- 支持micro - ecc和cc310等硬件加速的加密和哈希算法(部分待实现),保障数据传输安全。
- 实现Numeric Comparaison和Passkey等关联模型。
- 可更改MAC地址,支持特定或随机字节生成。
- 保护读写特性,确保数据访问安全。
- 支持AES - 128 - ECB&CBC对BLE数据通信进行加密和解密。
- 具备实时计数器,可测量任务间的耗时。
- 提供完善的错误处理和日志记录功能,方便调试和故障排查。
- 提供电源管理功能,实现低功耗运行。
安装使用步骤
安装插件
- GNU toolchain for ARM:运行“tools/arm - gcc/”中的“arm - gcc - install.sh”脚本(gcc - arm - none - eabi - 7 - 2017 - q4 - major)。
- JLink:用于Eclipse调试,从
https://www.segger.com/downloads/jlink/#J - LinkSoftwareAndDocumentationPack
下载。 - nrfjprog:从
http://www.nordicsemi.com/eng/Products/Bluetooth - low - energy/nRF52832
的下载选项卡中,根据操作系统选择nRF5x - Command - Line - Tools - XXX
。
导入项目到Eclipse
- 打开Eclipse,选择“Help > Eclipse Marketplace”,搜索“ARM”,选择“GNU MCU Eclipse”,安装所需的GNU MCU C/C++ ARM Cross Compiler、GNU MCU C/C++ J - Link Debugging、GNU MCU C/C++ Packs。
- 运行主仓库中的“nordic_setup_sdk.sh”脚本下载SDK(默认SDK将位于“./libs/”)。
- 在Eclipse中,选择“File > New Project > Makefile Project with Existing code”,填写项目名称,选择现有代码位置为“./nrf52 - secure - firmware/”,工具链选择“ARM cross GCC”。
- 配置Eclipse:
- 选择“Window > Preferences > MCU > Global ARM toolchain Path”,设置ARM工具链文件夹。
- 选择“Window > Preferences > MCU > Global SEGGER J - Link Path”,设置可执行文件为“JLinkGDBServer”,文件夹为“/usr/local/bin”。
- 在项目属性窗口中,将默认的C/C++构建命令配置为“make VERBOSE = 1”。
- 根据使用的平台,在“makefile.windows”或“makefile.posix”中设置工具链路径。例如在Linux或OS X系统中,编辑“makefile.posix”文件:
GNU_INSTALL_ROOT := «PATH to gcc - arm - none - eabi - 4_9 - 2015q3 bins» GNU_VERSION := «Version of gcc - arm - eabi» GNU_PREFIX := arm - none - eabi
运行“./libs/nRF5_SDK/nRF5_SDK_14.2.0_17b948a/external/micro - ecc/”中的“build_all.sh”脚本以获取“Micro_ecc_lib_nrf52.a”库,运行前可执行命令sed -i 's/\r//g' build_all.sh
。
从Eclipse进行烧录
在项目菜单中右键单击,选择“Build target > Create”,填写“Target name”为“flash”,确保将“nrfjprog”程序的路径添加到系统环境变量“PATH”中,在项目属性窗口的“build”选项中进行相关设置。
从Eclipse进行调试
在项目菜单中右键单击,选择“Debug As > Debug Configuration”,选择“GDB SEGGER J - Link Debugging”调试器类型,按照示例图片填写相关信息。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】