RISC-V工具链编译与程序下载
使用官方的gcc工具链编译出riscv32-unknown-elf系列工具链,在hbird-e-sdk中修改脚本为新生成的工具链,将riscv-none-gcc的软链接替换为riscv32-unknown-elf,然后运行软件环境,make dasm和make upload后成功下载到蜂鸟开发板,但使用screen打印输出时却无输出,gpio口也未受控。在未修改硬件加载的cpu核时,将软件环境改为芯来的工具链,正常输出。想请回一下,这是由于什么原因造成的呢?按理说,只修改工具链不会影响输出结果呢?
领主文2229 天前 ·
2 楼
在这里分享一下大佬的想法:
startup程序调用的__libc_init_array函数不会去调用_init函数了,这里需要将_init函数拷贝一份并改为__premain_init,然后在启动startup的汇编文件调用这个函数,参考:
https://gitee.com/riscv-mcu/hbird-sdk/blob/master/SoC/hbird/Common/Source/GCC/startup_hbird.S#L127 和 https://gitee.com/riscv-mcu/hbird-sdk/blob/master/SoC/hbird/Common/Source/system_hbird.c#L465-533
关于init和fini函数不再使用,参见 https://github.com/riscv/riscv-newlib/commit/6158b30e3e9b1b582ae60b15d64e775fa1705483
💡 请 登录 后参与讨论(微信扫码即登录/注册)
帖子信息
版块开源蜂鸟E203
回复3
浏览10901
发布2020-08-26 15:10