kendryte / k230_docs

Kendryte K230 SDK Docs
BSD 2-Clause "Simplified" License
85 stars 11 forks source link

[other]: K230启动流程释疑 #23

Closed SoloGao closed 9 months ago

SoloGao commented 9 months ago

Other

Hello! K230启动优化指南中提到了K230双核的启动顺序。目前我们有需求在K230 RV M-mode下运行一些RT-Thread程序(程序对RVV和频率没有显著需求),最简单的方式是否是在大核上把opensbi给替换成RTT的M-mode ELF?在这种情况下,CanMV-K230要如何写入sd镜像呢?谢谢!

SoloGao commented 9 months ago

或者说,能否提供一个更详细的启动流程文档呢?谢谢!

wuwentao commented 9 months ago

K230_启动优化指南.md 这里的启动流程需要更详细的?

wangjianxin-canaan commented 9 months ago

Other

Hello! K230启动优化指南中提到了K230双核的启动顺序。目前我们有需求在K230 RV M-mode下运行一些RT-Thread程序(程序对RVV和频率没有显著需求),最简单的方式是否是在大核上把opensbi给替换成RTT的M-mode ELF?在这种情况下,CanMV-K230要如何写入sd镜像呢?谢谢!

有如下2个解决办法,建议你采用办法1: 解决办法1:把你的RTT的M-mode ELF 文件在uboot下使用mmc 命令读写sd卡。boot_baremetal 1 add size命令执行你的程序。详见uboot下的mmc 和boot_baremetal 命令。

解决办法2:是把你的RTT的M-mode ELF 替换output/k230_canmv_defconfig/common/big-opensbi/platform/kendryte/fpgac908/firmware/fw_payload.bin文件,替换完后执行下make build-image;

请参考如下脚本: board/common/gen_image_script/gen_image_comm_func.sh

生成可用uboot引导的rtt版本文件

gen_rtt_bin() { local filename="fw_payload.bin" cd "${BUILD_DIR}/images/big-core/" ; bin_gzip_ubootHead_firmHead "${BUILD_DIR}/common/big-opensbi/platform/kendryte/fpgac908/firmware/${filename}" \ "-O opensbi -T multi -a ${CONFIG_MEM_RTT_SYS_BASE} -e ${CONFIG_MEM_RTT_SYS_BASE} -n rtt"

mv fn_ug_${filename}  rtt_system.bin
[ -f fa_ug_${filename} ] && mv fa_ug_${filename}  rtt_system_aes.bin
[ -f fs_ug_${filename} ] && mv fs_ug_${filename}  rtt_system_sm.bin
chmod a+r rtt_system.bin;

}