[原创] 【KW41Z设计大赛】 基于MCUXpresso工程 分析一下BLE项目结构

shinykongcn   2017-6-29 00:48 楼主
大赛日程已过一大半, 进度好像扯到脖子了,承蒙 柠檬哥 亲自电话点醒, 觉得再不法帖就该....
好了,废话不多说, 如果你也跟我一样, 打开一个例程, 却不知道从何看起的话, 你并不孤单!

今天我们就来基于 Freertos版 BLE Beacon项目简单的分析一下吧.
MCUXpresso - Develop - frdmkw41z_wireless_examples_bluetooth_beacon_freertossour.jpg
项目导入之后,就是这个样子的啦. ble 上层的代码都放在了source目录下,那么我们应该从何看起了?这里我简单的画了一下结构组成
KW41Z.docx  - WPS 文字_2.jpg

  • cmsis属于arm规定的一些东西,
  • 然后就是驱动层,提供外设驱动,这里我参考nxp官方的文档,把rtos放在了这层,因为它同driver一起为上层服务。
  • 然后再上层是Framework层,这层比较有意思,他对OS和Driver都做了一层封装,而且很有意思,后面详细说明。这里,bsp也为它提供服务。也许应该将bsp放在下面?
  • 接下来就是 BLE协议栈,这部分基本都是通过 静态lib库提供.a文件,并不开源。
  • 最后就是我们需要编写的应用代码了,包括比如数据采集,ble协议相关实现等。




接下来通过代码走向再具体一下:
先从Framework开始吧,因为main函数在这里面哦
MCUXpresso - Develop - frdmkw41z_wireless_examples_bluetooth_beacon_freertosfram.jpg
这一层抽象了很多东西,基于driver封装的一些功能,方便使用。LED提供了开关、闪烁等功能。keyboard用于管理按键。osa抽象封装了os层,前面说了,由于应用代码是基于framework之上的,所以如果你更换新的os,那你应用层的代码可以不需要做什么修改。从main里面的代码可以知道,虽然整个工程使用的freertos系统,但是我们却不直接调用freertos的任务创建方法。
MCUXpresso - Develop - frdmkw41z_wireless_examples_bluetooth_beacon_freertossour.png
main函数做完hardware init之后,就直接去跑任务了,流程是这样的:main ->startup_task->main_task
这里就正式进入应用代码了,也就是项目的主任务,beacon工程的所有功能都在这里面实现。包括用户实现的BLE service & characteristc,这些代码都放在了source目录下,如下图

MCUXpresso - Develop - frdmkw41z_wireless_examples_bluetooth_beacon_freertossour.png
最后再说一下ble stack,相关的有两个部分:lib库和公开接口。

在bluetooth目录下还实现了3个service,都放在profile文件夹下,这个可以说不属于ble stack的内容,而是ble应用层,也许放在source目录下会更合适?




此内容由EEWORLD论坛网友shinykongcn原创,如需转载或用于商业用途需征得作者同意并注明出处

HELLO_WATER

回复评论 (12)

不懂帮顶
作为一个水军,就是尽量的多回帖,因为懂的技术少,所以回帖水分大,见谅! EEWORLD开发板置换群:309018200,——电工们免费装β的天堂,商家勿入!加群暗号:喵
点赞  2017-6-29 01:04
早几天就让你把板子5块出掉,现在被追作业了吧。。。
默认摸鱼,再摸鱼。2022、9、28
点赞  2017-6-29 08:53
提示: 该帖被管理员或版主屏蔽
点赞  2017-6-29 09:46
引用: freebsder 发表于 2017-6-29 08:53
早几天就让你把板子5块出掉,现在被追作业了吧。。。

快屎回来
So TM what......?
点赞  2017-6-29 10:05
引用: freebsder 发表于 2017-6-29 08:53
早几天就让你把板子5块出掉,现在被追作业了吧。。。

逃兵憋竖划
HELLO_WATER
点赞  2017-6-29 10:42
我出10块,你不卖,后悔了吧
我是一头搞电子的猪,猪是一种好色的动物,猪八戒就是代表.       
点赞  2017-6-29 10:47
引用: freebsder 发表于 2017-6-29 08:53
早几天就让你把板子5块出掉,现在被追作业了吧。。。

快屎回来。
我是一头搞电子的猪,猪是一种好色的动物,猪八戒就是代表.       
点赞  2017-6-29 10:51

感谢玉老深夜前来抢沙发
HELLO_WATER
点赞  2017-6-29 10:56

屎拉出去了,再回来就比较难了
HELLO_WATER
点赞  2017-6-29 10:56
引用: long521 发表于 2017-6-29 10:47
我出10块,你不卖,后悔了吧

等等,这玩意涨价起来跟房价一样,不能慌
HELLO_WATER
点赞  2017-6-29 10:57
屎不出来,没有比我更能装的,这是多么无敌多么寂寞,没有榜样的地方就没有情趣。
默认摸鱼,再摸鱼。2022、9、28
点赞  2017-6-29 14:14
我来看热闹,快快告诉我怎么玩BLE我就想两块板自己搞通讯,搞不清白……
点赞  2017-7-2 20:37
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复