FireBlue QN9020 QN9021 QN902x Proximity Reportor profile(防丢器) 之源码分析 (一) 开篇
来源:互联网 发布:微信授权回调域名备案 编辑:程序博客网 时间:2024/05/16 01:08
前些日子,小弟不才,搞了套bluetooth 4.0 的开发板,名曰 FireBlue ,上面使用的IC 为昆天科的QN9021,想起昆天科,其出品的FM QN80 系列的也算是在小弟生命中流行一时,当年为了调试好它,花上了不少时间。而现在想起来,只记得QN80系列,连具体的型号也早忘光光了,可遗憾了,如果但是能花点小时间整理整理,现在估计捉摸着还能给自己以及后来者留下点什么。
所以了,现如今,有时间学习点啥子什么的,大家就应该记录下来,最近蓝牙4.0 也非常火,多一技防身也无谓,学习这个也算是紧跟时代步伐。
前些日子看了QN902x 的SDK 发现了不少东西 看似虽简单,但要全部精通的运用起来,还真不易, QN的bluetooth 4.0 在网上的开发资料基本木有,度娘一下也就估计能出来的也就是被NXP 收购这些内容,其他与这个IC 相关的资料,教程,甚至其他朋友的分享也是少之甚少。想找点啥相关性的,难。小弟我呢,实在不想后来者享受我这种学习中煎熬烦躁的心情,自觉地写下我的学习过程,分析流程,给以后的自己以及后来者留下痕迹。提前告诉读者,小弟觉得自己文字表达能力总是缺乏点啥,你们要是发现了,欢迎吐槽。
之所以选定防丢器这个案子来分析,是 因为它是一个完整的项目(包括了上下位机),如果能完整地分析下来,应该也能对QN 提供的SDK能有一个较为完整的理解。以后应用起这个IC来也会顺了不少。
不说了,再说另外的一汤勺眼泪又来了。
开篇先介绍 怎么获取代码,包括项目结构之类的。
1 .获取代码可能通过FireBlue 官方提供的Git clone 一份下来,git 命令为:git clone https://TeeFirefly@bitbucket.org/T-Firefly/FireBLE.git 这里就顺便提供一个wiki 地址 http://wiki.t-firefly.com/index.php/FireBLE
2.小弟我对Git 这个工具较为不熟,虽然他也是非常火的一个工具,也是一个程序员必备的工具,由于时间关系,也还还没得及去研究。所以我是直接通过 bitbucket站点下载整个源码包 地址为:https://bitbucket.org/T-Firefly/fireble/downloads
3.源码包目录结构如下图:
4.小弟用的开发环境是MDK,所以打开..\FireBLE\Demo_BLE\prj_proxr\keil\proxr.uvproj 参试编译并无警告或者错误。整个项目结构如下:
5.startup.s 是启动代码,这个启动代码和以前接触的M0,M3,M4 的启动代码差异不大,如果要深究,还得看ARM 的技术架构等资料。
6.main 下的app_main.c 为常见项目下包含的main 函数,main 函数,会启动初始化话各模块,最后进入while 循环内调度。
7.usr 下包含的是用户一般改动的内容,
8.app 下 包含的是整个app 的逻辑,其中涉及gap,gatt,smp 以及profile ,而这里的proxr 就是防丢器的profile。
9.proflies 下包含的是profile 常用的一些函数集合,一个profile 的逻辑。
10.drivers 为QN902x 各模块的驱动。
11.lib 下的是QN实现bluetooth 协议栈,由于各厂商的竞争关系也是核心,这里是一个库,并不开源。
12.qnevb 下包含的是对FireBlue 这个板子的 BSP 板级支持代码
13.retarget 下的是对MDK 编译器库的重定向,这里主要重定向 的是printf 。以及scanf。
0 0
- FireBlue QN9020 QN9021 QN902x Proximity Reportor profile(防丢器) 之源码分析 (一) 开篇
- FireBlue QN9020 QN9021 QN902x Proximity Reportor profile(防丢器) 之源码分析 (二)疑惑与解惑
- FireBlue QN9020 QN9021 QN902x Proximity Reportor profile(防丢器) 之源码分析 (三)广播
- FireBlue QN9020 QN9021 QN902x Proximity Reportor profile(防丢器) 之源码分析 (四)连接
- FireBlue QN9020 QN9021 QN902x 例程 按键 多次触发
- nginx源码分析之开篇
- nginx源码分析之开篇
- Hadoop源码分析之开篇
- WhatWeb源码分析之开篇
- NHibernate源码分析系列之开篇
- NXP 蓝牙QN902X 协议profile的理解
- g729源码分析-开篇
- Libevent源码分析-----开篇
- g729源码分析-开篇
- Libevent源码分析-----开篇
- Libevent源码分析-----开篇
- Libevent源码分析-----开篇
- Libevent源码分析-----开篇
- Toggle Buttons
- Spring MVC 中的基于注解的 Controller
- 连续子数组的最大和
- sd卡格式化后数据自动恢复需要具备什么软件
- 【我们都爱Paul Hegarty】斯坦福IOS8公开课个人笔记1 IOS8概述
- FireBlue QN9020 QN9021 QN902x Proximity Reportor profile(防丢器) 之源码分析 (一) 开篇
- 连连看游戏设计
- 网上看到一个正方形和圆的渐变动态图片,发现再深度延伸一下,同样好看
- angularjs学习笔记之三(变量及过滤器Filter的使用)
- 迪祥丝网制品有限公司简介
- Linux使用du和df命令结果不一致
- YAHOO.widget.DataTable 动态分页。
- android shape的使用
- NOJ 网络赛 C题 特技的幂