TencentOS_Tiny学习笔记——内核移植

        前面两篇记录里如何新建工程和控制led灯,今天正式学习TencentOS_Tiny,先进行内核移植,建立任务,运行任务,在此记录一下。

一,复制所用到的文件。

      最简单的移植,其实涉及到的文件还是比较少的,主要有架构相关的arch文件夹和内核kernel文件夹,另外在已有工程里复制一份tos_config文件夹。        

       arch文件夹包含了架构类型,ETiny EVB_AIoT开发板的主控芯片是cortex-m7类型,多余的删掉就可以了。        

 二,在IDE里面添加头文件路径。

        把所有用到的头文件路径都加载进来,TencentOS_Tiny系统的头文件一般都在include文件下。

 三,修改代码。

1,主程序文件下,引入头文件   #include "tos_k.h" ,系统用到的头文件都在头文件下。

2,中断函数设置,如果裸机程序使用了中断,先取消,TencentOS_Tiny系统里带了中断程序。

3,systick设置,添加函数。


void SysTick_Handler(void)
{
  if (tos_knl_is_running())
  {
    tos_knl_irq_enter();
    tos_tick_handler();
    tos_knl_irq_leave();
  }
}

4,添加任务代码。

#define TASK1_STK_SIZE       1024
k_task_t task1;
uint8_t task1_stk[TASK1_STK_SIZE];

#define TASK2_STK_SIZE       1024
k_task_t task2;
uint8_t task2_stk[TASK2_STK_SIZE];

void task1_entry(void *arg)
{
    while (1) {
    	PRINTF("###I am task1\r\n");
        tos_task_delay(2000);
    }
}

void task2_entry(void *arg)
{
    while (1) {
    	PRINTF("***I am task2\r\n");
        tos_task_delay(1000);
    }
}

5,在main函数中,启用任务,添加以下代码。

 6,最后不要忘了使能systick有关的宏定义。

 找到TOS_CFG_TIMER_EN定义的位置,使能。

 7,结束,过程非常简单,不过内核原理留着以后好好研究吧,串口打印结果如下。

 

版权声明:本文为CSDN博主「zhengyad123」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_38012497/article/details/122789447

生成海报
点赞 0

zhengyad123

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

STM32CubeMx hal 驱动sg90舵机

一、舵机的控制原理 舵机通过接收PWM信号,使其进入内部电路产生一个偏置电压,触发电机通过减速齿轮带动电位器移动,使电压差为零时,电机停转,从而达到伺服的效果。即给舵机一个

STM32F1xx HAL库 中文详解 之 ADC篇

本文主要从ADC中用到的结构体、函数以及用法讲解。 目录 一、结构体 1.ADC_InitTypeDef 2.ADC_ChannelConfTypeDef 3.ADC_AnalogWDGConfTypeDef 4.ADC_Handl