基于MDK的TencentOS-Tiny软件包设计介绍

154 阅读3分钟

本文已参与「新人创作礼」活动.一起开启掘金创作之路。

本文简单介绍一款软件包的设计路线,具体设计见下一篇文章,也欢迎大家关注腾讯物联网操作系统。

TencentOS tin软件包地址-GitHub

github.com/OpenAtomFou…

软件包ARM官网地址

www.keil.com/dd2/pack/#!…

引言****

腾讯物联网操作系统(TencentOS tiny)是腾讯面向物联网领域开发的实时操作系统,具有低功耗,低资源占用,模块化,可裁剪等特性。TencentOS tiny提供了最精简的 RTOS 内核,内核组件可裁剪可配置,可灵活移植到多种终端 MCU上;基于RTOS内核提供了COAP/MQTT/TLS/DTLS等常用物联网协议栈及组件,方便用户快速接入腾讯云物联网通信IoT Hub;同时,为物联网终端厂家提供一站式软件解决方案,方便各种物联网设备快速接入腾讯云,可支撑智慧城市、智能穿戴、车联网等多种行业应用。

为了减少开发人员移植TencentOS tiny到ARM内核的单片机上的开发时间,研究了ARM 软件包的制作、设计了TencentOS Tiny 软件包的架构,最终基于MDK完成了TencentOS Tiny软件包的封装,并在ARM 内核厂商芯片单片机上的完成了软件包的移植测试过程。从而用户在安装了本软件包后,能够使用MDK pack直接生成适合不同MCU的TencentOS Tiny工程。

1、TencentOS-tiny软件包设计

为了方便用于使用软件包移植TencentOS-Tiny物联网操作系统,软件包按照TencentOS-Tiny的文件格式设计了包括arch、kernel、cmsis_os和example四个分支,其中arch包括Cortex-M核中断、汇编调度、tick相关代码;Kernel包括TencentOS-Tiny的内核和方便用户裁剪功能的tos_config文件;cmsis_os分支提供了系统封装接口层头文件;example分支包括方便用户测试的main文件、中断修改函数和用户的外设头文件。

软件包内容设计如表1所示:

image.png

在完成模块设计后,采用ARM提供的PDSC文件编写规范进行PDSC文件的编写,完成TencentOS-Tiny文件的封装。在完成PDSC文件的编写后,采用PackChk.exe、gen_pack.bat和PACK.xsd制作软件包。其中PackChk.exe用于验证软件包包含的文件是否存在且完整;gen_pack.bat为Windows批处理文件,用于生成软件包;PACK.xsd用来制定XML规范,以验证我们编写的PDSC文件。另外,还需要使用7-Zip File Manager软件,对文件进行压缩,从而制作集成的软件包。

生成的软件包如下所示:

image.png

2、软件包功能

通知软件包的制作,主要具有以下几大功能:

(1)适配ARM Cortex-M0+、M0、M3、M4、M7、M23、M33等多种内核,提供相应内核的arch文件,也就是说会自动识别keil工程使用的内核,提供对应的文件;

(2)当用户选择组件时,软件包会自动提醒用户还需要选择的组件,用户可以逐个点击安装,也可以使用resolve一键安装。

(3)用户在安装软件包后,点击安装界面的TencentOS Tiny即可跳转到TencentOS-Tiny的GitHub网页。

3、软件包安装

双击软件包,然后进入安装界面;

点击Keil中的Manage Run-Time Environment图标,对需要从软件包中移植的文件进行勾选。

image.png