前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >AIoT应用创新大赛-使用MDK软件包移植TencentOS tiny

AIoT应用创新大赛-使用MDK软件包移植TencentOS tiny

原创
作者头像
LinwCui
发布2022-01-16 13:57:01
3850
发布2022-01-16 13:57:01
举报
文章被收录于专栏:AIoT应用创新大赛

引言

在移植TencentOS tiny到keil工程时,需要从github下载TencentOS tiny,然后逐个文件夹进行复制,并在工程中添加头文件和源文件,操作相对来说比较繁琐,作者在在21年暑假制作了TencentOS tiny的MDK软件包,能够以安装的方式将TencentOS tiny移植到Keil上,比较方便,因此在本文中对其使用过程进行介绍。

1、基础工作

结合

生成了项目需要的Keil 5工程(这个过程可以参考https://cloud.tencent.com/developer/article/1925881)。

接下来需要将TencentOS tiny移植到工程中;

2、移植方案1

(一种方法是github上介绍的移植方法TencentOS-tiny/30.TencentOS_Tiny_EVB_AIoT_QuickStart.md at master · OpenAtomFoundation/TencentOS-tiny (github.com)

3、使用MDK软件包进行安装移植

1、下载TencentOS tiny的MDK软件包

TencentOS-tiny/Tencent.TencentOS-tiny.1.0.1.pack at master · LinwCui/TencentOS-tiny (github.com)

2、安装软件包(与安装RT1062的MDK PACK包一样);

3、打开Keil5的工程,编译设置为flexspi_nor_debug

1
1

选择TencentOS tiny组件

2
2

4、配置,在mcu_platform.h里面添加头文件#include "MIMXRT1062.h" #include "core_cm7.h"

5、测试

(1)新建example.c,在里面添加任务代码

代码语言:javascript
复制
#include "fsl_device_registers.h"
#include "fsl_debug_console.h"
#include "pin_mux.h"
#include "clock_config.h"
#include "board.h"
#include "tos_k.h"

#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);
    }
}


void application_entry(void *arg)
{
    tos_task_create(&task1, "task1", task1_entry, NULL, 3, task1_stk, TASK1_STK_SIZE, 0); // Create task1
    tos_task_create(&task2, "task2", task2_entry, NULL, 3, task2_stk, TASK2_STK_SIZE, 0);// Create task2
}

(2)将原始工程的hello_world.c修改如下:

代码语言:javascript
复制
/*
 * Copyright (c) 2013 - 2015, Freescale Semiconductor, Inc.
 * Copyright 2016-2017 NXP
 * All rights reserved.
 *
 * SPDX-License-Identifier: BSD-3-Clause
 */

#include "fsl_device_registers.h"
#include "fsl_debug_console.h"
#include "pin_mux.h"
#include "clock_config.h"
#include "board.h"
#include "tos_k.h"
/*******************************************************************************
 * Definitions
 ******************************************************************************/
#define APPLICATION_TASK_STK_SIZE       4096
k_task_t application_task;
uint8_t application_task_stk[APPLICATION_TASK_STK_SIZE];
extern void application_entry(void *arg);

#pragma weak application_entry
void application_entry(void *arg)
{
    while (1) {
        PRINTF("This is a demo task,please use your task entry!\r\n");
        tos_task_delay(1000);
    }
}
/*******************************************************************************
 * Prototypes
 ******************************************************************************/

/*******************************************************************************
 * Code
 ******************************************************************************/
/*!
 * @brief Main function
 */
int main(void)
{
    char ch;

    /* Init board hardware. */
    BOARD_ConfigMPU();
    BOARD_InitBootPins();
    BOARD_InitBootClocks();
    BOARD_InitDebugConsole();

    //PRINTF("hello world.\r\n");
        PRINTF("Welcome to TencentOS tiny(%s)\r\n", TOS_VERSION);
    tos_knl_init(); // TencentOS Tiny kernel initialize
    tos_task_create(&application_task, "application_task", application_entry, NULL, 4, application_task_stk, APPLICATION_TASK_STK_SIZE, 0);
    tos_knl_start();
    while (1)
    {
        ch = GETCHAR();
        PUTCHAR(ch);
    }
}

(3)编译,并通过CMSIS-DAP Debugger下载进单片机

测试
测试

6、如果任务运行正确,那么就说明移植成功。

4、其他

ps. 使用STM32Cube也是可以的,对应的软件包在这里https://github.com/OpenAtomFoundation/TencentOS-tiny/tree/master/tools/STM32CubeMX_pack

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 引言
  • 1、基础工作
  • 2、移植方案1
  • 3、使用MDK软件包进行安装移植
  • 4、其他
相关产品与服务
TencentOS Server
TencentOS Server 是腾讯云推出的 Linux 操作系统,它旨在为云上运行的应用程序提供稳定、安全和高性能的执行环境。它可以运行在腾讯云 CVM 全规格实例上,包括黑石物理服务器2.0。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档