使用ZCC编译Nuclei DSP Library,出现错误

错误信息:
In file included from /home/ubuntu/Nuclei/NMSIS-master/NMSIS/DSP/Source/BasicMathFunctions/riscv_dot_prod_q31.c:30:
In file included from /home/ubuntu/Nuclei/NMSIS-master/NMSIS/DSP/Include/dsp/basic_math_functions.h:31:
In file included from /home/ubuntu/Nuclei/NMSIS-master/NMSIS/DSP/Include/riscv_math_types.h:118:
In file included from /home/ubuntu/Nuclei/NMSIS-master/NMSIS/Core/Include/nmsis_core.h:83:
/home/ubuntu/Nuclei/NMSIS-master/NMSIS/Core/Include/core_feature_dsp.h:5977:20: error: register must be even
5977 | __ASM volatile(“mulsr64 %0, %1, %2” : “=r”(result) : “r”(a), “r”(b));
| ^
:1:10: note: instantiated into assembly here
1 | mulsr64 t0, t0, a5
| ^
1 error generated.
make[3]: *** [CMakeFiles/NMSISDSP.dir/build.make:440: CMakeFiles/NMSISDSP.dir/BasicMathFunctions/riscv_dot_prod_q31.c.o] Error 1
make[3]: *** Waiting for unfinished jobs…

