FireBLE

FireBLE 是一个面向于打造智能生活的开源平台,以BLE(Bluetooth Low Energy)技术为核心,拥有超低的功耗、不俗的处理能力和广泛的应用场合,专注于更智能、高效率的工作模式,让生活在科技中更安全、方便、快捷。也许您一个不经意的想法与FireBLE擦出的火花,会在这片原野上燎出火焰,甚至燃烧整个世界。

环境搭建

更新时间:2017-08-08 阅读:5746

前言

本章主要介绍了如何搭建 FireBLE 平台的开发环境,其中包括昆天科原厂SDK-QBlue1.3.7介绍、基于 MDK4.60 的 IDE 环境搭建以及 SWD 的仿真使用。

准备工作

  1. 官网下载页面上下载并安装 Quintic SDK 最新版 QBlue1.3.7 。
  2. 下载并安装msysgit、tortoisegit两个工具(具体方法小编由于也是与大家共同进步的,所以不详细介绍,还是度娘找到的高手们的教程比较实在,胡乱推荐一篇 http://book.51cto.com/art/201107/278835.htm )。
  3. 获取并安装 MDK4.60 。
  4. 安装 JLink 仿真器驱动,配置工程。

Quintic SDK介绍

Quintic最新的SDK为QBlue1.3.5,SDK中包含了很多很多的开发工具、文档和例程。
QBlue1 3 5.png

  • Tools:
  1. QTool 配合Qdongle在PC上做BLE的开发的调试工具。
  2. QnISPStudio QN902x系列的串口烧写工具
  3. QnNVDSConfigurator QN902x系列的NVDS(Non Volatile Data Storage)烧写工具。
  4. QnDriverTools QN902x系列的复用引脚配置工具
  5. QnDevDBforDevelop 开发环境的MCU DB库建立工具
  • Document:
  1. Hardware Doc 硬件相关文档
  2. Software Doc 软件开发相关文档和教程
  • Project:
  1. BLE Example 蓝牙项目例程
  2. Driver Example 裸驱例程

开发环境搭建

原厂源代码中提供了IAR和keil两种开发环境可以供用户选择。

keil安装与使用

两种IDE都是单片机开发环境中最热门的,各有千秋,实在难分其伯仲,于是我随机挑了一个keil作为开发环境,一用就是用到现在。所以我只介绍keil环境的搭建,不过环境搭建都大同小异,不能搭建环境都要究其根底,浪费时间精力。

安装keil的步骤省略,注意事项就一个,如果需要在线仿真,最后弹窗出现一个ULink的驱动安装界面一定要勾选并且安装。
Keil ULink.png

我安装的是最新的keil5.0,呈上效果图,卖弄卖弄(带自动补全哦)。
Keil5 0.png

MCU DB库安装

安装完成之后,还有一些事情要做,那就是安装QN9021的MCU DB库,这个DB库在QBlue1.3.5中工具可以自动安装。 QnEnvDevelop.png

keil的使用

我们先假设把源代码通过git clone或者是官网下载后解压到了xxx目录,于是xxx目录下面将会出现一个名为FireBLE的文件夹。FireBLE文件夹下面有Demo_BLE、Demo_driver和Demo_project三个子文件夹。每一个文件夹下面都包含有若干个以prj_xxx命名的文件夹(或者直接以驱动命名的文件夹)以及一个以src命名的文件夹。

请尽量保护好src中的内容,以为src文件夹中的代码是当前文件夹下所有工程的公用代码,对其中任何的改动会影响到其他工程的正常运行。

假如我们希望开始proxr工程:

  1. 在keil的Project菜单中选择Open Project...
  2. 弹出文件选择框中,打开xxx/FireBLE/Demo_BLE/prj_proxr/keil/proxr.uvproj工程文件
  3. 配置工程(一般使用缺省配置,有特殊要求才会改动)、编译连接、串口烧录或者仿真调试。

介绍几个keil的使用技巧,更方便的使用keil做开发

  • 建立自己的工程
  1. 选择一个例程作为开发的模板,把干净工程文件(未编译连接)拷贝到自己工程目录下(包括prj_xxx和src),并且更改工程文件名。
  2. 打开工程后发现工程名依旧未改变,这时候需要在菜单Project-->Manage-->Components,Environment,Books...选项中修改。选项可以修改工程名、增加group、重命名group、管理group中的文件组成等等。
  3. 在菜单Project-->Options for Target "xxx"中Output选项卡修改输出文件名,User选项卡中修改After Build/Rebuild中的命令1的参数fromelf --bin --output ./bin/xxx.bin ./obj/xxx.axf.
  • 开启自动补全功能
打开菜单Edit-->Configure,在Text Completion选项卡中勾选如图所示:

FireBLE auto completion.png

  • 快速注释与反注释
打开菜单Edit-->Configure,在Shortcut keys选项卡中Select a Command选择框中选择Edit:Advanced:Comment Selection,点击右侧的Creat Shortcut按钮创建快捷键,在弹窗中输入要配置的快捷键,本人使用Ctrl+/作为注释的快捷键。同样对Edit:Advanced:Uncomment Selection设置快捷键为Ctrl+Alt+/作为反注释。其他功能类同。
  • 缩进
选中一段代码(一行也可以,但是必须选择一整行,快速单击该行三次选中,此时代码行应该整行都是选中状态),然后按Tab键缩进,按Shift+Tab键反缩进。

JLink仿真器的选择和配置

缺省的工程配置一般都是可以直接使用仿真器仿真的,但是如果没有安装Quintic QN9020的DB库的话,可能会导致设置混乱。另外,通常如果开始新的项目,一般会选取例程中最接近的一个例程作为工程的基本模板,在其基础上修改工程的信息,从而变成一个新的工程,所以我们有必要了解一些keil工程配置中常用的一些选项。

keil工程常规设置

打开keil工程,依次进入菜单project-->options for target “xxx”或者ALT+F7,进入工程的设置界面。
Options for target.png

请确认工程配置如下

配置MCU的DB库
KEIL MCU DB.png

配置工程的编译输出文件
KEIL OUTPUT.png

配置一些用户自定义的命令
KEIL USer.png

配置用户需要包含的头文件目录
KEIL C.png

配置DEBUG选项
KEIL DEBUG.png

keil+Jlink在线仿真设置

注意:开发板固件和核心板固件默认不开启SWD,如果需要开启SWD仿真,需要在相应例程usr_config.h文件中取消对CFG_SWD宏定义的注释。

参考Fireblue的帖子 http://developer.t-firefly.com/thread-1304-1-2.html


由于在CPU睡眠的时候仿真器无法识别开发板,所以在开发板处于工作的状态下才能发现设备。我们示例程序在开机后是直接进入睡眠模式的,所以需要把五向按键向上推来启动开发板发送广播,唤醒开发板的睡眠状态,然后才能进行实时仿真以及下载固件。需要注意的是,加入OTA功能后由于有额外的东西要烧录,所以只能用ISP串口烧录工具烧录。

单击JLink仿真器选项后面的setting按钮进入仿真器设置界面
KEIL DEBUG debug.png

仿真之前要确认Flash地址设置,否则可能出现程序下载失败
KEIL DEBUG flash.png

选择QN9020对应的flash
KEIL DEBUG flash2.png

不勾选此项
KEIL DEBUG trace.png

到此为止,就可以使用keil结合仿真器对程序单步调试和追踪了。