完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
` 本帖最后由 gjianw217 于 2015-11-30 16:36 编辑 前一篇搭建了Tisan的开发环境,并编译、烧写了tisan的固件,这一节简单分析一下Tisan的软件框架。 一、整体框架 1 打开Tisan默认Demo示例代码,工程文件显示如下图所示的目录结构 2 目录分析 主要包括app/bin/include/ld/lib/tools等6个文件夹,其中(1)bin/include/ld/lib/tools是编译环境需要的,可以不理睬,app是用户需要修改,可以重点研究。 (1)bin,主要为编译时,需要的二进制文件 (2)include,编译时,需要的头文件 (3)ld,编译时需要的链接文件 (4)lib,编译时需要的库文件 (5)tools,编译时需要的工具文件 (6)app,又分为4个文件夹, pando文件夹包含了网络相关的文件,即所谓的Pando物联网开发框架,主要使用了lwip开源TCP/IP协议栈和mqtt通信协议等; peripheral文件夹包含了相关的驱动文件,由于Tisan采用了分层的思想,在该目录下,又分为Tisan板载外设的驱动和针对ESP8266的驱动; user文件夹包含了用户的入口文件user_main.c和网络配置文件wifi_config.c等,以及针对特定应用的objects文件。 util是在编程过程中,用到的一些“便利”工具函数文件 二、app用户框架 1 外设跟踪分析 (1)由上分析可知,把重点聚焦到app目录下,首先从入口函数进行跟踪,打开user目录下的user_main.c文件,在该文件里,有一个user_init()函数,在该函数中,首先进行了串口的初始化,然后设置了按键的回调函数,用来配置网络,接着就是三色灯的初始化函数led_object_init(),鼠标放到该函数上,点击F3键,进入它的定义位置。 (2 )led_object_init函数中,首先进行了led_init初始化,鼠标放到该函数上,点击F3键,进入到它的定义位置,即led_object_init和led_init都位于user/objects目录下的led.c源文件中,完成对三色灯的定义,而在led_init函数的最下面,出现了peri_rgb_light_init,鼠标放到该函数上,点击F3键,进入到它的定义位置 (3 )peri_rgb_light_init函数,定义在periphral目录下的peri_rgb_light.c文件,且该函数调用了pwm_init,鼠标放到该函数上,点击F3键,进入到它的定义位置 (4)pwm_initt函数,定义在periphral/driver目录下的pwm.c文件,即针对ESP8266,实现其pwm的控制 以上跟踪分析过程,如下图所示 2 网络跟踪 (1)回到user_init()函数,鼠标停在pando_framework_init下,点击F3键,进入到它的定义位置 (2)pando_framework_init函数,位于pando目录下的在pando_framework.c文件,在该函数中,分别调用了pando_gateway_init()和on_subdevice_channel_recv),完成网关的初始化和接收网络数据的初始化 (3)可以分别跟踪进行,查看相关函数的具体实现 以上跟踪分析过程,如下图所示 三、框架总结 由以上的分析过程,可以大体看出Tisan的Pando物联网开发框架结构,如下图所示,即分为用户层、驱动层、网络层,各层相互独立,便于移植,具有松耦合等特点。 官方给出的Tisan物联网框架的实现结构如下图所示,最上面是用户层,即通过user_main进行软件的入口设计,然后分别为硬件驱动层和Pando框架,且他们间是相互独立的,中间通过object层,将他们相互关联起来,以降低它们间的耦合度,这也是Tisan物联网设计的一大特点。最下面是编译层及硬件层。 同时官方也录制了相关的视频教程 1 百度云盘视频文件 2 优酷视频文件目录 http://i.youku.com/u/UMTIwNTA2MTM2MA==?from=y1.2-1-87.3.2-3 3 本节相关视频 http://v.youku.com/v_show/id_XMTM2MTE5MTQzMg==.html?from=y1.7-1.2 关注微信公众号【口袋物联】,微信号为koudaiwulian,分享更多物联网知识。 ` |
|
相关推荐
5个回答
|
|
楼主 牛B
|
|
|
|
楼主快点更新,正等着学习呢。
|
|
|
|
我的板子还没到了,先学习一下代码..........
|
|
|
|
代码分析透彻,这个板子上手快
|
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 16:21 , Processed in 0.767259 second(s), Total 86, Slave 66 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号