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

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

3天内不再提示

瑞萨RA产品家族初学者指南-第9章(2)

瑞萨MCU小百科 来源:未知 2022-11-15 12:15 次阅读


瑞萨RA产品家族初学者指南》系列文章已收录成合集,欢迎点击上方查看合集并订阅!


9. 使用实时操作系统


本章目录

  1. 线程、信号量和队列

  2. 使用e2 studio将线程添加到FreeRTOS


9.2 使用e2 studio将线程添加到FreeRTOS中

接下来,只需要执行几个步骤,即可编译和下载程序。


添加信号量。请在LED Thread Objects”(LED线程对象)窗格中单击“New Object”(新对象)按钮。如果看到的不是此窗格,而是“HAL/Common Objects”(HAL/通用对象)窗格,则突出显示“Threads”(线程)窗格中的“LED Thread”(LED线程),随即将显示此窗格。

添加一个二进制信号量,我们需要在按下按钮时通知LED线程。将信号量的“Symbol”(符号)属性更改为g_s1_semaphore,并将“Memory Allocation”(存储器分配)保留为“Static(静态)。现在,FSP配置器中的“Stacks”(堆)选项卡的外观应类似于图9-5。


图9-5:这是添加LED线程和信号量后“Stacks”(堆)选项卡应呈现的外观


FSP配置器中的最后一步是将S1连接的I/O引脚配置为IRQ10输入。为此,请激活配置器中的Pins”(引脚)选项卡,展开“Ports → P0”端口 → P0),然后选择P005。在RA6M4评估板上,这是S1连接的端口。在右侧的“Pin Configuration”(引脚配置)窗格中,为其指定符号名称S1,并确保其他设置与图9-6中的设置相同。通常,配置器应该已为您完成了相关设置。如果没有完成,请相应调整。请注意,右侧的封装查看器将突出显示引脚135/P005,这样便可获得引脚位置的图形参考。


图9-6:应已为IRQ10正确配置了端口P005


完成此操作后,即完成了配置器中的设置。保存更改,然后单击其顶部的“Generate Project Content”(生成项目内容)图标以创建必要的文件、文件夹和设置。


需要执行的最后一项任务是添加初始化Leds结构体所需的代码,编写几行代码来切换LED并读取信号量,然后创建将设置信号量的回调函数。可以在本章末尾查看完整代码。


由于我们正在使用LED线处理按钮和切换LED,因此本次需要将相关代码添加到led_thread_entry.c文件中。在“Project Explorer”(项目资源管理器)中双击文件名以在编辑器中将其打开。如果未显示文件,请展开项目文件夹,然后展开src目录。与第8章中的练习一样,为LED添加结构体并对其进行初始化。需要定义LED2所连I/O引脚的电平的另一个变量。将其命名为led_level。该变量的类型需要采用ioport_level_t,并且应初始化为IOPORT_LEVEL_HIGH(在EK-RA6M4上,“高”电平对应于“开启”)。


下一步将是打开并启用连接到板上S1的IRQ10。为此,请使用IRQ FSP驱动程序的打开和使能功能。完成后,初始化即完成。



while(1)循环内部,需要添加一些语句并删除vTaskDelay(1); 语句。先使用函数调用将led_level的值写入LED2的I/O引脚的输出寄存器,然后执行相关语句切换该引脚的电平。有几种方法可以实现这一点。自行实现,回顾第8章的练习或查看本章结尾的代码。不要忘记e2 studio的智能手册功能,它会提供很大帮助!


While(1)循环中的最后一条语句是调用xSemaphoreTake(),将信号量的地址和常量portMAX_DELAY作为参数。后一个参数将通知RTOS无限期地暂停线程,直到从IRQ 10中断服务程序调用的回调函数中释放信号量为止。


最后要执行的操作是添加回调函数本身。该函数应尽可能短,因为它将在中断服务程序的上下文中执行。编写此函数十分简单:只需转到“Project Explorer”(项目资源管理器)中的“Developer Assistance → LED Thread → g_external_irq10 External IRQ Driver on r_icu”(开发人员帮助 → LED线程 → r_icu 上的g_external_irq10外部IRQ驱动程序),然后将所出现列表末尾的回调函数定义拖放到源文件中。



