399|0

267

帖子

1

资源

一粒金砂(高级)

【GD32E503评测】+移植TencentOS-tiny [复制链接]

本帖最后由 我爱下载 于 2021-1-10 22:28 编辑

TencentOS-tiny系统移植

系统简介

TencentOS-tiny是腾讯针对IoT设备推出的一款操作系统。主要由一个轻量级RTOS内核+多个物联网组件构成,,从下到上主要包括:

CPU TencentOS tiny支持的CPU IP核架构,当前主要支持ARM Cortex M0/3/4/7/M23/M33等,还有现在很火的RISC-V,当然,腾讯物联网团队肯定也会支持更多种类更多IP核与开发板。

驱动管理层 :包括BSP板级支持包,这些东西主要由MCU芯片厂家开发与维护,、HAL硬件抽象、Drivers设备驱动,这部分对于纯粹嵌入式开发者来说还是很重要的,肯定会越来越完善的!

内核 TencentOS tiny实时内核包括任务管理、实时调度、时间管理、中断管理、内存管理、异常处理、软件定时器、链表、消息队列、信号量、互斥锁、事件标志等模块,接下来我也将写一系列TencentOS tiny内核源码分析的文章,敬请期待吧!

IoT协议栈 TencentOS tiny提供lwipAT AdapterSAL层,支持不同的网络硬件,如以太网、串口WIFIGPRSNB-IoT4G等通信模块。在TCP/IP网络协议栈上提供常用的物联网协议栈应用层,如COAPMQTT,支撑终端业务快速接入腾讯云;

安全框架 TencentOS tiny为了确保物联网终端数据传输安全以及设备认证安全,提供了比较完整的安全解决方案。安全框架提供的DTLSTLS安全协议加固了COAPMQTT的传输层,可确保物联网终端在对接腾讯云时实现安全认证和数据加密;另外针对低资源的终端硬件,安全框架还提供与腾讯云IoTHub配套的密钥认证方案,确保资源受限设备也能在一定程度上实现设备安全认证;物联网安全是非常重要的,这些框架也是必须存在的。

组件框架 TencentOS tiny提供文件系统、KV存储、自组网、JS引擎、低功耗框架、设备框架、OTA、调试工具链等一系列组件,这部分我觉得还是很不错的,期待ing

开放API (规划开发中)TencentOS tiny将在协议中间件和框架层上提供开放API函数,这样子就能很方便使用中间组件的功能,我是最喜欢这种开发的,不造轮子,能直接使用。简单来说这个API能快速对接腾讯云,实现终端业务上云的需求,最大程度减少终端物联网产品开发周期,节省开发成本;

示例应用 TencentOS tiny提供的示例代码,模块测试代码等,方便用户参考使用。

腾讯云物联网平台(图中最上层的部分):严格来说这部分不算TencentOS tiny的框架内容,这是接入平台层了,腾讯云的物联网平台都是提供多种语言的SDK包,当然在嵌入式设备上肯定使用C SDK的,不过总的来说都是很不错的。

 

4.jpg

 

移植过程-创建工程,添加文件

1.PNG

 

根据上面的介绍,TencentOS tiny是支持M33内核的,而且支持了很多种的嵌入式处理器,对于GD的产品就支持了很多中,但是唯独没有我们这款GD32E503V系列。

2.PNG

arch目录下我们可以找到cortex-m33的目录,说明TencentOS tiny原生支持,我们应该可以轻松的移植到新的处理器上。

 

总结的移植步骤:

        步骤1:建立新的目录,命名为tos,并复制TencentOS-tiny\board\GigaDevice_GD32E230C_START下文件到新的工程,并且命名文件夹为application

      打开工程调整为GD32E503V微控制器。

      步骤2:复制GD公司提供的驱动库Firmware_Librarytos

      步骤3:复制TencentOS-tiny\osal\cmsis_os目录到tos

      步骤4:复制TencentOS-tiny\kernel目录到tos

      步骤5:创建port目录,并复制TencentOS-tiny\arch\arm\arm-v8m目录下的common目录到tos/port下;

      步骤6:复制TencentOS-tiny\arch\arm\arm-v8m\cortex-m33目录下所有文件到tos/port下。

      将如上内容添加到步骤1建立的工程中。

移植过程-修改相应文件

      删除tos\application\BSP下除main.c外的文件,找到一个GD32E503V工程中的gd32e50x_it.c,gd32e50x_it.h,gd32e50x_libopt.h,systick.c,systick.h,uart.c文件到tos\application\BSP的目录下

    1) Gd32e50x_it.c的移植

这个比较简单,添加头文件引用 #include “tos_k.h” , 注释掉pendSV_handler函数,修改 SysTick_Handler为如下形式

void SysTick_Handler(void)
{

  systick_inc();
  if(tos_knl_is_running())
  {
       tos_knl_irq_enter();
       tos_tick_handler();
       tos_knl_irq_leave();
  }   

}



 

   2) Main.c文件修改

初始化调试监视串口,这里可以根据官方例程完成修改。

完成修改后,编译工程,如果有错误适当调整,编译通过后,基本上已经具备调度能力。

下面附上我的移植例子  tos.rar (1.41 MB, 下载次数: 1)


回复
您需要登录后才可以回帖 登录 | 注册

最新文章 更多>>
    关闭
    站长推荐上一条 1/6 下一条

    About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

    站点相关: 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

    北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

    电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2021 EEWORLD.com.cn, Inc. All rights reserved
    快速回复 返回顶部 返回列表