关于RTOS Only下的opensbi调试问题

Viewed 36

问题描述


在使用RTOS SDK编译的情况下,OpenSBI和RTSmart均使用UART0作为输入输出端口,但是OpenSBI固件的sbi_printf()的调试信息,始终无法在UART0端口显示。
即便使用OPENSBI_QUIET=0编译选项和将OpenSBI的console输出绑定到UART3上均无法打印sbi_printf调试信息。

复现步骤


1.使用RTOS SDK编译K230_01Studio,绑定UART0端口
2.上板运行,无法显示opensbi内部的sbi_printf调试信息

硬件板卡


K230 01_studio

软件版本


RtSmart-K230_01Studio_rtsmart_local_nncase_v2.11.0

1 Answers

你好,目前的RTOS Only 固件使用的是预编译的opensbi,需要在make menuconfig中配置一下。

已经配置过了,没有勾选CONFIG_OPENSBI_USE_PREBUILT_FW_JUMP,使用的是sdk本地编译的v0.9 opensbi

有修改makefile吗?发一下编译日志看看。

主要就是修改了/rtos_k230/src/opensbi/Makefile的
$(MAKE) O=$(SDK_OPENSBI_BUILD_DIR) PLATFORM=kendryte/fpgac908 FW_PAYLOAD=n OPENSBI_QUIET=0 CROSS_COMPILE=$(CROSS_COMPILE) || exit $?;按理说应该出现OpenSBI的调试信息,将OpenSBI绑定的UART口切换到UART3后,也只是在UART3中出现RTSmart的调试信息。

image.png
左边是OpenSBI绑定了UART3,右边是RT-SMART绑定了UART0

可以看看这笔改动,估计有影响,https://github.com/canmv-k230/opensbi/commit/ea1ceab9f0af65251e4a5c7d943a1cfa5e9002d6