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

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

3天内不再提示

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

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

    关注

    147

    文章

    18605

    浏览量

    387000
  • 瑞萨
    +关注

    关注

    36

    文章

    22429

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    RA家族RA4C1低功耗MCU发布

    RA家族在2025年8月推出RA4C1低功耗MCU,基于Arm Cortex-M33(CM33)内核,提供低功耗/低电压操作、LCD段码
    的头像 发表于 08-22 15:00 1988次阅读
    <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>4C1低功耗MCU发布

    RA8系列教程 | RA8 开发环境搭建,并点亮一个LED

    今天就给大家讲讲基于Cortex-M85内核RA8单片机快速上手指南
    的头像 发表于 06-04 17:32 1464次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>RA</b>8系列教程 | <b class='flag-5'>瑞</b><b class='flag-5'>萨</b> <b class='flag-5'>RA</b>8 开发环境搭建,并点亮一个LED

    RA-Eco-RA4M2开发板评测】初学-使用flash programmer烧录程序

    本人刚入坑不久,对单片机的热情很高,于是也加入了的板子申请队伍,很荣幸也成为了试用者之一,此前对于的板子从未接触过,包括对于使用e2
    发表于 04-29 17:28

    RA8D1单片机IO中断配置实现方法

    本文为结合e2 studio工具,以及CPKCOR_RA8D1B评估板,给大家讲述
    的头像 发表于 04-09 15:05 1517次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>RA</b>8D1单片机IO中断配置实现方法

    RA系列MCU的命名方法与选型

    初学者来说,要理解RA产品家族产品型号中的不同数字和字母并不容易。我们首先以RA系列MCU中的
    的头像 发表于 03-27 14:32 2267次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>RA</b>系列MCU的命名方法与选型

    RA8快速上手指南:Cortex-M85内核RA8开发环境搭建 并点亮一个LED

    因为Cortex-M内核,RA8系列单片机支持多种市面上常见的开发环境,像Keil MDK、IAR EWARM等,而本文讲述的是自家
    的头像 发表于 03-17 14:35 1564次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>RA</b>8快速上手<b class='flag-5'>指南</b>:Cortex-M85内核<b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>RA</b>8开发环境搭建 并点亮一个LED

    RA2L1入门学习】+开箱评测

    R7FA2L1AB2DFL。RA2L1 产品组采用优化的制程和电子的低功耗工艺技术,是业界一流水平的超低功耗微控制器。 本次收到的开发板
    发表于 03-09 07:40

    RA2L1入门学习】RA2L1开发环境搭建

    e² studio 和 FSP 的下载、安装及使用指南 1. 什么是 e² studio 和 FSP? e² studio 是电子(Renesas)专为 RA 系列单片机开发的 I
    发表于 03-07 11:33

    RA4L1产品特色功能及应用场景

    近日电子推出了一款最新的RA产品RA4L1,它有哪些特性以及适用于什么样的应用场景呢?本篇文章给大家带来详细介绍。
    的头像 发表于 03-04 15:51 1040次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>RA</b>4L1<b class='flag-5'>产品</b>特色功能及应用场景

    RA家族RA4L1低功耗MCU量产上市

      RA家族RA4L1低功耗MCU产品系列于2025年2
    的头像 发表于 02-20 13:39 1264次阅读
    <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>4L1低功耗MCU量产上市

    EE-269:以太网802.3初学者指南

    电子发烧友网站提供《EE-269:以太网802.3初学者指南.pdf》资料免费下载
    发表于 01-05 09:48 1次下载
    EE-269:以太网802.3<b class='flag-5'>初学者</b><b class='flag-5'>指南</b>

    RA家族精品RA2L1产品介绍

    RA2L1MCU是RA家族RA2系列广受欢迎的一款产品
    的头像 发表于 12-27 18:07 1128次阅读
    <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'>RA2</b>L1<b class='flag-5'>产品</b>介绍

    电子RZ MPU家族精品RZ/N2L产品介绍

    生态合作伙伴RT-Thread推出了一款高性能、多功能以太网MPU开发板EtherKit,搭载电子RZ/N2L,并携手
    的头像 发表于 12-23 14:10 1368次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b>电子RZ MPU<b class='flag-5'>家族</b>精品RZ/N<b class='flag-5'>2</b>L<b class='flag-5'>产品</b>介绍

    FPB-RA6E2 评估板入门学习

    FPB-RA6E2 评估板入门学习
    的头像 发表于 12-11 09:22 1243次阅读
    <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 1542次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b>电子<b class='flag-5'>RA2</b>L1 MCU<b class='flag-5'>产品</b>介绍