华大单片机移植TencentOS
华大单片机移植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.最后一说,文章有一部分是参考杰杰博主的。再次感谢。文中有何问题欢迎提出!一起改进!加油。支持国产
华大单片机移植TencentOS相关推荐
- 华大单片机移植RTThread操作系统
华大单片机移植RTThread-国产操作系统 文章目录 华大单片机移植RTThread-国产操作系统 1.华大单片机型号选择 2.RTThread源码下载 2.1 .资料说明 2.3.源码下载 3.移 ...
- IIC模拟协议华大单片机移植
IIC模拟协议华大单片机移植 本文所用为 HC32L136K8TA 使用Gpio10== SDA GpioC11==SCL 先把关键性 宏定义说明 //引脚声明 #define SCL_PORT Gp ...
- 新唐M251 CORTEX-M23内核移植TencentOS tiny教程
Cortex M23 移植TencentOS tiny 准备源码和工具 准备硬件.软件 移植开始 准备源码和工具 TencentOS tiny的源码地址在这: TencentOS tiny. MDK软 ...
- 华大单片机-串口通讯多字节
目录 华大单片机---串口通信 1.串口通信基本原理 (1)串口通信原理: (2)华大的串口通信: (3)简单介绍下: (4)多字符发送: 2.初始化代码 3.发送代码: 4.接收中断代码 华大单片机 ...
- 华大单片机HC32L136J8TA读取DS18B20温度(源码+时钟配置)
免费的C语言和linuxPDF文档:传送门 有一点C语言基础和华大单片机开发经验,应该就能看得懂就不多介绍了,有疑问可以留言,看到就回了; 关于协议具体解析:传送门@不脱发的程序猿 注(2021-05 ...
- 华大单片机HC32L130X
目录 华大单片机HCL13X系列 1.简单介绍下华大单片机 2.资料获取: 3.学习思路: 4.客观意见: 5.预告 华大单片机HCL13X系列 1.简单介绍下华大单片机 第一部分都是我吐槽的地方,可 ...
- 华大单片机HC32L130/HC32L136红外端口配置
华大单片机HC32L130/HC32L136红外端口配置 HC32L130一共有三个引脚可以配置成红外38.4KHZ输出引脚 #define PIN_PWM_IR GpioPortB, GpioPin ...
- 华大单片机HC32L130/HC32L136从机IIC通信
从机IIC理论知识 主机IIC的做法比较多,从机IIC的就相对比较难一点. 先补充一下从机IIC的思路: 先看IIC时序图,然后根据时序图理清IIC从机需要做哪些判断: 从机发送: ·判断IIC ST ...
- 单片机笔记十一:华大单片机
最近在用华大的芯片做开发,因为某些芯片涨价太厉害,而且太难买了,专门买了华大的开发板回来用,这是一款国产的芯片,用的ARM公司的"Cortex-M0"内核,以前用过stm32f10 ...
最新文章
- python默认的一个代码缩进是几个空格_python缩进长度是否统一
- 求x从0到n,f(x)=x^2+1的和
- python No migrations to apply
- python读取文件多行内容-python 逐行读取文件的几种方法
- 了解JavaScript 对象的属性操作
- 怎么回事?在测量时仪器数值不稳
- java 常量区存放 new_java常量池与对象存储
- mellanox 网卡驱动_收购Mellanox之后 NVIDIA发布全球首款25G安全智能网卡
- 怎么用计算机拟合数据,数据拟合的几个应用实例-毕业论文.doc
- 以容器为代表的云原生技术,正成为释放云价值最短路径
- pands 画图 调整大小_两个精品案例解释机械设计的步骤,有思路,再着手画图...
- Python实现好友管理系统
- [可靠消息]2020美赛结果公布时间
- 腾讯通rtx中心服务器,腾讯通(RTX)详细使用教程
- win10便签如何卸载?win10便签卸载和安装方法
- visio图片导入word和PPT的最清晰的方式
- 【机器人学】机器人学领域的顶级期刊和会议
- git代码使用空格缩进
- 从自动驾驶安全报告看谷歌百度双龙会
- dockerer-compose搭建zookeeper集群,工作中最新亲测能用,超详细
热门文章
- 自动生成_一键自动生成CAD图纸目录
- Shell 脚本正则表达式(一)
- 大数据与人工智能论文
- 谷歌游览器提示“喔唷,奔溃啦!”报错误代码:STATUS_INVALID_IMAGE_HASH
- 跑通Jetson Nano TensorRt sampleSSD例程
- 2021最新微信影视小程序源码无限代开+搭建详细教程
- EOS区块链技术开发(二)智能合约
- Stata:因子变量全攻略-双向固定效应-超越对数生产函数
- 静态函数和非静态函数的区别(静态方法和非静态方法)
- 论文阅读(五):Review of Research on Task-Oriented Spoken Language Understanding