瑞萨RA串口打印排障过程

发布时间 2023-12-07 15:57:31作者: 麦克煎蛋

在参考立创的教程进行电子时钟制作的时候,前期一直未能有效的实现串口日志输出,这里记录下排障过程。

电子时钟制作教程:https://www.bilibili.com/video/BV12z4y1J7nQ/?spm_id_from=333.788&vd_source=516eee863e252e452d8dfe7cb01af532

1、硬件阶段:参考教程,完成前期的原理图->PCB->打板->贴片等硬件工作。

 所有设计基于嘉立创EDA完成,包括外壳设计。

仿真工具:J-Link(需要安装JLink的工具包:https://www.segger.com/downloads/jlink/)

串口转换:CH340(需要安装驱动:https://www.wch.cn/downloads/category/67.html?feature=USB%E8%BD%AC%E4%B8%B2%E5%8F%A3&product_name=CH347)

2、软件阶段。

选用瑞萨的e2studio进行软件开发,版本为5.0.0。软件地址:https://github.com/renesas/fsp   参考文章:https://renesas.github.io/fsp/index.html

(1) 编译问题

首先在win7下进行开发环境的搭建(因为之前有个基于win7的虚拟机开发环境,我工作环境一般是mac),折腾了半天不行,看了下e2studio的文档,原来是从win10开始支持的。

然后在ubuntu下进行开发,但参考教程重定向printf到串口的时候,在代码编译时始终无法通过。

怀疑是环境的问题,折腾半天换到windows11环境,还是不行。查了一圈,有用的文档如下:

https://community.renesas.com/mcu-mpu/ra/f/forum/32521/fsp5-0-0-cannot-print-data-to-uart-by-redirecting-printf

针对"fsp5.0.0 cannot print data to UART by redirecting printf."这个问题,有效的解决方案是:

only Specify --specs=nosys.specs will fix the problem

 (2) 时钟问题

编译通过后,在运行过程中代码老是卡在下面这一行:

FSP_HARDWARE_REGISTER_WAIT(R_SYSTEM->OSCSF_b.MOSCSF, 1U);

查询了一些文章,说是时钟设置有问题,于是修改了时钟设置,可以正常运行了。

但随之出现一个新问题,就是串口日志显示内容如下:

确认串口参数没问题后,又进行了问题分析。

参考文章:https://zhuanlan.zhihu.com/p/651625315

对RTC进行配置:

若调试时候跳入RTC初始化,说明需要RTC所需要的时钟没有开启成功。 因为我们是没有使用外部晶振的。

点击Stacks->New Stack->Timers -> Realtime Clock(r_rtc)。修改时钟源由LOCO变为LOCO,内部的低速晶振。

 同时恢复时钟默认设置:

 这下终于能愉快的输出串口日志了!

 

串口输出完整代码过程可以参考:https://zhuanlan.zhihu.com/p/651625315