开源可编程手环学习第八步--SDK教程
术语和定义
SDK 软件开发工具包(SoftwareDevelopment Kit)
GPIO 通用输入输出(GeneralPurpose Input/Output)
INT 中断(Interrupt)
ADC 模数转换(Analogto Digital Converter)
I2C 集成电路通信总线(Inter-IntegratedCircuit bus)
SPI 串行外设接口(SerialPeripheral Interface)
UART 通用异步收发器(UniversalAsynchronous Receiver/Transmitter)
Makefile 定义了一些编译规则的文件
BLE 低功耗蓝牙4.0(Bluetooth Low Energy)
RW DA14580蓝牙协议栈依托的系统(RivieraWaves)
开发板系列教程:http://pan.baidu.com/s/1bnBJsMr
手环DIY开源学习教程:http://pan.baidu.com/s/1eQlUGiI
阅读软件:http://pan.baidu.com/s/1o6ELGCE
淘宝小店:shop115904315.taobao.com
一、官方SDK下载
进入官方社区(support.dialog-semiconductor.com/forum),在右边点击Create new account进行注册,如下图所示:
按要求填写内容即可,邮箱比较重要,因为会通过邮箱激活,有可能时间比较长。
如果注册成功,使用账户登录后,就可以看到“Software”选项,点击进入,如下图所示:
进入新的页面,点击Software development kit download选项,然后看到SDK等相关文件,点击下载即可,如下图所示:
二、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
该目录下包含测试、烧录工具的源码等,如下图所示:
三、官方SDK裸机例程结构讲解
我们先了解一下官方SDK裸机例程的结构,打开裸机例程DA14580_peripheral_setup.uvproj,该文件位于目录:..\WT开发板\DBoard_BLE\peripheral_examples。打开Keil工程后会有4个文件夹,分别是Startup Files、Source Files、Include Files、Misc。下面来一一介绍这个四个文件夹以及对应文件夹下的文件。
3.1 Startup Files文件夹
该文件夹下有两个文件startup_CMSDK_CM0.s与system_CMSDK.c。
3.1.1 startup_CMSDK_CM0.s文件该文件是DA14580启动时最先调用的文件,对DA的中断、内存等进行初始化,是用汇编编写的文件,一般不需要更改。
3.1.2 system_CMSDK.c文件该文件是DA进行关于Contex_M0时钟初始化的C文件,无需更改。
3.2 Source Files文件夹该文件夹包含所有的C源码文件。
3.2.1 peripherals.c文件外围配置文件,主要是基本的时钟、看门狗、外围电源、GPIO口以及串口的配置。
3.2.2 i2c_eeprom.c文件I2c模块相关源文件,封装了许多I2C的相关方法,比如初始化配置函数、读取数据函数、写数据函数等。
3.2.3 spi.c文件SPI模块相关源文件,封装了许多SPI的相关方法,比如初始化配置函数、读取数据函数、写数据函数等。
3.2.4 spi_flash.c文件SPI接口flash的相关文件,该文件中通过调用spi.c文件中封装的方法来实现spi接口的flash读写等操作函数。
3.2.5 adc.c文件ADC模块相关的源文件,封装了ADC的相关方法,有初始化配置函数、通道选择函数以及获取转换结果的函数方法。
3.2.6 eeprom_test.c文件I2C模块的应用文件,该文件中通过调用i2c_eeprom.c文件中封装的方法来实现I2C接口的eeprom读写等操作。
3.2.7 gpio.c文件GPIO口相关的源文件,封装了对GPIO口的初始化、功能配置、输入、输出等功能,也定义了GPIO的中断函数以及中断配置。
3.2.8 spi_test.c文件SPI模块的应用文件,通过调用spi_flash.c文件中的方法来进行测试。
3.2.9 uart.c文件UART模块相关源文件,封装了许多UART的相关方法,比如初始化配置函数、接收数据函数、发送数据函数等。
3.2.10 battery.c文件电池电量测试函数,通过调用adc.c文件中方法,对电池引脚进行模数转换。
3.2.11 DA14580_examples.c文件主函数文件,通过调用其它文件实现的方法来实现某些功能。
3.2.12quad_decoder_test.c文件正交解码器测试文件。
3.2.13 wkupct_quadec.c文件唤醒及正交解码相关源文件,封装了唤醒芯片以及正交解码的初始化等一系列函数。
3.2.14 pwm_test.c文件定时器Timer0与Timer2测试文件。
3.2.15 pwm.c文件定时器相关源文件,封装了定时器,PWM操作的一些基本函数。
3.2.16per_ex_hard_fault.c文件硬件错误中断函数。
3.2.17 sw_cursor.c文件软件游标功能,用于pwm_test.c文件中。
3.3 Include Files文件夹与Source Files文件夹下源文件对应的头文件,主要是相关宏定义、变量、方法的声明。
3.4 Misc文件夹里面是文本文件,起说明作用,主要说明例程执行时的一些现象。
开发板系列教程:http://pan.baidu.com/s/1bnBJsMr
手环DIY开源学习教程:http://pan.baidu.com/s/1eQlUGiI
阅读软件:http://pan.baidu.com/s/1o6ELGCE
淘宝小店:shop115904315.taobao.com