0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

RA FreeRTOS任务创建

瑞萨嵌入式小百科 来源:未知 2023-03-10 14:35 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

随着嵌入式应用程序变得越来越复杂,单片机裸机开发已经无法满足工程师对于复杂程序的需求。于是具有多任务调度和实时响应特性的RTOS便越来越受工程师们青睐。瑞萨RA系列MCU兼容FreeRTOS系统,开发环境e2 studio完美支持FreeRTOS,无需额外手动移植。以下介绍如何用瑞萨e2 studio创建RA系列MCU的FreeRTOS工程。

对于不熟悉瑞萨的FSP开发环境的工程师们,此文章能够很好帮助大家了解RA系列的FreeRTOS并快速创建FreeRTOS工程,详细步骤如下:

1

创建工程

按正常步骤创建RA工程时,选择FreeRTOS。

3786ec58-bf0d-11ed-bfe3-dac502259ad0.png

2

FreeRTOS的FSP配置

2.1

在Stack中创建任务,并命名为Task1和Task2,内存管理默认为静态内存分配。

38a03b30-bf0d-11ed-bfe3-dac502259ad0.png

2.2

FreeRTOS通用项Common设置简单说明。

注: 多个任务时,所有任务公用Common的设置。如task1和task2,在task1页面设置完Common后,无需再在task2页面设置。

2.2.1 Common->General:

38c2251a-bf0d-11ed-bfe3-dac502259ad0.png

2.2.2 Common -> Memory Allocation, Optional Functions:

内存分配:如果选择了动态内存管理,则需Enable Support Dynamic Allocation,同时在New Stack –> RTOS中添加heap x(1~5),FreeRTOS在创建任务、信号量、队列等时候会使用heap_x.c中的内存申请函数来申请内存。这些内存就是从Total Heap Size中申请的。

API函数:可enable或disable相应的FreeRTOS API函数。

38f9dc62-bf0d-11ed-bfe3-dac502259ad0.png

2.3

任务中添加外设、队列、信号量等

391ebe4c-bf0d-11ed-bfe3-dac502259ad0.png

2.4

配置好定时器后,点Generate Project Content生产底层代码。

本例程实现简单的LED灯闪烁,定时器0和定时器1的周期分别配置为300ms和800ms。定时器和LED管脚的配置方法,就不在此做详细说明了。

3

FreeRTOS底层代码介绍

3.1

代码生成,文件夹目录如下

39516766-bf0d-11ed-bfe3-dac502259ad0.png

3.2

用户无需手动调用API函数创建任务,FSP生成的main函数里会分别调用task1_create()和task2_create()创建任务,创建完成后执行vTaskStartScheduler ()启动任务调度。

396ffaa0-bf0d-11ed-bfe3-dac502259ad0.png

3.3

在任务中task1_entry.c和task2_entry.c添加用户初始化和应用代码。

带FreeRTOS的工程里,生成的main函数里不会调用hal_entry.c,而是直接创建任务后,执行任务切换,进入任务函数task1_entry.c和task2_entry.c。

3998a7e8-bf0d-11ed-bfe3-dac502259ad0.png

更多内容欢迎查看:

39bddd38-bf0d-11ed-bfe3-dac502259ad0.png

1

END

