为CH582的串口工程启用 link time optimization,以UART0为例,注意到反汇编为:

200000b2 :
200000b2:   a001                    j   200000b2 

取消掉该选项,反汇编正确


程序上表现为无法进入中断,关闭 link time optimization 解决问题


推测为 ltowrapper 或者其它部分改变了符号名,望尝试复现并处理


谢谢!


编译选项参考:

riscv-none-embed-gcc -c ...(ide生成值)... -flto -O2 -Wall ...(ide生成值)... SOURCE -o OBJECT

链接选项参考:

riscv-none-embed-gcc OBJECTS -lISP583  -lCH58xBLE -flto ...(ide生成值)... -o target/BLE.elf