一 、硬件
-
IK-52832DK开发板兼容官方nRF52DK(PCA10040)
-
xxAA: 512K 片内Flash, 64KRAM
-
xxAB: 256k 片内Flash,32KRAM
二、开发设备
硬件设备
1、开发板
2、JLINK 仿真和下载程序
3、JTAG-SWD转换板
4、IK-52Dongle 抓包或主机控制面板配套使用,可以捕获和分析BLE数据包,帮助理解BLE
软件
1、MDK5.23
2、JLINK驱动
3、Master Control Panel 主机控制面板,与Dongle配合使用
4、nRF Sniffer BLE抓包软件,Dongle使用
5、WireShark 抓包和协议分析,与Dongle配合使用
6、nFR Connet 手机端软件,用于扫描,连读,读写设备等
7、nRF ToolBox 手机端APP应用集
三、开发环境搭建
1、NordicSemiconductor.nRF_DeviceFamilyPack.8.17.0.pack ——————— keil的芯片包
2、nRF5_SDK_15.2.0_9412b96.zip ———————SDK
3、ARM.CMSIS.4.5.0.pack———————keil内核支持包
4、nRF Connect————–手机端测试 APP
5、nRF Toolbox————–手机端测试 APP
四、新建和配置裸机工程
1、SDK库介绍
1、Components组件库
2、Examples例子
每个例子都包含 多种开发环境和多种芯片的工程
2、新建和配置工程
1、规划目录
拷贝后的目录
2、新建立工程
-
新建工程保存到project目录下
-
配置 RTE(Run-Time Environment)
-
整理工程目录
-
管理软件包
-
添加文件到工程
boards.c sdk_config.h 等
“app_error.c”、“nrf_assert.c”、“app_util_platform.c”、“app_error_handler_keil.c”、“app_error_weak.c”和“nrf_strerror.c” 添加到工程的“nRF_Libraries”组即可
3、配置工程
One ELF Secion per Function 的机制是将每一个函数作为一个优化的单元,而并非整个
文件作为参与优化的单元。 该机制具有的这种优化功能特别重要,尤其是在对于生成的二进
制文件大小有严格要求的场合。
One ELF Section per Function 对于一个大工程的优化效果尤其突出, 对于小工程优化效
果不是很明显。想象一下这样的一个应用场合:在 nRF52840 程序开发过程中,我们会使用
SDK 中的组件库“components”,我们加入组件库中的一个文件到工程并不表示我们会使用
这个文件中所有的函数,这样,最后生成的二进制文件中就有可能包含众多的冗余函数,造
成了存储空间的浪费, 通过使用 One ELF Section per Function, 即可在最后生成的二进制文
件中将冗余函数排除掉,从而节省存储空间。
五、下载
有 3 种: MDK 直接下载、 J-Flash 下载和使用 nRFgo Studio 下载。
注意:如果用到协议栈,应用程序和协议栈是分开下载的,先下载协议栈的hex文件,再下载应用程序。协议栈是下载到0地址,下载完后会保护起来,所以重新下载时要全片擦除
例如:
1、打开工程
2、切换到下载协议栈的工程
3、下载协议栈
4、下载应用程序
5、协议栈
特别注意: 协议栈是预编译的,是以“HEX”文件格式提供的,无需编译工程,只需执行下载就可以了
九、寄存器类型和外设资源共享
-
nRF51 和 nRF52 的寄存器和一般的单片机有所差别, nRF51 和 nRF52 的寄存器分为下面的四种类型:
1、任务寄存器 Task
2、事件寄存器 Event
3、快捷方式寄存器
4、通用寄存器