华大单片机移植TencentOS

news/2024/10/23 9:39:56/

华大单片机移植TencentOS-Tiny

文章目录

  • 华大单片机移植TencentOS-Tiny
    • 一、参考链接:
    • 二、资料准备
    • 三、开始移植
    • 四、移植完成-测试
    • 五、总结

一、参考链接:

1.Tiny的有关概述我就不说了。直接上官网看就可以了。

2.(1)TencentOs官网

(2)其他参考链接:杰杰博主

(3)API说明和demo

二、资料准备

1.要先移植TencentOS,肯定必须要有Tiny的源码,下载源码有两个方法,(1)通过github直接下载 github链接,(2)通过腾讯的 工蜂链接

2.要在华大单片机上移植,同样也必须要又华大单片机的可用工程模块,博主我使用的是华大HC32L13X系列,其他系列一样。工程模板,相信大家手上都是有的。

3.万事俱备,只欠东风

三、开始移植

1.由于前面有了许多前辈走的坑,以及写下的心血,有些部分仔细操作可以具体看下 上面的 杰杰博主链接。

2.下载下来是下面的样子

在这里插入图片描述

3.由于Tencent与华大有合作吧,反正出了个Hc32L136的demo,这就很舒服了。。不过我还是不喜欢,毕竟没有比这就动手来的实在,也能加深印象。
在这里插入图片描述

4.在我们的工程目录下新建一个TencetOS,然后将arch和kernel copy过来,在建个文件夹将 tos_config.h也拷贝过来。再将文件添加到工程中
在这里插入图片描述

(1)TencentOS\kernel\core路径下的所有.c文件添加到tos/kernel工程分组中.同时将TencentOS\kernel\pm目录下的所有.c文件添加到tos/kernel工程分组中。
在这里插入图片描述

(2)TencentOS\arch\arm\arm-v7m\common路径下的 tos_cpu.c、tos_fault.c添加到tos/arch工程分组下面,也将TencentOS\arch\arm\arm-v7m**cortex-m0+**\armcc路径下的port_s.S、port_c.c文件添加到tos/arch`工程分组下面

(3)再将TencentOS\TOS-CONFIG路径下的tos_config.h文件添加到tos/config`工程分组中。

(4)最后将头文件的路径添加进去即可

…\TencentOS\arch\arm\arm-v7m\common\include …\TencentOS\arch\arm\arm-v7m\cortex-m0+\armcc …\TencentOS\kernel\core\include …\TencentOS\kernel\pm\include …\TencentOS\TOS-CONFIG

(5)把这个勾上
在这里插入图片描述

(6)添加这个头文件
在这里插入图片描述

(7)把 interrupts_hc32l13x.c里面的这个函数改成这样

void SysTick_Handler(void)
{		//系统自带//SysTick_IRQHandler();//TOSif(tos_knl_is_running())   //TOS开始跑了,才能执行正常的调度处理{tos_knl_irq_enter();  //进入中断tos_tick_handler();		//调用UCOS的时钟服务函数tos_knl_irq_leave();	//触发任务切换软中断}
}

通过上面的操作基本将TencentOS成功的移植到我们的工程模块中了。接下就测试下是否可行。。写个简单的demo试下

四、移植完成-测试

对了。。。。。。。
要在main函数添加这个头文件哦!!!
#include "tos_k.h"

#if TASk_TEST  
k_task_t task1;
k_task_t task2;k_stack_t task_stack1[512];
k_stack_t task_stack2[512];void test_task1(void *parameter);
void test_task2(void *parameter);void test_task1(void *parameter)
{while(1){printf("hello world sym 1!!!!\r\n");tos_task_delay(1000);}
}void test_task2(void *parameter)
{while(1){printf("hello world sym 2!!!!\r\n");tos_task_delay(2000);}
}
#endif
	k_err_t err1;k_err_t err2;tos_knl_init();  //初始化内核#if TASk_TESTerr1 = tos_task_create(&task1,"test_task1",test_task1,NULL,2,task_stack1,512,0);if(err1 != K_ERR_NONE){printf("TencentOS Create task fail! code : %d \r\n",err1);}	err2 = tos_task_create(&task2,"test_task2",test_task2,NULL,3,task_stack2,512,0);if(err2 != K_ERR_NONE){printf("TencentOS Create task fail! code : %d \r\n",err2);}#endiftos_knl_start();

