瑞萨RA串口打印排障过程
在参考立创的教程进行电子时钟制作的时候,前期一直未能有效的实现串口日志输出,这里记录下排障过程。
电子时钟制作教程: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