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

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

3天内不再提示

RA FreeRTOS任务创建

瑞萨MCU小百科 来源:未知 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
    +关注

    关注

    146

    文章

    16852

    浏览量

    349798
  • 瑞萨
    +关注

    关注

    33

    文章

    22279

    浏览量

    85912

原文标题:RA FreeRTOS任务创建

文章出处:【微信号:瑞萨MCU小百科,微信公众号:瑞萨MCU小百科】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    freertos最多支持多少个任务

    FreeRTOS是一个轻量级的实时操作系统(RTOS),其设计初衷就是为了提供简单、可靠且高效的实时任务管理。关于FreeRTOS最多支持多少个任务的问题,实际上并没有一个固定的上限,
    的头像 发表于 09-02 14:21 606次阅读

    esp8266的freertos+lwip不支持在多个任务创建多个不同的socket吗?

    的socket fd。也就是说每个socket都是在各自的任务创建、读写和close的,按照道理应该是互相独立的,但是为啥会互相影响? 难道乐鑫的esp8266的freertos+lwip不支持在多个
    发表于 07-11 07:29

    esp32-c3工程中怎么创建多个freertos任务?

    ESP-IDF中给出的ESP32-C3的例程都只有一个任务。即void app_main() 而且没看见这个app_main任务是在哪里被创建的??? 如果我想建一个ESP32-C3的多任务
    发表于 06-27 06:37

    请问一下FREERTOS只能创建4个任务,修改哪个宏定义可以增加创建任务的数量?

    请问一下FREERTOS只能创建4个任务,修改哪个宏定义可以增加创建任务的数量?解决方法:增加FREER
    发表于 05-13 06:44

    基于STM32Cubemx创建FreeRTOS创建UART任务遇到的两个问题求解

    基于STM32Cubemx创建FreeRTOS创建UART任务,经过测试发现有以下两个问题: 1、串口波特率问题: 在STM32Cubemx中串口设置如下: /* USART3 in
    发表于 05-10 07:33

    用STM32CubeMX中的FreeRTOS创建3任务无法运行的原因?

    用STM32CubeMX中的FreeRTOS 创建3任务 Task Priority =osPrioirityNoral 等级的任务,无法运行。 如果
    发表于 05-09 07:02

    用的cube生成的freertos工程,串口和任务通过邮箱通讯,结果任务反应很慢是怎么回事?

    初学freertos。用的cube生成的freertos工程,单片机型号位stm32f103vbt6。 建了三个人物,一个是串口任务,一个是LED每秒翻转一次,一个是空任务。 串口
    发表于 05-08 08:13

    freertos系统如何划分任务

    正在看freertos方面的教程,想请教下如何划分任务? 比如之前做的一个数据采集板,用到了单片机以下功能: 1,单片机通过SPI1和ADC芯片通讯,同时还要通过SPI控制ADC电路部分的其他外围
    发表于 05-08 07:16

    使用FreeRTOS创建的DHCP线程里面的DHCP是在哪里定义的?

    请教下,使用 FreeRTOS 创建的 DHCP 线程里面的 DHCP 是在哪里定义的,貌似没有找到 ? FreeRTOS 版本 v9.0.0 具体如下: // 创建 DHCP
    发表于 04-30 07:34

    freertos任务创建,每一个任务分配的内存是多大才好,怎么计算呢?

    小白刚刚接触freertos,想问一下就创建任务而言,每一个任务分配的内存是多大才好,怎么计算呢? 另外,每个任务的执行周期怎么确定?在
    发表于 04-23 06:39

    为什么CubeMX设计的FreeRTOS工程只能正常运行3个任务

    用CubeMX4.20设计的FreeRTOS工程有六个任务,出一个任务优先级较低外,另外几个都是较高优先级。发现只有3个任务是正常运行的,还有三个没有运行的迹象。用断点跟踪法在
    发表于 04-19 08:23

    请问FreeRTOS同一个任务多次创建会有什么后果?

    比如在初始创建任务时就创建任务1、2、3、4、5 然后在任务2过程中又再次创建
    发表于 04-15 06:36

    FreeRTOS任务无故进入挂起状态的原因?

    请教大家一个问题,我子啊使用FreeRTOS的时候创建了一个以太网的任务任务在使用的过程中被无故挂起,请问一下出现这种现象有哪几种原因呢?
    发表于 04-09 07:20

    如何可视化FreeRTOS任务响应时间

    高效的开发基于FreeRTOS的固件需要理解任务、中断和内核之间的交互以及时间序列。
    的头像 发表于 12-22 11:12 995次阅读
    如何可视化<b class='flag-5'>FreeRTOS</b><b class='flag-5'>任务</b>响应时间

    FreeRTOS中的任务管理

    任务FreeRTOS 中最基本的调度单元,它是一段可执行的代码,可以独立运行。FreeRTOS 中的任务是基于优先级的抢占式调度,优先级高的任务
    的头像 发表于 11-27 17:03 917次阅读