I have included #ifndef NO_ASN_TIME in the user_setting.h but the error remains (xrtcpsu.h: No such file or directory). I also built a whole new project again and followed all the points you gave me (WOLFCRYPT_ONLY is defined). Unfortunately there is the same error (xrtcpsu.h: No such file or directory).

I'm not quite sure but I think I didn't quite understand the wrapping with #ifndef NO_ASN_TIME: do I wrap this inside the main function to initiate the wolf library? or do I wrap this around #include "xrtcpsu.h"?
at which point in the code is NO_ASN_TIME requested in order not to use xrtcpsu.h?

i have commented out the xrtcpsu.h and the error occurs:

aarch64-none-elf-gcc -DWOLFSSL_USER_SETTINGS -Wall -O0 -g3 -I"C:\Users\thbur\Desktop\vitis_workspace_2\wolfssl-4.7.0" -I"C:\Users\thbur\Desktop\vitis_workspace_2\wolfssl-4.7.0\IDE\XilinxSDK" -IC:/Users/thbur/Desktop/vitis_workspace_2/zynq-7000/export/zynq-7000/sw/zynq-7000/standalone_domain/bspinclude/include -c -fmessage-length=0 -MT"src/IDE/XilinxSDK/wolfssl_example.o" -MMD -MP -MF"src/IDE/XilinxSDK/wolfssl_example.d" -MT"src/IDE/XilinxSDK/wolfssl_example.o" -o "src/IDE/XilinxSDK/wolfssl_example.o" "C:/Users/thbur/Desktop/vitis_workspace_2/wolfssl-4.7.0/IDE/XilinxSDK/wolfssl_example.c"
'Finished building: C:/Users/thbur/Desktop/vitis_workspace_2/wolfssl-4.7.0/IDE/XilinxSDK/wolfssl_example.c'
' '
'Building target: wolfSSL_blank.elf'
'Invoking: ARM v8 gcc linker'
aarch64-none-elf-gcc -LC:/Users/thbur/Desktop/vitis_workspace_2/zynq-7000/export/zynq-7000/sw/zynq-7000/standalone_domain/bsplib/lib -o "wolfSSL_blank.elf"  ./src/wolfcrypt/src/aes.o ./src/wolfcrypt/src/arc4.o ./src/wolfcrypt/src/asm.o ./src/wolfcrypt/src/asn.o ./src/wolfcrypt/src/async.o ./src/wolfcrypt/src/blake2b.o ./src/wolfcrypt/src/blake2s.o ./src/wolfcrypt/src/camellia.o ./src/wolfcrypt/src/chacha.o ./src/wolfcrypt/src/chacha20_poly1305.o ./src/wolfcrypt/src/cmac.o ./src/wolfcrypt/src/coding.o ./src/wolfcrypt/src/compress.o ./src/wolfcrypt/src/cpuid.o ./src/wolfcrypt/src/cryptocb.o ./src/wolfcrypt/src/curve25519.o ./src/wolfcrypt/src/curve448.o ./src/wolfcrypt/src/des3.o ./src/wolfcrypt/src/dh.o ./src/wolfcrypt/src/dsa.o ./src/wolfcrypt/src/ecc.o ./src/wolfcrypt/src/ecc_fp.o ./src/wolfcrypt/src/ed25519.o ./src/wolfcrypt/src/ed448.o ./src/wolfcrypt/src/error.o ./src/wolfcrypt/src/evp.o ./src/wolfcrypt/src/fe_448.o ./src/wolfcrypt/src/fe_low_mem.o ./src/wolfcrypt/src/fe_operations.o ./src/wolfcrypt/src/fips.o ./src/wolfcrypt/src/fips_test.o ./src/wolfcrypt/src/ge_448.o ./src/wolfcrypt/src/ge_low_mem.o ./src/wolfcrypt/src/ge_operations.o ./src/wolfcrypt/src/hash.o ./src/wolfcrypt/src/hc128.o ./src/wolfcrypt/src/hmac.o ./src/wolfcrypt/src/idea.o ./src/wolfcrypt/src/integer.o ./src/wolfcrypt/src/logging.o ./src/wolfcrypt/src/md2.o ./src/wolfcrypt/src/md4.o ./src/wolfcrypt/src/md5.o ./src/wolfcrypt/src/memory.o ./src/wolfcrypt/src/misc.o ./src/wolfcrypt/src/pkcs12.o ./src/wolfcrypt/src/pkcs7.o ./src/wolfcrypt/src/poly1305.o ./src/wolfcrypt/src/pwdbased.o ./src/wolfcrypt/src/rabbit.o ./src/wolfcrypt/src/random.o ./src/wolfcrypt/src/rc2.o ./src/wolfcrypt/src/ripemd.o ./src/wolfcrypt/src/rsa.o ./src/wolfcrypt/src/selftest.o ./src/wolfcrypt/src/sha.o ./src/wolfcrypt/src/sha256.o ./src/wolfcrypt/src/sha3.o ./src/wolfcrypt/src/sha512.o ./src/wolfcrypt/src/signature.o ./src/wolfcrypt/src/sp_arm32.o ./src/wolfcrypt/src/sp_arm64.o ./src/wolfcrypt/src/sp_armthumb.o ./src/wolfcrypt/src/sp_c32.o ./src/wolfcrypt/src/sp_c64.o ./src/wolfcrypt/src/sp_cortexm.o ./src/wolfcrypt/src/sp_dsp32.o ./src/wolfcrypt/src/sp_int.o ./src/wolfcrypt/src/sp_x86_64.o ./src/wolfcrypt/src/srp.o ./src/wolfcrypt/src/tfm.o ./src/wolfcrypt/src/wc_dsp.o ./src/wolfcrypt/src/wc_encrypt.o ./src/wolfcrypt/src/wc_pkcs11.o ./src/wolfcrypt/src/wc_port.o ./src/wolfcrypt/src/wolfcrypt_first.o ./src/wolfcrypt/src/wolfcrypt_last.o ./src/wolfcrypt/src/wolfevent.o ./src/wolfcrypt/src/wolfmath.o  ./src/src/bio.o ./src/src/crl.o ./src/src/internal.o ./src/src/keys.o ./src/src/ocsp.o ./src/src/sniffer.o ./src/src/ssl.o ./src/src/tls.o ./src/src/tls13.o ./src/src/wolfio.o  ./src/IDE/XilinxSDK/wolfssl_example.o   -l-Wl,--start-group,-lxil,-lgcc,-lc,--end-group -l-Wl,--start-group,-lxil,-llwip4,-lgcc,-lc,--end-group
c:/xilinx/vitis/2020.2/gnu/aarch64/nt/aarch64-none/x86_64-oesdk-mingw32/usr/bin/aarch64-xilinx-elf/../../libexec/aarch64-xilinx-elf/gcc/aarch64-xilinx-elf/9.2.0/real-ld.exe: cannot find -l-Wl,--start-group,-lxil,-lgcc,-lc,--end-group
c:/xilinx/vitis/2020.2/gnu/aarch64/nt/aarch64-none/x86_64-oesdk-mingw32/usr/bin/aarch64-xilinx-elf/../../libexec/aarch64-xilinx-elf/gcc/aarch64-xilinx-elf/9.2.0/real-ld.exe: cannot find -l-Wl,--start-group,-lxil,-llwip4,-lgcc,-lc,--end-group
collect2.exe: error: ld returned 1 exit status
make[1]: *** [makefile:42: wolfSSL_blank.elf] Error 1
make: *** [makefile:33: all] Error 2

