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

    文章

    19132

    浏览量

    404024
  • 瑞萨
    +关注

    关注

    38

    文章

    22518

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    RA-Eco-RA4M2开发板评测】+VS Code 下 RA4M2 开发环境搭建与 GPIO 点灯实验教程

    一、前言 RA4M2 系列芯片凭借高性能、低功耗与完善的生态支持,在工业控制、物联网终端等领域得到广泛应用。相较于官方 e2 studio 集成开发环境,VS Code 具备轻量化
    发表于 04-15 15:12

    RA MCU众测宝典 | 环境搭建之【RA-Eco-RA4M2】QE工具使用

    “RAMCU众测宝典”环境搭建专题再添硬核实操!开启宝典01简介RA-Eco-RA4M2-100PIN-V1.0是一款基于100MHzArmCortex-M33内核架构的核心板,主控芯片为
    的头像 发表于 04-10 18:26 5533次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>RA</b> MCU众测宝典 | 环境搭建之【<b class='flag-5'>RA-Eco-RA4M2</b>】QE工具使用

    RA MCU众测宝典 | 环境搭建之【RA-Eco-RA4M2】搭建Keil开发环境

    “RAMCU众测宝典”环境搭建专题再添硬核实操!开启宝典概览电子RA4M232位微控制器(MCU)系列使用支持TrustZone的高
    的头像 发表于 04-03 17:59 7109次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>RA</b> MCU众测宝典 | 环境搭建之【<b class='flag-5'>RA-Eco-RA4M2</b>】搭建Keil开发环境

    RA2L1微控制器:架构特点及应用分析

    RA2L1微控制器:架构特点及应用分析 在当前电子设备不断追求低功耗与高性能的大趋势下,电子推出的
    的头像 发表于 04-01 11:20 170次阅读

    RA2T1微控制器:低功耗设计的理想之选

    RA2T1微控制器:低功耗设计的理想之选 作为一名电子工程师,在设计低功耗、高性能的嵌入式系统时,选择合适的微控制器至关重要。
    的头像 发表于 04-01 09:45 439次阅读

    电子RA-Eco-RA4M2搭建Keil开发环境指南

    电子RA4M2 32位微控制器(MCU)系列使用支持TrustZone 的高性能Arm Cortex-M33内核。与片内的 Secure Crypto Engine (SCE) 配合使用,可实现安全芯片的功能。
    的头像 发表于 03-18 08:07 2938次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b>电子<b class='flag-5'>RA-Eco-RA4M2</b>搭建Keil开发环境<b class='flag-5'>指南</b>

    FPB-RA0E2开发板的批量加载例程

    RA MCU众测宝典”环境搭建专题再添实用干货!上一篇我们搞定了【FPB-RA0E2】开发板的基础环境配置,这次将解锁“批量加载官方例程”技能。
    的头像 发表于 01-29 17:52 7108次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b>FPB-<b class='flag-5'>RA0E2</b>开发板的批量加载例程

    电子RA系列MCU 2025年新品回顾

    2025年RA系列推出10个新产品,覆盖了从入门级低功耗(RA0E2)、中端低功耗(RA4C
    的头像 发表于 01-27 09:57 1703次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b>电子<b class='flag-5'>RA</b>系列MCU 2025年新品回顾

    FPB-RA6E2试用】【原创】基于【FPB-RA6E2】Windows 下Zephyr RTOS自定义项目开发全流程(创建-编译-烧录-串口调试)

    者、Zephyr 初学者 MCU 用户快速上手开发环境搭建与基础验证。 另外:本人已在B站录制视频教程:https://www.bilibili.com/video/BV12Ki5BGERu
    发表于 01-01 15:35

    RA6E2地奇星开发板试用】使用`RA6E2`驱动 `ESP8266 WiFi模块`,调试AT指令。

    : 串口调试助手发送 AT 指令到 RA6E2 开发板的主串口(UART9)。 RA6E2 开发板将收到的 AT 指令原样转发给 ESP
    发表于 12-25 10:08

    RA6E2地奇星开发板试用】介绍、环境搭建、工程测试

    RA6E2地奇星开发板试用】介绍、环境搭建、工程测试 本文介绍了 RA6E2 地奇星开
    发表于 12-07 15:27

    RA家族RA4C1低功耗MCU发布

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

    基于电子RA8T2 sensorless方案的样例工程 可对电流环进行TCM化设置

    基于电子RA8T2 sensorless方案的样例工程 可对电流环进行TCM化设置
    的头像 发表于 06-04 18:29 1256次阅读

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

    今天就给大家讲讲基于Cortex-M85内核RA8单片机快速上手指南
    的头像 发表于 06-04 17:32 2011次阅读
    <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