EPTmachine 发表于 2023-10-2 20:00

【瑞萨FPB_RA6E2】测评——开发板开箱、环境搭建和点灯

<h1>瑞萨FPB-RA6E2开发板开箱、环境搭建和点灯</h1>

<p>FPB-RA6E2快速原型开发板为使用RA6E2 MCU进行评估、原型设计和开发提供了一个平台。板上自带了仿真器,便于调试,同时,板上引出了所有可有引脚,支持Arduino接口和两个PMOD接口,便于进行扩展。</p>

<p></p>

<p>本次的开发套件除了开发板和USB线外,还提供了CAN模块、杜邦线和收纳盒。板载的外设包括了一个用户按键和两个LED。</p>

<h2>开发环境搭建</h2>

<p>瑞萨为RA6E2 MCU提供了fsp软件包,fsp的安装包分为两个版本一个集成了e2studio开发环境,另一个为独立的工具RASC,可以生成Keil、IAR和Cmake工程。安装包可以在瑞萨的官网下载得到。</p>

<p></p>

<p>上图为相应的软件安装包和不同平台的芯片支持包,安装过程十分简单,采用默认安装即可。</p>

<p>安装完成后,在安装目录可以找到相应的启动程序。下图为RASC的启动程序所在的目录。</p>

<p></p>

<p>下图为e2studio的启动程序所在的目录。</p>

<p></p>

<p>点击相应的应用程序就可以开始创建MCU的程序。</p>

<h2>e2Studio创建工程</h2>

<p>打开e2studio新建工程</p>

<p></p>

<p>选择工程类型为Renesas RA</p>

<p></p>

<p>输入创建的工程名</p>

<p></p>

<p>选择工程类型为无TrustZone类型工程</p>

<p></p>

<p>选择工程为无操作系统支持的类型</p>

<p></p>

<p>选择工程模板为Blink,点击Finish就可以完成工程的创建。</p>

<p></p>

<p>该工程创建完成后,通过FSP Configurator工具查看引脚配置可以看到P206和P207分别接到LED2和LED1上。</p>

<p></p>

<p>由于该开发板瑞萨提供了其BSP支持包,在工程的ra文件夹下可以看到board子文件夹,其中定义了板上的外设资源,便于用户调用。</p>

<p> &nbsp;</p>

<p>在board.c中定义了引脚的控制数组,和配置工具中的配置是对应的。</p>

<pre>
<code class="language-cpp">/** Array of LED IOPORT pins. */
static const uint16_t g_bsp_prv_leds[] =
{
    (uint16_t) BSP_IO_PORT_02_PIN_07,///&lt; LED1
    (uint16_t) BSP_IO_PORT_02_PIN_06,///&lt; LED2
};
</code></pre>

<p>在工程中调用fsp的延时函数和IO驱动函数每隔一定时间修改相应的引脚的状态,实现LED灯的状态变化。</p>

<pre>
<code class="language-cpp">void hal_entry (void)
{
#if BSP_TZ_SECURE_BUILD

    /* Enter non-secure code */
    R_BSP_NonSecureEnter();
#endif

    /* Define the units to be used with the software delay function */
    const bsp_delay_units_t bsp_delay_units = BSP_DELAY_UNITS_MILLISECONDS;

    /* Set the blink frequency (must be &lt;= bsp_delay_units */
    const uint32_t freq_in_hz = 2;

    /* Calculate the delay in terms of bsp_delay_units */
    const uint32_t delay = bsp_delay_units / freq_in_hz;

    /* LED type structure */
    bsp_leds_t leds = g_bsp_leds;

    /* If this board has no LEDs then trap here */
    if (0 == leds.led_count)
    {
      while (1)
      {
            ;                        // There are no LEDs on this board
      }
    }

    /* Holds level to set for pins */
    bsp_io_level_t pin_level = BSP_IO_LEVEL_LOW;

    while (1)
    {
      /* Enable access to the PFS registers. If using r_ioport module then register protection is automatically
         * handled. This code uses BSP IO functions to show how it is used.
         */
      R_BSP_PinAccessEnable();

      /* Update all board LEDs */
      for (uint32_t i = 0; i &lt; leds.led_count; i++)
      {
            /* Get pin to toggle */
            uint32_t pin = leds.p_leds;

            /* Write to this pin */
            R_BSP_PinWrite((bsp_io_port_pin_t) pin, pin_level);
      }

      /* Protect PFS registers */
      R_BSP_PinAccessDisable();

      /* Toggle level for next write */
      if (BSP_IO_LEVEL_LOW == pin_level)
      {
            pin_level = BSP_IO_LEVEL_HIGH;
      }
      else
      {
            pin_level = BSP_IO_LEVEL_LOW;
      }

      /* Delay */
      R_BSP_SoftwareDelay(delay, bsp_delay_units);
    }
}</code></pre>