实验现象:多说无凭
在这里插入图片描述

五、总结

1.基本上操作系统的移植都相差不大,都是移植内核和部分配置文件即可。

2.不同的芯片厂商不同。可以的库函数配置不一样。所以这才是注意的点。。

3.最后一说,文章有一部分是参考杰杰博主的。再次感谢。文中有何问题欢迎提出!一起改进!加油。支持国产


http://www.ppmy.cn/news/414528.html

相关文章

TencentOS 3.1下安装gitlab服务器

TencentOS 3.1大致跟CentOS 8.2功能兼容,内核升级到5.4.11 公司要求在这个环境下搭建一台gitlab服务器。 找了一大圈发现没有可用的rpm安装包。大量的资源师CentOS 7的。可能是CentOS 8停止维护后的后遗症。 换了个思路,在腾讯云上找资源。果然有结果。 云服务器 搭建 Gi…

手机里tencent文件夹能删吗_手机SD卡Tencent文件夹里面哪些可以删?

展开全部 手机内存卡里tencent是腾讯QQ软件建立、存放数据的文件夹,32313133353236313431303231363533e59b9ee7ad9431333365633835如果用户需要继续使用QQ,不建议随意删除。 QQ浏览器的文件并不在这个文件夹内,所以它的体积一般不会很大。 但…

腾讯物联TencentOS tiny上云初探

2017年中旬曾写过一篇关于物联网平台的文章《微软最完善,百度最“小气” 看微软阿里百度三大物联网云平台对比》。现在已经过去两年了,物联网的格局又发生了不少的变化。不过针对腾讯来说,其物联网平台发轫的时间绝不算晚,基本就是…

手机里tencent文件夹能删吗_手机上的文件夹能不能删?看完之后秒懂

原标题:手机上的文件夹能不能删?看完之后秒懂 不知道你发现没有,在手机上有很多英文文件夹,光看文件名不知道是什么意思,很多都是打开之后才知道里面是放着什么东西。 在手机内存不足的时候,很多人会选择删…

TencentOS tiny RTOS快速入门

上节,我们介绍了TencentOS tiny,参考官方给出的移植教程亲自动手做了一遍,文章如下: 天啊!鹅厂都开始做开发板了?网红腾讯物联网开发板终极开箱评测,让我们一睹为快! 趁着最近有时间,这节,我撸了几个例程作为后面做项目参考的基本框架,当然也有一些是直接拿了官方文档…

TencentOS 3.1安装MySQL 8.0.32

到官网下载安装包:https://dev.mysql.com/downloads/mysql/ 使用如下命令解包。 tar xf mysql-8.0.32-1.el8.x86_64.rpm-bundle.tar 使用rpm -qa |grep mysql 和rpm -qa |grep mariadb检查是否安装过mysql 如果有,使用下命令移除: rpm -e …

TencentOS Server安装Docker

今天在TencentOS Server3服务器上安装Docker时遇到了一些问题,在此记录一下。 根据腾讯云官方文档中所述,从Docker官方文档中安装,期间存在报错,以下将过程列出。 1.卸载旧版本 旧版本的 Docker 被称为docker或docker-engine. …

Spring Cloud Tencent 概述

文章目录 1.Spring Cloud Tencent 模块详细介绍1.1 服务注册与发现 (Spring Cloud Tencent Polaris Discovery)1.2 配置中心 (Spring Cloud Tencent Polaris Config)1.3 服务路由 (Spring Cloud Tencent Polaris Router)1.4 服务限流(Spring Cloud Tencent Polaris …