I installed for testing wolfSSL pack version 3.3.9. In Manage Run-Time Environment add to project Simple Client, Resolve Dependencies and make rebuild.
compiler return
compiling client.c... C:\Keil\ARM\PACK\wolfSSL\CyaSSL\3.6.9\wolfssl\wolfssl/ssl.h(950): error: #5: cannot open source input file "sys/uio.h": No such file or directory #include <sys/uio.h> ... C:\Keil\ARM\PACK\wolfSSL\CyaSSL\3.6.9\wolfssl\wolfssl/wolfcrypt/wc_port.h(78): error: #5: cannot open source input file "pthread.h": No such file or directory #include <pthread.h> ...
in ssl.h on page 950 is
#elif !defined(WOLFSSL_MDK_ARM) && !defined(WOLFSSL_IAR_ARM) && !defined(WOLFSSL_PICOTCP) #include <sys/uio.h> #endif
unfortunely folder wolfSSL do not inslude file uio.h and pthread.h Any solution for this error?
Hello Mike,
It might be worth starting another forum post, but let's see.
If you are not going to use an RTOS or middleware and plan to only use the crypt lib's core files, the Pack Installer contains a small example which can be modified. Download wolfSSL::wolfSSL 3.8.0 and Keil:STM32F2xx_DFP 2.6.0, then try modifying one of the examples, like "wolfSSL 2: wolfCrypt test" example for the MCBSTM32F200.
For your goals, you would want to remove the SSL part out of the first example or remove the filesystem/RTOS from the second example, to make a template project.
For "wolfSSL 2: wolfCrypt test"
Go to user_settings.h, and define single_threaded and no_filesystem at the top.
Disable the filesystem and the MCI driver in the Manage RTE window: -CMSIS Driver => MCI -Compiler => I/O => File -FileSystem => Core
Comment out lines in main.c: -cmsis_os.h -osDelay()
Right-click in the Project Window on CMSIS => RTX files, then in Options for Component... disable "Include in target build".
Do this for the FileSystem lib/config files, as well.
Then in config-Crypt.h, change "Cert Storage" to something other than an SD card.
That is all that I see from a simple compile test, but I expect a few more configuration steps are required. The project can serve as an example for other devices. An RTOS can really help organize execution and resource usage; the RTOS it is included, by default, to define and control that for our middleware.
Comparing this template to the current project should resolve the core issues. Let us know how it goes.
Thanks, Zack
Thank you Zack I will give your suggestion a try