1


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • mcu
    mcu
    +关注

    关注

    147

    文章

    18605

    浏览量

    386978
  • 瑞萨
    +关注

    关注

    36

    文章

    22429

    浏览量

    89748
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    FreeRTOS 空闲任务

    FreeRTOS 中很多人会注意到为什么有一个叫IDLE task的任务占用了CPU百分之九十多的使用权,但是这个任务并没有自己手动创建。原因就是这个空闲
    发表于 12-04 07:35

    freertos关闭任务调度的方法

    #include \"FreeRTOS.h\" #include \"task.h\" /* 关闭任务调度 */ void
    发表于 11-17 06:47

    FreeRTOS任务调度及优先级问题

    大家好,最近本人在学习FreeRTOS ,之前有过一些裸机开发的经验,目前知道了FreeRTOS任务是基于时间片轮转来调度,也就是知道了任务会基于各个时间片来运行。 于是联想了如果有
    发表于 11-06 02:18

    RA4E2开发板评测】电压检测器 FreeRTOS显示量程0-3300 mV

    rasc创建RA4E2开发板的FreeRTOS工程。 作者加入了[亚马逊],之后推出的产品为Amazon FreeRTOS 本次实验要使用FreeR
    发表于 08-27 16:26

    RA-Eco-RA6M4开发板评测】2、移植FreeRTOS_CLI和添加自定义指令

    FreeRTOS提供多种软件组件为用户提供不同的功能,这里介绍如何移植其中的FreeRTOS-CLI命令行工具到RA6M4开发板上。 1、工程配置 参考下面的帖子中创建工程的过程,初始
    发表于 07-23 11:34

    RA4L1-SENSOR】电压检测器第一个程序增加 FreeRTOS显示量程0-3300 mV和量程0-15000mV]

    创建RA4L1-SENSOR开发板的FreeRTOS工程。 FreeRTOS 是作者 Richard Barry 于 2003 年推出的系统。作者加入了[亚马逊],之后推出的产品为Am
    发表于 07-11 10:53

    RA4L1-SENSOR】4、移植FreeRTOS-CLI

    FreeRTOS提供有不同的组件为用户提供不同的功能,本文移植其中的FreeRTOS-CLI命令行工具到RA4L1-Sensor开发板上。 1、工程配置 参考下面的帖子中创建工程的过程
    发表于 06-26 22:30

    RA4L1-SENSOR】04 用FreeRTOS重构工程

    ,是目前市场占有率最高的 RTOS。 3. 软件部分 3.1 创建工程 创建工程的详细过程就参考我之前写的RA4L1的实验1,主要是这里RTOS选择FreeRTOS v11.1.0+f
    发表于 06-16 22:28

    FreeRTOS任务中发送事件队列是有什么限制吗?

    到了TMC的芯片,但是在到位上报的信息中少了卡死电机的上报。所以有的电机的到位中断并没有成功写入任务。 一开始是每个电机都开启了一个定时器查询,后续改成一个定时器查六个电机并将定时器的周期加到50ms,就很少会卡死。 所以向FreeRTOS
    发表于 06-11 07:57

    详解FreeRTOS与SAFERTOS的区别

    开源免费的FreeRTOS由Richard Barry在WHIS工作时创建,WHIS基于FreeRTOS的功能模型,通过完整的HAZOP分析,确定了功能模型和API中的所有的弱点,减轻所有薄弱环节,并采用IEC 61508 SI
    的头像 发表于 06-04 16:58 683次阅读
    详解<b class='flag-5'>FreeRTOS</b>与SAFERTOS的区别

    RA-Eco-RA4M2开发板评测】RA-Eco-RA4M2 移植FreeRTOS

    1 前言 基于瑞萨的MCU移植FreeRTOS很简单,只需简单配置即可生成FreeRTOS的工程。笔者这里使用Renesas RA Smart Configurator和Keil5开发。 2 新建
    发表于 05-03 23:24

    瑞萨RA8系列教程 | 基于 e2 studio 创建RA8工程

    该系列教程前面几篇文章都是为开发做准备,本文正式进入开发阶段,基于 e2 studio 创建RA8工程,并点亮一个LED。
    的头像 发表于 04-03 17:14 755次阅读
    瑞萨<b class='flag-5'>RA</b>8系列教程 | 基于 e2 studio <b class='flag-5'>创建</b><b class='flag-5'>RA</b>8工程

    CubeMX创建STM32F1 FreeRTOS选择新版库1.8.6后工程出错是怎么回事?

    创建出来的工程首先提示缺少文件 freertos_mpool.h , 然后将次文件从CubeMX的库中 手动拷贝过来后接着又提示报错 *** Using Compiler '
    发表于 03-14 06:31

    RA-Eco-RA4E2-64PIN-V1.0开发板试用】4、Amazon FreeRTOS初探,第一个程序

    介绍如何用瑞萨rasc创建RA-Eco-RA4E2-64PIN-V1.0开发板的FreeRTOS工程。 FreeRTOS 是作者 Richard Barry 于 2003 年推出的系统
    发表于 12-20 13:01

    RA-Eco-RA4E2-64PIN-V1.0开发板试用】05、FreeRTOS

    这个任务挂起,让CPU去执行其他任务,一旦时间到了,就再回到先前的任务继续执行。 1 软件部分 1.1 新建工程 类似先前的实验步骤,先来创建工程 https://bbs.elecfa
    发表于 12-17 11:53