mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2025-07-31 19:24:42 +02:00
@@ -4,6 +4,11 @@ This directory contains project files for IAR EWARM IDE. These
|
||||
projects have been set up to generic ARM Cortex-M MPUs.
|
||||
In order to generate project for specific target MPU, take following steps.
|
||||
|
||||
** Note ** regarding Segger Embedded Operating System (embOS)
|
||||
The directory embOS contains projects specifically for embOS on IAR-EWARM.
|
||||
Only use this directory if you are building an IAR Workbench project that
|
||||
uses embOS
|
||||
|
||||
|
||||
Included Project Files
|
||||
-----------------------
|
||||
|
6
IDE/IAR-EWARM/embOS/.gitignore
vendored
Normal file
6
IDE/IAR-EWARM/embOS/.gitignore
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
*.bat
|
||||
*.xcl
|
||||
*.crun
|
||||
*.dbgdt
|
||||
*.dni
|
||||
|
28
IDE/IAR-EWARM/embOS/README
Normal file
28
IDE/IAR-EWARM/embOS/README
Normal file
@@ -0,0 +1,28 @@
|
||||
#-----------------------------------------------------------------------------#
|
||||
wolfSSL + embOS + IAR Workbench
|
||||
#-----------------------------------------------------------------------------#
|
||||
|
||||
#-----------------------------------------------------------------------------#
|
||||
For building the existing examples on a SAMV71_Explained_Ultra with Cortex M7
|
||||
#-----------------------------------------------------------------------------#
|
||||
|
||||
See SAMV71_XULT\<example>\README_<example>
|
||||
|
||||
I.E. SAMV71_XULT\embOS_wolfcrypt_lib_SAMV71_XULT\README_wolfcrypt_lib
|
||||
|
||||
#-----------------------------------------------------------------------------#
|
||||
For building wolfssl on a new CPU that is supported by embOS in IAR Workbench
|
||||
#-----------------------------------------------------------------------------#
|
||||
|
||||
See custom_port\README_custom_port
|
||||
|
||||
#-----------------------------------------------------------------------------#
|
||||
#-----------------------------------------------------------------------------#
|
||||
|
||||
Thank you for choosing wolfSSL if you ever have any questions please contact us!
|
||||
|
||||
support@wolfssl.com
|
||||
info@wolfssl.com
|
||||
|
||||
Copyright © 2016 wolfSSL Inc. All rights reserved.
|
||||
|
14
IDE/IAR-EWARM/embOS/SAMV71_XULT/README_SAMV71
Normal file
14
IDE/IAR-EWARM/embOS/SAMV71_XULT/README_SAMV71
Normal file
@@ -0,0 +1,14 @@
|
||||
Each example project here has it's own README please follow them in detail.
|
||||
|
||||
embOS_wolfcrypt_benchmark_SAMV71_XULT\README_wolfcrypt_benchmark
|
||||
embOS_wolfcrypt_lib_SAMV71_XULT\README_wolfcrypt_lib
|
||||
embOS_wolfcrypt_test_SAMV71_XULT\README_wolfcrypt_test
|
||||
|
||||
|
||||
Thank you for using this guide and we hope this is helpful to you. If you have
|
||||
any suggestions / feedback for us please contact us:
|
||||
support@wolfssl.com
|
||||
info@wolfssl.com
|
||||
|
||||
Copyright © 2016 wolfSSL Inc. All rights reserved.
|
||||
|
@@ -0,0 +1,33 @@
|
||||
/*
|
||||
* A simple example for evaluation purposes written from scratch by wolfSSL Inc
|
||||
*/
|
||||
|
||||
/*###ICF### ****/
|
||||
/*-Editor annotation file-*/
|
||||
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */
|
||||
/*-Specials-*/
|
||||
define symbol __ICFEDIT_intvec_start__ = 0x00400000;
|
||||
/*-Memory Regions-*/
|
||||
define symbol __ICFEDIT_region_RAM_start__ = 0x20400000;
|
||||
define symbol __ICFEDIT_region_RAM_end__ = 0x20459999;
|
||||
define symbol __ICFEDIT_region_ROM_start__ = 0x00400000;
|
||||
define symbol __ICFEDIT_region_ROM_end__ = 0x00599999;
|
||||
/*-Sizes-*/
|
||||
define symbol __ICFEDIT_size_cstack__ = 0x400;
|
||||
define symbol __ICFEDIT_size_heap__ = 0x13000;
|
||||
/**** ###ICF###*/
|
||||
|
||||
define memory mem with size = 4G;
|
||||
define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__];
|
||||
define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__];
|
||||
|
||||
define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { };
|
||||
define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { };
|
||||
|
||||
initialize by copy { readwrite };
|
||||
do not initialize { section .noinit };
|
||||
|
||||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
||||
place in ROM_region { readonly };
|
||||
place in RAM_region { readwrite, block CSTACK, block HEAP };
|
||||
|
@@ -0,0 +1,67 @@
|
||||
#ifndef _EMBOS_USER_SETTINGS_H_
|
||||
#define _EMBOS_USER_SETTINGS_H_
|
||||
|
||||
#undef WOLFSSL_EMBOS
|
||||
#define WOLFSSL_EMBOS
|
||||
|
||||
#undef WOLFCRYPT_ONLY
|
||||
#define WOLFCRYPT_ONLY
|
||||
|
||||
#undef NO_64BIT
|
||||
#define NO_64BIT
|
||||
|
||||
#undef SIZEOF_LONG
|
||||
#define SIZEOF_LONG 4
|
||||
|
||||
#undef SIZEOF_LONG_LONG
|
||||
#define SIZEOF_LONG_LONG 8
|
||||
|
||||
#undef USE_FAST_MATH
|
||||
#define USE_FAST_MATH
|
||||
|
||||
#undef HAVE_CHACHA
|
||||
#define HAVE_CHACHA
|
||||
|
||||
#undef HAVE_POLY1305
|
||||
#define HAVE_POLY1305
|
||||
|
||||
#undef ECC_SHAMIR
|
||||
#define ECC_SHAMIR
|
||||
|
||||
#undef HAVE_ECC
|
||||
#define HAVE_ECC
|
||||
|
||||
#undef ECC_USER_CURVES
|
||||
#define ECC_USER_CURVES
|
||||
|
||||
#undef ECC_ALT_SIZE
|
||||
#define ECC_ALT_SIZE
|
||||
|
||||
#undef FP_MAX_BITS_ECC
|
||||
#define FP_MAX_BITS_ECC 528
|
||||
|
||||
#undef TFM_TIMING_RESISTANT
|
||||
#define TFM_TIMING_RESISTANT
|
||||
|
||||
#undef WOLFSSL_SHA512
|
||||
#define WOLFSSL_SHA512
|
||||
|
||||
#undef WOLFSSL_SHA384
|
||||
#define WOLFSSL_SHA384
|
||||
|
||||
#undef HAVE_AESGCM
|
||||
#define HAVE_AESGCM
|
||||
|
||||
#undef NO_INLINE
|
||||
#define NO_INLINE
|
||||
|
||||
#undef BENCH_EMBEDDED
|
||||
#define BENCH_EMBEDDED
|
||||
|
||||
#undef WOLFSSL_SMALL_STACK
|
||||
#define WOLFSSL_SMALL_STACK
|
||||
|
||||
#undef USE_WOLFSSL_MEMORY
|
||||
#define USE_WOLFSSL_MEMORY
|
||||
|
||||
#endif /* _EMBOS_USER_SETTINGS_H_ */
|
@@ -0,0 +1,43 @@
|
||||
#ifndef _EMBOS_USER_SETTINGS_H_
|
||||
#define _EMBOS_USER_SETTINGS_H_
|
||||
|
||||
#undef WOLFCRYPT_ONLY
|
||||
#define WOLFCRYPT_ONLY
|
||||
|
||||
#undef NO_64BIT
|
||||
#define NO_64BIT
|
||||
|
||||
#undef SIZEOF_LONG
|
||||
#define SIZEOF_LONG 4
|
||||
|
||||
#undef SIZEOF_LONG_LONG
|
||||
#define SIZEOF_LONG_LONG 8
|
||||
|
||||
#undef HAVE_CHACHA
|
||||
#define HAVE_CHACHA
|
||||
|
||||
#undef HAVE_POLY1305
|
||||
#define HAVE_POLY1305
|
||||
|
||||
#undef ECC_SHAMIR
|
||||
#define ECC_SHAMIR
|
||||
|
||||
#undef HAVE_ECC
|
||||
#define HAVE_ECC
|
||||
|
||||
#undef WOLFSSL_SHA512
|
||||
#define WOLFSSL_SHA512
|
||||
|
||||
#undef WOLFSSL_SHA384
|
||||
#define WOLFSSL_SHA384
|
||||
|
||||
#undef HAVE_AESGCM
|
||||
#define HAVE_AESGCM
|
||||
|
||||
#undef NO_INLINE
|
||||
#define NO_INLINE
|
||||
|
||||
#undef BENCH_EMBEDDED
|
||||
#define BENCH_EMBEDDED
|
||||
|
||||
#endif /* _EMBOS_USER_SETTINGS_H_ */
|
@@ -0,0 +1,191 @@
|
||||
#ifndef _EMBOS_USER_SETTINGS_H_
|
||||
#define _EMBOS_USER_SETTINGS_H_
|
||||
|
||||
/* ------------------------------------------------------------------------- */
|
||||
/* Platform */
|
||||
/* ------------------------------------------------------------------------- */
|
||||
#undef NO_INLINE
|
||||
#define NO_INLINE
|
||||
|
||||
#undef SINGLE_THREADED
|
||||
#define SINGLE_THREADED
|
||||
|
||||
#undef WOLFSSL_SMALL_STACK
|
||||
#define WOLFSSL_SMALL_STACK
|
||||
|
||||
|
||||
/* ------------------------------------------------------------------------- */
|
||||
/* Math Configuration */
|
||||
/* ------------------------------------------------------------------------- */
|
||||
#undef NO_64BIT
|
||||
#define NO_64BIT
|
||||
|
||||
#ifndef SIZEOF_LONG
|
||||
#define SIZEOF_LONG 4
|
||||
#endif
|
||||
#ifndef SIZEOF_LONG_LONG
|
||||
#define SIZEOF_LONG_LONG 8
|
||||
#endif
|
||||
|
||||
#undef USE_FAST_MATH
|
||||
#define USE_FAST_MATH
|
||||
|
||||
#ifdef USE_FAST_MATH
|
||||
#undef TFM_TIMING_RESISTANT
|
||||
// #define TFM_TIMING_RESISTANT
|
||||
|
||||
/* Optimizations (TFM_ARM, TFM_ASM or none) */
|
||||
#undef TFM_ARM
|
||||
// #define TFM_ARM
|
||||
|
||||
#undef TFM_ASM
|
||||
//#define TFM_ASM
|
||||
#endif
|
||||
|
||||
/* ------------------------------------------------------------------------- */
|
||||
/* Crypto */
|
||||
/* ------------------------------------------------------------------------- */
|
||||
#undef WOLFCRYPT_ONLY
|
||||
#define WOLFCRYPT_ONLY
|
||||
|
||||
/* ECC */
|
||||
#if 1
|
||||
#undef HAVE_ECC
|
||||
#define HAVE_ECC
|
||||
|
||||
/* Manually define enabled curves */
|
||||
#undef ECC_USER_CURVES
|
||||
#define ECC_USER_CURVES
|
||||
|
||||
#define HAVE_ECC192
|
||||
#define HAVE_ECC224
|
||||
#undef NO_ECC256
|
||||
#define HAVE_ECC384
|
||||
#define HAVE_ECC521
|
||||
|
||||
/* Fixed point cache (speeds repeated operations against same private key) */
|
||||
#undef FP_ECC
|
||||
//#define FP_ECC
|
||||
#ifdef FP_ECC
|
||||
/* Bits / Entries */
|
||||
#undef FP_ENTRIES
|
||||
#define FP_ENTRIES 2
|
||||
#undef FP_LUT
|
||||
#define FP_LUT 4
|
||||
#endif
|
||||
|
||||
/* Optional ECC calculation method */
|
||||
/* Note: doubles heap usage, but slightly faster */
|
||||
#undef ECC_SHAMIR
|
||||
#define ECC_SHAMIR
|
||||
|
||||
/* Reduces heap usage, but slower */
|
||||
#undef ECC_TIMING_RESISTANT
|
||||
#define ECC_TIMING_RESISTANT
|
||||
|
||||
#ifdef USE_FAST_MATH
|
||||
/* Max ECC bits (curve size * 8). ECC521 is (66*8) = 528. */
|
||||
#undef ALT_ECC_SIZE
|
||||
#define ALT_ECC_SIZE
|
||||
#undef FP_MAX_BITS_ECC
|
||||
#define FP_MAX_BITS_ECC 528
|
||||
|
||||
/* Enable TFM optimizations for ECC */
|
||||
#define TFM_ECC192
|
||||
#define TFM_ECC224
|
||||
#define TFM_ECC256
|
||||
#define TFM_ECC384
|
||||
#define TFM_ECC521
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/* RSA */
|
||||
#undef NO_RSA
|
||||
#if 1
|
||||
#ifdef USE_FAST_MATH
|
||||
/* Maximum math bits (Max RSA key bits * 2) */
|
||||
#undef FP_MAX_BITS
|
||||
#define FP_MAX_BITS 4096
|
||||
#endif
|
||||
|
||||
/* half as much memory but twice as slow */
|
||||
#undef RSA_LOW_MEM
|
||||
//#define RSA_LOW_MEM
|
||||
#else
|
||||
#define NO_RSA
|
||||
#endif
|
||||
|
||||
/* AES */
|
||||
#undef NO_AES
|
||||
#if 1
|
||||
#undef HAVE_AESGCM
|
||||
#define HAVE_AESGCM
|
||||
|
||||
/* GCM Method: GCM_SMALL, GCM_WORD32 or GCM_TABLE */
|
||||
#undef GCM_SMALL
|
||||
#define GCM_SMALL
|
||||
#else
|
||||
#define NO_AES
|
||||
#endif
|
||||
|
||||
/* ChaCha20 / Poly1305 */
|
||||
#undef HAVE_CHACHA
|
||||
#undef HAVE_POLY1305
|
||||
#if 1
|
||||
#define HAVE_CHACHA
|
||||
#define HAVE_POLY1305
|
||||
|
||||
/* Needed for Poly1305 */
|
||||
#undef HAVE_ONE_TIME_AUTH
|
||||
#define HAVE_ONE_TIME_AUTH
|
||||
#endif
|
||||
|
||||
|
||||
/* ------------------------------------------------------------------------- */
|
||||
/* Hashing */
|
||||
/* ------------------------------------------------------------------------- */
|
||||
/* Sha */
|
||||
#undef NO_SHA
|
||||
#if 1
|
||||
#else
|
||||
#define NO_SHA
|
||||
#endif
|
||||
|
||||
/* Sha256 */
|
||||
#undef NO_SHA256
|
||||
#if 1
|
||||
/* over twice as small, but 50% slower */
|
||||
//#define USE_SLOW_SHA2
|
||||
#else
|
||||
#define NO_SHA256
|
||||
#endif
|
||||
|
||||
/* Sha512 */
|
||||
#undef WOLFSSL_SHA512
|
||||
#if 1
|
||||
#define WOLFSSL_SHA512
|
||||
|
||||
/* Sha384 */
|
||||
#undef WOLFSSL_SHA384
|
||||
#if 1
|
||||
#define WOLFSSL_SHA384
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/* MD5 */
|
||||
#undef NO_MD5
|
||||
#if 1
|
||||
#define NO_MD5
|
||||
#endif
|
||||
|
||||
/* ------------------------------------------------------------------------- */
|
||||
/* Benchmark / Test */
|
||||
/* ------------------------------------------------------------------------- */
|
||||
/* Use reduced benchmark / test sizes */
|
||||
#undef BENCH_EMBEDDED
|
||||
#define BENCH_EMBEDDED
|
||||
|
||||
#undef USE_CERT_BUFFERS_2048
|
||||
#define USE_CERT_BUFFERS_2048
|
||||
|
||||
#endif /* _EMBOS_USER_SETTINGS_H_ */
|
@@ -0,0 +1,29 @@
|
||||
#include "RTOS.h"
|
||||
#include "BSP.h"
|
||||
#include <stdio.h>
|
||||
#include <wolfcrypt/benchmark/benchmark.h>
|
||||
|
||||
static OS_STACKPTR int WLFSTACK[20000]; /* Stack Size for Task */
|
||||
static OS_TASK WLFTASK; /* Task */
|
||||
|
||||
static void wolfTask(void) {
|
||||
printf("Begin Benchmark Tests\n");
|
||||
benchmark_test(NULL);
|
||||
printf("Benchmark Tests Complete\n");
|
||||
while (1) {
|
||||
BSP_ToggleLED(1);
|
||||
OS_Delay(200);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
int main(void) {
|
||||
OS_IncDI(); /* Disable interrupts */
|
||||
OS_InitKern(); /* Initialize OS */
|
||||
OS_InitHW(); /* Initialize Hardware */
|
||||
BSP_Init(); /* Initialize LED ports */
|
||||
/* You need to create at least one task before calling OS_Start() */
|
||||
OS_CREATETASK(&WLFTASK, "Tests task", wolfTask, 100, WLFSTACK);
|
||||
OS_Start(); /* Start the OS */
|
||||
return 0;
|
||||
}
|
@@ -0,0 +1,70 @@
|
||||
Steps taken to evaluate wolfSSL with the following:
|
||||
|
||||
Required Software for this guide:
|
||||
IAR Embedded Workbench IDE - ARM v7.60.1 (or similar version)
|
||||
embOS v4.16 (for Cortex-M and IAR compiler)
|
||||
wolfssl (latest version)
|
||||
|
||||
Required items (Hardware) for this guide:
|
||||
Atmel SAM V71 Xplained Ultra (Or equivelent Cortex-M Evaluation Board)
|
||||
Note: Must have J-Trace adapter (SWD or SWD + ETM)
|
||||
j-Trace for ARM Cortex-M Processors
|
||||
Note: You can see here: https://www.segger.com/j-trace-for-cortex-m.html
|
||||
Note: You can also purchase other models, we used one from IAR v3.2
|
||||
20 pin target ribbon cable
|
||||
USB Cable with j-Trace adapter end
|
||||
Micro usb cable
|
||||
|
||||
#--!! NOTE !!--#
|
||||
For this guide "**SAMV71_DIR" will signify the directory:
|
||||
C:\<path-to>\wolfssl\IDE\IAR-EWARM\embOS\SAMV71_XULT\
|
||||
|
||||
#----------------------------------------------------------------------------#
|
||||
# Setup file system to evaluate wolfssl in embOS project:
|
||||
# (If you have not already done so)
|
||||
#----------------------------------------------------------------------------#
|
||||
|
||||
1. In wolfssl you will notice the directory:
|
||||
wolfssl\IDE\IAR-EWARM\embOS\extract_trial_here
|
||||
|
||||
2. go to embOS website and download a trial for your platform
|
||||
https://www.segger.com/downloads/embos ->
|
||||
embOS trial for Cortex-M and IAR compiler
|
||||
|
||||
3. Extract (unzip) the download to
|
||||
C:\<path-to>\wolfssl\IDE\IAR-EWARM\embOS\extract_trial_here\
|
||||
(Note: you do not need to do anything further in this directory, the
|
||||
wolfSSL evaluation projects will simply link against it)
|
||||
|
||||
#----------------------------------------------------------------------------#
|
||||
# Evaluate wolfcrypt_benchmarks in embOS project:
|
||||
#----------------------------------------------------------------------------#
|
||||
|
||||
1. In IAR Workbench go to Project -> Add Existing Project
|
||||
a. Browse to **SAMV71_DIR\embOS_wolfcrypt_benchmark_SAMV71_XULT\
|
||||
b. Choose wolfcrypt_benchmark.ewp and click "Open"
|
||||
|
||||
2. Go to Project -> Rebuild All
|
||||
|
||||
3. Connect your SAMV71 Xplained Ultra to your PC with micro USB in the "Debug"
|
||||
port for power and the J-Link hooked up to SWD pins and your PC
|
||||
|
||||
4. Go to Project -> Download and Debug
|
||||
|
||||
5. Once the "Debug" environment has loaded go to: View -> Terminal I/O
|
||||
(This is where the printf's will be directed to)
|
||||
|
||||
6. Hit "Go" (Debug option with 3 right arrows "→→→")
|
||||
|
||||
7. You should observe the benchmark times for the configured algorithms.
|
||||
|
||||
#----------------------------------------------------------------------------#
|
||||
#----------------------------------------------------------------------------#
|
||||
|
||||
Thank you for using this guide and we hope this was helpful to you. If you have
|
||||
any suggestions / feedback for us please contact us:
|
||||
support@wolfssl.com
|
||||
info@wolfssl.com
|
||||
|
||||
Copyright © 2016 wolfSSL Inc. All rights reserved.
|
||||
|
@@ -0,0 +1,39 @@
|
||||
[BREAKPOINTS]
|
||||
ForceImpTypeAny = 0
|
||||
ShowInfoWin = 1
|
||||
EnableFlashBP = 2
|
||||
BPDuringExecution = 0
|
||||
[CFI]
|
||||
CFISize = 0x00
|
||||
CFIAddr = 0x00
|
||||
[CPU]
|
||||
MonModeVTableAddr = 0xFFFFFFFF
|
||||
MonModeDebug = 0
|
||||
MaxNumAPs = 0
|
||||
LowPowerHandlingMode = 0
|
||||
OverrideMemMap = 0
|
||||
AllowSimulation = 1
|
||||
ScriptFile=""
|
||||
[FLASH]
|
||||
CacheExcludeSize = 0x00
|
||||
CacheExcludeAddr = 0x00
|
||||
MinNumBytesFlashDL = 0
|
||||
SkipProgOnCRCMatch = 1
|
||||
VerifyDownload = 1
|
||||
AllowCaching = 1
|
||||
EnableFlashDL = 2
|
||||
Override = 1
|
||||
Device="ATSAMV71Q21"
|
||||
[GENERAL]
|
||||
WorkRAMSize = 0x00
|
||||
WorkRAMAddr = 0x00
|
||||
RAMUsageLimit = 0x00
|
||||
[SWO]
|
||||
SWOLogFile=""
|
||||
[MEM]
|
||||
RdOverrideOrMask = 0x00
|
||||
RdOverrideAndMask = 0xFFFFFFFF
|
||||
RdOverrideAddr = 0xFFFFFFFF
|
||||
WrOverrideOrMask = 0x00
|
||||
WrOverrideAndMask = 0xFFFFFFFF
|
||||
WrOverrideAddr = 0xFFFFFFFF
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,44 @@
|
||||
Steps taken to evaluate wolfSSL with the following:
|
||||
|
||||
Required Software for this guide:
|
||||
IAR Embedded Workbench IDE - ARM v7.60.1 (or similar version)
|
||||
embOS v4.16 (for Cortex-M and IAR compiler)
|
||||
wolfssl (latest version)
|
||||
|
||||
Required items (Hardware) for this guide:
|
||||
Atmel SAM V71 Xplained Ultra (Or equivelent Cortex-M Evaluation Board)
|
||||
Note: Must have J-Trace adapter (SWD or SWD + ETM)
|
||||
j-Trace for ARM Cortex-M Processors
|
||||
Note: You can see here: https://www.segger.com/j-trace-for-cortex-m.html
|
||||
Note: You can also purchase other models, we used one from IAR v3.2
|
||||
20 pin target ribbon cable
|
||||
USB Cable with j-Trace adapter end
|
||||
Micro usb cable
|
||||
|
||||
#--!! NOTE !!--#
|
||||
For this guide "**SAMV71_DIR" will signify the directory:
|
||||
C:\<path-to>\wolfssl\IDE\IAR-EWARM\embOS\SAMV71_XULT\
|
||||
|
||||
|
||||
#----------------------------------------------------------------------------#
|
||||
# Create wolfcrypt_lib.a
|
||||
#----------------------------------------------------------------------------#
|
||||
|
||||
1. Open IAR Workbench -> Project -> Add Existing Project
|
||||
a. Browse to **SAMV71_DIR\embOS_wolfcrypt_lib
|
||||
c. Choose wolfcrypt_lib.ewp and click "Open"
|
||||
|
||||
2. Go to Project -> Rebuild All
|
||||
|
||||
3. Verify the library built, you should now have:
|
||||
**SAMV71_DIR\embOS_wolfcrypt_lib\Debug\Bin\wolfcrypt_lib.a
|
||||
|
||||
#----------------------------------------------------------------------------#
|
||||
#----------------------------------------------------------------------------#
|
||||
|
||||
Thank you for using this guide and we hope this was helpful to you. If you have
|
||||
any suggestions / feedback for us please contact us:
|
||||
support@wolfssl.com
|
||||
info@wolfssl.com
|
||||
|
||||
Copyright © 2016 wolfSSL Inc. All rights reserved.
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,29 @@
|
||||
#include "RTOS.h"
|
||||
#include "BSP.h"
|
||||
#include <stdio.h>
|
||||
#include <wolfcrypt/test/test.h>
|
||||
|
||||
static OS_STACKPTR int WLFSTACK[20000]; /* Stack Size for Task */
|
||||
static OS_TASK WLFTASK; /* Task */
|
||||
|
||||
static void wolfTask(void) {
|
||||
printf("Begin wolfcrypt tests\n");
|
||||
wolfcrypt_test(NULL);
|
||||
printf("wolfcrypt tests complete.\n");
|
||||
while (1) {
|
||||
BSP_ToggleLED(1);
|
||||
OS_Delay(200);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
int main(void) {
|
||||
OS_IncDI(); /* Disable interrupts */
|
||||
OS_InitKern(); /* Initialize OS */
|
||||
OS_InitHW(); /* Initialize Hardware for OS */
|
||||
BSP_Init(); /* Initialize LED ports */
|
||||
/* You need to create at least one task before calling OS_Start() */
|
||||
OS_CREATETASK(&WLFTASK, "Tests task", wolfTask, 100, WLFSTACK);
|
||||
OS_Start(); /* Start the OS */
|
||||
return 0;
|
||||
}
|
@@ -0,0 +1,69 @@
|
||||
Steps taken to evaluate wolfSSL with the following:
|
||||
|
||||
Required Software for this guide:
|
||||
IAR Embedded Workbench IDE - ARM v7.60.1 (or similar version)
|
||||
embOS v4.16 (for Cortex-M and IAR compiler)
|
||||
wolfssl (latest version)
|
||||
|
||||
Required items (Hardware) for this guide:
|
||||
Atmel SAM V71 Xplained Ultra (Or equivelent Cortex-M Evaluation Board)
|
||||
Note: Must have J-Trace adapter (SWD or SWD + ETM)
|
||||
j-Trace for ARM Cortex-M Processors
|
||||
Note: You can see here: https://www.segger.com/j-trace-for-cortex-m.html
|
||||
Note: You can also purchase other models, we used one from IAR v3.2
|
||||
20 pin target ribbon cable
|
||||
USB Cable with j-Trace adapter end
|
||||
Micro usb cable
|
||||
|
||||
#--!! NOTE !!--#
|
||||
For this guide "**SAMV71_DIR" will signify the directory:
|
||||
C:\<path-to>\wolfssl\IDE\IAR-EWARM\embOS\SAMV71_XULT\
|
||||
|
||||
#----------------------------------------------------------------------------#
|
||||
# Setup file system to evaluate wolfssl in embOS project:
|
||||
# (If you have not already done so)
|
||||
#----------------------------------------------------------------------------#
|
||||
|
||||
1. In wolfssl you will notice the directory:
|
||||
wolfssl\IDE\IAR-EWARM\embOS\extract_trial_here
|
||||
|
||||
2. go to embOS website and download a trial for your platform
|
||||
https://www.segger.com/downloads/embos ->
|
||||
embOS trial for Cortex-M and IAR compiler
|
||||
|
||||
3. Extract (unzip) the download to
|
||||
C:\<path-to>\wolfssl\IDE\IAR-EWARM\embOS\extract_trial_here\
|
||||
(Note: you do not need to do anything further in this directory, the
|
||||
wolfSSL evaluation projects will simply link against it)
|
||||
|
||||
#----------------------------------------------------------------------------#
|
||||
# Evaluate wolfcrypt_tests in embOS project:
|
||||
#----------------------------------------------------------------------------#
|
||||
|
||||
1. In IAR Workbench go to Project -> Add Existing Project
|
||||
a. Browse to **SAMV71_DIR\embOS_wolfcrypt_test_SAMV71_XULT\
|
||||
b. Choose wolfcrypt_test.ewp and click "Open"
|
||||
|
||||
2. Go to Project -> Rebuild All
|
||||
|
||||
3. Connect your SAMV71 Xplained Ultra to your PC with micro USB in the "Debug"
|
||||
port for power and the J-Link hooked up to SWD pins and your PC
|
||||
|
||||
4. Go to Project -> Download and Debug
|
||||
|
||||
5. Once the "Debug" environment has loaded go to: View -> Terminal I/O
|
||||
(This is where the printf's will be directed to)
|
||||
|
||||
6. Hit "Go" (Debug option with 3 right arrows "→→→")
|
||||
|
||||
7. You should observe the tests run and pass.
|
||||
|
||||
#----------------------------------------------------------------------------#
|
||||
#----------------------------------------------------------------------------#
|
||||
|
||||
Thank you for using this guide and we hope this was helpful to you. If you have
|
||||
any suggestions / feedback for us please contact us:
|
||||
support@wolfssl.com
|
||||
info@wolfssl.com
|
||||
|
||||
Copyright © 2016 wolfSSL Inc. All rights reserved.
|
@@ -0,0 +1,39 @@
|
||||
[BREAKPOINTS]
|
||||
ForceImpTypeAny = 0
|
||||
ShowInfoWin = 1
|
||||
EnableFlashBP = 2
|
||||
BPDuringExecution = 0
|
||||
[CFI]
|
||||
CFISize = 0x00
|
||||
CFIAddr = 0x00
|
||||
[CPU]
|
||||
MonModeVTableAddr = 0xFFFFFFFF
|
||||
MonModeDebug = 0
|
||||
MaxNumAPs = 0
|
||||
LowPowerHandlingMode = 0
|
||||
OverrideMemMap = 0
|
||||
AllowSimulation = 1
|
||||
ScriptFile=""
|
||||
[FLASH]
|
||||
CacheExcludeSize = 0x00
|
||||
CacheExcludeAddr = 0x00
|
||||
MinNumBytesFlashDL = 0
|
||||
SkipProgOnCRCMatch = 1
|
||||
VerifyDownload = 1
|
||||
AllowCaching = 1
|
||||
EnableFlashDL = 2
|
||||
Override = 1
|
||||
Device="ATSAMV71Q21"
|
||||
[GENERAL]
|
||||
WorkRAMSize = 0x00
|
||||
WorkRAMAddr = 0x00
|
||||
RAMUsageLimit = 0x00
|
||||
[SWO]
|
||||
SWOLogFile=""
|
||||
[MEM]
|
||||
RdOverrideOrMask = 0x00
|
||||
RdOverrideAndMask = 0xFFFFFFFF
|
||||
RdOverrideAddr = 0xFFFFFFFF
|
||||
WrOverrideOrMask = 0x00
|
||||
WrOverrideAndMask = 0xFFFFFFFF
|
||||
WrOverrideAddr = 0xFFFFFFFF
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
222
IDE/IAR-EWARM/embOS/custom_port/README_custom_port
Normal file
222
IDE/IAR-EWARM/embOS/custom_port/README_custom_port
Normal file
@@ -0,0 +1,222 @@
|
||||
Steps taken to evaluate wolfSSL with the following:
|
||||
|
||||
Required Software for this guide:
|
||||
IAR Embedded Workbench IDE - ARM v7.60.1 (or similar version)
|
||||
embOS (version that supports your CPU)
|
||||
wolfssl (latest version)
|
||||
|
||||
#----------------------------------------------------------------------------#
|
||||
# SECTION 1:
|
||||
# Setting up the file system
|
||||
#----------------------------------------------------------------------------#
|
||||
|
||||
1. Browse to wolfssl/IDE/IAR-EWARM/embOS/
|
||||
a. copy/paste the directory custom_port and re-name it to the CPU
|
||||
you intend to target. For now we will just use the term CUSTOM_DIR
|
||||
to signify a copy of the custom_port directory
|
||||
|
||||
#----------------------------------------------------------------------------#
|
||||
# SECTION 2:
|
||||
# Create wolfcrypt_lib.a
|
||||
#----------------------------------------------------------------------------#
|
||||
|
||||
1. Open IAR Workbench -> Project -> Create New Project -> Empty Project
|
||||
c. Browse to CUSTOM_DIR/wolfcrypt_lib_custom_port/ (from section 1)
|
||||
d. Called it "wolfcrypt_lib" and hit "Save"
|
||||
|
||||
2. Go to Project -> Add Group...
|
||||
a. call group wolfcrypt_sources
|
||||
|
||||
3. Right click on wolfcrypt_sources group -> Add -> Add Files...
|
||||
|
||||
4. Browse to wolfssl/wolfcrypt/src directory and select the following files:
|
||||
|
||||
#---------------------------------------------#
|
||||
# aes.c memory.c #
|
||||
# asn.c misc.c #
|
||||
# chacha.c poly1305.c #
|
||||
# chacha20_poly1305.c pwdbased.c #
|
||||
# coding.c rabbit.c #
|
||||
# des3.c random.c #
|
||||
# dh.c rsa.c #
|
||||
# dsa.c sha.c #
|
||||
# ecc.c sha256.c #
|
||||
# hash.c sha512.c #
|
||||
# hmac.c tfm.c #
|
||||
# md4.c wc_encrypt.c #
|
||||
# md5.c wc_port.c #
|
||||
#---------------------------------------------#
|
||||
|
||||
5. Once those are all added go to
|
||||
Project -> Properties C/C++ Compiler -> Preprocessor (Tab)
|
||||
a. In the field "Defined symbols:" add WOLFSSL_USER_SETTINGS
|
||||
b. In the field "Additional include directories:"
|
||||
put in this line: $PROJ_DIR$\..\..\..\..\..\
|
||||
and this line: $PROJ_DIR$\..\custom_port_user_settings
|
||||
#---------------------------------------------
|
||||
#(Or alternately you can use the browse option to navigate to
|
||||
#C:\<path-to>\wolfssl and
|
||||
#C:\<path-to>\wolfssl\IDE\IAR-EWARM\CUSTOM_DIR\
|
||||
# custom_port_user_settings\)
|
||||
#(If you ever need to change or customize your build settings this
|
||||
#is the file that should be modified:
|
||||
#CUSTOM_DIR\custom_port_user_settings\user_settings.h)
|
||||
#---------------------------------------------
|
||||
|
||||
7. In Project -> Options -> General Options -> Output (Tab)
|
||||
Check the option for "Library" instead of "Executable"
|
||||
Click "OK"
|
||||
|
||||
8. Go to Project -> Rebuild all (The library should build)
|
||||
|
||||
9. Confirm the library is now located here:
|
||||
C:\<path to>\wolfssl\IDE\IAR-EWARM\CUSTOM_DIR\wolfcrypt_lib_custom_port\
|
||||
Debug\Exe\wolfcrypt_lib.a
|
||||
|
||||
We are now set to link to this library in the evaluation project
|
||||
|
||||
#----------------------------------------------------------------------------#
|
||||
# SECTION 3:
|
||||
# Evaluate wolfcrypt tests in embOS project:
|
||||
#----------------------------------------------------------------------------#
|
||||
|
||||
|
||||
1. go to embOS website and download a trial for your platform
|
||||
https://www.segger.com/downloads/embos ->
|
||||
embOS trial for Cortex-M and IAR compiler
|
||||
|
||||
2. After downloading, extract the zip to:
|
||||
C:\<path-to>\wolfssl\IDE\IAR-EWARM\embOS\extract_trial_here\
|
||||
|
||||
3. Open IAR Workbench -> Project -> Create New Project -> Empty Project
|
||||
c. Browse to CUSTOM_DIR\wolfcrypt_test_custom_port\ (from section 1)
|
||||
d. Called it "wolfcrypt_test" and hit "Save"
|
||||
|
||||
4. Go to Project -> Options -> C/C++ Compiler -> Preprocessor (Tab)
|
||||
a. Add these to the field "Defined symbols:"
|
||||
DEBUG=1
|
||||
__CPU-YOU-ARE-TARGETING__ (For example: __SAMV71Q21__)
|
||||
WOLFSSL_USER_SETTINGS
|
||||
|
||||
b. Now in the field "Additional include directories:"
|
||||
$PROJ_DIR$\..\..\..\..\..\
|
||||
$PROJ_DIR$\..\custom_port_user_settings
|
||||
#---------------------------------------------
|
||||
#(Or alternately you can use the browse option to navigate to
|
||||
#C:\<path-to>\wolfssl and
|
||||
#C:\<path-to>\wolfssl\IDE\IAR-EWARM\CUSTOM_DIR\
|
||||
# custom_port_user_settings\)
|
||||
#---------------------------------------------
|
||||
|
||||
5. Go to Project -> Options -> Linker -> Library (Tab)
|
||||
Add to the field "Additonal libraries:"
|
||||
$PROJ_DIR$\..\embOS_wolfcrypt_lib_SAMV71_XULT\Debug\Exe\wolfcrypt_lib.a
|
||||
$PROJ_DIR$\..\..\extract_trial_here\Start\Lib\os7m_tlv_dp.a
|
||||
|
||||
6. The main project file is located here:
|
||||
CUSTOM_DIR\wolfcrypt_test_custom_port\Application\runWolfcryptTests.c
|
||||
|
||||
7. Right Click the project name: Add -> Add Group
|
||||
add a group called "Application"
|
||||
8. Right Click that group and Add -> Add files
|
||||
browse to the main project file in step 5 above
|
||||
|
||||
9. Create Groups and add files for your CPU's support. These will be .c
|
||||
files found in the extracted directory in two places:
|
||||
|
||||
extract_trial_here\Start\BoardSupport\<vendor>\<CPU>\DeviceSupport
|
||||
extract_trial_here\Start\BoardSupport\<vendor>\<CPU>\Setup
|
||||
#---------------------------------------------
|
||||
# For example:
|
||||
# extract_trial_here\Start\BoardSupport\Atmel\SAMV71_XPlainedUltra\
|
||||
# DeviceSupport
|
||||
# extract_trial_here\Start\BoardSupport\Atmel\SAMV71_XPlainedUltra\Setup
|
||||
#---------------------------------------------
|
||||
|
||||
10. To get Logging working for seeing test results:
|
||||
a. Go to Project -> Options -> General Options -> Library Configuration
|
||||
b. In the field "Library low-level interface implementation"
|
||||
Check the radio button for Semihosted
|
||||
Then in the inner field marked "stdout/stderr"
|
||||
Check the radio button for "Via semihosting" and click "OK"
|
||||
|
||||
11. Now we're ready to build and debug the project.
|
||||
a. Project -> Options -> Debugger
|
||||
In the field marked "Driver" Select drop-down and choose J-Link/J-Trace
|
||||
Click "OK"
|
||||
b. Project -> Rebuild All
|
||||
c. Connect your Cortex-M evaluation board to j-Trace and j-Trace to PC
|
||||
d. Connect the micro-USB to the debug port of the Cortex-M and PC for power
|
||||
e. Project -> Download and Debug
|
||||
|
||||
12. Once the Debug environment spawns go to View -> Terminal I/O
|
||||
This is where the "printf" to stdout will be directed
|
||||
|
||||
13. In the Debug Menu bar look for the little square with three arrows pointing
|
||||
to the right. When you mouse over it should say "GO"
|
||||
Click this option and in the Terminal I/O Window you should see something
|
||||
like this (depends on which functionality you set in user_settings.h)
|
||||
|
||||
SEE NOTE 1 BELOW IF YOU OBSERVE AN ERROR (-40) IN RSA TEST
|
||||
|
||||
Begin wolfcrypt tests
|
||||
MD5 test passed!
|
||||
MD4 test passed!
|
||||
SHA test passed!
|
||||
SHA-256 test passed!
|
||||
SHA-384 test passed!
|
||||
SHA-512 test passed!
|
||||
HMAC-MD5 test passed!
|
||||
HMAC-SHA test passed!
|
||||
HMAC-SHA256 test passed!
|
||||
HMAC-SHA384 test passed!
|
||||
HMAC-SHA512 test passed!
|
||||
GMAC test passed!
|
||||
HC-128 test passed!
|
||||
Rabbit test passed!
|
||||
Chacha test passed!
|
||||
POLY1305 test passed!
|
||||
ChaCha20-Poly1305 AEAD test passed!
|
||||
DES test passed!
|
||||
DES3 test passed!
|
||||
AES test passed!
|
||||
AES-GCM test passed!
|
||||
RANDOM test passed!
|
||||
RSA test passed!
|
||||
DH test passed!
|
||||
DSA test passed!
|
||||
PWDBASED test passed!
|
||||
ECC test passed!
|
||||
wolfcrypt tests complete.
|
||||
|
||||
#----------------------------------------------------------------------------#
|
||||
# SECTION 4:
|
||||
# Evaluate benchmark tests in embOS project:
|
||||
#----------------------------------------------------------------------------#
|
||||
|
||||
Follow the steps from section 3 only using
|
||||
CUSTOM_DIR\wolfcrypt_benchmark_custom_port\
|
||||
|
||||
#----------------------------------------------------------------------------#
|
||||
#----------------------------------------------------------------------------#
|
||||
|
||||
Thank you for using this guide and we hope this was helpful to you. If you have
|
||||
any suggestions / feedback for us please contact us:
|
||||
support@wolfssl.com
|
||||
info@wolfssl.com
|
||||
|
||||
/* --------------------------------------------------------------------------*/
|
||||
#### NOTE 1: ####
|
||||
|
||||
If you are working off of a base example project and you observe memory errors
|
||||
when malloc is called, make sure that the linker script has set the HEAP high
|
||||
enough.
|
||||
Project -> Options -> Linker -> (Config Tab) -> Linker configuration file
|
||||
|
||||
Check this file for __size_heap__ it is typically set to 0x200 by default.
|
||||
There are places in wolfSSL that malloc as much as 4k at a time and peak usage
|
||||
can be as high as 29K if using full functionality.
|
||||
/* --------------------------------------------------------------------------*/
|
||||
|
||||
Copyright © 2016 wolfSSL Inc. All rights reserved.
|
||||
|
@@ -0,0 +1,33 @@
|
||||
/*
|
||||
* A simple example for evaluation purposes written from scratch by wolfSSL Inc
|
||||
*/
|
||||
|
||||
/*###ICF### ****/
|
||||
/*-Editor annotation file-*/
|
||||
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */
|
||||
/*-Specials-*/
|
||||
define symbol __ICFEDIT_intvec_start__ = 0x00400000;
|
||||
/*-Memory Regions-*/
|
||||
define symbol __ICFEDIT_region_RAM_start__ = 0x20400000;
|
||||
define symbol __ICFEDIT_region_RAM_end__ = 0x20459999;
|
||||
define symbol __ICFEDIT_region_ROM_start__ = 0x00400000;
|
||||
define symbol __ICFEDIT_region_ROM_end__ = 0x00599999;
|
||||
/*-Sizes-*/
|
||||
define symbol __ICFEDIT_size_cstack__ = 0x400;
|
||||
define symbol __ICFEDIT_size_heap__ = 0x13000;
|
||||
/**** ###ICF###*/
|
||||
|
||||
define memory mem with size = 4G;
|
||||
define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__];
|
||||
define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__];
|
||||
|
||||
define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { };
|
||||
define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { };
|
||||
|
||||
initialize by copy { readwrite };
|
||||
do not initialize { section .noinit };
|
||||
|
||||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
||||
place in ROM_region { readonly };
|
||||
place in RAM_region { readwrite, block CSTACK, block HEAP };
|
||||
|
@@ -0,0 +1,64 @@
|
||||
#ifndef _EMBOS_USER_SETTINGS_H_
|
||||
#define _EMBOS_USER_SETTINGS_H_
|
||||
|
||||
#undef WOLFSSL_EMBOS
|
||||
#define WOLFSSL_EMBOS
|
||||
|
||||
#undef WOLFCRYPT_ONLY
|
||||
#define WOLFCRYPT_ONLY
|
||||
|
||||
#undef NO_64BIT
|
||||
#define NO_64BIT
|
||||
|
||||
#undef SIZEOF_LONG
|
||||
#define SIZEOF_LONG 4
|
||||
|
||||
#undef SIZEOF_LONG_LONG
|
||||
#define SIZEOF_LONG_LONG 8
|
||||
|
||||
#undef HAVE_CHACHA
|
||||
#define HAVE_CHACHA
|
||||
|
||||
#undef HAVE_POLY1305
|
||||
#define HAVE_POLY1305
|
||||
|
||||
#undef ECC_SHAMIR
|
||||
#define ECC_SHAMIR
|
||||
|
||||
#undef HAVE_ECC
|
||||
#define HAVE_ECC
|
||||
|
||||
#undef ECC_USER_CURVES
|
||||
#define ECC_USER_CURVES
|
||||
|
||||
#undef ECC_ALT_SIZE
|
||||
#define ECC_ALT_SIZE
|
||||
|
||||
#undef FP_MAX_BITS_ECC
|
||||
#define FP_MAX_BITS_ECC 528
|
||||
|
||||
#undef TFM_TIMING_RESISTANT
|
||||
#define TFM_TIMING_RESISTANT
|
||||
|
||||
#undef WOLFSSL_SHA512
|
||||
#define WOLFSSL_SHA512
|
||||
|
||||
#undef WOLFSSL_SHA384
|
||||
#define WOLFSSL_SHA384
|
||||
|
||||
#undef HAVE_AESGCM
|
||||
#define HAVE_AESGCM
|
||||
|
||||
#undef NO_INLINE
|
||||
#define NO_INLINE
|
||||
|
||||
#undef BENCH_EMBEDDED
|
||||
#define BENCH_EMBEDDED
|
||||
|
||||
#undef WOLFSSL_SMALL_STACK
|
||||
#define WOLFSSL_SMALL_STACK
|
||||
|
||||
#undef USE_WOLFSSL_MEMORY
|
||||
#define USE_WOLFSSL_MEMORY
|
||||
|
||||
#endif /* _EMBOS_USER_SETTINGS_H_ */
|
@@ -0,0 +1,29 @@
|
||||
#include "RTOS.h"
|
||||
#include "BSP.h"
|
||||
#include <stdio.h>
|
||||
#include <wolfcrypt/benchmark/benchmark.h>
|
||||
|
||||
static OS_STACKPTR int WLFSTACK[20000]; /* Stack Size for Task */
|
||||
static OS_TASK WLFTASK; /* Task */
|
||||
|
||||
static void wolfTask(void) {
|
||||
printf("Begin benchmark tests\n");
|
||||
wolfcrypt_test(NULL);
|
||||
printf("benchmark tests complete.\n");
|
||||
while (1) {
|
||||
BSP_ToggleLED(1);
|
||||
OS_Delay(200);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
int main(void) {
|
||||
OS_IncDI(); /* Disable interrupts */
|
||||
OS_InitKern(); /* Initialize OS */
|
||||
OS_InitHW(); /* Initialize Hardware */
|
||||
BSP_Init(); /* Initialize LED ports */
|
||||
/* You need to create at least one task before calling OS_Start() */
|
||||
OS_CREATETASK(&WLFTASK, "Tests task", wolfTask, 100, WLFSTACK);
|
||||
OS_Start(); /* Start the OS */
|
||||
return 0;
|
||||
}
|
@@ -0,0 +1,30 @@
|
||||
#include "RTOS.h"
|
||||
#include "BSP.h"
|
||||
#include <stdio.h>
|
||||
#include <wolfcrypt/test/test.h>
|
||||
|
||||
static OS_STACKPTR int WLFSTACK[20000]; /* Stack Size for Task */
|
||||
static OS_TASK WLFTASK; /* Task */
|
||||
|
||||
static void wolfTask(void) {
|
||||
printf("Begin wolfcrypt tests\n");
|
||||
wolfcrypt_test(NULL);
|
||||
printf("wolfcrypt tests complete.\n");
|
||||
while (1) {
|
||||
BSP_ToggleLED(1);
|
||||
OS_Delay(200);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
int main(void) {
|
||||
OS_IncDI(); /* Disable interrupts */
|
||||
OS_InitKern(); /* Initialize OS */
|
||||
OS_InitHW(); /* Initialize Hardware for OS */
|
||||
BSP_Init(); /* Initialize LED ports */
|
||||
/* You need to create at least one task before calling OS_Start() */
|
||||
OS_CREATETASK(&WLFTASK, "Tests task", wolfTask, 100, WLFSTACK);
|
||||
OS_Start(); /* Start the OS */
|
||||
return 0;
|
||||
}
|
||||
|
@@ -0,0 +1,32 @@
|
||||
An empty directory used when extracting segger trial.
|
||||
|
||||
|
||||
|
||||
*** For SAMV71_XULT project ***
|
||||
This trial can be found here:
|
||||
|
||||
https://www.segger.com/downloads/embos
|
||||
|
||||
Look for the Download for IAR compiler and Cortex M
|
||||
|
||||
The title should be: "embOS trial for Cortex-M and IAR compiler"
|
||||
|
||||
|
||||
|
||||
*** For custom port ***
|
||||
The trial will still be located at: https://www.segger.com/downloads/embos
|
||||
|
||||
However you will need to identify and download the correct project for your
|
||||
target CPU
|
||||
|
||||
|
||||
|
||||
|
||||
Thank you for using this guide and we hope this is helpful to you. If you have
|
||||
any suggestions / feedback for us please contact us:
|
||||
support@wolfssl.com
|
||||
info@wolfssl.com
|
||||
|
||||
Copyright © 2016 wolfSSL Inc. All rights reserved.
|
||||
|
||||
|
@@ -1409,7 +1409,7 @@ void bench_dh(void)
|
||||
int i ;
|
||||
size_t bytes;
|
||||
word32 idx = 0, pubSz, privSz = 0, pubSz2, privSz2, agreeSz;
|
||||
const byte* tmp;
|
||||
const byte* tmp = NULL;
|
||||
|
||||
byte pub[256]; /* for 2048 bit */
|
||||
byte pub2[256]; /* for 2048 bit */
|
||||
@@ -2108,6 +2108,22 @@ void bench_ed25519KeySign(void)
|
||||
return (double)tv.SECONDS + (double)tv.MILLISECONDS / 1000;
|
||||
}
|
||||
|
||||
#elif defined(WOLFSSL_EMBOS)
|
||||
|
||||
#include "RTOS.h"
|
||||
|
||||
double current_time(int reset)
|
||||
{
|
||||
double time_now;
|
||||
double current_s = OS_GetTime() / 1000.0;
|
||||
double current_us = OS_GetTime_us() / 1000000.0;
|
||||
time_now = (double)( current_s + current_us);
|
||||
|
||||
(void) reset;
|
||||
|
||||
return time_now;
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
#include <sys/time.h>
|
||||
|
@@ -145,7 +145,8 @@ int wc_FreeRng(WC_RNG* rng)
|
||||
#else
|
||||
#if !defined(NO_DEV_RANDOM) && !defined(CUSTOM_RAND_GENERATE) && \
|
||||
!defined(WOLFSSL_GENSEED_FORTEST) && !defined(WOLFSSL_MDK_ARM) && \
|
||||
!defined(WOLFSSL_IAR_ARM) && !defined(WOLFSSL_ROWLEY_ARM)
|
||||
!defined(WOLFSSL_IAR_ARM) && !defined(WOLFSSL_ROWLEY_ARM) && \
|
||||
!defined(WOLFSSL_EMBOS)
|
||||
#include <fcntl.h>
|
||||
#ifndef EBSNET
|
||||
#include <unistd.h>
|
||||
@@ -1361,7 +1362,8 @@ int wc_GenerateSeed(OS_Seed* os, byte* output, word32 sz)
|
||||
|
||||
return 0;
|
||||
}
|
||||
#elif defined(WOLFSSL_LPC43xx) || defined(WOLFSSL_STM32F2xx) || defined(MBED)
|
||||
#elif defined(WOLFSSL_LPC43xx) || defined(WOLFSSL_STM32F2xx) || defined(MBED) \
|
||||
|| defined(WOLFSSL_EMBOS)
|
||||
|
||||
#warning "write a real random seed!!!!, just for testing now"
|
||||
|
||||
|
@@ -976,7 +976,8 @@ WOLFSSL_API int wolfSSL_make_eap_keys(WOLFSSL*, void* key, unsigned int len,
|
||||
#include <sys/types.h>
|
||||
#include <sys/socket.h>
|
||||
#elif !defined(WOLFSSL_MDK_ARM) && !defined(WOLFSSL_IAR_ARM) && \
|
||||
!defined(WOLFSSL_PICOTCP) && !defined(WOLFSSL_ROWLEY_ARM)
|
||||
!defined(WOLFSSL_PICOTCP) && !defined(WOLFSSL_ROWLEY_ARM) && \
|
||||
!defined(WOLFSSL_EMBOS)
|
||||
#include <sys/uio.h>
|
||||
#endif
|
||||
/* allow writev style writing */
|
||||
|
@@ -142,6 +142,9 @@
|
||||
/* Uncomment next line if building for uTasker */
|
||||
/* #define WOLFSSL_UTASKER */
|
||||
|
||||
/* Uncomment next line if building for embOS */
|
||||
/* #define WOLFSSL_EMBOS */
|
||||
|
||||
#include <wolfssl/wolfcrypt/visibility.h>
|
||||
|
||||
#ifdef WOLFSSL_USER_SETTINGS
|
||||
@@ -409,6 +412,13 @@
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef WOLFSSL_EMBOS
|
||||
#define NO_FILESYSTEM /* Not ported at this time */
|
||||
#define USE_CERT_BUFFERS_2048 /* use when NO_FILESYSTEM */
|
||||
#define NO_MAIN_DRIVER
|
||||
#define NO_RC4
|
||||
#define SINGLE_THREADED /* Not ported at this time */
|
||||
#endif
|
||||
|
||||
/* Micrium will use Visual Studio for compilation but not the Win32 API */
|
||||
#if defined(_WIN32) && !defined(MICRIUM) && !defined(FREERTOS) && \
|
||||
|
Reference in New Issue
Block a user