- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
开源可编程手环学习第十一步--官方SDK教程
一、官方SDK下载
进入官方社区(support.dialog-semiconductor.com/forum),在右边点击Create new account进行注册,如下图所示:
按要求填写内容即可,邮箱重要,因为会通过邮箱激活,有可能时间比较长。
如果注册成功,使用账户登录后,就可以看到“Software”选项,点击进入,如下图所示:
进入新的页面,点击Software development kit download选项,然后看到SDK等相关文件,点击下载即可,如下图所示:
开发板系列教程:http://pan.baidu.com/s/1bnBJsMr
手环DIY开源学习教程:http://pan.baidu.com/s/1eQlUGiI
阅读软件:http://pan.baidu.com/s/1o6ELGCE
二、SDK结构讲解
2.1 根目录
根目录下包含5个文件夹,分别为:binaries、dk_apps、host_apps、peripheral_examples、tools。如下图所示:
2.2 binaries
该目录下主要是DA14580的产品测试固件,以及上位机软件。如下图所示:
2.3 dk_apps该目录比较重要,相关的源代码都放在该目录下,如下图所示:
下面对经常使用的目录keil_projects、misc、src进行详细的介绍。
2.3.1 keil_projects该目录包含协议栈例程代码文件,如下图所示:
2.3.2 misc
该目录中包含一些txt配置文件,如下图所示:
2.3.3 src该目录下存放了协议栈及外围模块相关的源代码,如下图所示:
2.4 host_apps
该目录中包含上位机源码,如下图所示:
2.5 peripheral_examples该目录中包含DA14580的裸机外围模块测试程序,如下图所示:
2.6 tools
该目录下包含测试、烧录的一些工具的源码等,如下图所示:
三、官方BLE例程结构讲解
我们先了解一下官方BLE例程的结构,打开BLE例程fh_project_template.uvproj,该文件位于目录DA1458x_SDK_3.0.6\dk_apps\keil_projects\template\template_fh下。打开Keil工程后会有9个文件分组,分别是boot、arch、driver、ke、host、nvds、rwble、profiles、app。下面来一一介绍这个9个文件分组以及对应分组下的文件。
3.1 boot分组该分组下有3个文件system_ARMCMO.c、boot_vector.s与hardfault_handler.c。
3.1.1 system_ARMCMO.c文件该文件是DA进行关于Contex_M0时钟与系统初始化的C文件,无需更改。
3.1.2 boot_vector.s文件该文件是DA14580启动时最先调用的文件,对DA的中断、内存等进行初始化,是用汇编编写的文件,一般不需要更改。
3.1.3 hardfault_handler.c文件硬件错误处理文件,当发生硬件错误时会产生硬件中断。
3.2 arch分组该文件夹包含硬件体系结构相关源码文件,主函数文件也在其中。
3.2.1 arch_main.c文件主函数文件。
3.2.2 jump_table.c文件定义了常用的sysRAM/ROM代码结构。
3.2.3 arch_sleep.c文件芯片休眠相关文件,里面定义了休眠相关的应用程序接口。
3.2.4 nmi_handler.c文件不可屏蔽中断文件,定义了不可屏蔽中断函数,主要是看门狗复位会进入该中断函数。
3.2.5 periph_setup.c文件外围电路初始化文件,对外围模块进行初始化以及分配GPIO引脚。
3.2.6 arch_system.c文件系统相关配置文件。
3.3 driver分组3.3.1 rf_580.c文件关于DA14580无线模块的相关配置。
3.3.2 gpio.c文件GPIO口相关的源文件,封装了对GPIO口的初始化、功能配置、输入、输出等功能,也定义了GPIO的中断函数以及中断配置。
3.3.3 uart2.c文件UART模块相关源文件,封装了许多UART的相关方法,比如初始化配置函数、接收数据函数、发送数据函数等。
3.4 ke分组里面包含了协议栈库文件,是.obj库文件,提供了API(.h头文件),不能看到源代码。
3.5 host分组里面包含了通用接口配置层的库文件。
3.6 nvds分组里面包含了协议栈相关的常量数据信息。
3.7 rwble分组3.7.1 rwble.c文件RW系统与BLE之间的配置文件,主要是BLE内核中断服务进程。
3.7.2 rwip.c文件定义了BLE休眠函数。
3.8 profiles分组协议栈用到的服务配置文件。
3.9 app分组应用层及用户定义的文件。
3.9.1 app.cBLE应用程序框架。
3.9.2 app_sec.c应用安全接口程序。
3.9.3 app_sec_task.c应用安全方法实现。
3.9.4 app_task.cBLE应用程序方法实现。
3.9.5 app_template_proj.c应用程序特定函数,包括创建profile的数据库,广播/扫描,MTU处理方法,再次连接处理方法等。
开发板系列教程:http://pan.baidu.com/s/1bnBJsMr
手环DIY开源学习教程:http://pan.baidu.com/s/1eQlUGiI
阅读软件:http://pan.baidu.com/s/1o6ELGCE
感谢分享
上一篇:开源可编程手环学习第十二步--手环BLE实战教程1--与手机APP通信实验
下一篇:ESP8266与STM32通讯接收不到数据