FPB-RA6E2快速原型开发板为使用RA6E2 MCU进行评估、原型设计和开发提供了一个平台。板上自带了仿真器,便于调试,同时,板上引出了所有可有引脚,支持Arduino接口和两个PMOD接口,便于进行扩展。
本次的开发套件除了开发板和USB线外,还提供了CAN模块、杜邦线和收纳盒。板载的外设包括了一个用户按键和两个LED。
瑞萨为RA6E2 MCU提供了fsp软件包,fsp的安装包分为两个版本一个集成了e2studio开发环境,另一个为独立的工具RASC,可以生成Keil、IAR和Cmake工程。安装包可以在瑞萨的官网下载得到。
上图为相应的软件安装包和不同平台的芯片支持包,安装过程十分简单,采用默认安装即可。
安装完成后,在安装目录可以找到相应的启动程序。下图为RASC的启动程序所在的目录。
下图为e2studio的启动程序所在的目录。
点击相应的应用程序就可以开始创建MCU的程序。
打开e2studio新建工程
选择工程类型为Renesas RA
输入创建的工程名
选择工程类型为无TrustZone类型工程
选择工程为无操作系统支持的类型
选择工程模板为Blink,点击Finish就可以完成工程的创建。
该工程创建完成后,通过FSP Configurator工具查看引脚配置可以看到P206和P207分别接到LED2和LED1上。
由于该开发板瑞萨提供了其BSP支持包,在工程的ra文件夹下可以看到board子文件夹,其中定义了板上的外设资源,便于用户调用。
在board.c中定义了引脚的控制数组,和配置工具中的配置是对应的。
/** Array of LED IOPORT pins. */
static const uint16_t g_bsp_prv_leds[] =
{
(uint16_t) BSP_IO_PORT_02_PIN_07, ///< LED1
(uint16_t) BSP_IO_PORT_02_PIN_06, ///< LED2
};
在工程中调用fsp的延时函数和IO驱动函数每隔一定时间修改相应的引脚的状态,实现LED灯的状态变化。
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 <= 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 < leds.led_count; i++)
{
/* Get pin to toggle */
uint32_t pin = leds.p_leds[i];
/* 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);
}
}
编译下载后,板上的LED会固定地闪烁。
RASC代码配置工具是用于生成Keil、IAR和Cmake的代码配置工具,使用起来和e2studio中的FSP Configurator很相似,区别在于创建工程时选择的工程类型不同。启动RASC选择生成工程的位置和工程类型。
其余的部分和e2studio中的操作是类似的。配置完成后点击“Generate Project Content”就可以得到Keil工程。
在Keil中的工具栏中中选择“Customize Tools Menu”
添加如下的内容
这样就可以在Keil中调用RASC配置工具了。
该工程的源码与e2tudio中创建的例程是一致的,编译和下载后可以看到LED1和LED2闪烁。
芯片的配套的开发工具和示例代码很多,大厂提供的资料确实很多,对于开发者来说是一件好事,开发板载调试器,引出可用的引脚,同时支持多种接口,配置上来说是很标准,开发方式支持多种环境,能够满足不同的需求。
芯片的配套的开发工具和示例代码很多,大厂提供的资料确实很多,对于开发者来说是一件好事,开发板载调试器,引出可用的引脚,同时支持多种接口,配置上来说是很标准,开发方式支持多种环境,能够满足不同的需求。
瑞萨在生态上独创了RASC这个图形化配置工具,stm32cubeMAX有相同之处,又有他自己的特色。
引用: lugl4313820 发表于 2023-10-3 07:58 芯片的配套的开发工具和示例代码很多,大厂提供的资料确实很多,对于开发者来说是一件好事,开发板载调试器 ...
是的,用的多了,感觉瑞萨的工具功能是很全的,华为使用瑞萨的芯片开发物联网设备的例子也是有的。
引用: bigbat 发表于 2023-10-3 10:25 瑞萨的芯片的芯片支持threadx这个让我很感动哦,当然freeRTOS也是支持的,盼着瑞萨的网络版了
threadX是微软推出的实时操作系统,现在主要用在哪些领域,大佬能具体说下吗?
引用: 极限零 发表于 2023-10-4 14:18 大厂的资料全,芯片功能也丰富,但是实际使用时,我们产品简单,只能用到芯片10%功能,感觉太浪费了
目前各家主推的产品性能都很强,配套外设也多,但是实际项目会用到的外设就没有这么多了,造成片上资源的浪费。