another question: is it at all possible to use the library without an OS, i.e. as a standalone domain?

kind regards
Tom

Hello David Garske,
Thanks for the feedback and sorry for my late reply.
I defined `NO_ASN_TIME` in user_settings.h but the error was the same.

'Invoking: ARM v8 gcc compiler'
aarch64-none-elf-gcc -DWOLFSSL_USER_SETTINGS -Wall -O0 -g3 -I"C:\Users\thbur\Desktop\wolfssl-4.7.0\IDE\XilinxSDK" -I"C:\Users\thbur\Desktop\wolfssl-4.7.0" -IC:/Users/thbur/Desktop/vitis_workspace/zynq_7000/export/zynq_7000/sw/zynq_7000/standalone_domain/bspinclude/include -c -fmessage-length=0 -MT"src/IDE/XilinxSDK/wolfssl_example.o" -fPIC -mstrict-align -mcpu=generic+crypto -MMD -MP -MF"src/IDE/XilinxSDK/wolfssl_example.d" -MT"src/IDE/XilinxSDK/wolfssl_example.o" -o "src/IDE/XilinxSDK/wolfssl_example.o" "C:/Users/thbur/Desktop/wolfssl-4.7.0/IDE/XilinxSDK/wolfssl_example.c"
C:/Users/thbur/Desktop/wolfssl-4.7.0/IDE/XilinxSDK/wolfssl_example.c:23:10: fatal error: xrtcpsu.h: No such file or directory
   23 | #include "xrtcpsu.h"
      |          ^~~~~~~~~~~
compilation terminated.
make[1]: *** [src/IDE/XilinxSDK/subdir.mk:20: src/IDE/XilinxSDK/wolfssl_example.o] Error 1
make: *** [makefile:53: all] Error 2

I tried to include the necessary driver: I just specified the directory for the necessary RTC driver for the C/C++ compiler. The header file is now found but the next error occurs:

'Invoking: ARM v8 gcc linker'
aarch64-none-elf-gcc -LC:/Users/thbur/Desktop/vitis_workspace/zynq_7000/export/zynq_7000/sw/zynq_7000/standalone_domain/bsplib/lib -LC:/Users/thbur/Desktop/vitis_workspace/zynq_7000/export/zynq_7000/sw/zynq_7000/standalone_domain/bsplib/lib -o "wolf_test.elf"  ./src/wolfcrypt/test/test.o  ./src/wolfcrypt/src/port/xilinx/xil-aesgcm.o ./src/wolfcrypt/src/port/xilinx/xil-sha3.o  ./src/wolfcrypt/src/port/ti/ti-aes.o ./src/wolfcrypt/src/port/ti/ti-ccm.o ./src/wolfcrypt/src/port/ti/ti-des3.o ./src/wolfcrypt/src/port/ti/ti-hash.o  ./src/wolfcrypt/src/port/st/stm32.o ./src/wolfcrypt/src/port/st/stsafe.o  ./src/wolfcrypt/src/port/silabs/silabs_aes.o ./src/wolfcrypt/src/port/silabs/silabs_ecc.o ./src/wolfcrypt/src/port/silabs/silabs_hash.o ./src/wolfcrypt/src/port/silabs/silabs_random.o  ./src/wolfcrypt/src/port/pic32/pic32mz-crypt.o  ./src/wolfcrypt/src/port/nxp/dcp_port.o ./src/wolfcrypt/src/port/nxp/ksdk_port.o  ./src/wolfcrypt/src/port/mynewt/mynewt_port.o  ./src/wolfcrypt/src/port/intel/quickassist.o ./src/wolfcrypt/src/port/intel/quickassist_mem.o ./src/wolfcrypt/src/port/intel/quickassist_sync.o  ./src/wolfcrypt/src/port/devcrypto/devcrypto_aes.o ./src/wolfcrypt/src/port/devcrypto/devcrypto_hash.o ./src/wolfcrypt/src/port/devcrypto/wc_devcrypto.o  ./src/wolfcrypt/src/port/cypress/psoc6_crypto.o  ./src/wolfcrypt/src/port/cavium/cavium_nitrox.o ./src/wolfcrypt/src/port/cavium/cavium_octeon_sync.o  ./src/wolfcrypt/src/port/caam/caam_aes.o ./src/wolfcrypt/src/port/caam/caam_driver.o ./src/wolfcrypt/src/port/caam/caam_init.o ./src/wolfcrypt/src/port/caam/caam_sha.o  ./src/wolfcrypt/src/port/atmel/atmel.o  ./src/wolfcrypt/src/port/arm/armv8-32-curve25519.o ./src/wolfcrypt/src/port/arm/armv8-32-sha512-asm.o ./src/wolfcrypt/src/port/arm/armv8-aes.o ./src/wolfcrypt/src/port/arm/armv8-chacha.o ./src/wolfcrypt/src/port/arm/armv8-curve25519.o ./src/wolfcrypt/src/port/arm/armv8-poly1305.o ./src/wolfcrypt/src/port/arm/armv8-sha256.o ./src/wolfcrypt/src/port/arm/armv8-sha512-asm.o ./src/wolfcrypt/src/port/arm/armv8-sha512.o ./src/wolfcrypt/src/port/arm/cryptoCell.o ./src/wolfcrypt/src/port/arm/cryptoCellHash.o  ./src/wolfcrypt/src/port/af_alg/afalg_aes.o ./src/wolfcrypt/src/port/af_alg/afalg_hash.o ./src/wolfcrypt/src/port/af_alg/wc_afalg.o  ./src/wolfcrypt/src/port/Renesas/renesas_tsip_aes.o ./src/wolfcrypt/src/port/Renesas/renesas_tsip_sha.o ./src/wolfcrypt/src/port/Renesas/renesas_tsip_util.o  ./src/wolfcrypt/src/port/Espressif/esp32_aes.o ./src/wolfcrypt/src/port/Espressif/esp32_mp.o ./src/wolfcrypt/src/port/Espressif/esp32_sha.o ./src/wolfcrypt/src/port/Espressif/esp32_util.o  ./src/wolfcrypt/src/port/nrf51.o  ./src/wolfcrypt/src/aes.o ./src/wolfcrypt/src/arc4.o ./src/wolfcrypt/src/asm.o ./src/wolfcrypt/src/asn.o ./src/wolfcrypt/src/async.o ./src/wolfcrypt/src/blake2b.o ./src/wolfcrypt/src/blake2s.o ./src/wolfcrypt/src/camellia.o ./src/wolfcrypt/src/chacha.o ./src/wolfcrypt/src/chacha20_poly1305.o ./src/wolfcrypt/src/cmac.o ./src/wolfcrypt/src/coding.o ./src/wolfcrypt/src/compress.o ./src/wolfcrypt/src/cpuid.o ./src/wolfcrypt/src/cryptocb.o ./src/wolfcrypt/src/curve25519.o ./src/wolfcrypt/src/curve448.o ./src/wolfcrypt/src/des3.o ./src/wolfcrypt/src/dh.o ./src/wolfcrypt/src/dsa.o ./src/wolfcrypt/src/ecc.o ./src/wolfcrypt/src/ecc_fp.o ./src/wolfcrypt/src/ed25519.o ./src/wolfcrypt/src/ed448.o ./src/wolfcrypt/src/error.o ./src/wolfcrypt/src/evp.o ./src/wolfcrypt/src/fe_448.o ./src/wolfcrypt/src/fe_low_mem.o ./src/wolfcrypt/src/fe_operations.o ./src/wolfcrypt/src/fips.o ./src/wolfcrypt/src/fips_test.o ./src/wolfcrypt/src/ge_448.o ./src/wolfcrypt/src/ge_low_mem.o ./src/wolfcrypt/src/ge_operations.o ./src/wolfcrypt/src/hash.o ./src/wolfcrypt/src/hc128.o ./src/wolfcrypt/src/hmac.o ./src/wolfcrypt/src/idea.o ./src/wolfcrypt/src/integer.o ./src/wolfcrypt/src/logging.o ./src/wolfcrypt/src/md2.o ./src/wolfcrypt/src/md4.o ./src/wolfcrypt/src/md5.o ./src/wolfcrypt/src/memory.o ./src/wolfcrypt/src/misc.o ./src/wolfcrypt/src/pkcs12.o ./src/wolfcrypt/src/pkcs7.o ./src/wolfcrypt/src/poly1305.o ./src/wolfcrypt/src/pwdbased.o ./src/wolfcrypt/src/rabbit.o ./src/wolfcrypt/src/random.o ./src/wolfcrypt/src/rc2.o ./src/wolfcrypt/src/ripemd.o ./src/wolfcrypt/src/rsa.o ./src/wolfcrypt/src/selftest.o ./src/wolfcrypt/src/sha.o ./src/wolfcrypt/src/sha256.o ./src/wolfcrypt/src/sha3.o ./src/wolfcrypt/src/sha512.o ./src/wolfcrypt/src/signature.o ./src/wolfcrypt/src/sp_arm32.o ./src/wolfcrypt/src/sp_arm64.o ./src/wolfcrypt/src/sp_armthumb.o ./src/wolfcrypt/src/sp_c32.o ./src/wolfcrypt/src/sp_c64.o ./src/wolfcrypt/src/sp_cortexm.o ./src/wolfcrypt/src/sp_dsp32.o ./src/wolfcrypt/src/sp_int.o ./src/wolfcrypt/src/sp_x86_64.o ./src/wolfcrypt/src/srp.o ./src/wolfcrypt/src/tfm.o ./src/wolfcrypt/src/wc_dsp.o ./src/wolfcrypt/src/wc_encrypt.o ./src/wolfcrypt/src/wc_pkcs11.o ./src/wolfcrypt/src/wc_port.o ./src/wolfcrypt/src/wolfcrypt_first.o ./src/wolfcrypt/src/wolfcrypt_last.o ./src/wolfcrypt/src/wolfevent.o ./src/wolfcrypt/src/wolfmath.o  ./src/wolfcrypt/benchmark/benchmark.o  ./src/src/bio.o ./src/src/crl.o ./src/src/internal.o ./src/src/keys.o ./src/src/ocsp.o ./src/src/sniffer.o ./src/src/ssl.o ./src/src/tls.o ./src/src/tls13.o ./src/src/wolfio.o  ./src/IDE/XilinxSDK/wolfssl_example.o   -l-Wl,--start-group,-lxil,-lgcc,-lc,--end-group -l-Wl,--start-group,-lxil,-lgcc,-lc,--end-group -l-Wl,--start-group,-lxil,-lmetal,-lgcc,-lc,--end-group -l-Wl,--start-group,-lrsa,-lxil,-lgcc,-lc,--end-group
c:/xilinx/vitis/2020.2/gnu/aarch64/nt/aarch64-none/x86_64-oesdk-mingw32/usr/bin/aarch64-xilinx-elf/../../libexec/aarch64-xilinx-elf/gcc/aarch64-xilinx-elf/9.2.0/real-ld.exe: cannot find -l-Wl,--start-group,-lxil,-lgcc,-lc,--end-group
c:/xilinx/vitis/2020.2/gnu/aarch64/nt/aarch64-none/x86_64-oesdk-mingw32/usr/bin/aarch64-xilinx-elf/../../libexec/aarch64-xilinx-elf/gcc/aarch64-xilinx-elf/9.2.0/real-ld.exe: cannot find -l-Wl,--start-group,-lxil,-lgcc,-lc,--end-group
c:/xilinx/vitis/2020.2/gnu/aarch64/nt/aarch64-none/x86_64-oesdk-mingw32/usr/bin/aarch64-xilinx-elf/../../libexec/aarch64-xilinx-elf/gcc/aarch64-xilinx-elf/9.2.0/real-ld.exe: cannot find -l-Wl,--start-group,-lxil,-lmetal,-lgcc,-lc,--end-group
c:/xilinx/vitis/2020.2/gnu/aarch64/nt/aarch64-none/x86_64-oesdk-mingw32/usr/bin/aarch64-xilinx-elf/../../libexec/aarch64-xilinx-elf/gcc/aarch64-xilinx-elf/9.2.0/real-ld.exe: cannot find -l-Wl,--start-group,-lrsa,-lxil,-lgcc,-lc,--end-group
collect2.exe: error: ld returned 1 exit status
make[1]: *** [makefile:62: wolf_test.elf] Error 1
make: *** [makefile:53: all] Error 2