<p>编译下载后,板上的LED会固定地闪烁。</p>

<h2>RASC 生成Keil工程</h2>

<p>RASC代码配置工具是用于生成Keil、IAR和Cmake的代码配置工具,使用起来和e2studio中的FSP Configurator很相似,区别在于创建工程时选择的工程类型不同。启动RASC选择生成工程的位置和工程类型。</p>

<p> &nbsp;</p>

<p> &nbsp;</p>

<p>其余的部分和e2studio中的操作是类似的。配置完成后点击&ldquo;Generate Project Content&rdquo;就可以得到Keil工程。</p>

<p>在Keil中的工具栏中中选择&ldquo;Customize Tools Menu&rdquo;</p>

<p></p>

<p>添加如下的内容</p>

<p></p>

<ul>
        <li>Menu Name:填入任意字符即可,这里填入&ldquo;RA Smart Configurator 4.6&rdquo;</li>
        <li>Command:根据安装路径填入rasc.exe的执行路径</li>
        <li>Initial Folder:填入$P</li>
        <li>Arguments:填入&ldquo;--device $D --compiler ARMv6 configuration.xml&rdquo;</li>
</ul>

<p>这样就可以在Keil中调用RASC配置工具了。</p>

<p>该工程的源码与e2tudio中创建的例程是一致的,编译和下载后可以看到LED1和LED2闪烁。</p>

<h2>总结</h2>

<p>芯片的配套的开发工具和示例代码很多,大厂提供的资料确实很多,对于开发者来说是一件好事,开发板载调试器,引出可用的引脚,同时支持多种接口,配置上来说是很标准,开发方式支持多种环境,能够满足不同的需求。</p>

lugl4313820 发表于 2023-10-3 07:58

<p>芯片的配套的开发工具和示例代码很多,大厂提供的资料确实很多,对于开发者来说是一件好事,开发板载调试器,引出可用的引脚,同时支持多种接口,配置上来说是很标准,开发方式支持多种环境,能够满足不同的需求。</p>

<p>瑞萨在生态上独创了RASC这个图形化配置工具,stm32cubeMAX有相同之处,又有他自己的特色。</p>

EPTmachine 发表于 2023-10-3 08:20

lugl4313820 发表于 2023-10-3 07:58
芯片的配套的开发工具和示例代码很多,大厂提供的资料确实很多,对于开发者来说是一件好事,开发板载调试器 ...

<p>是的,用的多了,感觉瑞萨的工具功能是很全的,华为使用瑞萨的芯片开发物联网设备的例子也是有的。</p>

bigbat 发表于 2023-10-3 10:25

<p>瑞萨的芯片的芯片支持threadx这个让我很感动哦,当然freeRTOS也是支持的,盼着瑞萨的网络版了</p>

EPTmachine 发表于 2023-10-3 10:40

bigbat 发表于 2023-10-3 10:25
瑞萨的芯片的芯片支持threadx这个让我很感动哦,当然freeRTOS也是支持的,盼着瑞萨的网络版了

<p>threadX是微软推出的实时操作系统,现在主要用在哪些领域,大佬能具体说下吗?</p>

极限零 发表于 2023-10-4 14:18

<p>大厂的资料全,芯片功能也丰富,但是实际使用时,我们产品简单,只能用到芯片10%功能,感觉太浪费了</p>

EPTmachine 发表于 2023-10-4 15:45

<div class='shownolgin' data-isdigest='no'>极限零 发表于 2023-10-4 14:18
大厂的资料全,芯片功能也丰富,但是实际使用时,我们产品简单,只能用到芯片10%功能,感觉太浪费了

<p>目前各家主推的产品性能都很强,配套外设也多,但是实际项目会用到的外设就没有这么多了,造成片上资源的浪费。</p>
</div><script>showreplylogin();</script><script type="text/javascript">(function(d,c){var a=d.createElement("script"),m=d.getElementsByTagName("script"),eewurl="//counter.eeworld.com.cn/pv/count/";a.src=eewurl+c;m.parentNode.insertBefore(a,m)})(document,523)</script>
页: [1]
查看完整版本: 【瑞萨FPB_RA6E2】测评——开发板开箱、环境搭建和点灯