泰凌微B91-TelinkIoTStudio-在自己demo添加FreeRTOS

概述

sdk版本: telink_b91m_driver_sdk V2.3.0

sdk本身带Freertos_demo,如果是新项目,建议直接在Freertos_demo基础上开发。

本文适用场景:项目开发一部分后,想添加Freertos。

步骤

泰凌微官方已经完成了移植,只需要做简单配置即可使用Freertos

添加Freertos源码参与编译

在IDE中找到Freertos源码文件夹,右键 - Resource Configurations - Exclude from Build - 将自己的demo取消勾选(怎么新建自己的demo见泰凌微B91开发环境搭建_telinkiotstudio安装-CSDN博客

在这里插入图片描述
vendor/common/exception.c排除编译(右键 - Resource Configurations - Exclude from Build - 将自己的demo勾选)
在这里插入图片描述

不排除vendor/common/exception.c编译时会提示trap_entry重定义,该函数已经在./3rd-party/freertos-V5/portable/GCC/RISC-V/portASM.S中定义了
在这里插入图片描述

添加头文件路径

打开项目的属性,分别在

  • C/C++ Build - Settings - Tool Settings - GNU RISC-V Cross Assembler - Includes - 右侧Include path (-l)窗口
  • C/C++ Build - Settings - Tool Settings - GNU RISC-V Cross C Compiler - Includes - 右侧Include path (-l)窗口

添加"${workspace_loc:/${ProjName}/3rd-party/freertos-V5/include}",如下图所示
在这里插入图片描述
在这里插入图片描述

开始使用

配置完成,接下来只需要添加Freertos对应的头文件即可使用

#include "app_config.h"
#include <FreeRTOS.h>
#include <task.h>

static void led_task(void *pvParameters)
{
    const TickType_t xFrequency = pdMS_TO_TICKS(500); // 500ms
    while (1) {
        /// 
        vTaskDelay(xFrequency);
    }
    (void)(pvParameters);
}

static void led_task1(void *pvParameters)
{
    const TickType_t xFrequency = pdMS_TO_TICKS(1000); // 500ms
    while (1) {
        /// 
        vTaskDelay(xFrequency);
    }
    (void)(pvParameters);
}

extern void vPortRestoreTask();

int main(void)
{
    PLATFORM_INIT;
    CLOCK_INIT;

    if (0) { // deepRetWakeUp
        vPortRestoreTask();
    } else {
        xTaskCreate(led_task, "tLed", configMINIMAL_STACK_SIZE, (void *)0, (tskIDLE_PRIORITY + 1), 0);
        xTaskCreate(led_task1, "tLed1", configMINIMAL_STACK_SIZE, (void *)0, (tskIDLE_PRIORITY + 1), 0);
        vTaskStartScheduler();
    }

    return 0;
}

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值