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

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

3天内不再提示

RA FreeRTOS任务创建

RA生态工作室 2023-07-12 10:00 次阅读

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

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

1

创建工程

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

wKgaomWbUwiAPo6BAADhTTa7yRo667.png

2

FreeRTOS的FSP配置

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

wKgaomWbUz6ART83AAJGcqnfnt8087.png

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

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

2.2.1 Common->General:

wKgaomWbU2yAW0GrAAGDFdRaNRc069.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函数。

wKgZomWbU32ALe9EAAGpuzSQR9o346.png

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

wKgZomWbU5yANA1zAAES5RTLUBY073.png

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

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

3

FreeRTOS底层代码介绍

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

wKgaomWbU7-AGTkgAAEB1Fy16h0783.png

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

wKgZomWbU9KANMo6AAEv_I89iSI247.png

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

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

wKgZomWbU9-AWEbPAAL_DbeRGiU941.png

1

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

    关注

    6001

    文章

    43978

    浏览量

    620866
  • RA
    RA
    +关注

    关注

    0

    文章

    16

    浏览量

    24594
  • FreeRTOS
    +关注

    关注

    12

    文章

    473

    浏览量

    61349
收藏 人收藏

    评论

    相关推荐

    FreeRTOS介绍与基础任务创建

    本篇介绍FreeRTOS与基础任务创建
    的头像 发表于 09-26 09:00 1873次阅读
    <b class='flag-5'>FreeRTOS</b>介绍与基础<b class='flag-5'>任务</b><b class='flag-5'>创建</b>

    转:freeRTOS任务创建

    我们曾经在公众号里给大家推送过关于freeRTOS在NXP kinetis KV4x上的移植,得到了猿友大量的反馈,很多猿友还是感觉对基础的一些东西不懂,今天我们就从基础的任务创建讲起,任务
    发表于 07-14 14:18

    STM32CUBE的freertos任务创建

    目录问题说明解决步骤验证方案总结问题说明STM32CUBE的freertos任务创建十分简单方便,但却有一个麻烦:需要我们把要跑的任务具体代码都写进
    发表于 08-24 08:26

    FreeRTOS任务创建过程

    FreeRTOS笔记(四):任务创建/删除,挂起/解挂详解在第二篇笔记中介绍了任务创建的API,并且简单使用了相关API,本文将详细介绍
    发表于 02-08 06:10

    FreeRTOS创建任务的流程分享

    从零入门 FreeRTOS 操作系统之创建任务启动方式在 main() 函数中将硬件和 RTOS 系统先初始化好,然后创建一个启动任务后就启
    发表于 02-11 06:59

    FreeRTOS任务的使用

    FreeRTOS学习笔记(二):任务创建/删除,挂起/解挂上篇文章介绍了任务相关的基础知识,本篇文章对FreeRTOS
    发表于 02-18 07:14

    FreeRTOS任务如何创建和删除?

    FreeRTOS移植到Cortex-M3硬件平台的文章中,我们已经见过任务创建API,但那篇文章的重点在于如何移植FreeRTOS,本文将重点放在
    的头像 发表于 03-11 18:08 2672次阅读

    FreeRTOS笔记(四):任务创建/删除,挂起/解挂详解

    FreeRTOS笔记(四):任务创建/删除,挂起/解挂详解在第二篇笔记中介绍了任务创建的API,并且简单使用了相关API,本文将详细介绍
    发表于 12-04 19:36 15次下载
    <b class='flag-5'>FreeRTOS</b>笔记(四):<b class='flag-5'>任务</b><b class='flag-5'>创建</b>/删除,挂起/解挂详解

    从零入门 FreeRTOS 操作系统之创建任务流程

    从零入门 FreeRTOS 操作系统之创建任务启动方式在 main() 函数中将硬件和 RTOS 系统先初始化好,然后创建一个启动任务后就启
    发表于 12-07 18:36 7次下载
    从零入门 <b class='flag-5'>FreeRTOS</b> 操作系统之<b class='flag-5'>创建</b><b class='flag-5'>任务</b>流程

    #FreeRTOS学习笔记(二):任务创建/删除,挂起/解挂

    FreeRTOS学习笔记(二):任务创建/删除,挂起/解挂上篇文章介绍了任务相关的基础知识,本篇文章对FreeRTOS
    发表于 12-23 19:56 2次下载
    #<b class='flag-5'>FreeRTOS</b>学习笔记(二):<b class='flag-5'>任务</b><b class='flag-5'>创建</b>/删除,挂起/解挂

    FreeRTOS高级篇2---FreeRTOS任务创建分析

    FreeRTOS基础系列《FreeRTOS系列第10篇---FreeRTOS任务创建和删除》中介绍了
    发表于 01-26 17:42 23次下载
    <b class='flag-5'>FreeRTOS</b>高级篇2---<b class='flag-5'>FreeRTOS</b><b class='flag-5'>任务</b><b class='flag-5'>创建</b>分析

    FreeRTOS系列第10篇---FreeRTOS任务创建和删除

    FreeRTOS移植到Cortex-M3硬件平台的文章中,我们已经见过任务创建API,但那篇文章的重点在于如何移植FreeRTOS,本文将重点放在
    发表于 01-26 17:56 13次下载
    <b class='flag-5'>FreeRTOS</b>系列第10篇---<b class='flag-5'>FreeRTOS</b><b class='flag-5'>任务</b><b class='flag-5'>创建</b>和删除

    如何使用CPK-RA2L1/CPK-RA2E1板创建基于FreeRTOS的CapTouch触摸按键demo工程

    ,对RA2L1/RA2E1 MCU群组的特性进行无缝评估,并对嵌入系统应用程序进行开发。用户可利用丰富的板载功能以及自选的热门生态系统插件来将丰富创意变为现实。 创建基于FreeRTOS
    的头像 发表于 11-22 12:20 1132次阅读

    FreeRTOS任务创建与删除

    FreeRTOS 中,每个执行线程都被称为”任务”。在嵌入式社区中,对此并没有一个公允的术语,但我更喜欢用”任务”而不是”线程”,因为从以前的经验来看,线程具有更多的特定含义。
    的头像 发表于 02-10 14:43 936次阅读

    RA FreeRTOS任务创建

    随着嵌入式应用程序变得越来越复杂,单片机裸机开发已经无法满足工程师对于复杂程序的需求。于是具有多任务调度和实时响应特性的RTOS便越来越受工程师们青睐。瑞萨RA系列MCU兼容FreeRTOS系统
    的头像 发表于 03-10 14:35 932次阅读