打印

RA-Eco-RA4M2-100PIN开发板linux开发环境搭建与串口printf

[复制链接]
233|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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
static volatile uint8_t uart_tx_event;

void uart9_callback (uart_callback_args_t * p_args)
{
    if(p_args->event == UART_EVENT_TX_COMPLETE)
        uart_tx_event = 1;
}

int _write(int file, char *ptr, int len)
{
        fsp_err_t err;
        (void)(file);

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

        while (!uart_tx_event)
                ;

        return len;
}

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

    R_SCI_UART_Open(&g_uart9_ctrl, &g_uart9_cfg);
    printf("Hello RA4M2\r\n");
    for (;;)
            __WFI();

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

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

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

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


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


使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

32

主题

127

帖子

1

粉丝