在回调函数内,添加以下两行代码:



第一行中的宏将告知编译器回调函数不使用参数p_args,从而避免编译器发出警告,而第二行中的宏则在每次按下按钮S1时释放信号量。注意,必须使用give系列函数的中断保存版本,因为此函数调用发生在ISR的上下文内。此调用的第二个参数是*pxHigherPriorityTaskWoken。如果可能有一个或多个任务由于信号量发生阻塞并等待该信号量变为可用状态,并且其中一个任务的优先级高于发生中断时执行的任务,则此参数将在调用xSemaphoreGiveFromISR()后变为true。在这种情况下,应在退出中断之前执行上下文切换。由于在我们的示例中,没有其他任务依赖于此信号量,因此可以将此参数设置为NULL


完成所有代码编写后,单击“Build”(编译)图标(“锤子”),编译项目。如果编译后存在错误,请返回程序,借助“Problems”(问题)视图中显示的编译器反馈修复问题。


如果项目编译成功,请单击“Debug”(调试)图标旁的小箭头,选择“Debug Configurations”(调试配置),然后展开“Renesas GDB Hardware Debugging”(瑞萨GDB硬件调试)。选择MyRtosProject Debug_Flat,或者为项目指定的名称,然后单击“Debug”(调试)。这样便可启动调试器。如果您需要更多相关信息,请回顾第8章中的相关部分。调试器启动并运行后,单击“Resume”(恢复)两次。现在程序正在执行,每次按下EK上的S1时,绿色LED2都相应切换。


最后一点:在实际应用中,应执行错误检查以确保程序正确运行。为了清楚和简洁起见,本示例中将其省略。



您已成功完成本练习!


本章要点:

  • 通过使用全面的API,可以轻松使用FSP的各个函数。

  • FSP将处理大多数与用户代码无关的内容。

  • 使用FreeRTOS十分简单,因为FSP配置器的使用非常直观,添加线程和信号量也相当轻松。


第9章 结束


往期推荐

1

瑞萨RA产品家族初学者指南-第6章

2

瑞萨RA产品家族初学者指南-第5章(1)

3

瑞萨RA产品家族初学者指南-第5章(2)

瑞萨电子 (TSE: 6723)

科技让生活更轻松,致力于打造更安全、更智能、可持续发展的未来。作为全球微控制器供应商,瑞萨电子融合了在嵌入式处理、模拟电源及连接方面的专业知识,提供完整的半导体解决方案。成功产品组合加速汽车、工业、基础设施及物联网应用上市,赋能数十亿联网智能设备改善人们的工作和生活方式。

更多信息,敬请访问renesas.com



原文标题:瑞萨RA产品家族初学者指南-第9章(2)

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

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

    关注

    146

    文章

    17148

    浏览量

    351186
  • 瑞萨
    +关注

    关注

    35

    文章

    22309

    浏览量

    86305

原文标题:瑞萨RA产品家族初学者指南-第9章(2)

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