使用的工具链:
root@ubuntu-virtual-machine:/home/ubuntu/Nuclei/NMSIS-master/NMSIS# zcc -v
Terapines LTD ZCC 4.1.4 (8d1072f256889284d32270fb71b080fb717215f0) based on LLVM 19.1.6 [ Non-commercial use ](124523

该问题在ZCC 4.1.5版本修复,可以直接使用安装带的Product-Manager 进行更新,或者重新下载安装 Terapines
如果对ZCC产品更新感兴趣可以登陆官网,在设置页面订阅产品更新邮件:OAuth Authorize | Terapines

升级到4.1.5, 又出现了别的类似问题

最后一个lib编译时出错

非常感谢这里的反馈,我们已经复现了问题,该问题将在下一个版本进行修复

请问下个版本什么时候发布,能简单介绍下是啥问题吗?感觉和指令有关

该错误是ZCC内部对该指令处理的时候将最后一个操作数识别成了“寄存器对”,目前对于“寄存器对”在ZCC里限定其只能为偶数,这里因为在目前的代码中刚好生成的是单数寄存器(也就是说如果这里刚好生成一个偶数寄存器的话就不会报错),我们利用当前最新的nmsis进行构建的时候没有出现这个问题,可以尝试一下更新NMSIS, 或者可以先关闭NMSIS/DSP/Source/TransformFunctions/riscv_cfft_radix4_q15.c:286行的#if defined (NUCLEI_DSP_N3)

我们会整体排查一下是否还有其他的指令的也存在同样的问题,确定具体的修复方案,下个版本预计在月底发出。

我用的版本呢是从github上拉下来的1.4.1版本:Nuclei-Software/NMSIS: Nuclei Microcontroller Software Interface Standard Development Repo

请问你们是从哪里下载的NMSIS工程

我们也是这里拿的,那看起来应该就不是源码的问题,可以临时屏蔽来使用。

我们暂时用了GCC编译出的3x.a库规避这个问题,等你们月底发布新的ZCC版本

@zhiyong.wang 你好,我们这边在汇编指令层级已经发现了这个问题和正在修复,但是我们在 nmsis 项目中没有复现这个问题。为了确保这个问题在你的项目中完全修复,可以提供你使用这个项目的构建参数吗?例如,make 命令、编译参数、项目修改的内容等。

以下是我们在 nmsis 项目的 zcc 适配及编译测试结果,在这个配置中尚未复现你遇到的问题。

130 ✗ (3m0s) 16:42:26 draco@draco ~/work/projects/nmsis $ git diff 
diff --git a/NMSIS/DSP/Source/CMakeLists.txt b/NMSIS/DSP/Source/CMakeLists.txt
index edd938221..a4cbf5612 100755
--- a/NMSIS/DSP/Source/CMakeLists.txt
+++ b/NMSIS/DSP/Source/CMakeLists.txt
@@ -2,8 +2,8 @@ cmake_minimum_required(VERSION 3.14)
 
 project(NMSISDSP)
 
-SET(CMAKE_C_COMPILER riscv64-unknown-elf-gcc)
-SET(CMAKE_CXX_COMPILER riscv64-unknown-elf-g++)
+SET(CMAKE_C_COMPILER zcc)
+SET(CMAKE_CXX_COMPILER z++)
 SET(CMAKE_AR riscv64-unknown-elf-ar)
 
 # DSP Sources
@@ -25,7 +25,7 @@ add_definitions(-mcmodel=${RISCV_MODEL})
 
 add_definitions(-g -O2 -ffunction-sections -fdata-sections)
 # Disable auto vectorization
-add_definitions(-fno-tree-vectorize -fno-tree-loop-vectorize -fno-tree-slp-vectorize)
+# add_definitions(-fno-tree-vectorize -fno-tree-loop-vectorize -fno-tree-slp-vectorize)
 
 if(LOOPUNROLL)
     add_definitions(-DRISCV_MATH_LOOPUNROLL)
diff --git a/NMSIS/NN/Source/CMakeLists.txt b/NMSIS/NN/Source/CMakeLists.txt
index 95f208b1c..b358267c0 100644
--- a/NMSIS/NN/Source/CMakeLists.txt
+++ b/NMSIS/NN/Source/CMakeLists.txt
@@ -1,8 +1,8 @@
 cmake_minimum_required (VERSION 3.14)
 project(RISCV_NN)
 
-SET(CMAKE_C_COMPILER riscv64-unknown-elf-gcc)
-SET(CMAKE_CXX_COMPILER riscv64-unknown-elf-g++)
+SET(CMAKE_C_COMPILER zcc)
+SET(CMAKE_CXX_COMPILER z++)
 SET(CMAKE_AR riscv64-unknown-elf-ar)
 
 # NN Sources
@@ -42,7 +42,7 @@ add_definitions(-mcmodel=${RISCV_MODEL})
 
 add_definitions(-g -O2 -ffunction-sections -fdata-sections)
 # Disable auto vectorization
-add_definitions(-fno-tree-vectorize -fno-tree-loop-vectorize -fno-tree-slp-vectorize)
+# add_definitions(-fno-tree-vectorize -fno-tree-loop-vectorize -fno-tree-slp-vectorize)
 
 if(LOOPUNROLL)
     add_definitions(-DRISCV_MATH_LOOPUNROLL)
0 ✓ (8.1ms) 16:42:39 draco@draco ~/work/projects/nmsis $ make -C NMSIS/ gen -j >& build.log
0 ✓ (18m34s) 17:01:14 draco@draco ~/work/projects/nmsis $ tail -n 100 build.log 
|                     Build Target                     | Status | Build Time |                                   Build Log                                    |
+------------------------------------------------------+--------+------------+--------------------------------------------------------------------------------+
|                       rv32imac                       |  True  |    9.71    |                       build/nmsis_dsp/rv32imac/build.log                       |
|               rv32imac_zba_zbb_zbc_zbs               |  True  |   10.77    |               build/nmsis_dsp/rv32imac_zba_zbb_zbc_zbs/build.log               |
|                   rv32imac_xxldsp                    |  True  |   12.98    |                   build/nmsis_dsp/rv32imac_xxldsp/build.log                    |
|                  rv32imac_xxldspn1x                  |  True  |   12.14    |                  build/nmsis_dsp/rv32imac_xxldspn1x/build.log                  |
|                  rv32imac_xxldspn2x                  |  True  |    11.9    |                  build/nmsis_dsp/rv32imac_xxldspn2x/build.log                  |
|                  rv32imac_xxldspn3x                  |  True  |   12.44    |                  build/nmsis_dsp/rv32imac_xxldspn3x/build.log                  |
|           rv32imac_zba_zbb_zbc_zbs_xxldsp            |  True  |    12.7    |           build/nmsis_dsp/rv32imac_zba_zbb_zbc_zbs_xxldsp/build.log            |
|          rv32imac_zba_zbb_zbc_zbs_xxldspn1x          |  True  |    11.7    |          build/nmsis_dsp/rv32imac_zba_zbb_zbc_zbs_xxldspn1x/build.log          |
|          rv32imac_zba_zbb_zbc_zbs_xxldspn2x          |  True  |   11.58    |          build/nmsis_dsp/rv32imac_zba_zbb_zbc_zbs_xxldspn2x/build.log          |
|          rv32imac_zba_zbb_zbc_zbs_xxldspn3x          |  True  |   12.91    |          build/nmsis_dsp/rv32imac_zba_zbb_zbc_zbs_xxldspn3x/build.log          |
|                      rv32imafc                       |  True  |    9.95    |                      build/nmsis_dsp/rv32imafc/build.log                       |
|              rv32imafc_zba_zbb_zbc_zbs               |  True  |   10.08    |              build/nmsis_dsp/rv32imafc_zba_zbb_zbc_zbs/build.log               |
|                   rv32imafc_xxldsp                   |  True  |   11.12    |                   build/nmsis_dsp/rv32imafc_xxldsp/build.log                   |
|                 rv32imafc_xxldspn1x                  |  True  |   11.33    |                 build/nmsis_dsp/rv32imafc_xxldspn1x/build.log                  |
|                 rv32imafc_xxldspn2x                  |  True  |   11.85    |                 build/nmsis_dsp/rv32imafc_xxldspn2x/build.log                  |
|                 rv32imafc_xxldspn3x                  |  True  |   12.17    |                 build/nmsis_dsp/rv32imafc_xxldspn3x/build.log                  |
|                   rv32imafc_zve32f                   |  True  |   13.78    |                   build/nmsis_dsp/rv32imafc_zve32f/build.log                   |
|           rv32imafc_zba_zbb_zbc_zbs_xxldsp           |  True  |    12.0    |           build/nmsis_dsp/rv32imafc_zba_zbb_zbc_zbs_xxldsp/build.log           |
|         rv32imafc_zba_zbb_zbc_zbs_xxldspn1x          |  True  |    11.9    |         build/nmsis_dsp/rv32imafc_zba_zbb_zbc_zbs_xxldspn1x/build.log          |
|         rv32imafc_zba_zbb_zbc_zbs_xxldspn2x          |  True  |   13.36    |         build/nmsis_dsp/rv32imafc_zba_zbb_zbc_zbs_xxldspn2x/build.log          |
|         rv32imafc_zba_zbb_zbc_zbs_xxldspn3x          |  True  |   11.65    |         build/nmsis_dsp/rv32imafc_zba_zbb_zbc_zbs_xxldspn3x/build.log          |
|           rv32imafc_zve32f_zba_zbb_zbc_zbs           |  True  |   15.03    |           build/nmsis_dsp/rv32imafc_zve32f_zba_zbb_zbc_zbs/build.log           |
|               rv32imafc_zve32f_xxldsp                |  True  |   14.67    |               build/nmsis_dsp/rv32imafc_zve32f_xxldsp/build.log                |
|              rv32imafc_zve32f_xxldspn1x              |  True  |   15.62    |              build/nmsis_dsp/rv32imafc_zve32f_xxldspn1x/build.log              |
|              rv32imafc_zve32f_xxldspn2x              |  True  |   15.64    |              build/nmsis_dsp/rv32imafc_zve32f_xxldspn2x/build.log              |
|              rv32imafc_zve32f_xxldspn3x              |  True  |   13.28    |              build/nmsis_dsp/rv32imafc_zve32f_xxldspn3x/build.log              |
|       rv32imafc_zve32f_zba_zbb_zbc_zbs_xxldsp        |  True  |   12.26    |       build/nmsis_dsp/rv32imafc_zve32f_zba_zbb_zbc_zbs_xxldsp/build.log        |
|      rv32imafc_zve32f_zba_zbb_zbc_zbs_xxldspn1x      |  True  |   12.36    |      build/nmsis_dsp/rv32imafc_zve32f_zba_zbb_zbc_zbs_xxldspn1x/build.log      |
|      rv32imafc_zve32f_zba_zbb_zbc_zbs_xxldspn2x      |  True  |   13.67    |      build/nmsis_dsp/rv32imafc_zve32f_zba_zbb_zbc_zbs_xxldspn2x/build.log      |
|      rv32imafc_zve32f_zba_zbb_zbc_zbs_xxldspn3x      |  True  |    13.0    |      build/nmsis_dsp/rv32imafc_zve32f_zba_zbb_zbc_zbs_xxldspn3x/build.log      |
|                    rv32imafc_zfh                     |  True  |    9.22    |                    build/nmsis_dsp/rv32imafc_zfh/build.log                     |
|              rv32imafc_zfh_zvfh_zve32f               |  True  |   11.76    |              build/nmsis_dsp/rv32imafc_zfh_zvfh_zve32f/build.log               |
|      rv32imafc_zfh_zvfh_zve32f_zba_zbb_zbc_zbs       |  True  |   11.51    |      build/nmsis_dsp/rv32imafc_zfh_zvfh_zve32f_zba_zbb_zbc_zbs/build.log       |
|           rv32imafc_zfh_zvfh_zve32f_xxldsp           |  True  |   13.31    |           build/nmsis_dsp/rv32imafc_zfh_zvfh_zve32f_xxldsp/build.log           |
|         rv32imafc_zfh_zvfh_zve32f_xxldspn1x          |  True  |   13.23    |         build/nmsis_dsp/rv32imafc_zfh_zvfh_zve32f_xxldspn1x/build.log          |
|   rv32imafc_zfh_zvfh_zve32f_zba_zbb_zbc_zbs_xxldsp   |  True  |   12.97    |   build/nmsis_dsp/rv32imafc_zfh_zvfh_zve32f_zba_zbb_zbc_zbs_xxldsp/build.log   |
| rv32imafc_zfh_zvfh_zve32f_zba_zbb_zbc_zbs_xxldspn1x  |  True  |   13.55    | build/nmsis_dsp/rv32imafc_zfh_zvfh_zve32f_zba_zbb_zbc_zbs_xxldspn1x/build.log  |
|                      rv32imafdc                      |  True  |   68.89    |                      build/nmsis_dsp/rv32imafdc/build.log                      |
|              rv32imafdc_zba_zbb_zbc_zbs              |  True  |    8.33    |              build/nmsis_dsp/rv32imafdc_zba_zbb_zbc_zbs/build.log              |
|                  rv32imafdc_xxldsp                   |  True  |    9.03    |                  build/nmsis_dsp/rv32imafdc_xxldsp/build.log                   |
|                 rv32imafdc_xxldspn1x                 |  True  |    9.14    |                 build/nmsis_dsp/rv32imafdc_xxldspn1x/build.log                 |
|                 rv32imafdc_xxldspn2x                 |  True  |    9.13    |                 build/nmsis_dsp/rv32imafdc_xxldspn2x/build.log                 |
|                 rv32imafdc_xxldspn3x                 |  True  |    9.21    |                 build/nmsis_dsp/rv32imafdc_xxldspn3x/build.log                 |
|                  rv32imafdc_zve32f                   |  True  |   10.18    |                  build/nmsis_dsp/rv32imafdc_zve32f/build.log                   |
|          rv32imafdc_zba_zbb_zbc_zbs_xxldsp           |  True  |    9.19    |          build/nmsis_dsp/rv32imafdc_zba_zbb_zbc_zbs_xxldsp/build.log           |
|         rv32imafdc_zba_zbb_zbc_zbs_xxldspn1x         |  True  |    8.91    |         build/nmsis_dsp/rv32imafdc_zba_zbb_zbc_zbs_xxldspn1x/build.log         |
|         rv32imafdc_zba_zbb_zbc_zbs_xxldspn2x         |  True  |    9.17    |         build/nmsis_dsp/rv32imafdc_zba_zbb_zbc_zbs_xxldspn2x/build.log         |
|         rv32imafdc_zba_zbb_zbc_zbs_xxldspn3x         |  True  |   17.61    |         build/nmsis_dsp/rv32imafdc_zba_zbb_zbc_zbs_xxldspn3x/build.log         |
|          rv32imafdc_zve32f_zba_zbb_zbc_zbs           |  True  |   10.04    |          build/nmsis_dsp/rv32imafdc_zve32f_zba_zbb_zbc_zbs/build.log           |
|               rv32imafdc_zve32f_xxldsp               |  True  |   11.58    |               build/nmsis_dsp/rv32imafdc_zve32f_xxldsp/build.log               |
|             rv32imafdc_zve32f_xxldspn1x              |  True  |   11.28    |             build/nmsis_dsp/rv32imafdc_zve32f_xxldspn1x/build.log              |
|             rv32imafdc_zve32f_xxldspn2x              |  True  |    11.6    |             build/nmsis_dsp/rv32imafdc_zve32f_xxldspn2x/build.log              |
|             rv32imafdc_zve32f_xxldspn3x              |  True  |   11.57    |             build/nmsis_dsp/rv32imafdc_zve32f_xxldspn3x/build.log              |
|       rv32imafdc_zve32f_zba_zbb_zbc_zbs_xxldsp       |  True  |   11.54    |       build/nmsis_dsp/rv32imafdc_zve32f_zba_zbb_zbc_zbs_xxldsp/build.log       |
|     rv32imafdc_zve32f_zba_zbb_zbc_zbs_xxldspn1x      |  True  |   12.08    |     build/nmsis_dsp/rv32imafdc_zve32f_zba_zbb_zbc_zbs_xxldspn1x/build.log      |
|     rv32imafdc_zve32f_zba_zbb_zbc_zbs_xxldspn2x      |  True  |   11.84    |     build/nmsis_dsp/rv32imafdc_zve32f_zba_zbb_zbc_zbs_xxldspn2x/build.log      |
|     rv32imafdc_zve32f_zba_zbb_zbc_zbs_xxldspn3x      |  True  |   11.88    |     build/nmsis_dsp/rv32imafdc_zve32f_zba_zbb_zbc_zbs_xxldspn3x/build.log      |
|                    rv32imafdc_zfh                    |  True  |    8.86    |                    build/nmsis_dsp/rv32imafdc_zfh/build.log                    |
|              rv32imafdc_zfh_zvfh_zve32f              |  True  |   11.35    |              build/nmsis_dsp/rv32imafdc_zfh_zvfh_zve32f/build.log              |
|      rv32imafdc_zfh_zvfh_zve32f_zba_zbb_zbc_zbs      |  True  |   11.01    |      build/nmsis_dsp/rv32imafdc_zfh_zvfh_zve32f_zba_zbb_zbc_zbs/build.log      |
|          rv32imafdc_zfh_zvfh_zve32f_xxldsp           |  True  |   12.09    |          build/nmsis_dsp/rv32imafdc_zfh_zvfh_zve32f_xxldsp/build.log           |
|         rv32imafdc_zfh_zvfh_zve32f_xxldspn1x         |  True  |   11.81    |         build/nmsis_dsp/rv32imafdc_zfh_zvfh_zve32f_xxldspn1x/build.log         |
|  rv32imafdc_zfh_zvfh_zve32f_zba_zbb_zbc_zbs_xxldsp   |  True  |   11.74    |  build/nmsis_dsp/rv32imafdc_zfh_zvfh_zve32f_zba_zbb_zbc_zbs_xxldsp/build.log   |
| rv32imafdc_zfh_zvfh_zve32f_zba_zbb_zbc_zbs_xxldspn1x |  True  |   11.45    | build/nmsis_dsp/rv32imafdc_zfh_zvfh_zve32f_zba_zbb_zbc_zbs_xxldspn1x/build.log |
|                       rv64imac                       |  True  |    7.51    |                       build/nmsis_dsp/rv64imac/build.log                       |
|               rv64imac_zba_zbb_zbc_zbs               |  True  |    7.65    |               build/nmsis_dsp/rv64imac_zba_zbb_zbc_zbs/build.log               |
|                   rv64imac_xxldsp                    |  True  |    8.91    |                   build/nmsis_dsp/rv64imac_xxldsp/build.log                    |
|           rv64imac_zba_zbb_zbc_zbs_xxldsp            |  True  |    9.48    |           build/nmsis_dsp/rv64imac_zba_zbb_zbc_zbs_xxldsp/build.log            |
|                      rv64imafc                       |  True  |    9.28    |                      build/nmsis_dsp/rv64imafc/build.log                       |
|              rv64imafc_zba_zbb_zbc_zbs               |  True  |    8.59    |              build/nmsis_dsp/rv64imafc_zba_zbb_zbc_zbs/build.log               |
|                   rv64imafc_xxldsp                   |  True  |    9.85    |                   build/nmsis_dsp/rv64imafc_xxldsp/build.log                   |
|                   rv64imafc_zve64f                   |  True  |   10.41    |                   build/nmsis_dsp/rv64imafc_zve64f/build.log                   |
|           rv64imafc_zba_zbb_zbc_zbs_xxldsp           |  True  |    9.03    |           build/nmsis_dsp/rv64imafc_zba_zbb_zbc_zbs_xxldsp/build.log           |
|           rv64imafc_zve64f_zba_zbb_zbc_zbs           |  True  |    9.84    |           build/nmsis_dsp/rv64imafc_zve64f_zba_zbb_zbc_zbs/build.log           |
|               rv64imafc_zve64f_xxldsp                |  True  |   12.26    |               build/nmsis_dsp/rv64imafc_zve64f_xxldsp/build.log                |
|       rv64imafc_zve64f_zba_zbb_zbc_zbs_xxldsp        |  True  |   10.43    |       build/nmsis_dsp/rv64imafc_zve64f_zba_zbb_zbc_zbs_xxldsp/build.log        |
|                    rv64imafc_zfh                     |  True  |    7.86    |                    build/nmsis_dsp/rv64imafc_zfh/build.log                     |
|              rv64imafc_zfh_zvfh_zve64f               |  True  |   10.29    |              build/nmsis_dsp/rv64imafc_zfh_zvfh_zve64f/build.log               |
|      rv64imafc_zfh_zvfh_zve64f_zba_zbb_zbc_zbs       |  True  |    9.96    |      build/nmsis_dsp/rv64imafc_zfh_zvfh_zve64f_zba_zbb_zbc_zbs/build.log       |
|           rv64imafc_zfh_zvfh_zve64f_xxldsp           |  True  |   11.14    |           build/nmsis_dsp/rv64imafc_zfh_zvfh_zve64f_xxldsp/build.log           |
|   rv64imafc_zfh_zvfh_zve64f_zba_zbb_zbc_zbs_xxldsp   |  True  |   11.93    |   build/nmsis_dsp/rv64imafc_zfh_zvfh_zve64f_zba_zbb_zbc_zbs_xxldsp/build.log   |
|                      rv64imafdc                      |  True  |    7.49    |                      build/nmsis_dsp/rv64imafdc/build.log                      |
|              rv64imafdc_zba_zbb_zbc_zbs              |  True  |    7.27    |              build/nmsis_dsp/rv64imafdc_zba_zbb_zbc_zbs/build.log              |
|                  rv64imafdc_xxldsp                   |  True  |    8.25    |                  build/nmsis_dsp/rv64imafdc_xxldsp/build.log                   |
|                     rv64imafdcv                      |  True  |   10.53    |                     build/nmsis_dsp/rv64imafdcv/build.log                      |
|          rv64imafdc_zba_zbb_zbc_zbs_xxldsp           |  True  |    8.85    |          build/nmsis_dsp/rv64imafdc_zba_zbb_zbc_zbs_xxldsp/build.log           |
|             rv64imafdcv_zba_zbb_zbc_zbs              |  True  |   10.23    |             build/nmsis_dsp/rv64imafdcv_zba_zbb_zbc_zbs/build.log              |
|                  rv64imafdcv_xxldsp                  |  True  |   11.79    |                  build/nmsis_dsp/rv64imafdcv_xxldsp/build.log                  |
|          rv64imafdcv_zba_zbb_zbc_zbs_xxldsp          |  True  |   10.32    |          build/nmsis_dsp/rv64imafdcv_zba_zbb_zbc_zbs_xxldsp/build.log          |
|                    rv64imafdc_zfh                    |  True  |    7.73    |                    build/nmsis_dsp/rv64imafdc_zfh/build.log                    |
|                 rv64imafdcv_zfh_zvfh                 |  True  |    9.99    |                 build/nmsis_dsp/rv64imafdcv_zfh_zvfh/build.log                 |
|         rv64imafdcv_zfh_zvfh_zba_zbb_zbc_zbs         |  True  |   10.38    |         build/nmsis_dsp/rv64imafdcv_zfh_zvfh_zba_zbb_zbc_zbs/build.log         |
|             rv64imafdcv_zfh_zvfh_xxldsp              |  True  |   12.24    |             build/nmsis_dsp/rv64imafdcv_zfh_zvfh_xxldsp/build.log              |
|     rv64imafdcv_zfh_zvfh_zba_zbb_zbc_zbs_xxldsp      |  True  |   11.83    |     build/nmsis_dsp/rv64imafdcv_zfh_zvfh_zba_zbb_zbc_zbs_xxldsp/build.log      |
+------------------------------------------------------+--------+------------+--------------------------------------------------------------------------------+
Build Library DSP/Source with config Scripts/Build/nmsis_dsp.json, generated into Library/DSP/GCC status: True
All libraries are generated into Library
make: Leaving directory '/home/draco/work/projects/nmsis/NMSIS'

github下载地址: GitHub - Nuclei-Software/NMSIS: Nuclei Microcontroller Software Interface Standard Development Repo

@zhiyong.wang 哈喽,ZCC 4.1.6已经更新,期待更新使用后的反馈。

同时我们正在往NMSIS仓库提交PR: build: Add terapines zcc toolchain support by kaishaoshao · Pull Request #14 · Nuclei-Software/NMSIS · GitHub 使NMSIS中的测试可以支持使用兆松开发的dsp库进行构建。

@zhiyong.wang 哈喽,不知道这边是否有更新工具进行测试,上面提到的问题是否已经修复,非常期待这边的反馈。

升级到ZCC4.1.7,问题已经解决