庆科社区
直播中

gjianw217

10年用户 687经验值
擅长:嵌入式技术 控制/MCU RF/无线
私信 关注

【MiCOKit试用体验】庆科EMW3165基础篇(4)MiCO软件系统分析

本帖最后由 gjianw217 于 2015-10-11 21:21 编辑

        基于EMW3165的MiCO软件系统分析,主要分为以下模块:
一、MiCO系统架构
二、MiC
OKit软件架构
三、MiC
O系统运行流程
四、MiC
O工程文件
五、
MiCO系统代码运行分析
        而所有分析,都是基于以下文档:
(1)MiCO系统移植手册
(2)MiCOKit 固件开发手册V1.0
(3)M iCO工程结构及系统运行流程说明
(4)MiCO工程源码SDK_MiCO_v2.3.0

一、MiCO系统架构
MiCO(Micro-controllerbased Internet Connectivity Operating System是一个面向智能硬件优化设计的、运行在微控制器上的、高度可移植的操作系统和中间件开发平台。MiCO作为独立的系统,拥有开放架构,还包括了底层芯片驱动、无线网络协议、射频控制技术、安全、应用框架等,特别适合运行在能量受限的微控制设备上。此外,MiCO 还包含了网络通信协议栈,安全算法和协议,硬件抽象层,编程工具等开发IoT 必不可少的软件功能包,MiCO系统内核框架结构如下图所示。
11.png

MiCO系统由四大部分组成(由上而下):
1. 应用层(MiCO Applicaiton),编写用户代码。
2.MiCO应用框架层(MiCO Application Framework)包括Bonjour发现服务,系统监控,OTA客户端,配置服务器,HTTP服务器,云服务等。 用户可基于此开发用户应用程序代码。
3.安全连通层(Security Connectivity Layer)包括TCP/IP协议,BLE蓝牙服务,Zigbee服务,无线管理,文件系统(暂无),安全协议栈。
4. 系统基础接口(OSAL)和硬件抽象层(HAL)包括RTOS实时操作系统,外部设备驱动,MCU外设配置API,安全协议栈。硬件抽象层抽象了不同硬件平台使用的API接口。
5. 硬件层:MCU内核相关,如ARM,MIPS。
二、MiCOKit软件架构
MiCOKit开发套件使用MiCO物联网操作系统。提供根据IoT应用特点抽象的应用程序框架,用户可以像传统51单片机那样非常方便地进行智能硬件产品开发。
MiCOKit套件提供现成的云连接——无需套接字编程、不需要开发任何网络代码或学习云连接服务!配合FogCloud云端服务和“MiCO总动员”手机APP,可以在手机上实时显示开发板上传感器的数据(如:温湿度,大气压等),也可以控制开发板上的资源(如:控制RGB LED的色彩和亮度,电机等),实现手机和MiCOKit开发套件的互动。软件的架构如图所示。
12.jpg

    下图为MiCOKit软件架构的启动流程示例 13.png

三、MiCO系统运行流程

MiCO分为Bootloader,应用程序,和RF驱动三块。其中:
Bootloader初始化硬件设备、创建存储器空间的映射,通过串口UART烧写其它固件以及执行重要的入口函数main( )。(每个MCU平台都有属于自己的Bootloader
应用程序MiCO应用程序代码,系统软件功能实现, 实现入口函数application_start( )的功能。
RF驱动:运行在RF射频芯片内,存储在MCU片内flash或者片外SPIflash中,是一个已经build好的bin
MiCO系统上电后的运行程序代码可分为以上3两部分,它们被写入不同的Flash分区中,分3次写入(如果没有无线通信,则没有RF部分,此时分2步)。以工程COM.MXCHIP.SPP为例,MiCO系统上电后的应用程序运行流程如下图
14.png
151.png
152.png
四、MiCO工程文件

MiCO工程包含文件如下图内容:
16.png
其中:
17.png
五、系统代码运行分析

1 打开SDK_MiCO_v2.3.0ProjectsSTM32F4xx下的demo工程文件,选择MiCOkit-3165下的bootloader
18.png
2 编译工程后,打开startup_stm32f4xx_bootloader_RVMDK.s
文件,定位到__main函数名处,点击右键,打开main的定义处
1.png
3 在main中,判断stdio_break_in()是否为1,即根据硬件的启动模式,是否boot,如果不为1,则根据分区地址,进入应用程序。
2.png
4 切换到应用程序工程(helloworld)
3.png
5定位到application_start,即用户功能代码区
4.png


欢迎大家关注本人的微信公众号【口袋物联】,微信号为koudaiwulian。分享物联网的行业资讯,软硬开发等。

更多回帖

发帖
×
20
完善资料,
赚取积分