收藏 人收藏

    评论

    相关推荐

    FPB-RA6E2 评估板入门学习

    FPB-RA6E2 评估板入门学习
    的头像 发表于 12-11 09:22 187次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b> FPB-<b class='flag-5'>RA6E2</b> 评估板入门学习

    电子RA2L1 MCU产品介绍

    RA2L1 MCU是RA家族RA2系列广受欢迎的一款产品
    的头像 发表于 12-10 10:51 270次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b>电子<b class='flag-5'>RA2</b>L1 MCU<b class='flag-5'>产品</b>介绍

    e2studio(1)----芯片之搭建FSP环境

    视频教学 样品申请 请勿添加外链 e2studio软件 e2studio是的集成开发环境,FSP 提供了众多可提高效率的工具,用于开发针对
    发表于 09-30 15:28

    试用活动 | 100套!!RA6E2/RA4E2开发板评测活动

    活动简介: RA6E2/RA4E2开发板评测活动是一个针对电子推出的通用微控制器(MCU
    的头像 发表于 09-10 11:18 613次阅读
    试用活动 | 100套!!<b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>RA6E2</b>/<b class='flag-5'>RA4E2</b>开发板评测活动

    RA2L1系列CAN通信应用

    RA2L1系列CAN通信应用
    的头像 发表于 06-26 08:06 610次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>RA2</b>L1系列CAN通信应用

    RA0E1开发分享之一

    介绍生态社区的RA0E1开发板。
    的头像 发表于 05-10 13:57 926次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>RA</b>0E1开发分享之一

    电子RA产品家族新增RA0E1 MCU产品

    电子RA产品家族新增RA0E1 MCU产品组。
    的头像 发表于 04-11 15:17 916次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b>电子<b class='flag-5'>RA</b><b class='flag-5'>产品</b><b class='flag-5'>家族</b>新增<b class='flag-5'>RA</b>0E1 MCU<b class='flag-5'>产品</b>组

    RA MCU家族推出集成Arm® Cortex®-M23内核的全新RA0系列

    RA MCU家族推出全新的RA0系列,RA0E1产品
    的头像 发表于 04-10 14:32 1302次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>RA</b> MCU<b class='flag-5'>家族</b>推出集成Arm® Cortex®-M23内核的全新<b class='flag-5'>RA</b>0系列

    电子RA家族推出RA8系列高算力通用MCU

    电子RA家族推出RA8系列高算力通用MCU,是业界首款基于Arm® Cortex®-M85(CM85)内核的32位MCU,主频高达480
    的头像 发表于 04-02 14:14 1440次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b>电子<b class='flag-5'>RA</b><b class='flag-5'>家族</b>推出<b class='flag-5'>RA</b>8系列高算力通用MCU

    电子发布全新RA2A2微控制器产品

    全球半导体领军者电子今日瞩目发布全新RA2A2微控制器(MCU)产品群,这款产品群以高效的Arm® Cortex®-M23处理器为核心。
    的头像 发表于 03-22 11:37 833次阅读

    RA家族Arm®DSP示例应用说明

    电子发烧友网站提供《RA家族Arm®DSP示例应用说明.pdf》资料免费下载
    发表于 02-28 09:21 0次下载
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>RA</b><b class='flag-5'>家族</b>Arm®DSP示例应用说明

    RA8T1高性能电机控制新品解读(上)产品详解篇

    RA家族基于Arm® Cortex®-M内核打造,自2019年10月份正式诞生,短短四年多时间已经快速发展成广泛的产品阵容,众多型号用
    的头像 发表于 02-21 12:15 1309次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>RA</b>8T1高性能电机控制新品解读(上)<b class='flag-5'>产品</b>详解篇

    RA家族 RA AWS MQTT/TLS云连接解决方案-蜂窝应用说明

    电子发烧友网站提供《RA家族 RA AWS MQTT/TLS云连接解决方案-蜂窝应用说明.pdf》资料免费下载
    发表于 02-19 11:00 0次下载
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>RA</b><b class='flag-5'>家族</b>  <b class='flag-5'>RA</b> AWS MQTT/TLS云连接解决方案-蜂窝应用说明

    RA家族QE电机应用开发指南

    电子发烧友网站提供《RA家族QE电机应用开发指南.pdf》资料免费下载
    发表于 01-31 09:57 0次下载
    <b class='flag-5'>RA</b><b class='flag-5'>家族</b>QE电机应用开发<b class='flag-5'>指南</b>

    RA家族RA AWS MQTT/TLS云连接解决方案-以太网

    电子发烧友网站提供《RA家族RA AWS MQTT/TLS云连接解决方案-以太网.pdf》资料免费下载
    发表于 01-03 09:52 0次下载
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>RA</b><b class='flag-5'>家族</b><b class='flag-5'>RA</b> AWS MQTT/TLS云连接解决方案-以太网