电子说
CPK-RA6M4评估板入门指南
开发环境
e2 studio:2021-04版
FSP:v3.1.0
目录
首次使用瑞萨CPK-RA6M4评估板
下载并测试示例
Hello World! – Hi Blinky!
使用实时操作系统
使用“灵活配置软件包”通过USB端口发送数据
《CPK-RA6M4评估板入门》的文件列表
3. Hello World! – Hi Blinky!
本章内容基于《瑞萨RA MCU基础知识》中的章节8. Hello World! – Hi Blinky! 所作。
3.2 使用FSP配置器设置运行环境
FSP配置器启动后,将为您提供项目的只读摘要和所选软件组件的简短概述。此外,它还提供了快捷方式,可方便地访问视频网站上的瑞萨RA频道、瑞萨官网上的瑞萨设计与支持页面(可在其中访问文档、知识库和Renesas Rulz论坛)以及硬盘上的FSP用户手册。
图3-8:e2 studio内部的“FSP Configuration”(FSP配置)透视图
在以下名为BSP的选项卡中,可以查看和编辑设置的多个方面,例如电路板和器件选择。在此选项卡的属性视图中,可以为板级支持包进行其他设置,例如,主堆栈的大小或MCU的某些安全功能。在之后的“Clocks”(时钟)选项卡中,可以为您的项目分配初始时钟配置。任何潜在的问题都将以红色突出显示,将鼠标悬停在突出显示的位置上将出现有关冲突或设置不完整的说明。
第四个选项卡“Pins”(引脚)涵盖了RA MCU的引脚分配。可以根据端口或外设列出引脚。如果设置不兼容或缺失,则配置器右侧的“Package View”(封装视图)会显示器件的封装,突出显示所配置的引脚并标记错误。“Problems”(问题)视图以及“Pin Conflicts”(引脚冲突)视图中也会显示这些内容。这样,便可将可能的错误减少到最低限度。
接下来是“Interrupts”(中断)选项卡。可以在此处指定用户定义的(即非FSP)驱动程序如何使用单片机的中断控制器单元(ICU),以及将哪个中断服务程序(ISR)与ICE事件(中断)相关联。此外,还可以在此处查看分配的所有ICU事件的完整列表,包括由在配置器的“Stacks”(栈)视图中创建的FSP模块实例生成的ICU事件。
“Event Links”(事件链接)选项卡具有类似作用。可以在此处指定驱动程序如何在RA项目中使用事件链接控制器(ELC),并且可以声明此类驱动程序可能通过一组外设功能产生一组ELC事件或使用一组ELC事件。
需要花费大部分时间的页面为“Stacks”(栈)页面,可以在其中创建RTOS线程和内核对象,以及FSP软件栈。可以添加不同的对象和模块,并且可以在“Properties”(属性)视图中修改其属性。所有这些对象和模块都将自动插入,直到降至需要用户干预的程度为止。在这种情况下,一旦鼠标悬停在模块上,便会将需要注意的模块标记为红色,同时给出必要设置或问题的说明。如果问题解决,模块将恢复为标准颜色。
“Stacks”(栈)视图本身以图形方式显示各种栈,可让您轻松跟踪不同的模块。在我们的示例中,仅显示了一个具有一个模块的线程:在r_ioport上使用g_ioport I/O端口驱动程序的HAL/通用线程。它是由项目配置器自动插入的,允许我们仅用几行代码便可编写让LED闪烁的程序。
最后一个选项卡的名称是“Components”(组件),其中显示了不同的FSP模块并可对模块进行选择。它还列出了可用的RA CMSIS软件组件。不过,最好通过“Stacks”(栈)页面在当前项目中添加或删除模块,因为还可以在其中进行配置。
对于我们的项目,无需在FSP配置器中进行任何更改,因为项目配置器已经为我们进行了所有必要的设置。最后,需要创建基于当前配置的附加源代码。单击FSP配置器右上角的“Generate Project Content”(生成项目内容)按钮。此操作将从FSP中提取所需文件,将其调整为在配置器中进行的设置,然后将其添加到项目中。
3.3 编写前几行代码
获取所有自动生成的文件之后,接下来查看创建的内容。IDE左侧的“Project Explorer”(项目资源管理器)列出了当前包含的所有内容。ra_gen文件夹保存通道号等配置集。src目录包含一个名为hal_entry.c的文件。这是稍后要编辑的文件。请注意,尽管在ra_gen文件夹中有一个名为main.c的文件,但用户代码必须转到hal_entry.c中。否则,如果您在FSP配置器中进行修改并重新创建项目内容,则更改会丢失,因为每次单击“Generate Project Content”(生成项目内容)时,都将覆盖该文件。
图3-9:FSP配置器创建所需文件后的项目树
该项目还包含几个名称中带有“ra”或“fsp”的目录,其中包含FSP的源文件、包含文件和配置文件。通常的规则是,不得修改这些文件夹(和子文件夹)的内容。其中包含由配置器生成的文件,在此所做的任何更改都将在下次生成或刷新项目内容时丢失。用户可编辑的源文件是直接位于src文件夹或您添加的任何其他文件夹的根目录中的文件。
接下来,为RA产品家族单片机编写第一个真实源代码。计划是在CPK-RA6M4评估板上的用户LED(红色)闪烁。因此您必须通过添加代码来点亮和熄灭LED以及实现延时循环。如何实现?
实际上有两种选择:一种是通过接口函数来使用API,另一种是使用BSP实现函数。
如果查看文件ra_gencommon_data.c中的代码,则会发现I/O端口驱动程序实例g_ioport具有以下定义:
g_ioport_on_ioport是一个结构体,用于声明端口可能执行的操作,将分配给g_ioport实例的API指针。将鼠标悬停在该结构体上,可以轻松查看其中的内容,此结构体显示了其成员之一 (.pinWrite) 是指向引脚写入函数的指针。
因此,要点亮LED,可以写入:
但这意味着实际上需要知道用户LED连接到哪些I/O端口,以及有多少个用户LED可用。为此,我们可以阅读电路板的文档或仔细检查原理图以找到正确的端口。或者,也可以只依靠FSP。创建类型为bsp_leds_t的结构体(在board_leds.h中声明)并为其分配在board_leds.c中定义的全局BSP结构体g_bsp_leds即可解决问题。这两个文件均位于项目的raoard a6m4_cpk文件夹内。因此,以下两行代码足以获取有关评估板上LED的信息:
现在,可以使用LED结构体来访问电路板上的所有LED,并使用以下语句点亮红色LED(将端口设置为低电平将点亮LED,将端口设置为高电平则将熄灭LED):
此语句后需要有第二条语句,用于将其引脚设置为高电平以熄灭用户LED。
最后,需要提供一段延时以使LED以用户友好的方式切换。为此,可以再次调用BSP API:
R_BSP_SoftwareDelay函数的第一个参数是要延迟的单位数,而第二个参数是指定的基本单位,在本例中为秒。其他选项包括毫秒和微秒。
最后,由于我们想无限期地运行程序,因此必须围绕代码创建一个while(1)循环。
目前,还需要执行的操作是将以下代码行直接输入到hal_entry.c文件中的函数签名之后,替换/* TODO: add your own code here */ 行。对于由项目配置器和FSP配置器插入的其他代码,请保持不变。单片机需要借助这些代码来正常运行。
编写代码时,始终可以使用e2 studio的自动完成功能。只需按下
图3-10:在变量或函数上按下-将激活e2 studio的代码补全功能
编写程序时,另一个有用的工具是“Developer Assistance”(开发人员帮助),可以从“Project Explorer”(项目资源管理器)中访问此工具。在使用FSP配置器配置了项目的软件堆栈之后,此工具将为您快速了解应用程序代码提供支持。要访问“Developer Assistance”(开发人员帮助),请先在“Project Explorer”(项目资源管理器)中展开项目,此工具随即显示。显示工具后,进一步展开树,直到看到堆栈模块及其API。选择要使用的API,然后将对该API的调用拖放到源文件中。
现在轮到您进行操作:请将上面的代码行输入到项目的hal_entry.c文件中。为此,展开项目的src文件夹,然后双击上述文件。此操作会在编辑器中将其打开。如果您不想自己输入所有内容,也可以识别下方二维码进入本手册的网站下载完整的项目。
3.4 编译第一个项目
输入所有内容后,便可随时编译程序。编译有两种不同的配置:调试和发布。调试配置将包含调试程序所需的所有信息,例如变量和函数名,并且还将关闭编译器的某些优化,例如循环展开。这会使调试更加容易,但会增大代码大小、减慢代码执行速度。发布配置将从输出文件中除去所有这些信息,并开启完全优化,从而减小代码大小、加快代码执行速度,但是,您再也无法执行查看变量等操作(除非您知道它们在存储器中的地址)。
对于第一个测试,可以采用调试配置(也是默认配置)。要编译项目,单击主菜单栏上的“build”(编译)按钮,编译过程随即开始。如果一切正常,编译将以0个错误和0个警告结束。如果存在编译时错误,则需要返回代码,仔细检查是否正确输入了所有内容。如果未正确输入所有内容,请相应地更改代码。为了让您更轻松地定位错误,编译器的反馈将直接插入编辑器窗口(如果可能)。
程序编译成功后,会创建输出文件CPK_RA6M4_ExampleProject.elf,需要先将其下载到处理器,然后才能运行和调试该文件。
3.5 下载和调试第一个项目
下一步是在评估板(CPK)上实际运行程序。现在需要将评估板连接到Windows工作站:将电路板随附的USB线缆的micro-B端插入系统控制和生态系统访问区域右下角的USB调试端口J11,将另一端插入PC上的空闲端口。LED1应点亮,表示电路板已通电。如果该评估板支持开箱即用,则预编程的演示会运行,表明一切都按预期运行。Windows操作系统可能会显示一个对话框,指示正在安装J-Link板上调试器的驱动程序,此过程应自动完成。此外,还可能会出现一个窗口,询问是否更新J-Link调试器。强烈建议允许进行此更新。
下载
要下载程序,必须先创建一个调试配置。单击“Debug”(调试)符号旁边的小箭头,然后从下拉列表框中选择“Debug Configurations”(调试配置)。在出现的窗口中,突出显示“Renesas GDB Hardware Debugging”(瑞萨GDB硬件调试)下的CPK_RA6M4_BlinkyProject Debug_Flat。由于项目配置器已经进行了所有必要的设置,因此无需在此对话框中进行任何更改。只需单击窗口右下角的“Debug”(调试)。此操作会启动调试器,将代码下载到CPK上的RA6M4 MCU,并询问您是否要切换到“Debug Perspective”(调试透视图)。请选择“Switch”(切换)。“Debug Perspective”(调试透视图)将打开,并且程序计数器将设置为程序的入口点,即复位处理程序。此调试配置仅需要创建一次。下次只需单击“Debug”(调试)符号便可启动调试器。
图3-11:选择MyBlinkyProject Debug_flat后,无需在其他选项卡上进行任何更改
运行
单击“Resume”(恢复)按钮,下一个停止处将处于main()中调用hal_entry()的位置。再次单击该按钮,程序将继续执行,且用户LED(红色)将按预期的1秒时间间隔闪烁。
观察结果
如果一切正常,单击主菜单栏上的“Suspend”(暂停)按钮。这将停止执行程序但不会将其终止。在编辑器视图中,激活文件hal_entry.c的选项卡,然后右键单击包含对端口的写操作的其中一行;在出现的菜单中,选择“Run to line”(运行至指定行)。执行将恢复,程序将在单击的行处停止。现在来看一下右侧包含变量的视图。您将看到列出的Leds结构体。将其展开,浏览和分析不同的字段。调试较大的项目时,此视图会派上用场。
图3-12:变量及其值可以在“Variables”(变量)视图中进行检查
最后一步是单击“Terminate”(终止)按钮,结束调试会话,以停止程序的执行。
您已经掌握了RA产品家族单片机的第一个程序!
本章要点
项目配置器将创建新项目所需的所有文件和设置。
FSP配置器允许编程人员基于图形用户界面轻松配置FSP和运行环境。
调试配置是调试项目的必需步骤。它会自动创建,只需要激活即可。
实现所需功能仅需要很少的代码行。
全部0条评论
快来发表一下你的评论吧 !