[资料干货] 【每周分享】RA-Eco-RA4M2-100PIN开发板linux开发环境搭建与串口printf

[复制链接]
 楼主| xhackerustc 发表于 2025-4-6 22:54 | 显示全部楼层 |阅读模式
本帖最后由 xhackerustc 于 2025-4-12 13:01 编辑

RA-Eco-RA4M2-100PIN开发板由RA生态工作室出品,基于瑞萨RA4M2家族,Cortex-M33,最高频率100MHZ,512KB flash, 128KB sram, 带FS USB。板载USB转TTL模块,不用再额外接usb转ttl了。板载SWD接口,需要用户自己接一个swd调试器。板载三个user LED和一个电源LED。有两个user按钮和一个reset按钮。两个Pmod接口。

笔者一直在linux下开发,这次也不例外。toolchain使用arm-none-eabi-gcc,可以从arm官网下载;源码工程组织采用cmake,其需要的CMakeLists.txt文件可有RASC自动生成,RASC是什么请参考下文;烧>录与调试使用pyocd。

RASC配置
RASC全称Renesas Advanced Smart Configurator,是瑞萨用于配置他自家芯片的pll/clk,pinmux、中断等的工具。笔者配置大概流程如下。

新建proj,第一步选的东西比较多,注意下board选custom,device选R7FA4M2AD3CFP,语言选c,Project type选CMake,toolchain选GCC Toolchain for Arm


第二步选Flat Project


第三步选No RTOS


第四步Bare Metal-Minimal


然后就可以Finish了。接下来需要配置下pin。注意默认的pin设置Debug部分是JTAG功能,但这块开发板引出的是SWD引脚,所以需要按图所示在Pins标签页中先把Debug部分的引脚改成SWD,不然再次烧录就烧录不成了切记。


根据板子原理图板载的那颗USB转TTL是接在P109和P100引脚上,对应SCI9,所以在SCI栏按图所示配置好TXD9和RXD9的引脚功能


接下来需要配置clk。笔者拿到的板子板载晶振是12MHZ,RASC生成的默认是24MHZ,这里需要注意改过来。然后其它的clk/pll可按图所示配置即可


进stacks标签,选择New Stack->Connectivity->UART(r_sci_uart),然后按图所示配置一下uart9。


至此配置结束,点击Generate Project Content即可。


添加代码测试串口printf
添加代码如下代码到src/hal_entry.c
  1. static volatile uint8_t uart_tx_event;

  2. void uart9_callback (uart_callback_args_t * p_args)
  3. {
  4.     if(p_args->event == UART_EVENT_TX_COMPLETE)
  5.         uart_tx_event = 1;
  6. }

  7. int _write(int file, char *ptr, int len)
  8. {
  9.         fsp_err_t err;
  10.         (void)(file);

  11.         uart_tx_event = 0;
  12.         err = R_SCI_UART_Write(&g_uart9_ctrl, (uint8_t *)ptr, (uint32_t)len);
  13.         if (FSP_SUCCESS != err)
  14.                 len = -1;

  15.         while (!uart_tx_event)
  16.                 ;

  17.         return len;
  18. }

hal_entry()函数修改成如下所示:
  1. void hal_entry(void)
  2. {
  3.     /* TODO: add your own code here */

  4.     R_SCI_UART_Open(&g_uart9_ctrl, &g_uart9_cfg);
  5.     printf("Hello RA4M2\r\n");
  6.     for (;;)
  7.             __WFI();

  8. #if BSP_TZ_SECURE_BUILD
  9.     /* Enter non-secure code */
  10.     R_BSP_NonSecureEnter();
  11. #endif
  12. }

编译
  1. cmake -B /tmp/build
  2. cmake --build /tmp/build -j8
在/tmp/build目录下有ra4m2.elf和ra4m2.srec文件生成

打开串口工具比如minicom等
因烧录完毕后会自动重启,笔者代码只打印一次,所以先开启minicom防止串口打印丢失。

烧录
  1. pyocd load -e sector -t R7FA4M2AD /tmp/build/ra4m2.elf
烧录完毕后自动重启,串口即有“Hello RA4M2”字样的打印如图所示:


至此开发环境搭建成功,并成功测试了串口printf输出。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
您需要登录后才可以回帖 登录 | 注册

本版积分规则

42

主题

165

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部