As it looks, this is not enough :-D. What surprises me here is that the driver is already in the Vitis directory. I can't select or load it via the Vitis UI of the platform (Board Support Package > Modify BSP Settings). I think that vitis automatically lists the required drivers to the created platform project that can be used. So this should be an incorrectly configured hardware that I created via Vivado. I must admit I have too little experience.

I will reply at the given email. Thank you very much for the support!

Many greetings and a good start into the weekend!
Tom

Thank you for the feedback!
Yes, the platform is the ARM Cortex-A9 32 bit microprocessor.
I commented out/disabled (?) the location in the user-settings.h and added the code snippet for the 32 bit platform.

/* Curve25519 / Ed25519 */
//#define HAVE_CURVE25519
//#define HAVE_ED25519 /* ED25519 Requires SHA512 */
/* 25519 assumes UINT128_T is available for Aarch64 */
//#ifndef HAVE___UINT128_T
//#define HAVE___UINT128_T
//#endif

#undef NO_64BIT
#define NO_64BIT

#undef SIZEOF_LONG
#define SIZEOF_LONG 4

#undef SIZEOF_LONG_LONG
#define SIZEOF_LONG_LONG 8

This is the next error:

'Invoking: ARM v7 gcc compiler'
arm-none-eabi-gcc -DWOLFSSL_USER_SETTINGS -Wall -O0 -g3 -I"C:\Users\thbur\Desktop\wolfssl-4.7.0\IDE\XilinxSDK" -I"C:\Users\thbur\Desktop\wolfssl-4.7.0" -c -fmessage-length=0 -MT"src/wolfcrypt/test/test.o" -mcpu=cortex-a9 -mfpu=vfpv3 -mfloat-abi=hard -fPIC -IC:/Users/thbur/Desktop/vitis_workspace/zynq_7000/export/zynq_7000/sw/zynq_7000/standalone_domain/bspinclude/include -MMD -MP -MF"src/wolfcrypt/test/test.d" -MT"src/wolfcrypt/test/test.o" -o "src/wolfcrypt/test/test.o" "C:/Users/thbur/Desktop/wolfssl-4.7.0/wolfcrypt/test/test.c"
In file included from C:\Users\thbur\Desktop\wolfssl-4.7.0/wolfssl/wolfcrypt/ecc.h:66,
                 from C:/Users/thbur/Desktop/wolfssl-4.7.0/wolfcrypt/test/test.c:227:
