基于MDK开发的TencentOS-Tiny软件包,快速移植物联网操作系统到Keil中!

TencentOS tiny是腾讯面向物联网领域开发的实时操作系统,具有低功耗,低资源占用,模块化,可裁剪等特性,可灵活移植到多种终端 MCU 上,但不同公司的单片机内核不同,用户在移植TencentOS tiny时,需要选择不同的移植文件,因此为减少开发人员移植时间,提高不同ARM内核下的移植效率,基于MDK完成第三方TencentOS Tiny 软件包的封装,能够使用MDK pack直接生成适合不同MCU的TencentOS Tiny工程。
摘要由CSDN通过智能技术生成

在这里插入图片描述

基于MDK开发的TencentOS-Tiny Software Pack

2021腾讯犀牛鸟开源人才培养计划
2021/9/24
项目导师:TencentOS tiny核心架构师 汪礼超
项目学员:东南大学 崔林威
Email:1797878653@qq.com
TencentOS tiny物联网操作系统软件包-GitHub
软件包测试程序地址(Gitee)
MDK5 Software Packs软件包地址(已上传到ARM官网)

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

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

目录
1、ARM软件包介绍
1.1 软件包简介
1.2 软件包开发
1.2.1 软件包开发过程
1.2.2 PDSC文件的编写
1.2.3 生成软件包
2、TencentOS-tiny软件包
2.1 软件包内容
2.2 软件包安装
3、软件包测试
3.1 ARM内核移植TencentOS tiny软件包
3.2 STM32不依赖裸机工程移植
3.3 单片机裸机工程移植
4、总结
5、开发参考
6、附录-移植配置参考
6.1 MDK5.14版本移植到ARM内核
6.1.1 Cortex-M0内核移植
6.1.2 Cortex-M0+内核移植
6.1.3 Cortex-M3内核移植
6.1.4 Cortex-M4内核移植
6.1.5 Cortex-M7内核移植
6.2 MDK5.14版本移植到基于ARM内核的芯片
6.2.1 移植到stm32f103c8芯片
6.2.2 移植到stm32f767igt芯片
6.3 MDK5.30和MDK5.35版本移植(Cortex-M0+、0、3、4、7内核和芯片)
6.4 MDK5.30和MDK5.35版本移植(Cortex-M23、33)
6.4.1 Cortex-M23内核移植
6.4.2 Cortex-M33内核移植

1、ARM软件包介绍

1.1 软件包简介

在进行嵌入式软件开发时,ARM为我们提供了软件包功能,能够将软件算法等模块进行集成封装,从而方便第三方用户使用。ARM软件包能够为微控制器设备和开发板提供支持,包含软件组件(Software Component)如驱动程序和中间件,还可以包含示例项目和代码模板等,主要有以下类型的软件包:

(1) 器件系列包(Device Family Pack):由硅供应商或工具供应商生成,为特定的目标微控制器创建软件应用提供支持;
(2) 板级支持包(Board Support Pack):由电路板供应商发布,为安装在电路板上的外围硬件提供软件支持;
(3) CMSIS软件包:由ARM提供,包括对CMSIS核心、DSP和RTOS的支持;
(4) 中间件包(MiddlewarePack):由芯片供应商、工具供应商或第三方创建;通过提供对常用软件组件(如软件堆栈、特殊硬件库等)的软件集成,从而减少开发时间;
(5) 内部组件(In-house components):由工具用户开发,用于内部或外部分发。

软件组件包括以下几部分:

(1) 源代码、库、头文件/配置文件和文档;
(2) 完整的示例项目,展示了软件组件的使用,可以下载并在评估硬件上执行;
(3) 代码模板,方便使用软件组件。

一个完整的软件包是一个ZIP文件,包含所有需要的软件库和文件,以及一个包含软件包所有信息的包描述文件(PDSC文件),软件包的结构是在CMSIS中定义的(http://www.keil.com/CMSIS/Pack)。

1.2 软件包开发

1.2.1 软件包开发过程

软件包的开发过程相当于完成了一项产品的制作,因此引入产品生命周期管理(PLM)的概念,PLM包括以下四个阶段:

(1)概念的产生,基于软件包需求进行产品定义,并创建第一个功能原型;
(2)设计,根据技术特征和要求,进行原型测试和产品的实施,通过广泛的测试验证产品的功能与规格;
(3)发布,产品被制造出来并推向市场;
(4)服务,对产品的维护,包括对客户的支持,最后不断优化,结束产品的周期。

在制作软件包时,主要面临以下几个过程:
在这里插入图片描述
图1.1 软件包开发流程

首先,根据特定组件生成软件包即根据需求将相应的头文件、库文件等软件组件利用PDSC文件进行组织,在组织完成后即可利用软件包生成工具生成对应版本的软件包,然后对新生成的软件包进行测试,给出示例测试程序,再将其包含如PDSC文件中,最后经测试完成后生成最终的软件包。

1.2.2 PDSC文件的编写

PDSC文件时基于可扩展标记语言(XML)进行编写的,能够将软件包包含的各个模块按照特定的格式组织起来,接下来按照PDSC文件的结构对文件的编写进行详细介绍:


首先是PDSC文件的开头,前两句是声明为XML格式,它是在MDK中的PACK.xsd文件定义的,所以不用修改;<name><vendor>标签定义了软件包的基本内容,也用于PACK文件的文件名,故该PDSC文件应命名为Tencent.TencentOS-tiny.pdsc;<description>标签描述了软件包的信息,它将显示在包安装程序中;<url>标签可以包含一个带有软件包下载链接的网址,方便用户下载;<license>标签包含了用户使用该软件包时需要遵守的协议,<supportContact>标签表示软件包的支持人员联系方式,可以提供一个电子邮件地址或网页URL。如图1.2为下列代码对应的软件包界面。

<?xml version="1.0" encoding="utf-8"?> 
<package schemaVersion="1.0" xmlns:xs=http://www.w3.org/2001/XMLSchema-instance xs:noNamespaceSchemaLocation="PACK.xsd"> 
<name>Tencent</name> 
<description>Description of your pack</description> 
<vendor>TencentOS-tiny</vendor> 
<url>https://github.com/OpenAtomFoundation/TencentOS-tiny</url>
<license>LICENSE.txt</license>
<supportContact>1797878653@qq.com</supportContact>

在这里插入图片描述
图1.2 程序对应的软件包


接下来是PDSC文件的各个模块,<releases>标签定义了软件包的版本,开发者可以在版本更新时在此进行标注,从而在生成软件包时,系统会自动生成最新版本的软件包;

<releases>
	<release version="1.0.1"> 
		Sep/3/2021, version name
	</release>
	<release version="1.0.0">
	Sep/1/2021, version name
	</release> 
</releases>

<taxonomy>标签用于定义每个组件的description,如图1.3所示,通过下列代码中的Cclass、Cgroup和Csub来确定description所在的位置,doc用于指定description文件(也可以不加),然后添加description的名字。

<taxonomy>
	<description Cclass="TencentOS tiny" Cgroup="xx" Csub="xx" doc="examples/index.html"
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

淮杨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值