C:\Users\thbur\Desktop\wolfssl-4.7.0/wolfssl/wolfcrypt/sp_int.h:253:13: error: unknown type name 'sp_uint128'
  253 |     typedef sp_uint128  sp_int_word;
      |             ^~~~~~~~~~
C:\Users\thbur\Desktop\wolfssl-4.7.0/wolfssl/wolfcrypt/sp_int.h:254:14: error: unknown type name 'sp_int128'
  254 |     typedef  sp_int128  sp_int_sword;
      |              ^~~~~~~~~
make[1]: *** [src/wolfcrypt/test/subdir.mk:20: src/wolfcrypt/test/test.o] Error 1
make: *** [makefile:56: all] Error 2

I tracked the error and in the sp_int.h file the SP_WORD_SIZE == 64 is "enabled". and 32 is disabled

#elif SP_WORD_SIZE == 32
    typedef  sp_uint32  sp_int_digit;
    typedef   sp_int32 sp_sint_digit;
    typedef  sp_uint64  sp_int_word;
    typedef   sp_int64  sp_int_sword;

    #define SP_MASK         0xffffffffU
#elif SP_WORD_SIZE == 64
    typedef  sp_uint64  sp_int_digit;
    typedef   sp_int64 sp_sint_digit;
    typedef sp_uint128  sp_int_word;
    typedef  sp_int128  sp_int_sword;

    #define SP_MASK         0xffffffffffffffffUL
#else
    #error Word size not defined
#endif

in line 172-175 (sp_int.h) the SP_WORD_SIZ is "set".

#elif defined(WOLFSSL_SP_ARM64_ASM) || defined(WOLFSSL_SP_ARM64)
    #define SP_WORD_SIZE 64
#elif defined(WOLFSSL_SP_ARM32_ASM) || defined(WOLFSSL_SP_ARM32)
    #define SP_WORD_SIZE 32

so i changed in user-settings.h the line 58

#define WOLFSSL_SP_ARM64_ASM

to

#define WOLFSSL_SP_ARM32

after that it comes again to these error messages:

arm-none-eabi-gcc -DWOLFSSL_USER_SETTINGS -Wall -O0 -g3 -I"C:\Users\thbur\Desktop\wolfssl-4.7.0\IDE\XilinxSDK" -I"C:\Users\thbur\Desktop\wolfssl-4.7.0" -c -fmessage-length=0 -MT"src/wolfcrypt/src/port/arm/armv8-aes.o" -mcpu=cortex-a9 -mfpu=vfpv3 -mfloat-abi=hard -fPIC -IC:/Users/thbur/Desktop/vitis_workspace/zynq_7000/export/zynq_7000/sw/zynq_7000/standalone_domain/bspinclude/include -MMD -MP -MF"src/wolfcrypt/src/port/arm/armv8-aes.d" -MT"src/wolfcrypt/src/port/arm/armv8-aes.o" -o "src/wolfcrypt/src/port/arm/armv8-aes.o" "C:/Users/thbur/Desktop/wolfssl-4.7.0/wolfcrypt/src/port/arm/armv8-aes.c"
C:\Users\thbur\AppData\Local\Temp\ccKo7HeG.s: Assembler messages:
C:\Users\thbur\AppData\Local\Temp\ccKo7HeG.s:575: Error: selected processor does not support `vdup.32 q1,r3' in ARM mode
C:\Users\thbur\AppData\Local\Temp\ccKo7HeG.s:576: Error: selected FPU does not support instruction -- `vmov.i32 q0,#0'
C:\Users\thbur\AppData\Local\Temp\ccKo7HeG.s:577: Error: selected processor does not support `aese.8 q0,q1' in ARM mode
C:\Users\thbur\AppData\Local\Temp\ccKo7HeG.s:682: Error: selected processor does not support `vdup.32 q1,r3' in ARM mode
C:\Users\thbur\AppData\Local\Temp\ccKo7HeG.s:683: Error: selected FPU does not support instruction -- `vmov.i32 q0,#0'
C:\Users\thbur\AppData\Local\Temp\ccKo7HeG.s:684: Error: selected processor does not support `aese.8 q0,q1' in ARM mode
C:\Users\thbur\AppData\Local\Temp\ccKo7HeG.s:819: Error: selected processor does not support `vdup.32 q1,r3' in ARM mode

Do you have another idea/tip for me on what this could be?

A colleague thought that it might also be due to the Vitis version. I work with the latest (Vitis2020.2) and the example is probably on the 2019 version. I will install the older version of Vitis this morning.

I look forward to feedback
Many greetings and thanks again
Tom

-- EDIT --
I noticed something again: I think I selected the wrong toolchain. Under C/C++ Build > Tool Chain Editor I have now selected Xilinx ARM v8 GNU Toolchain.
When I rebuild the project, this error occurs:

'Invoking: ARM v8 gcc compiler'
aarch64-none-elf-gcc -DWOLFSSL_USER_SETTINGS -Wall -O0 -g3 -I"C:\Users\thbur\Desktop\wolfssl-4.7.0\IDE\XilinxSDK" -I"C:\Users\thbur\Desktop\wolfssl-4.7.0" -IC:/Users/thbur/Desktop/vitis_workspace/zynq_7000/export/zynq_7000/sw/zynq_7000/standalone_domain/bspinclude/include -c -fmessage-length=0 -MT"src/wolfcrypt/src/wc_port.o" -fPIC -mstrict-align -mcpu=generic+crypto -IC:/Users/thbur/Desktop/vitis_workspace/zynq_7000/export/zynq_7000/sw/zynq_7000/standalone_domain/bspinclude/include -MMD -MP -MF"src/wolfcrypt/src/wc_port.d" -MT"src/wolfcrypt/src/wc_port.o" -o "src/wolfcrypt/src/wc_port.o" "C:/Users/thbur/Desktop/wolfssl-4.7.0/wolfcrypt/src/wc_port.c"
C:/Users/thbur/Desktop/wolfssl-4.7.0/wolfcrypt/src/wc_port.c:2256:10: fatal error: xrtcpsu.h: No such file or directory
 2256 | #include "xrtcpsu.h"
      |          ^~~~~~~~~~~
compilation terminated.
make[1]: *** [src/wolfcrypt/src/subdir.mk:772: src/wolfcrypt/src/wc_port.o] Error 1
make: *** [makefile:53: all] Error 2

Thanks for the feedback and the example codes.
I think this is still my problem: for me it's not that easy :-D. I tried it again this morning with try and error but I can't get the folder structure like it says in the manual. I have attached a screenshot. I just don't see the failure...

Is it possible to include only the rsa.c/rsa.h file? I want to start "small" and use for example only the algorithms as described in 10.5 PUBLIC KEY CRYPTOGRAPHY.
So is there a setup that includes as few files/folders as possible?

many greetings
Tom

--EDIT--
okay, I have found the error so that the header files are found. The error was with the include paths. However, there is now the problem with the (I think) compiler. I used the zsu102 as plattfrom (as in the manual). Now the following is thrown:

2021-02-26T11:53:12.861404200255-11:53:12 **** Incremental Build of configuration Debug for project make all 
'Building file: ../src/wolfcrypt/test/test.c'
'Invoking: ARM R5 gcc compiler'
armr5-none-eabi-gcc -DARMR5 -DWOLFSSL_USER_SETTINGS -Wall -O0 -g3 -I"C:\Users\thbur\Desktop\wolfssl\IDE\XilinxSDK" -I"C:\Users\thbur\Desktop\wolfssl" -c -fmessage-length=0 -MT"src/wolfcrypt/test/test.o" -mcpu=cortex-r5 -mfloat-abi=hard  -mfpu=vfpv3-d16 -fPIC -IC:/Users/thbur/Desktop/vitis_workspace/standalone_bsp_0/export/standalone_bsp_0/sw/standalone_bsp_0/standalone_domain/bspinclude/include -MMD -MP -MF"src/wolfcrypt/test/test.d" -MT"src/wolfcrypt/test/test.o" -o "src/wolfcrypt/test/test.o" "../src/wolfcrypt/test/test.c"
In file included from C:\Users\thbur\Desktop\wolfssl/wolfssl/wolfcrypt/ecc.h:66,
                 from ../src/wolfcrypt/test/test.c:227:
C:\Users\thbur\Desktop\wolfssl/wolfssl/wolfcrypt/sp_int.h:214:9: error: unable to emulate 'TI'
  214 |         typedef unsigned long sp_uint128   __attribute__ ((mode(TI)));
      |         ^~~~~~~
C:\Users\thbur\Desktop\wolfssl/wolfssl/wolfcrypt/sp_int.h:215:9: error: unable to emulate 'TI'
  215 |         typedef          long  sp_int128   __attribute__ ((mode(TI)));
      |         ^~~~~~~
C:\Users\thbur\Desktop\wolfssl/wolfssl/wolfcrypt/sp_int.h:222:11: error: unable to emulate 'TI'
  222 |           typedef unsigned long    uint128_t __attribute__ ((mode(TI)));
      |           ^~~~~~~
C:\Users\thbur\Desktop\wolfssl/wolfssl/wolfcrypt/sp_int.h:223:11: error: unable to emulate 'TI'
  223 |           typedef          long     int128_t __attribute__ ((mode(TI)));
      |           ^~~~~~~
make: *** [src/wolfcrypt/test/subdir.mk:20: src/wolfcrypt/test/test.o] Error 1

11:53:14 Build Finished (took 1s.873ms)

I would like to use the wolfCrypt library in a project.
First of all:  I am a beginner which means I don't have much experience with the integration of external libraries or the usage of wolfCrypt.

I want to perform benchmark tests for an embedded device. It is the SoC Xilinx Zynq-7000 and I would like to test RSA and ECDSA with different key lengths.

Software used:
- Vivado 2020.2 (.xsa file only PS portion (Zynq) no PL).
- Vitis 2020.2

My problem is that I am a bit overwhelmed by the mass of files. I have tried to run an executable test on the Zynq-7000 with the help of the Introductionhttps://github.com/wolfSSL/wolfssl/blob … README.md.
Unfortunately, it always comes to Erros that the imported files are not found. I know that it probably has to do with the folder structure that the file is not found, but I can't see the forest for the trees...

Attempt 1: Change the name of the directory (wolfssl-4.x.x to wolfssl), change the import source to vitis with create-top-level folder wolfssl. However, again the file is missing.
Attempt 2: Inserting the wolfssl folder into the structure returns again the error that no file was found. However, I can navigate to the file (ctrl+click).

I would also have the following general questions:
- If I want to include/use the library and run it on an embedded device do I have to build the library on my host/developer machine (./configure, make install etc) or did I understand that correctly and that is done by Vitis? So it is cross-compiled that my arm-cortex9 processor understands the program code right?
- do I need an OS to run the test or does it also work with a bare-metal (c)-application?

i have cygwin installed on my host windows machine and have also tried to run wolfssl. But also here errors are thrown:

Do you have a tip for me as a start how I can implement or use only the two algorithms?

I have attached a few screenshots and the last error.log

I am a bit frustrated because I want to test only the two algorithms. But I thought that the tutorial (for me) is an easy start. that does not seem to be the case :-D.  It would be great if you could possibly help me a little. I hope it is not too confusing and you can read out what the problem is.

Many greetings
Tom

P.S. :frustrated about my own inability not about wolfSSL

-- EDIT --
do i understand correctly that the makefile does the automatic install of the library? I.e. depending on the OS (e.g. for linux gcc is used and win mingw32-gcc) the libararys (configured by ./configure --enable...) are installed to the right places (in the OS).
But I actually want to run my c program on the zynq, which uses the library.
Or am I totally on the wrong track and I have to install the library on the windowes computer so that Vitis can find the data at all? But in Vitis I give the compiler (arm-none-eabi-gcc) the folder in which the header files are located.
Now I have the question if I can write a standalone application with the integrated library at all?

--EDIT 2 --
i have a vm set up with ubunutu. ./configure and sudo make install work and the headers of the library can be found under /usr/local/include. Unfortunately vitis throws me this error:
selected processor does not support `vswp.8 d20,d21' in ARM mode
selected processor does not support `vswp.8 d0,d1' in ARM mode
selected processor does not support `vswp.8 d0,d1' in ARM mode
selected processor does not support `vshr.u64 q8,q8,#63' in ARM mode
selected processor does not support `vshr.u64 q7,q7,#63' in ARM mode
selected processor does not support `vshl.u64 q6,q6,#1' in ARM mode
selected processor does not support `vshl.u64 q5,q5,#1' in ARM mode
selected processor does not support `vshl.u64 d16,d16,#32' in ARM mode
selected processor does not support `vrev64.8 q10,q10' in ARM mode
selected processor does not support `vrev64.8 q0,q0' in ARM mode
selected processor does not support `vrev64.8 q0,q0' in ARM mode
selected processor does not support `vmull.p64 q9,d11,d16' in ARM mode
selected processor does not support `vmull.p64 q9,d10,d16' in ARM mode
selected processor does not support `vmull.p64 q7,d15,d14' in ARM mode
selected processor does not support `vmull.p64 q6,d1,d3' in ARM mode
selected processor does not support `vmull.p64 q5,d0,d2' in ARM mode
selected processor does not support `veor.32 q0,q0,q1' in ARM mode
selected processor does not support `veor q7,q6' in ARM mode
selected processor does not support `veor q7,q5' in ARM mode
selected processor does not support `veor q6,q9' in ARM mode
selected processor does not support `veor q10,q5,q6' in ARM mode
selected processor does not support `veor d15,d2,d3' in ARM mode
selected processor does not support `veor d14,d0,d1' in ARM mode
selected processor does not support `veor d13,d14' in ARM mode
selected processor does not support `veor d12,d19' in ARM mode
selected processor does not support `veor d12,d17' in ARM mode
selected processor does not support `veor d12,d15' in ARM mode
selected processor does not support `veor d11,d18' in ARM mode
selected processor does not support `veor d11,d16' in ARM mode
selected processor does not support `veor d11,d14' in ARM mode
selected processor does not support `vdup.32 q1,r3' in ARM mode
selected processor does not support `vdup.32 q1,r3' in ARM mode
selected processor does not support `vdup.32 q1,r3' in ARM mode
selected processor does not support `vdup.32 q1,r3' in ARM mode
selected processor does not support `aesmc.8 q0,q0' in ARM mode
selected processor does not support `aesmc.8 q0,q0' in ARM mode
selected processor does not support `aesmc.8 q0,q0' in ARM mode
selected processor does not support `aesmc.8 q0,q0' in ARM mode
selected processor does not support `aesmc.8 q0,q0' in ARM mode
selected processor does not support `aesmc.8 q0,q0' in ARM mode
selected processor does not support `aesmc.8 q0,q0' in ARM mode
selected processor does not support `aesmc.8 q0,q0' in ARM mode
selected processor does not support `aesmc.8 q0,q0' in ARM mode
selected processor does not support `aesmc.8 q0,q0' in ARM mode
selected processor does not support `aesmc.8 q0,q0' in ARM mode
selected processor does not support `aesmc.8 q0,q0' in ARM mode
selected processor does not support `aesmc.8 q0,q0' in ARM mode
selected processor does not support `aesimc.8 q0,q0' in ARM mode
selected processor does not support `aese.8 q0,q4' in ARM mode
selected processor does not support `aese.8 q0,q4' in ARM mode
selected processor does not support `aese.8 q0,q3' in ARM mode
selected processor does not support `aese.8 q0,q3' in ARM mode
selected processor does not support `aese.8 q0,q2' in ARM mode
selected processor does not support `aese.8 q0,q2' in ARM mode
selected processor does not support `aese.8 q0,q2' in ARM mode
selected processor does not support `aese.8 q0,q2' in ARM mode
selected processor does not support `aese.8 q0,q2' in ARM mode
selected processor does not support `aese.8 q0,q1' in ARM mode
selected processor does not support `aese.8 q0,q1' in ARM mode
selected processor does not support `aese.8 q0,q1' in ARM mode
selected processor does not support `aese.8 q0,q1' in ARM mode
selected processor does not support `aese.8 q0,q1' in ARM mode
selected processor does not support `aese.8 q0,q1' in ARM mode
selected processor does not support `aese.8 q0,q1' in ARM mode
selected processor does not support `aese.8 q0,q1' in ARM mode
selected processor does not support `aese.8 q0,q1' in ARM mode
selected FPU does not support instruction -- `vmov.i32 q0,#0'
selected FPU does not support instruction -- `vmov.i32 q0,#0'
selected FPU does not support instruction -- `vmov.i32 q0,#0'
selected FPU does not support instruction -- `vmov.i32 q0,#0'
selected FPU does not support instruction -- `vmov.i32 d16,0xc2000000'
selected FPU does not support instruction -- `vmov q8,q5'
selected FPU does not support instruction -- `vmov q7,q6'
make[1]: *** [src/wolfcrypt/src/port/arm/subdir.mk:90: src/wolfcrypt/src/port/arm/armv8-aes.o] Fehler 1
make: *** [makefile:52: all] Fehler 2
make: *** [makefile:42: package] Fehler 1