diff --git a/IDE/OPENSTM32/.cproject b/IDE/OPENSTM32/.cproject deleted file mode 100644 index 7b2bae139..000000000 --- a/IDE/OPENSTM32/.cproject +++ /dev/null @@ -1,323 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/IDE/OPENSTM32/.project b/IDE/OPENSTM32/.project deleted file mode 100644 index f4d367236..000000000 --- a/IDE/OPENSTM32/.project +++ /dev/null @@ -1,27 +0,0 @@ - - - wolfSTM32_CubeMX - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - clean,full,incremental, - - - - - org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder - full,incremental, - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - fr.ac6.mcu.ide.core.MCUProjectNature - - diff --git a/IDE/OPENSTM32/Inc/user_settings.h b/IDE/OPENSTM32/Inc/user_settings.h deleted file mode 100644 index 1c4282fb0..000000000 --- a/IDE/OPENSTM32/Inc/user_settings.h +++ /dev/null @@ -1,474 +0,0 @@ -/* user_settings.h - * - * Copyright (C) 2006-2020 wolfSSL Inc. - * - * This file is part of wolfSSL. - * - * wolfSSL is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * wolfSSL is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA - */ - -/* Example wolfSSL user settings for STM32F4 with CubeMX */ - -#ifndef WOLFSSL_USER_SETTINGS_H -#define WOLFSSL_USER_SETTINGS_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* ------------------------------------------------------------------------- */ -/* Platform */ -/* ------------------------------------------------------------------------- */ -#undef WOLFSSL_GENERAL_ALIGNMENT -#define WOLFSSL_GENERAL_ALIGNMENT 4 - -#undef SINGLE_THREADED -//#define SINGLE_THREADED - -#undef WOLFSSL_SMALL_STACK -#define WOLFSSL_SMALL_STACK - -#undef WOLFSSL_STM32F4 -#define WOLFSSL_STM32F4 - -#undef WOLFSSL_STM32_CUBEMX -#define WOLFSSL_STM32_CUBEMX - -#undef FREERTOS -#define FREERTOS - -#undef WOLFSSL_USER_IO -#define WOLFSSL_USER_IO - -#undef WOLFSSL_NO_SOCK -#define WOLFSSL_NO_SOCK - - -/* ------------------------------------------------------------------------- */ -/* HW Crypto Acceleration */ -/* ------------------------------------------------------------------------- */ -// See settings.h STM32F4 section -/* Optionally Disable Hardware Hashing Support */ -//#define NO_STM32_HASH -//#define NO_STM32_RNG -//#define NO_STM32_CRYPTO -//#define WOLFSSL_STM32_PKA /* WB55 and L5 only */ - - -/* ------------------------------------------------------------------------- */ -/* Math Configuration */ -/* ------------------------------------------------------------------------- */ -#undef USE_FAST_MATH -#define USE_FAST_MATH - -#ifdef USE_FAST_MATH - #undef TFM_TIMING_RESISTANT - #define TFM_TIMING_RESISTANT - - #undef TFM_NO_ASM - //#define TFM_NO_ASM - - /* Optimizations (TFM_ARM, TFM_ASM or none) */ - //#define TFM_ASM -#endif - -/* Wolf Single Precision Math */ -#undef WOLFSSL_SP -#if 0 - #define WOLFSSL_SP - #define WOLFSSL_SP_SMALL /* use smaller version of code */ - #define WOLFSSL_HAVE_SP_RSA - //#define WOLFSSL_HAVE_SP_DH - #define WOLFSSL_HAVE_SP_ECC - #define WOLFSSL_SP_CACHE_RESISTANT - #define WOLFSSL_SP_MATH /* only SP math - eliminates fast math code */ - - //#define WOLFSSL_SP_ASM /* required if using the ASM versions */ - //#define WOLFSSL_SP_ARM_CORTEX_M_ASM -#endif - - -/* ------------------------------------------------------------------------- */ -/* Crypto */ -/* ------------------------------------------------------------------------- */ -/* 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 - - /* Enables blinding mode, to prevent timing attacks */ - #undef WC_RSA_BLINDING - #define WC_RSA_BLINDING - - /* RSA PSS Support (required for TLS v1.3)*/ - #if 0 - #define WC_RSA_PSS - #endif -#else - #define NO_RSA -#endif - -/* 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 - #ifdef NO_RSA - /* Custom fastmath size if not using RSA */ - /* MAX = ROUND32(ECC BITS 256) + SIZE_OF_MP_DIGIT(32) */ - #undef FP_MAX_BITS - #define FP_MAX_BITS (256 + 32) - #else - #undef ALT_ECC_SIZE - #define ALT_ECC_SIZE - #endif - - /* Enable TFM optimizations for ECC */ - //#define TFM_ECC192 - //#define TFM_ECC224 - #define TFM_ECC256 - //#define TFM_ECC384 - //#define TFM_ECC521 - #endif -#endif - -/* DH */ -#undef NO_DH -#if 0 - #define HAVE_DH /* freeRTOS settings.h requires this */ -#else - //#define NO_DH -#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 - - #undef WOLFSSL_AES_COUNTER - #define WOLFSSL_AES_COUNTER - - #undef WOLFSSL_AES_DIRECT - #define WOLFSSL_AES_DIRECT - - #undef HAVE_AES_ECB - #define HAVE_AES_ECB -#else - #define NO_AES -#endif - -/* DES */ -#undef NO_DES3 -#if 1 - -#else - #define NO_DES3 -#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 - -/* Ed25519 / Curve25519 */ -#undef HAVE_CURVE25519 -#undef HAVE_ED25519 -#if 0 - #define HAVE_CURVE25519 - #define HAVE_ED25519 - - /* Optionally use small math (less flash usage, but much slower) */ - #if 0 - #define CURVED25519_SMALL - #endif -#endif - - -/* ------------------------------------------------------------------------- */ -/* Hashing */ -/* ------------------------------------------------------------------------- */ -/* Sha */ -#undef NO_SHA -#if 1 - /* 1k smaller, but 25% slower */ - //#define USE_SLOW_SHA -#else - #define NO_SHA -#endif - -/* Sha256 */ -#undef NO_SHA256 -#if 1 - /* not unrolled - ~2k smaller and ~25% slower */ - //#define USE_SLOW_SHA256 - - /* Sha224 */ - #if 0 - #define WOLFSSL_SHA224 - #endif -#else - #define NO_SHA256 -#endif - -/* Sha512 */ -#undef WOLFSSL_SHA512 -#if 1 - /* over twice as small, but 50% slower */ - //#define USE_SLOW_SHA512 - - #define WOLFSSL_SHA512 - #define HAVE_SHA512 /* freeRTOS settings.h requires this */ - - /* Sha384 */ - #undef WOLFSSL_SHA384 - #if 1 - #define WOLFSSL_SHA384 - #endif -#endif - -/* MD5 */ -#if 1 - /* enabled */ -#else - #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 - -#undef USE_CERT_BUFFERS_256 -#define USE_CERT_BUFFERS_256 - - -/* ------------------------------------------------------------------------- */ -/* Debugging */ -/* ------------------------------------------------------------------------- */ -#undef DEBUG_WOLFSSL -//#define DEBUG_WOLFSSL - -#ifdef DEBUG_WOLFSSL - /* Use this to measure / print heap usage */ - #if 0 - #undef USE_WOLFSSL_MEMORY - #define USE_WOLFSSL_MEMORY - - #undef WOLFSSL_TRACK_MEMORY - #define WOLFSSL_TRACK_MEMORY - - #define WOLFSSL_DEBUG_MEMORY - #define WOLFSSL_DEBUG_MEMORY_PRINT - #endif -#else - #undef NO_WOLFSSL_MEMORY - //#define NO_WOLFSSL_MEMORY - - #undef NO_ERROR_STRINGS - //#define NO_ERROR_STRINGS -#endif - - -/* ------------------------------------------------------------------------- */ -/* Port */ -/* ------------------------------------------------------------------------- */ - -/* Override Current Time */ -/* Allows custom "custom_time()" function to be used for benchmark */ -#define WOLFSSL_USER_CURRTIME - - -/* ------------------------------------------------------------------------- */ -/* RNG */ -/* ------------------------------------------------------------------------- */ -/* Size of returned HW RNG value */ -#define NO_OLD_RNGNAME - -/* Choose RNG method */ -#if 1 - #ifndef STM32_RNG - #define WOLFSSL_GENSEED_FORTEST - #endif - - /* Use built-in P-RNG (SHA256 based) with HW RNG */ - /* P-RNG + HW RNG (P-RNG is ~8K) */ - #undef HAVE_HASHDRBG - #define HAVE_HASHDRBG -#else - /* Bypass P-RNG and use only HW RNG */ - extern int custom_rand_generate_block(unsigned char* output, unsigned int sz); - #undef CUSTOM_RAND_GENERATE_BLOCK - #define CUSTOM_RAND_GENERATE_BLOCK custom_rand_generate_block -#endif - - -/* ------------------------------------------------------------------------- */ -/* Enable Features */ -/* ------------------------------------------------------------------------- */ -#undef WOLFSSL_TLS13 -#if 0 - #define WOLFSSL_TLS13 -#endif - -#undef KEEP_PEER_CERT -//#define KEEP_PEER_CERT - -#undef HAVE_COMP_KEY -//#define HAVE_COMP_KEY - -#undef HAVE_TLS_EXTENSIONS -#define HAVE_TLS_EXTENSIONS - -#undef HAVE_SUPPORTED_CURVES -#define HAVE_SUPPORTED_CURVES - -#undef WOLFSSL_BASE64_ENCODE -//#define WOLFSSL_BASE64_ENCODE - -/* TLS Session Cache */ -#if 0 - #define SMALL_SESSION_CACHE -#else - #define NO_SESSION_CACHE -#endif - - -/* ------------------------------------------------------------------------- */ -/* Disable Features */ -/* ------------------------------------------------------------------------- */ -#undef NO_WOLFSSL_SERVER -//#define NO_WOLFSSL_SERVER - -#undef NO_WOLFSSL_CLIENT -//#define NO_WOLFSSL_CLIENT - -#undef NO_CRYPT_TEST -//#define NO_CRYPT_TEST - -#undef NO_CRYPT_BENCHMARK -//#define NO_CRYPT_BENCHMARK - -/* In-lining of misc.c functions */ -/* If defined, must include wolfcrypt/src/misc.c in build */ -/* Slower, but about 1k smaller */ -#undef NO_INLINE -//#define NO_INLINE - -#undef NO_FILESYSTEM -#define NO_FILESYSTEM - -#undef NO_WRITEV -#define NO_WRITEV - -#undef NO_MAIN_DRIVER -#define NO_MAIN_DRIVER - -#undef NO_DEV_RANDOM -#define NO_DEV_RANDOM - -#undef NO_DSA -#define NO_DSA - -#undef NO_RC4 -#define NO_RC4 - -#undef NO_OLD_TLS -#define NO_OLD_TLS - -#undef NO_HC128 -#define NO_HC128 - -#undef NO_RABBIT -#define NO_RABBIT - -#undef NO_PSK -#define NO_PSK - -#undef NO_MD4 -#define NO_MD4 - -#undef NO_PWDBASED -#define NO_PWDBASED - -#undef NO_CODING -//#define NO_CODING - -/* bypass certificate date checking, due to lack of properly configured RTC source */ -#undef NO_ASN_TIME -#define NO_ASN_TIME - - -#ifdef __cplusplus -} -#endif - -#endif /* WOLFSSL_USER_SETTINGS_H */ diff --git a/IDE/OPENSTM32/README.md b/IDE/OPENSTM32/README.md deleted file mode 100644 index 30adb473b..000000000 --- a/IDE/OPENSTM32/README.md +++ /dev/null @@ -1,58 +0,0 @@ -# wolfSSL STM32 Example for System Workbench for STM32 (Open STM32 Tools) - -This example includes: - -* wolfCrypt test -* wolfCrypt benchmark -* wolfSSL TLS client/server test using in-memory transfers - -These examples use the CubeMX Hal for STM32. If you'd like to use the older Standard Peripheral library undefine `WOLFSSL_STM32_CUBEMX` in `user_settings.h`. - -## Requirements - -* STM32CubeMX: STM32 CubeMX HAL code generation tool - [http://www.st.com/en/development-tools/stm32cubemx.html](http://www.st.com/en/development-tools/stm32cubemx.html) -* SystemWorkbench for STM32 - [http://www.st.com/en/development-tools/sw4stm32.html](http://www.st.com/en/development-tools/sw4stm32.html) - -## Setup - -1. Using the STM32CubeMX tool, load the `/IDE/OPENSTM32/wolfSTM32.ioc` file. -2. Adjust the HAL options based on your specific micro-controller. -3. Generate source code. -4. Run `SystemWorkbench` and choose a new workspace location for this project. -5. Import `wolfSTM32` project from `/IDE/OPENSTM32/`. -6. Adjust the micro-controller define in `Project Settings -> C/C++ General -> Paths and Symbols -> Symbols -> GNU C`. Example uses `STM32F437xx`, but should be changed to reflect your micro-controller type. -7. Build and Run - -If you hardware support crypto acceleration then: -1. Manually copy over the CubeMX HAL files for `stm32f4xx_hal_cryp.c`, `stm32f4xx_hal_cryp_ex.c`, `stm32f4xx_hal_cryp.h`, `stm32f4xx_hal_cryp_ex.h`. -2. Uncomment the `#define HAL_CRYP_MODULE_ENABLED` line in `stm32f4xx_hal_conf.h`. - -## Configuration - -The settings for the wolfSTM32 project are located in `/IDE/OPENSTM32/Inc/user_settings.h`. - -* To enable STM32F2 support define `WOLFSSL_STM32F2`. -* To enable STM32F4 support define `WOLFSSL_STM32F4`. -* To enable STM32F7 support define `WOLFSSL_STM32F7`. -* To enable STM32L4 support define `WOLFSSL_STM32L4`. - -If you are using FreeRTOS make sure your `FreeRTOSConfig.h` has its `configTOTAL_HEAP_SIZE` increased. - -The TLS client/server benchmark example requires about 76 KB for allocated tasks (with stack) and peak heap. - -## Example Output - -``` -....MENU - -.t. WolfCrypt Test -.b. WolfCrypt Benchmark -.l. WolfSSL TLS Bench -.e. Show Cipher List - -Please select one of the above options: -``` - -## Support - -For questions please email [support@wolfssl.com](mailto:support@wolfssl.com) diff --git a/IDE/OPENSTM32/Src/main.c b/IDE/OPENSTM32/Src/main.c deleted file mode 100644 index 70efb5a0a..000000000 --- a/IDE/OPENSTM32/Src/main.c +++ /dev/null @@ -1,353 +0,0 @@ -/* main.c - * - * Copyright (C) 2006-2020 wolfSSL Inc. - * - * This file is part of wolfSSL. - * - * wolfSSL is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * wolfSSL is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA - */ - - -/* Includes ------------------------------------------------------------------*/ - -#include "wolfssl_example.h" - - -/* Private variables ---------------------------------------------------------*/ - -RNG_HandleTypeDef hrng; -RTC_HandleTypeDef hrtc; -SPI_HandleTypeDef hspi1; -UART_HandleTypeDef huart4; -CRYP_HandleTypeDef CrypHandle; -HASH_HandleTypeDef HashHandle; - -osThreadId defaultTaskHandle; - -int __errno; - -/* Private function prototypes -----------------------------------------------*/ -static void SystemClock_Config(void); -static void Error_Handler(void); - -static void MX_GPIO_Init(void); -static void MX_RNG_Init(void); -static void MX_RTC_Init(void); -static void MX_SPI1_Init(void); -static void MX_UART4_Init(void); - - -int main(void) -{ - /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ - HAL_Init(); - - /* Configure the system clock */ - SystemClock_Config(); - - /* Initialize all configured peripherals */ - MX_GPIO_Init(); - MX_RNG_Init(); - MX_RTC_Init(); - MX_SPI1_Init(); - MX_UART4_Init(); - -#ifndef FREERTOS - wolfCryptDemo(NULL); -#else - /* Create the thread(s) */ - /* definition and creation of defaultTask */ - osThreadDef(defaultTask, wolfCryptDemo, osPriorityNormal, 0, WOLF_EXAMPLES_STACK); - defaultTaskHandle = osThreadCreate(osThread(defaultTask), NULL); - - /* Start scheduler */ - osKernelStart(); - - /* We should never get here as control is now taken by the scheduler */ - - /* Infinite loop */ - while (1) {} -#endif -} - -/** System Clock Configuration -*/ -static void SystemClock_Config(void) -{ - - RCC_OscInitTypeDef RCC_OscInitStruct; - RCC_ClkInitTypeDef RCC_ClkInitStruct; - RCC_PeriphCLKInitTypeDef PeriphClkInitStruct; - - __HAL_RCC_PWR_CLK_ENABLE(); - - __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE3); - - RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE|RCC_OSCILLATORTYPE_LSE; - RCC_OscInitStruct.HSEState = RCC_HSE_ON; - RCC_OscInitStruct.LSEState = RCC_LSE_ON; - RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; - RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE; - RCC_OscInitStruct.PLL.PLLM = 15; - RCC_OscInitStruct.PLL.PLLN = 144; - RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2; - RCC_OscInitStruct.PLL.PLLQ = 5; - if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) - { - Error_Handler(); - } - - RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK - |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; - RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; - RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; - RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4; - RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2; - if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_3) != HAL_OK) - { - Error_Handler(); - } - - PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_RTC; - PeriphClkInitStruct.RTCClockSelection = RCC_RTCCLKSOURCE_LSE; - if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK) - { - Error_Handler(); - } - - HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000); - - HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK); - - /* SysTick_IRQn interrupt configuration */ - HAL_NVIC_SetPriority(SysTick_IRQn, 15, 0); -} - -/* RNG init function */ -static void MX_RNG_Init(void) -{ - - hrng.Instance = RNG; - if (HAL_RNG_Init(&hrng) != HAL_OK) - { - Error_Handler(); - } - -} - -/* RTC init function */ -#define RTC_ASYNCH_PREDIV 0x7F /* LSE as RTC clock */ -#define RTC_SYNCH_PREDIV 0x00FF /* LSE as RTC clock */ -static void MX_RTC_Init(void) -{ - - RTC_TimeTypeDef sTime; - RTC_DateTypeDef sDate; - - /**Initialize RTC and set the Time and Date - */ - hrtc.Instance = RTC; - hrtc.Init.HourFormat = RTC_HOURFORMAT_24; - hrtc.Init.AsynchPrediv = RTC_ASYNCH_PREDIV; - hrtc.Init.SynchPrediv = RTC_SYNCH_PREDIV; - hrtc.Init.OutPut = RTC_OUTPUT_DISABLE; - hrtc.Init.OutPutPolarity = RTC_OUTPUT_POLARITY_HIGH; - hrtc.Init.OutPutType = RTC_OUTPUT_TYPE_OPENDRAIN; - if (HAL_RTC_Init(&hrtc) != HAL_OK) - { - Error_Handler(); - } - - sTime.Hours = 0x0; - sTime.Minutes = 0x0; - sTime.Seconds = 0x0; - sTime.DayLightSaving = RTC_DAYLIGHTSAVING_NONE; - sTime.StoreOperation = RTC_STOREOPERATION_RESET; - if (HAL_RTC_SetTime(&hrtc, &sTime, RTC_FORMAT_BCD) != HAL_OK) - { - Error_Handler(); - } - - sDate.WeekDay = RTC_WEEKDAY_MONDAY; - sDate.Month = RTC_MONTH_JANUARY; - sDate.Date = 0x1; - sDate.Year = 0x0; - - if (HAL_RTC_SetDate(&hrtc, &sDate, RTC_FORMAT_BCD) != HAL_OK) - { - Error_Handler(); - } - - /**Enable the TimeStamp - */ - if (HAL_RTCEx_SetTimeStamp(&hrtc, RTC_TIMESTAMPEDGE_RISING, RTC_TIMESTAMPPIN_DEFAULT) != HAL_OK) - { - Error_Handler(); - } - - /**Enable the reference Clock input - */ - if (HAL_RTCEx_SetRefClock(&hrtc) != HAL_OK) - { - Error_Handler(); - } -} - - -/* SPI1 init function */ -static void MX_SPI1_Init(void) -{ - - hspi1.Instance = SPI1; - hspi1.Init.Mode = SPI_MODE_MASTER; - hspi1.Init.Direction = SPI_DIRECTION_2LINES; - hspi1.Init.DataSize = SPI_DATASIZE_8BIT; - hspi1.Init.CLKPolarity = SPI_POLARITY_LOW; - hspi1.Init.CLKPhase = SPI_PHASE_1EDGE; - hspi1.Init.NSS = SPI_NSS_HARD_OUTPUT; - hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_4; - hspi1.Init.FirstBit = SPI_FIRSTBIT_MSB; - hspi1.Init.TIMode = SPI_TIMODE_DISABLE; - hspi1.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE; - hspi1.Init.CRCPolynomial = 10; - if (HAL_SPI_Init(&hspi1) != HAL_OK) - { - Error_Handler(); - } - -} - -/* UART4 init function */ -static void MX_UART4_Init(void) -{ - - huart4.Instance = UART4; - huart4.Init.BaudRate = 115200; - huart4.Init.WordLength = UART_WORDLENGTH_8B; - huart4.Init.StopBits = UART_STOPBITS_1; - huart4.Init.Parity = UART_PARITY_NONE; - huart4.Init.Mode = UART_MODE_TX_RX; - huart4.Init.HwFlowCtl = UART_HWCONTROL_NONE; - huart4.Init.OverSampling = UART_OVERSAMPLING_16; - if (HAL_UART_Init(&huart4) != HAL_OK) - { - Error_Handler(); - } - - // Turn off buffers, so I/O occurs immediately - setvbuf(stdin, NULL, _IONBF, 0); - setvbuf(stdout, NULL, _IONBF, 0); - setvbuf(stderr, NULL, _IONBF, 0); -} - -int _write (int fd, char *ptr, int len) -{ - (void)fd; - - /* Write "len" of char from "ptr" to file id "fd" - * Return number of char written. - * Need implementing with UART here. */ - HAL_UART_Transmit(&huart4, (uint8_t *)ptr, len, 0xFFFF); - - return len; -} - -int _read (int fd, char *ptr, int len) -{ - /* Read "len" of char to "ptr" from file id "fd" - * Return number of char read. - * Need implementing with UART here. */ - (void)fd; - - return HAL_UART_Receive(&huart4, (uint8_t*)ptr, len, 0xFFFF); -} - -void _ttywrch(int ch) { - /* Write one char "ch" to the default console - * Need implementing with UART here. */ - _write(0, (char*)&ch, 1); -} - - -/** Configure pins as - * Analog - * Input - * Output - * EVENT_OUT - * EXTI -*/ -static void MX_GPIO_Init(void) -{ - - /* GPIO Ports Clock Enable */ - __HAL_RCC_GPIOE_CLK_ENABLE(); - __HAL_RCC_GPIOG_CLK_ENABLE(); - __HAL_RCC_GPIOB_CLK_ENABLE(); - __HAL_RCC_GPIOA_CLK_ENABLE(); - __HAL_RCC_GPIOC_CLK_ENABLE(); - __HAL_RCC_GPIOH_CLK_ENABLE(); - -} - - -/** - * @brief Period elapsed callback in non blocking mode - * @note This function is called when TIM1 interrupt took place, inside - * HAL_TIM_IRQHandler(). It makes a direct call to HAL_IncTick() to increment - * a global variable "uwTick" used as application time base. - * @param htim : TIM handle - * @retval None - */ -void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) -{ - if (htim->Instance == TIM1) { - HAL_IncTick(); - } -} - -/** - * @brief This function is executed in case of error occurrence. - * @param None - * @retval None - */ -static void Error_Handler(void) -{ - /* USER CODE BEGIN Error_Handler */ - /* User can add his own implementation to report the HAL error return state */ - while(1) - { - } - /* USER CODE END Error_Handler */ -} - -#ifdef USE_FULL_ASSERT - -/** - * @brief Reports the name of the source file and the source line number - * where the assert_param error has occurred. - * @param file: pointer to the source file name - * @param line: assert_param error line source number - * @retval None - */ -void assert_failed(uint8_t* file, uint32_t line) -{ - /* USER CODE BEGIN 6 */ - /* User can add his own implementation to report the file name and line number, - ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */ - /* USER CODE END 6 */ - -} - -#endif diff --git a/IDE/OPENSTM32/include.am b/IDE/OPENSTM32/include.am deleted file mode 100644 index 2c1835e0d..000000000 --- a/IDE/OPENSTM32/include.am +++ /dev/null @@ -1,14 +0,0 @@ -# vim:ft=automake -# included from Top Level Makefile.am -# All paths should be given relative to the root - -EXTRA_DIST+= IDE/OPENSTM32/README.md -EXTRA_DIST+= IDE/OPENSTM32/.cproject -EXTRA_DIST+= IDE/OPENSTM32/.project -EXTRA_DIST+= IDE/OPENSTM32/wolfSTM32.cfg -EXTRA_DIST+= IDE/OPENSTM32/wolfSTM32.ioc -EXTRA_DIST+= IDE/OPENSTM32/wolfSTM32.xml -EXTRA_DIST+= IDE/OPENSTM32/Src/main.c -EXTRA_DIST+= IDE/OPENSTM32/Src/wolfssl_example.c -EXTRA_DIST+= IDE/OPENSTM32/Inc/user_settings.h -EXTRA_DIST+= IDE/OPENSTM32/Inc/wolfssl_example.h diff --git a/IDE/OPENSTM32/wolfSTM32.cfg b/IDE/OPENSTM32/wolfSTM32.cfg deleted file mode 100644 index f9b02ce4c..000000000 --- a/IDE/OPENSTM32/wolfSTM32.cfg +++ /dev/null @@ -1,13 +0,0 @@ -# This is an wolfSTM32 board with a single STM32F437IIHx chip. -# Generated by System Workbench for STM32 - -source [find interface/stlink-v2-1.cfg] - -set WORKAREASIZE 0x30000 -transport select "hla_jtag" -set CPUTAPID 0x4ba00477 - -source [find target/stm32f4x_stlink.cfg] - -# use hardware reset, connect under reset -reset_config srst_only srst_nogate diff --git a/IDE/OPENSTM32/wolfSTM32.ioc b/IDE/OPENSTM32/wolfSTM32.ioc deleted file mode 100644 index d91e1d25c..000000000 --- a/IDE/OPENSTM32/wolfSTM32.ioc +++ /dev/null @@ -1,213 +0,0 @@ -#MicroXplorer Configuration settings - do not modify -FREERTOS.IPParameters=Tasks01 -FREERTOS.Tasks01=defaultTask,0,128,StartDefaultTask,Default -File.Version=6 -KeepUserPlacement=false -LWIP.Version=v1.5.0_RC0_20160211_Cube -Mcu.Family=STM32F4 -Mcu.IP0=CRC -Mcu.IP1=ETH -Mcu.IP2=FREERTOS -Mcu.IP3=LWIP -Mcu.IP4=NVIC -Mcu.IP5=RCC -Mcu.IP6=RNG -Mcu.IP7=RTC -Mcu.IP8=SYS -Mcu.IP9=UART4 -Mcu.IPNb=10 -Mcu.Name=STM32F437I(G-I)Hx -Mcu.Package=UFBGA176 -Mcu.Pin0=PE2 -Mcu.Pin1=PG14 -Mcu.Pin10=PC10 -Mcu.Pin11=PC13 -Mcu.Pin12=PC14/OSC32_IN -Mcu.Pin13=PC15/OSC32_OUT -Mcu.Pin14=PH2 -Mcu.Pin15=PH0/OSC_IN -Mcu.Pin16=PH3 -Mcu.Pin17=PH1/OSC_OUT -Mcu.Pin18=PC1 -Mcu.Pin19=PC2 -Mcu.Pin2=PG13 -Mcu.Pin20=PC3 -Mcu.Pin21=PH6 -Mcu.Pin22=PA1 -Mcu.Pin23=PC4 -Mcu.Pin24=PH7 -Mcu.Pin25=PA2 -Mcu.Pin26=PC5 -Mcu.Pin27=PA7 -Mcu.Pin28=PB15 -Mcu.Pin29=VP_CRC_VS_CRC -Mcu.Pin3=PB4 -Mcu.Pin30=VP_FREERTOS_VS_ENABLE -Mcu.Pin31=VP_LWIP_VS_Enabled -Mcu.Pin32=VP_RNG_VS_RNG -Mcu.Pin33=VP_SYS_VS_tim1 -Mcu.Pin4=PB3 -Mcu.Pin5=PA15 -Mcu.Pin6=PA14 -Mcu.Pin7=PA13 -Mcu.Pin8=PG11 -Mcu.Pin9=PC11 -Mcu.PinsNb=34 -Mcu.UserConstants= -Mcu.UserName=STM32F437IIHx -MxCube.Version=4.16.1 -MxDb.Version=DB.4.0.161 -NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false -NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false -NVIC.ETH_IRQn=true\:0\:0\:false\:false\:true\:false -NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false -NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false -NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false -NVIC.PendSV_IRQn=true\:15\:0\:false\:false\:false\:true -NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4 -NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:false\:false -NVIC.SysTick_IRQn=true\:15\:0\:false\:false\:true\:true -NVIC.TIM1_UP_TIM10_IRQn=true\:0\:0\:false\:false\:true\:false -NVIC.TimeBase=TIM1_UP_TIM10_IRQn -NVIC.TimeBaseIP=TIM1 -NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false -PA1.Mode=MII -PA1.Signal=ETH_RX_CLK -PA13.Mode=JTAG_5_pins -PA13.Signal=SYS_JTMS-SWDIO -PA14.Mode=JTAG_5_pins -PA14.Signal=SYS_JTCK-SWCLK -PA15.Mode=JTAG_5_pins -PA15.Signal=SYS_JTDI -PA2.Mode=MII -PA2.Signal=ETH_MDIO -PA7.Mode=MII -PA7.Signal=ETH_RX_DV -PB15.Mode=Reference_Clock_Detection_Activate -PB15.Signal=RTC_REFIN -PB3.Mode=JTAG_5_pins -PB3.Signal=SYS_JTDO-SWO -PB4.Mode=JTAG_5_pins -PB4.Signal=SYS_JTRST -PC1.Mode=MII -PC1.Signal=ETH_MDC -PC10.Mode=Asynchronous -PC10.Signal=UART4_TX -PC11.Mode=Asynchronous -PC11.Signal=UART4_RX -PC13.Mode=Timestamp enabled - Input Enabled to AF1 -PC13.Signal=RTC_AF1 -PC14/OSC32_IN.Mode=LSE-External-Oscillator -PC14/OSC32_IN.Signal=RCC_OSC32_IN -PC15/OSC32_OUT.Mode=LSE-External-Oscillator -PC15/OSC32_OUT.Signal=RCC_OSC32_OUT -PC2.Mode=MII -PC2.Signal=ETH_TXD2 -PC3.Mode=MII -PC3.Signal=ETH_TX_CLK -PC4.Mode=MII -PC4.Signal=ETH_RXD0 -PC5.Mode=MII -PC5.Signal=ETH_RXD1 -PCC.Checker=false -PCC.Line=STM32F427/437 -PCC.MCU=STM32F437I(G-I)Hx -PCC.MXVersion=4.16.1 -PCC.PartNumber=STM32F437IIHx -PCC.Seq0=0 -PCC.Series=STM32F4 -PCC.Temperature=25 -PCC.Vdd=null -PE2.Mode=MII -PE2.Signal=ETH_TXD3 -PG11.Mode=MII -PG11.Signal=ETH_TX_EN -PG13.Mode=MII -PG13.Signal=ETH_TXD0 -PG14.Mode=MII -PG14.Signal=ETH_TXD1 -PH0/OSC_IN.Mode=HSE-External-Oscillator -PH0/OSC_IN.Signal=RCC_OSC_IN -PH1/OSC_OUT.Mode=HSE-External-Oscillator -PH1/OSC_OUT.Signal=RCC_OSC_OUT -PH2.Mode=MII -PH2.Signal=ETH_CRS -PH3.Mode=MII -PH3.Signal=ETH_COL -PH6.Mode=MII -PH6.Signal=ETH_RXD2 -PH7.Mode=MII -PH7.Signal=ETH_RXD3 -ProjectManager.AskForMigrate=true -ProjectManager.BackupPrevious=false -ProjectManager.CompilerOptimize=2 -ProjectManager.ComputerToolchain=false -ProjectManager.CoupleFile=false -ProjectManager.DeletePrevious=true -ProjectManager.DeviceId=STM32F437IIHx -ProjectManager.FirmwarePackage=STM32Cube FW_F4 V1.13.0 -ProjectManager.FreePins=false -ProjectManager.HalAssertFull=false -ProjectManager.HeapSize=0x10000 -ProjectManager.KeepUserCode=true -ProjectManager.LastFirmware=true -ProjectManager.LibraryCopy=1 -ProjectManager.PreviousToolchain=SW4STM32 -ProjectManager.ProjectBuild=false -ProjectManager.ProjectFileName=wolfSTM32.ioc -ProjectManager.ProjectName=wolfSTM32 -ProjectManager.StackSize=0x4000 -ProjectManager.TargetToolchain=SW4STM32 -ProjectManager.ToolChainLocation= -ProjectManager.UnderRoot=true -ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false,2-MX_CRC_Init-CRC-false,3-MX_RNG_Init-RNG-false,4-MX_UART4_Init-UART4-false,5-MX_LWIP_Init-LWIP-false,6-MX_RTC_Init-RTC-false -RCC.48MHZClocksFreq_Value=48000000 -RCC.AHBFreq_Value=120000000 -RCC.APB1CLKDivider=RCC_HCLK_DIV4 -RCC.APB1Freq_Value=30000000 -RCC.APB1TimFreq_Value=60000000 -RCC.APB2CLKDivider=RCC_HCLK_DIV2 -RCC.APB2Freq_Value=60000000 -RCC.APB2TimFreq_Value=120000000 -RCC.CortexFreq_Value=120000000 -RCC.EthernetFreq_Value=120000000 -RCC.FCLKCortexFreq_Value=120000000 -RCC.FamilyName=M -RCC.HCLKFreq_Value=120000000 -RCC.HSE_VALUE=25000000 -RCC.HSI_VALUE=16000000 -RCC.I2SClocksFreq_Value=160000000 -RCC.IPParameters=48MHZClocksFreq_Value,AHBFreq_Value,APB1CLKDivider,APB1Freq_Value,APB1TimFreq_Value,APB2CLKDivider,APB2Freq_Value,APB2TimFreq_Value,CortexFreq_Value,EthernetFreq_Value,FCLKCortexFreq_Value,FamilyName,HCLKFreq_Value,HSE_VALUE,HSI_VALUE,I2SClocksFreq_Value,LSI_VALUE,MCO2PinFreq_Value,PLLCLKFreq_Value,PLLM,PLLN,PLLQ,PLLQCLKFreq_Value,PLLSourceVirtual,RCC_RTC_Clock_Source,RTCFreq_Value,RTCHSEDivFreq_Value,SAI_AClocksFreq_Value,SAI_BClocksFreq_Value,SYSCLKFreq_VALUE,SYSCLKSource,VCOI2SOutputFreq_Value,VCOInputFreq_Value,VCOOutputFreq_Value,VCOSAIOutputFreq_Value,VCOSAIOutputFreq_ValueQ,VcooutputI2S,VcooutputI2SQ -RCC.LSI_VALUE=32000 -RCC.MCO2PinFreq_Value=120000000 -RCC.PLLCLKFreq_Value=120000000 -RCC.PLLM=15 -RCC.PLLN=144 -RCC.PLLQ=5 -RCC.PLLQCLKFreq_Value=48000000 -RCC.PLLSourceVirtual=RCC_PLLSOURCE_HSE -RCC.RCC_RTC_Clock_Source=RCC_RTCCLKSOURCE_LSE -RCC.RTCFreq_Value=32768 -RCC.RTCHSEDivFreq_Value=12500000 -RCC.SAI_AClocksFreq_Value=20416666.666666668 -RCC.SAI_BClocksFreq_Value=20416666.666666668 -RCC.SYSCLKFreq_VALUE=120000000 -RCC.SYSCLKSource=RCC_SYSCLKSOURCE_PLLCLK -RCC.VCOI2SOutputFreq_Value=320000000 -RCC.VCOInputFreq_Value=1666666.6666666667 -RCC.VCOOutputFreq_Value=240000000 -RCC.VCOSAIOutputFreq_Value=81666666.66666667 -RCC.VCOSAIOutputFreq_ValueQ=20416666.666666668 -RCC.VcooutputI2S=160000000 -RCC.VcooutputI2SQ=160000000 -VP_CRC_VS_CRC.Mode=CRC_Activate -VP_CRC_VS_CRC.Signal=CRC_VS_CRC -VP_FREERTOS_VS_ENABLE.Mode=Enabled -VP_FREERTOS_VS_ENABLE.Signal=FREERTOS_VS_ENABLE -VP_LWIP_VS_Enabled.Mode=Enabled -VP_LWIP_VS_Enabled.Signal=LWIP_VS_Enabled -VP_RNG_VS_RNG.Mode=RNG_Activate -VP_RNG_VS_RNG.Signal=RNG_VS_RNG -VP_SYS_VS_tim1.Mode=TIM1 -VP_SYS_VS_tim1.Signal=SYS_VS_tim1 -board=wolfSTM32 diff --git a/IDE/OPENSTM32/wolfSTM32.xml b/IDE/OPENSTM32/wolfSTM32.xml deleted file mode 100644 index a45880924..000000000 --- a/IDE/OPENSTM32/wolfSTM32.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - wolfSTM32 - stm32f437iihx - JTAG - ST-LinkV2-1 - - diff --git a/IDE/STM32Cube/Boards/STM32F407.ioc b/IDE/STM32Cube/Boards/STM32F407.ioc new file mode 100644 index 000000000..64a41f67b --- /dev/null +++ b/IDE/STM32Cube/Boards/STM32F407.ioc @@ -0,0 +1,128 @@ +#MicroXplorer Configuration settings - do not modify +FREERTOS.FootprintOK=true +FREERTOS.IPParameters=Tasks01,configTOTAL_HEAP_SIZE,configUSE_MALLOC_FAILED_HOOK,configCHECK_FOR_STACK_OVERFLOW,FootprintOK +FREERTOS.Tasks01=defaultTask,24,128,StartDefaultTask,Default,NULL,Dynamic,NULL,NULL;wolfCrypt,8,8960,wolfCryptDemo,As external,NULL,Dynamic,NULL,NULL +FREERTOS.configCHECK_FOR_STACK_OVERFLOW=2 +FREERTOS.configTOTAL_HEAP_SIZE=122880 +FREERTOS.configUSE_MALLOC_FAILED_HOOK=1 +File.Version=6 +KeepUserPlacement=false +Mcu.Family=STM32F4 +Mcu.IP0=FREERTOS +Mcu.IP1=NVIC +Mcu.IP2=RCC +Mcu.IP3=RNG +Mcu.IP4=RTC +Mcu.IP5=SYS +Mcu.IP6=USART2 +Mcu.IPNb=7 +Mcu.Name=STM32F407V(E-G)Tx +Mcu.Package=LQFP100 +Mcu.Pin0=PA2 +Mcu.Pin1=PA3 +Mcu.Pin2=PC10 +Mcu.Pin3=PC11 +Mcu.Pin4=VP_FREERTOS_VS_CMSIS_V2 +Mcu.Pin5=VP_RNG_VS_RNG +Mcu.Pin6=VP_RTC_VS_RTC_Activate +Mcu.Pin7=VP_SYS_VS_tim1 +Mcu.Pin8=VP_wolfSSL.wolfSSL_VS_wolfSSLJjwolfSSL_4.4.1 +Mcu.PinsNb=9 +Mcu.ThirdParty0=wolfSSL.wolfSSL.4.4.1 +Mcu.ThirdPartyNb=1 +Mcu.UserConstants= +Mcu.UserName=STM32F407VGTx +MxCube.Version=5.6.1 +MxDb.Version=DB.5.0.60 +NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false +NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false +NVIC.ForceEnableDMAVector=true +NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false +NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false +NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false +NVIC.PendSV_IRQn=true\:15\:0\:false\:false\:false\:true\:false\:false +NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4 +NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:false\:false\:false\:false +NVIC.SysTick_IRQn=true\:15\:0\:false\:false\:false\:true\:false\:false +NVIC.TIM1_UP_TIM10_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:true +NVIC.TimeBase=TIM1_UP_TIM10_IRQn +NVIC.TimeBaseIP=TIM1 +NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false +PA2.Mode=Asynchronous +PA2.Signal=USART2_TX +PA3.Mode=Asynchronous +PA3.Signal=USART2_RX +PC10.Locked=true +PC10.Signal=UART4_TX +PC11.Locked=true +PC11.Signal=UART4_RX +PinOutPanel.RotationAngle=0 +ProjectManager.AskForMigrate=true +ProjectManager.BackupPrevious=false +ProjectManager.CompilerOptimize=6 +ProjectManager.ComputerToolchain=false +ProjectManager.CoupleFile=false +ProjectManager.CustomerFirmwarePackage= +ProjectManager.DefaultFWLocation=true +ProjectManager.DeletePrevious=true +ProjectManager.DeviceId=STM32F407VGTx +ProjectManager.FirmwarePackage=STM32Cube FW_F4 V1.25.0 +ProjectManager.FreePins=false +ProjectManager.HalAssertFull=false +ProjectManager.HeapSize=0x200 +ProjectManager.KeepUserCode=true +ProjectManager.LastFirmware=true +ProjectManager.LibraryCopy=1 +ProjectManager.MainLocation=Core/Src +ProjectManager.NoMain=false +ProjectManager.PreviousToolchain= +ProjectManager.ProjectBuild=false +ProjectManager.ProjectFileName=STM32F407.ioc +ProjectManager.ProjectName=STM32F407 +ProjectManager.StackSize=0x400 +ProjectManager.TargetToolchain=STM32CubeIDE +ProjectManager.ToolChainLocation= +ProjectManager.UnderRoot=true +ProjectManager.functionlistsort=2-SystemClock_Config-RCC-false-HAL-false +RCC.AHBFreq_Value=16000000 +RCC.APB1Freq_Value=16000000 +RCC.APB2Freq_Value=16000000 +RCC.CortexFreq_Value=16000000 +RCC.FamilyName=M +RCC.HSE_VALUE=25000000 +RCC.HSI_VALUE=16000000 +RCC.I2SClocksFreq_Value=96000000 +RCC.IPParameters=AHBFreq_Value,APB1Freq_Value,APB2Freq_Value,CortexFreq_Value,FamilyName,HSE_VALUE,HSI_VALUE,I2SClocksFreq_Value,LSE_VALUE,LSI_VALUE,PLLCLKFreq_Value,PLLQCLKFreq_Value,RTCFreq_Value,RTCHSEDivFreq_Value,SYSCLKFreq_VALUE,VCOI2SOutputFreq_Value,VCOInputFreq_Value,VCOOutputFreq_Value,VcooutputI2S +RCC.LSE_VALUE=32768 +RCC.LSI_VALUE=32000 +RCC.PLLCLKFreq_Value=96000000 +RCC.PLLQCLKFreq_Value=48000000 +RCC.RTCFreq_Value=32000 +RCC.RTCHSEDivFreq_Value=12500000 +RCC.SYSCLKFreq_VALUE=16000000 +RCC.VCOI2SOutputFreq_Value=192000000 +RCC.VCOInputFreq_Value=1000000 +RCC.VCOOutputFreq_Value=192000000 +RCC.VcooutputI2S=96000000 +USART2.IPParameters=VirtualMode +USART2.VirtualMode=VM_ASYNC +VP_FREERTOS_VS_CMSIS_V2.Mode=CMSIS_V2 +VP_FREERTOS_VS_CMSIS_V2.Signal=FREERTOS_VS_CMSIS_V2 +VP_RNG_VS_RNG.Mode=RNG_Activate +VP_RNG_VS_RNG.Signal=RNG_VS_RNG +VP_RTC_VS_RTC_Activate.Mode=RTC_Enabled +VP_RTC_VS_RTC_Activate.Signal=RTC_VS_RTC_Activate +VP_SYS_VS_tim1.Mode=TIM1 +VP_SYS_VS_tim1.Signal=SYS_VS_tim1 +VP_wolfSSL.wolfSSL_VS_wolfSSLJjwolfSSL_4.4.1.Mode=wolfSSLJjwolfSSL +VP_wolfSSL.wolfSSL_VS_wolfSSLJjwolfSSL_4.4.1.Signal=wolfSSL.wolfSSL_VS_wolfSSLJjwolfSSL_4.4.1 +board=custom +wolfSSL.wolfSSL.4.4.1.IPParameters=wolfSSLCcwolfSSLJjwolfSSLJjCore,wolfSSLCcwolfSSLJjwolfCryptJjCore,wolfSSLCcwolfSSLJjwolfCryptJjTest,WOLF_CONF_MATH,WOLF_CONF_RTOS +wolfSSL.wolfSSL.4.4.1.WOLF_CONF_MATH=4 +wolfSSL.wolfSSL.4.4.1.WOLF_CONF_RTOS=2 +wolfSSL.wolfSSL.4.4.1.wolfSSLCcwolfSSLJjwolfCryptJjCore=true +wolfSSL.wolfSSL.4.4.1.wolfSSLCcwolfSSLJjwolfCryptJjTest=true +wolfSSL.wolfSSL.4.4.1.wolfSSLCcwolfSSLJjwolfSSLJjCore=true +wolfSSL.wolfSSL.4.4.1.wolfSSLJjwolfSSL_Checked=true +wolfSSL.wolfSSL.4.4.1_SwParameter=wolfSSLCcwolfSSLJjwolfCryptJjCore\:true;wolfSSLCcwolfSSLJjwolfCryptJjTest\:true;wolfSSLCcwolfSSLJjwolfSSLJjCore\:true; +isbadioc=false diff --git a/IDE/STM32Cube/Boards/STM32F437.ioc b/IDE/STM32Cube/Boards/STM32F437.ioc new file mode 100644 index 000000000..61da0ee11 --- /dev/null +++ b/IDE/STM32Cube/Boards/STM32F437.ioc @@ -0,0 +1,308 @@ +#MicroXplorer Configuration settings - do not modify +FREERTOS.FootprintOK=true +FREERTOS.IPParameters=Tasks01,configTOTAL_HEAP_SIZE,configUSE_MALLOC_FAILED_HOOK,configCHECK_FOR_STACK_OVERFLOW,FootprintOK +FREERTOS.Tasks01=defaultTask,24,128,StartDefaultTask,Default,NULL,Dynamic,NULL,NULL;wolfCrypt,8,8960,wolfCryptDemo,As external,NULL,Dynamic,NULL,NULL +FREERTOS.configCHECK_FOR_STACK_OVERFLOW=2 +FREERTOS.configTOTAL_HEAP_SIZE=131072 +FREERTOS.configUSE_MALLOC_FAILED_HOOK=1 +File.Version=6 +KeepUserPlacement=false +Mcu.Family=STM32F4 +Mcu.IP0=CRYP +Mcu.IP1=FMC +Mcu.IP2=FREERTOS +Mcu.IP3=HASH +Mcu.IP4=NVIC +Mcu.IP5=RCC +Mcu.IP6=RNG +Mcu.IP7=RTC +Mcu.IP8=SYS +Mcu.IP9=UART4 +Mcu.IPNb=10 +Mcu.Name=STM32F437I(G-I)Hx +Mcu.Package=UFBGA176 +Mcu.Pin0=PE3 +Mcu.Pin1=PD7 +Mcu.Pin10=PF1 +Mcu.Pin11=PF3 +Mcu.Pin12=PF4 +Mcu.Pin13=PF5 +Mcu.Pin14=PG5 +Mcu.Pin15=PG4 +Mcu.Pin16=PG3 +Mcu.Pin17=PD15 +Mcu.Pin18=PG2 +Mcu.Pin19=PG1 +Mcu.Pin2=PD0 +Mcu.Pin20=PD14 +Mcu.Pin21=PD13 +Mcu.Pin22=PF13 +Mcu.Pin23=PG0 +Mcu.Pin24=PE13 +Mcu.Pin25=PD12 +Mcu.Pin26=PD11 +Mcu.Pin27=PD10 +Mcu.Pin28=PF12 +Mcu.Pin29=PF15 +Mcu.Pin3=PC11 +Mcu.Pin30=PE8 +Mcu.Pin31=PE9 +Mcu.Pin32=PE11 +Mcu.Pin33=PE14 +Mcu.Pin34=PD9 +Mcu.Pin35=PD8 +Mcu.Pin36=PF14 +Mcu.Pin37=PE7 +Mcu.Pin38=PE10 +Mcu.Pin39=PE12 +Mcu.Pin4=PC10 +Mcu.Pin40=PE15 +Mcu.Pin41=VP_CRYP_VS_CRYP +Mcu.Pin42=VP_FREERTOS_VS_CMSIS_V2 +Mcu.Pin43=VP_HASH_VS_HASH +Mcu.Pin44=VP_RNG_VS_RNG +Mcu.Pin45=VP_RTC_VS_RTC_Activate +Mcu.Pin46=VP_RTC_VS_RTC_Calendar +Mcu.Pin47=VP_SYS_VS_tim1 +Mcu.Pin48=VP_wolfSSL.wolfSSL_VS_wolfSSLJjwolfSSL_4.4.1 +Mcu.Pin5=PD5 +Mcu.Pin6=PD1 +Mcu.Pin7=PD4 +Mcu.Pin8=PF0 +Mcu.Pin9=PF2 +Mcu.PinsNb=49 +Mcu.ThirdParty0=wolfSSL.wolfSSL.4.4.1 +Mcu.ThirdPartyNb=1 +Mcu.UserConstants= +Mcu.UserName=STM32F437IIHx +MxCube.Version=5.6.1 +MxDb.Version=DB.5.0.60 +NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false +NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false +NVIC.ForceEnableDMAVector=true +NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false +NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false +NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false +NVIC.PendSV_IRQn=true\:15\:0\:false\:false\:false\:true\:false\:false +NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4 +NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:false\:false\:false\:false +NVIC.SysTick_IRQn=true\:15\:0\:false\:false\:false\:true\:false\:false +NVIC.TIM1_UP_TIM10_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:true +NVIC.TimeBase=TIM1_UP_TIM10_IRQn +NVIC.TimeBaseIP=TIM1 +NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false +PC10.Mode=Asynchronous +PC10.Signal=UART4_TX +PC11.Mode=Asynchronous +PC11.Signal=UART4_RX +PD0.Signal=FMC_D2_DA2 +PD1.Signal=FMC_D3_DA3 +PD10.Signal=FMC_D15_DA15 +PD11.Signal=FMC_A16_CLE +PD12.Signal=FMC_A17_ALE +PD13.Signal=FMC_A18 +PD14.Signal=FMC_D0_DA0 +PD15.Signal=FMC_D1_DA1 +PD4.Signal=FMC_NOE +PD5.Signal=FMC_NWE +PD7.Mode=NorPsramChipSelect1_1 +PD7.Signal=FMC_NE1 +PD8.Signal=FMC_D13_DA13 +PD9.Signal=FMC_D14_DA14 +PE10.Signal=FMC_D7_DA7 +PE11.Signal=FMC_D8_DA8 +PE12.Signal=FMC_D9_DA9 +PE13.Signal=FMC_D10_DA10 +PE14.Signal=FMC_D11_DA11 +PE15.Signal=FMC_D12_DA12 +PE3.Signal=FMC_A19 +PE7.Signal=FMC_D4_DA4 +PE8.Signal=FMC_D5_DA5 +PE9.Signal=FMC_D6_DA6 +PF0.Signal=FMC_A0 +PF1.Signal=FMC_A1 +PF12.Signal=FMC_A6 +PF13.Signal=FMC_A7 +PF14.Signal=FMC_A8 +PF15.Signal=FMC_A9 +PF2.Signal=FMC_A2 +PF3.Signal=FMC_A3 +PF4.Signal=FMC_A4 +PF5.Signal=FMC_A5 +PG0.Signal=FMC_A10 +PG1.Signal=FMC_A11 +PG2.Signal=FMC_A12 +PG3.Signal=FMC_A13 +PG4.Signal=FMC_A14_BA0 +PG5.Signal=FMC_A15_BA1 +PinOutPanel.CurrentBGAView=Top +PinOutPanel.RotationAngle=0 +ProjectManager.AskForMigrate=true +ProjectManager.BackupPrevious=false +ProjectManager.CompilerOptimize=6 +ProjectManager.ComputerToolchain=false +ProjectManager.CoupleFile=false +ProjectManager.CustomerFirmwarePackage= +ProjectManager.DefaultFWLocation=true +ProjectManager.DeletePrevious=true +ProjectManager.DeviceId=STM32F437IIHx +ProjectManager.FirmwarePackage=STM32Cube FW_F4 V1.25.0 +ProjectManager.FreePins=false +ProjectManager.HalAssertFull=false +ProjectManager.HeapSize=0x2000 +ProjectManager.KeepUserCode=true +ProjectManager.LastFirmware=true +ProjectManager.LibraryCopy=1 +ProjectManager.MainLocation=Core/Src +ProjectManager.NoMain=false +ProjectManager.PreviousToolchain= +ProjectManager.ProjectBuild=false +ProjectManager.ProjectFileName=STM32F437.ioc +ProjectManager.ProjectName=STM32F437 +ProjectManager.StackSize=0x4000 +ProjectManager.TargetToolchain=STM32CubeIDE +ProjectManager.ToolChainLocation= +ProjectManager.UnderRoot=true +ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-SystemClock_Config-RCC-false-HAL-false,3-MX_CRYP_Init-CRYP-false-HAL-true,4-MX_HASH_Init-HASH-false-HAL-true,5-MX_RNG_Init-RNG-false-HAL-true,6-MX_UART4_Init-UART4-false-HAL-true,7-MX_RTC_Init-RTC-false-HAL-true,8-MX_FMC_Init-FMC-false-HAL-true +RCC.48MHZClocksFreq_Value=45714285.71428572 +RCC.AHBFreq_Value=160000000 +RCC.APB1CLKDivider=RCC_HCLK_DIV4 +RCC.APB1Freq_Value=40000000 +RCC.APB1TimFreq_Value=80000000 +RCC.APB2CLKDivider=RCC_HCLK_DIV2 +RCC.APB2Freq_Value=80000000 +RCC.APB2TimFreq_Value=160000000 +RCC.CortexFreq_Value=160000000 +RCC.EthernetFreq_Value=160000000 +RCC.FCLKCortexFreq_Value=160000000 +RCC.FamilyName=M +RCC.HCLKFreq_Value=160000000 +RCC.HSE_VALUE=25000000 +RCC.HSI_VALUE=16000000 +RCC.I2SClocksFreq_Value=192000000 +RCC.IPParameters=48MHZClocksFreq_Value,AHBFreq_Value,APB1CLKDivider,APB1Freq_Value,APB1TimFreq_Value,APB2CLKDivider,APB2Freq_Value,APB2TimFreq_Value,CortexFreq_Value,EthernetFreq_Value,FCLKCortexFreq_Value,FamilyName,HCLKFreq_Value,HSE_VALUE,HSI_VALUE,I2SClocksFreq_Value,LSE_VALUE,LSI_VALUE,MCO2PinFreq_Value,PLLCLKFreq_Value,PLLM,PLLN,PLLQ,PLLQCLKFreq_Value,RTCFreq_Value,RTCHSEDivFreq_Value,SAI_AClocksFreq_Value,SAI_BClocksFreq_Value,SYSCLKFreq_VALUE,SYSCLKSource,VCOI2SOutputFreq_Value,VCOInputFreq_Value,VCOOutputFreq_Value,VCOSAIOutputFreq_Value,VCOSAIOutputFreq_ValueQ,VcooutputI2S,VcooutputI2SQ +RCC.LSE_VALUE=32768 +RCC.LSI_VALUE=32000 +RCC.MCO2PinFreq_Value=160000000 +RCC.PLLCLKFreq_Value=160000000 +RCC.PLLM=8 +RCC.PLLN=160 +RCC.PLLQ=7 +RCC.PLLQCLKFreq_Value=45714285.71428572 +RCC.RTCFreq_Value=32000 +RCC.RTCHSEDivFreq_Value=12500000 +RCC.SAI_AClocksFreq_Value=24500000 +RCC.SAI_BClocksFreq_Value=24500000 +RCC.SYSCLKFreq_VALUE=160000000 +RCC.SYSCLKSource=RCC_SYSCLKSOURCE_PLLCLK +RCC.VCOI2SOutputFreq_Value=384000000 +RCC.VCOInputFreq_Value=2000000 +RCC.VCOOutputFreq_Value=320000000 +RCC.VCOSAIOutputFreq_Value=98000000 +RCC.VCOSAIOutputFreq_ValueQ=24500000 +RCC.VcooutputI2S=192000000 +RCC.VcooutputI2SQ=192000000 +SH.FMC_A0.0=FMC_A0,20b-a1 +SH.FMC_A0.ConfNb=1 +SH.FMC_A1.0=FMC_A1,20b-a1 +SH.FMC_A1.ConfNb=1 +SH.FMC_A10.0=FMC_A10,20b-a1 +SH.FMC_A10.ConfNb=1 +SH.FMC_A11.0=FMC_A11,20b-a1 +SH.FMC_A11.ConfNb=1 +SH.FMC_A12.0=FMC_A12,20b-a1 +SH.FMC_A12.ConfNb=1 +SH.FMC_A13.0=FMC_A13,20b-a1 +SH.FMC_A13.ConfNb=1 +SH.FMC_A14_BA0.0=FMC_A14,20b-a1 +SH.FMC_A14_BA0.ConfNb=1 +SH.FMC_A15_BA1.0=FMC_A15,20b-a1 +SH.FMC_A15_BA1.ConfNb=1 +SH.FMC_A16_CLE.0=FMC_A16,20b-a1 +SH.FMC_A16_CLE.ConfNb=1 +SH.FMC_A17_ALE.0=FMC_A17,20b-a1 +SH.FMC_A17_ALE.ConfNb=1 +SH.FMC_A18.0=FMC_A18,20b-a1 +SH.FMC_A18.ConfNb=1 +SH.FMC_A19.0=FMC_A19,20b-a1 +SH.FMC_A19.ConfNb=1 +SH.FMC_A2.0=FMC_A2,20b-a1 +SH.FMC_A2.ConfNb=1 +SH.FMC_A3.0=FMC_A3,20b-a1 +SH.FMC_A3.ConfNb=1 +SH.FMC_A4.0=FMC_A4,20b-a1 +SH.FMC_A4.ConfNb=1 +SH.FMC_A5.0=FMC_A5,20b-a1 +SH.FMC_A5.ConfNb=1 +SH.FMC_A6.0=FMC_A6,20b-a1 +SH.FMC_A6.ConfNb=1 +SH.FMC_A7.0=FMC_A7,20b-a1 +SH.FMC_A7.ConfNb=1 +SH.FMC_A8.0=FMC_A8,20b-a1 +SH.FMC_A8.ConfNb=1 +SH.FMC_A9.0=FMC_A9,20b-a1 +SH.FMC_A9.ConfNb=1 +SH.FMC_D0_DA0.0=FMC_D0,16b-d1 +SH.FMC_D0_DA0.ConfNb=1 +SH.FMC_D10_DA10.0=FMC_D10,16b-d1 +SH.FMC_D10_DA10.ConfNb=1 +SH.FMC_D11_DA11.0=FMC_D11,16b-d1 +SH.FMC_D11_DA11.ConfNb=1 +SH.FMC_D12_DA12.0=FMC_D12,16b-d1 +SH.FMC_D12_DA12.ConfNb=1 +SH.FMC_D13_DA13.0=FMC_D13,16b-d1 +SH.FMC_D13_DA13.ConfNb=1 +SH.FMC_D14_DA14.0=FMC_D14,16b-d1 +SH.FMC_D14_DA14.ConfNb=1 +SH.FMC_D15_DA15.0=FMC_D15,16b-d1 +SH.FMC_D15_DA15.ConfNb=1 +SH.FMC_D1_DA1.0=FMC_D1,16b-d1 +SH.FMC_D1_DA1.ConfNb=1 +SH.FMC_D2_DA2.0=FMC_D2,16b-d1 +SH.FMC_D2_DA2.ConfNb=1 +SH.FMC_D3_DA3.0=FMC_D3,16b-d1 +SH.FMC_D3_DA3.ConfNb=1 +SH.FMC_D4_DA4.0=FMC_D4,16b-d1 +SH.FMC_D4_DA4.ConfNb=1 +SH.FMC_D5_DA5.0=FMC_D5,16b-d1 +SH.FMC_D5_DA5.ConfNb=1 +SH.FMC_D6_DA6.0=FMC_D6,16b-d1 +SH.FMC_D6_DA6.ConfNb=1 +SH.FMC_D7_DA7.0=FMC_D7,16b-d1 +SH.FMC_D7_DA7.ConfNb=1 +SH.FMC_D8_DA8.0=FMC_D8,16b-d1 +SH.FMC_D8_DA8.ConfNb=1 +SH.FMC_D9_DA9.0=FMC_D9,16b-d1 +SH.FMC_D9_DA9.ConfNb=1 +SH.FMC_NOE.0=FMC_NOE,Sram1 +SH.FMC_NOE.ConfNb=1 +SH.FMC_NWE.0=FMC_NWE,Sram1 +SH.FMC_NWE.ConfNb=1 +UART4.IPParameters=VirtualMode +UART4.VirtualMode=Asynchronous +VP_CRYP_VS_CRYP.Mode=CRYP_Activate +VP_CRYP_VS_CRYP.Signal=CRYP_VS_CRYP +VP_FREERTOS_VS_CMSIS_V2.Mode=CMSIS_V2 +VP_FREERTOS_VS_CMSIS_V2.Signal=FREERTOS_VS_CMSIS_V2 +VP_HASH_VS_HASH.Mode=HASH_Activate +VP_HASH_VS_HASH.Signal=HASH_VS_HASH +VP_RNG_VS_RNG.Mode=RNG_Activate +VP_RNG_VS_RNG.Signal=RNG_VS_RNG +VP_RTC_VS_RTC_Activate.Mode=RTC_Enabled +VP_RTC_VS_RTC_Activate.Signal=RTC_VS_RTC_Activate +VP_RTC_VS_RTC_Calendar.Mode=RTC_Calendar +VP_RTC_VS_RTC_Calendar.Signal=RTC_VS_RTC_Calendar +VP_SYS_VS_tim1.Mode=TIM1 +VP_SYS_VS_tim1.Signal=SYS_VS_tim1 +VP_wolfSSL.wolfSSL_VS_wolfSSLJjwolfSSL_4.4.1.Mode=wolfSSLJjwolfSSL +VP_wolfSSL.wolfSSL_VS_wolfSSLJjwolfSSL_4.4.1.Signal=wolfSSL.wolfSSL_VS_wolfSSLJjwolfSSL_4.4.1 +board=custom +wolfSSL.wolfSSL.4.4.1.IPParameters=wolfSSLCcwolfSSLJjwolfSSLJjCore,wolfSSLCcwolfSSLJjwolfCryptJjTest,WOLFCRYPT_ONLY,WOLF_CONF_MATH,WOLF_CONF_RTOS +wolfSSL.wolfSSL.4.4.1.WOLFCRYPT_ONLY=False +wolfSSL.wolfSSL.4.4.1.WOLF_CONF_MATH=4 +wolfSSL.wolfSSL.4.4.1.WOLF_CONF_RTOS=2 +wolfSSL.wolfSSL.4.4.1.wolfSSLCcwolfSSLJjwolfCryptJjTest=true +wolfSSL.wolfSSL.4.4.1.wolfSSLCcwolfSSLJjwolfSSLJjCore=true +wolfSSL.wolfSSL.4.4.1.wolfSSLJjwolfSSL_Checked=true +wolfSSL.wolfSSL.4.4.1_SwParameter=wolfSSLCcwolfSSLJjwolfCryptJjTest\:true;wolfSSLCcwolfSSLJjwolfSSLJjCore\:true; +isbadioc=false diff --git a/IDE/STM32Cube/Boards/STM32F777.ioc b/IDE/STM32Cube/Boards/STM32F777.ioc new file mode 100644 index 000000000..1b3eda7e9 --- /dev/null +++ b/IDE/STM32Cube/Boards/STM32F777.ioc @@ -0,0 +1,193 @@ +#MicroXplorer Configuration settings - do not modify +FREERTOS.FootprintOK=true +FREERTOS.IPParameters=Tasks01,configTOTAL_HEAP_SIZE,configUSE_MALLOC_FAILED_HOOK,configCHECK_FOR_STACK_OVERFLOW,FootprintOK +FREERTOS.Tasks01=defaultTask,24,128,StartDefaultTask,Default,NULL,Dynamic,NULL,NULL;wolfCrypt,8,8960,wolfCryptDemo,As external,NULL,Dynamic,NULL,NULL +FREERTOS.configCHECK_FOR_STACK_OVERFLOW=2 +FREERTOS.configTOTAL_HEAP_SIZE=131072 +FREERTOS.configUSE_MALLOC_FAILED_HOOK=1 +File.Version=6 +KeepUserPlacement=false +Mcu.Family=STM32F7 +Mcu.IP0=CORTEX_M7 +Mcu.IP1=CRYP +Mcu.IP10=USART3 +Mcu.IP2=FREERTOS +Mcu.IP3=HASH +Mcu.IP4=NVIC +Mcu.IP5=RCC +Mcu.IP6=RNG +Mcu.IP7=RTC +Mcu.IP8=SYS +Mcu.IP9=USART2 +Mcu.IPNb=11 +Mcu.Name=STM32F777NIHx +Mcu.Package=TFBGA216 +Mcu.Pin0=PD6 +Mcu.Pin1=PI8 +Mcu.Pin10=VP_RTC_VS_RTC_Calendar +Mcu.Pin11=VP_SYS_VS_tim1 +Mcu.Pin12=VP_wolfSSL.wolfSSL_VS_wolfSSLJjwolfSSL_4.4.1 +Mcu.Pin2=PD5 +Mcu.Pin3=PD9 +Mcu.Pin4=PD8 +Mcu.Pin5=VP_CRYP_VS_CRYP +Mcu.Pin6=VP_FREERTOS_VS_CMSIS_V2 +Mcu.Pin7=VP_HASH_VS_HASH +Mcu.Pin8=VP_RNG_VS_RNG +Mcu.Pin9=VP_RTC_VS_RTC_Activate +Mcu.PinsNb=13 +Mcu.ThirdParty0=wolfSSL.wolfSSL.4.4.1 +Mcu.ThirdPartyNb=1 +Mcu.UserConstants= +Mcu.UserName=STM32F777NIHx +MxCube.Version=5.6.1 +MxDb.Version=DB.5.0.60 +NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false +NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false +NVIC.ForceEnableDMAVector=true +NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false +NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false +NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false +NVIC.PendSV_IRQn=true\:15\:0\:false\:false\:false\:true\:false\:false +NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4 +NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:false\:false\:false\:false +NVIC.SysTick_IRQn=true\:15\:0\:false\:false\:false\:true\:false\:false +NVIC.TIM1_UP_TIM10_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:true +NVIC.TimeBase=TIM1_UP_TIM10_IRQn +NVIC.TimeBaseIP=TIM1 +NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false +PD5.Mode=Asynchronous +PD5.Signal=USART2_TX +PD6.Mode=Asynchronous +PD6.Signal=USART2_RX +PD8.Locked=true +PD8.Mode=Asynchronous +PD8.Signal=USART3_TX +PD9.Locked=true +PD9.Mode=Asynchronous +PD9.Signal=USART3_RX +PI8.Mode=Timestamp enabled - Input Enabled to TS +PI8.Signal=RTC_TS +PinOutPanel.CurrentBGAView=Top +PinOutPanel.RotationAngle=0 +ProjectManager.AskForMigrate=true +ProjectManager.BackupPrevious=false +ProjectManager.CompilerOptimize=6 +ProjectManager.ComputerToolchain=false +ProjectManager.CoupleFile=false +ProjectManager.CustomerFirmwarePackage= +ProjectManager.DefaultFWLocation=true +ProjectManager.DeletePrevious=true +ProjectManager.DeviceId=STM32F777NIHx +ProjectManager.FirmwarePackage=STM32Cube FW_F7 V1.16.0 +ProjectManager.FreePins=false +ProjectManager.HalAssertFull=false +ProjectManager.HeapSize=0x200 +ProjectManager.KeepUserCode=true +ProjectManager.LastFirmware=true +ProjectManager.LibraryCopy=1 +ProjectManager.MainLocation=Core/Src +ProjectManager.NoMain=false +ProjectManager.PreviousToolchain= +ProjectManager.ProjectBuild=false +ProjectManager.ProjectFileName=STM32F777.ioc +ProjectManager.ProjectName=STM32F777 +ProjectManager.StackSize=0x400 +ProjectManager.TargetToolchain=STM32CubeIDE +ProjectManager.ToolChainLocation= +ProjectManager.UnderRoot=true +ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-SystemClock_Config-RCC-false-HAL-false,3-MX_CRYP_Init-CRYP-false-HAL-true,4-MX_HASH_Init-HASH-false-HAL-true,5-MX_RNG_Init-RNG-false-HAL-true,6-MX_USART3_UART_Init-USART3-false-HAL-true,0-MX_CORTEX_M7_Init-CORTEX_M7-false-HAL-true +RCC.AHBFreq_Value=216000000 +RCC.APB1CLKDivider=RCC_HCLK_DIV4 +RCC.APB1Freq_Value=54000000 +RCC.APB1TimFreq_Value=108000000 +RCC.APB2CLKDivider=RCC_HCLK_DIV2 +RCC.APB2Freq_Value=108000000 +RCC.APB2TimFreq_Value=216000000 +RCC.CECFreq_Value=32786.88524590164 +RCC.CortexFreq_Value=216000000 +RCC.DFSDMAudioFreq_Value=192000000 +RCC.DFSDMFreq_Value=108000000 +RCC.EthernetFreq_Value=216000000 +RCC.FCLKCortexFreq_Value=216000000 +RCC.FamilyName=M +RCC.HCLKFreq_Value=216000000 +RCC.HSE_VALUE=25000000 +RCC.HSI_VALUE=16000000 +RCC.I2C1Freq_Value=54000000 +RCC.I2C2Freq_Value=54000000 +RCC.I2C3Freq_Value=54000000 +RCC.I2C4Freq_Value=54000000 +RCC.I2SFreq_Value=192000000 +RCC.IPParameters=AHBFreq_Value,APB1CLKDivider,APB1Freq_Value,APB1TimFreq_Value,APB2CLKDivider,APB2Freq_Value,APB2TimFreq_Value,CECFreq_Value,CortexFreq_Value,DFSDMAudioFreq_Value,DFSDMFreq_Value,EthernetFreq_Value,FCLKCortexFreq_Value,FamilyName,HCLKFreq_Value,HSE_VALUE,HSI_VALUE,I2C1Freq_Value,I2C2Freq_Value,I2C3Freq_Value,I2C4Freq_Value,I2SFreq_Value,LCDTFTFreq_Value,LPTIM1Freq_Value,LSE_VALUE,LSI_VALUE,MCO2PinFreq_Value,PLLCLKFreq_Value,PLLI2SPCLKFreq_Value,PLLI2SQCLKFreq_Value,PLLI2SRCLKFreq_Value,PLLI2SRoutputFreq_Value,PLLM,PLLN,PLLQ,PLLQCLKFreq_Value,PLLQoutputFreq_Value,PLLRFreq_Value,PLLSAIPCLKFreq_Value,PLLSAIQCLKFreq_Value,PLLSAIRCLKFreq_Value,PLLSAIoutputFreq_Value,RNGFreq_Value,SAI1Freq_Value,SAI2Freq_Value,SDMMC2Freq_Value,SDMMCFreq_Value,SPDIFRXFreq_Value,SYSCLKFreq_VALUE,SYSCLKSource,UART4Freq_Value,UART5Freq_Value,UART7Freq_Value,UART8Freq_Value,USART1Freq_Value,USART2Freq_Value,USART3Freq_Value,USART6Freq_Value,USBFreq_Value,VCOI2SOutputFreq_Value,VCOInputFreq_Value,VCOOutputFreq_Value,VCOSAIOutputFreq_Value +RCC.LCDTFTFreq_Value=96000000 +RCC.LPTIM1Freq_Value=54000000 +RCC.LSE_VALUE=32768 +RCC.LSI_VALUE=32000 +RCC.MCO2PinFreq_Value=216000000 +RCC.PLLCLKFreq_Value=216000000 +RCC.PLLI2SPCLKFreq_Value=192000000 +RCC.PLLI2SQCLKFreq_Value=192000000 +RCC.PLLI2SRCLKFreq_Value=192000000 +RCC.PLLI2SRoutputFreq_Value=192000000 +RCC.PLLM=8 +RCC.PLLN=216 +RCC.PLLQ=9 +RCC.PLLQCLKFreq_Value=48000000 +RCC.PLLQoutputFreq_Value=48000000 +RCC.PLLRFreq_Value=216000000 +RCC.PLLSAIPCLKFreq_Value=192000000 +RCC.PLLSAIQCLKFreq_Value=192000000 +RCC.PLLSAIRCLKFreq_Value=192000000 +RCC.PLLSAIoutputFreq_Value=192000000 +RCC.RNGFreq_Value=48000000 +RCC.SAI1Freq_Value=192000000 +RCC.SAI2Freq_Value=192000000 +RCC.SDMMC2Freq_Value=216000000 +RCC.SDMMCFreq_Value=216000000 +RCC.SPDIFRXFreq_Value=192000000 +RCC.SYSCLKFreq_VALUE=216000000 +RCC.SYSCLKSource=RCC_SYSCLKSOURCE_PLLCLK +RCC.UART4Freq_Value=54000000 +RCC.UART5Freq_Value=54000000 +RCC.UART7Freq_Value=54000000 +RCC.UART8Freq_Value=54000000 +RCC.USART1Freq_Value=108000000 +RCC.USART2Freq_Value=54000000 +RCC.USART3Freq_Value=54000000 +RCC.USART6Freq_Value=108000000 +RCC.USBFreq_Value=48000000 +RCC.VCOI2SOutputFreq_Value=384000000 +RCC.VCOInputFreq_Value=2000000 +RCC.VCOOutputFreq_Value=432000000 +RCC.VCOSAIOutputFreq_Value=384000000 +USART2.IPParameters=VirtualMode-Asynchronous +USART2.VirtualMode-Asynchronous=VM_ASYNC +USART3.IPParameters=VirtualMode-Asynchronous +USART3.VirtualMode-Asynchronous=VM_ASYNC +VP_CRYP_VS_CRYP.Mode=CRYP_Activate +VP_CRYP_VS_CRYP.Signal=CRYP_VS_CRYP +VP_FREERTOS_VS_CMSIS_V2.Mode=CMSIS_V2 +VP_FREERTOS_VS_CMSIS_V2.Signal=FREERTOS_VS_CMSIS_V2 +VP_HASH_VS_HASH.Mode=HASH_Activate +VP_HASH_VS_HASH.Signal=HASH_VS_HASH +VP_RNG_VS_RNG.Mode=RNG_Activate +VP_RNG_VS_RNG.Signal=RNG_VS_RNG +VP_RTC_VS_RTC_Activate.Mode=RTC_Enabled +VP_RTC_VS_RTC_Activate.Signal=RTC_VS_RTC_Activate +VP_RTC_VS_RTC_Calendar.Mode=RTC_Calendar +VP_RTC_VS_RTC_Calendar.Signal=RTC_VS_RTC_Calendar +VP_SYS_VS_tim1.Mode=TIM1 +VP_SYS_VS_tim1.Signal=SYS_VS_tim1 +VP_wolfSSL.wolfSSL_VS_wolfSSLJjwolfSSL_4.4.1.Mode=wolfSSLJjwolfSSL +VP_wolfSSL.wolfSSL_VS_wolfSSLJjwolfSSL_4.4.1.Signal=wolfSSL.wolfSSL_VS_wolfSSLJjwolfSSL_4.4.1 +board=custom +wolfSSL.wolfSSL.4.4.1.IPParameters=wolfSSLCcwolfSSLJjwolfSSLJjCore,wolfSSLCcwolfSSLJjwolfCryptJjCore,wolfSSLCcwolfSSLJjwolfCryptJjTest,WOLF_CONF_MATH,WOLF_CONF_RTOS +wolfSSL.wolfSSL.4.4.1.WOLF_CONF_MATH=4 +wolfSSL.wolfSSL.4.4.1.WOLF_CONF_RTOS=2 +wolfSSL.wolfSSL.4.4.1.wolfSSLCcwolfSSLJjwolfCryptJjCore=true +wolfSSL.wolfSSL.4.4.1.wolfSSLCcwolfSSLJjwolfCryptJjTest=true +wolfSSL.wolfSSL.4.4.1.wolfSSLCcwolfSSLJjwolfSSLJjCore=true +wolfSSL.wolfSSL.4.4.1.wolfSSLJjwolfSSL_Checked=true +wolfSSL.wolfSSL.4.4.1_SwParameter=wolfSSLCcwolfSSLJjwolfCryptJjCore\:true;wolfSSLCcwolfSSLJjwolfCryptJjTest\:true;wolfSSLCcwolfSSLJjwolfSSLJjCore\:true; +isbadioc=false diff --git a/IDE/STM32Cube/Boards/STM32H753.ioc b/IDE/STM32Cube/Boards/STM32H753.ioc new file mode 100644 index 000000000..48ba80756 --- /dev/null +++ b/IDE/STM32Cube/Boards/STM32H753.ioc @@ -0,0 +1,338 @@ +#MicroXplorer Configuration settings - do not modify +CORTEX_M7.CPU_DCache=Disabled +CORTEX_M7.CPU_ICache=Disabled +CORTEX_M7.IPParameters=CPU_ICache,CPU_DCache,MPU_Control +CORTEX_M7.MPU_Control=__NULL +ETH.ETH_RX_DESC_CNT=4 +ETH.ETH_TX_DESC_CNT=4 +ETH.IPParameters=MACAddr,MediaInterface,ETH_TX_DESC_CNT,TxDescAddress,ETH_RX_DESC_CNT,RxDescAddress,RxBuffAddress,RxBuffLen +ETH.MACAddr=00\:80\:E1\:00\:00\:00 +ETH.MediaInterface=HAL_ETH_RMII_MODE +ETH.RxBuffAddress=0x30040200 +ETH.RxBuffLen=1524 +ETH.RxDescAddress=0x30040000 +ETH.TxDescAddress=0x30040060 +FREERTOS.FootprintOK=true +FREERTOS.IPParameters=Tasks01,configTOTAL_HEAP_SIZE,configUSE_MALLOC_FAILED_HOOK,configCHECK_FOR_STACK_OVERFLOW,FootprintOK +FREERTOS.Tasks01=defaultTask,24,128,StartDefaultTask,Default,NULL,Dynamic,NULL,NULL;wolfCrypt,8,8960,wolfCryptDemo,As external,NULL,Dynamic,NULL,NULL +FREERTOS.configCHECK_FOR_STACK_OVERFLOW=2 +FREERTOS.configTOTAL_HEAP_SIZE=180000 +FREERTOS.configUSE_MALLOC_FAILED_HOOK=1 +File.Version=6 +KeepUserPlacement=false +Mcu.Family=STM32H7 +Mcu.IP0=CORTEX_M7 +Mcu.IP1=CRYP +Mcu.IP10=USART3 +Mcu.IP11=USB_OTG_FS +Mcu.IP2=ETH +Mcu.IP3=FREERTOS +Mcu.IP4=HASH +Mcu.IP5=NVIC +Mcu.IP6=RCC +Mcu.IP7=RNG +Mcu.IP8=RTC +Mcu.IP9=SYS +Mcu.IPNb=12 +Mcu.Name=STM32H753ZITx +Mcu.Package=LQFP144 +Mcu.Pin0=PC13 +Mcu.Pin1=PC14-OSC32_IN (OSC32_IN) +Mcu.Pin10=PC5 +Mcu.Pin11=PB0 +Mcu.Pin12=PB13 +Mcu.Pin13=PB14 +Mcu.Pin14=PD8 +Mcu.Pin15=PD9 +Mcu.Pin16=PD10 +Mcu.Pin17=PG7 +Mcu.Pin18=PA8 +Mcu.Pin19=PA9 +Mcu.Pin2=PC15-OSC32_OUT (OSC32_OUT) +Mcu.Pin20=PA11 +Mcu.Pin21=PA12 +Mcu.Pin22=PG11 +Mcu.Pin23=PG13 +Mcu.Pin24=PE1 +Mcu.Pin25=VP_CRYP_VS_CRYP +Mcu.Pin26=VP_FREERTOS_VS_CMSIS_V2 +Mcu.Pin27=VP_HASH_VS_HASH +Mcu.Pin28=VP_RNG_VS_RNG +Mcu.Pin29=VP_RTC_VS_RTC_Activate +Mcu.Pin3=PH0-OSC_IN (PH0) +Mcu.Pin30=VP_SYS_VS_tim1 +Mcu.Pin31=VP_wolfSSL.wolfSSL_VS_wolfSSLJjwolfSSL_4.4.1 +Mcu.Pin4=PH1-OSC_OUT (PH1) +Mcu.Pin5=PC1 +Mcu.Pin6=PA1 +Mcu.Pin7=PA2 +Mcu.Pin8=PA7 +Mcu.Pin9=PC4 +Mcu.PinsNb=32 +Mcu.ThirdParty0=wolfSSL.wolfSSL.4.4.1 +Mcu.ThirdPartyNb=1 +Mcu.UserConstants= +Mcu.UserName=STM32H753ZITx +MxCube.Version=5.6.1 +MxDb.Version=DB.5.0.60 +NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false +NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false +NVIC.ForceEnableDMAVector=true +NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false +NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false +NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false +NVIC.PendSV_IRQn=true\:15\:0\:false\:false\:false\:true\:false\:false +NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4 +NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:false\:false\:false\:false +NVIC.SysTick_IRQn=true\:15\:0\:false\:false\:false\:true\:false\:false +NVIC.TIM1_UP_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:true +NVIC.TimeBase=TIM1_UP_IRQn +NVIC.TimeBaseIP=TIM1 +NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false +PA1.Locked=true +PA1.Mode=RMII +PA1.Signal=ETH_REF_CLK +PA11.Locked=true +PA11.Mode=Device_Only +PA11.Signal=USB_OTG_FS_DM +PA12.Locked=true +PA12.Mode=Device_Only +PA12.Signal=USB_OTG_FS_DP +PA2.Locked=true +PA2.Mode=RMII +PA2.Signal=ETH_MDIO +PA7.Locked=true +PA7.Mode=RMII +PA7.Signal=ETH_CRS_DV +PA8.Locked=true +PA8.Mode=Activate_SOF_FS +PA8.Signal=USB_OTG_FS_SOF +PA9.Locked=true +PA9.Mode=Activate_VBUS +PA9.Signal=USB_OTG_FS_VBUS +PB0.GPIOParameters=GPIO_Label +PB0.GPIO_Label=LD1 [Green Led] +PB0.Locked=true +PB0.Signal=GPIO_Output +PB13.Locked=true +PB13.Mode=RMII +PB13.Signal=ETH_TXD1 +PB14.GPIOParameters=GPIO_Label +PB14.GPIO_Label=LD3 [Red Led] +PB14.Locked=true +PB14.Signal=GPIO_Output +PC1.Locked=true +PC1.Mode=RMII +PC1.Signal=ETH_MDC +PC13.GPIOParameters=GPIO_Label +PC13.GPIO_Label=B1 [Blue PushButton] +PC13.Locked=true +PC13.Signal=GPIO_Input +PC14-OSC32_IN\ (OSC32_IN).Locked=true +PC14-OSC32_IN\ (OSC32_IN).Mode=LSE-External-Oscillator +PC14-OSC32_IN\ (OSC32_IN).Signal=RCC_OSC32_IN +PC15-OSC32_OUT\ (OSC32_OUT).Locked=true +PC15-OSC32_OUT\ (OSC32_OUT).Mode=LSE-External-Oscillator +PC15-OSC32_OUT\ (OSC32_OUT).Signal=RCC_OSC32_OUT +PC4.Locked=true +PC4.Mode=RMII +PC4.Signal=ETH_RXD0 +PC5.Locked=true +PC5.Mode=RMII +PC5.Signal=ETH_RXD1 +PD10.GPIOParameters=GPIO_Label +PD10.GPIO_Label=USB_OTG_FS_PWR_EN +PD10.Locked=true +PD10.Signal=GPIO_Output +PD8.GPIOParameters=GPIO_Label +PD8.GPIO_Label=STLINK_RX +PD8.Locked=true +PD8.Mode=Asynchronous +PD8.Signal=USART3_TX +PD9.GPIOParameters=GPIO_Label +PD9.GPIO_Label=STLINK_TX +PD9.Locked=true +PD9.Mode=Asynchronous +PD9.Signal=USART3_RX +PE1.GPIOParameters=GPIO_Label +PE1.GPIO_Label=LD2 [Yellow Led] +PE1.Locked=true +PE1.Signal=GPIO_Output +PG11.Locked=true +PG11.Mode=RMII +PG11.Signal=ETH_TX_EN +PG13.Locked=true +PG13.Mode=RMII +PG13.Signal=ETH_TXD0 +PG7.GPIOParameters=GPIO_Label +PG7.GPIO_Label=USB_OTG_FS_OVCR +PG7.Locked=true +PG7.Signal=GPXTI7 +PH0-OSC_IN\ (PH0).Locked=true +PH0-OSC_IN\ (PH0).Mode=HSE-External-Clock-Source +PH0-OSC_IN\ (PH0).Signal=RCC_OSC_IN +PH1-OSC_OUT\ (PH1).Locked=true +PH1-OSC_OUT\ (PH1).Signal=RCC_OSC_OUT +PinOutPanel.RotationAngle=0 +ProjectManager.AskForMigrate=true +ProjectManager.BackupPrevious=false +ProjectManager.CompilerOptimize=6 +ProjectManager.ComputerToolchain=false +ProjectManager.CoupleFile=false +ProjectManager.CustomerFirmwarePackage= +ProjectManager.DefaultFWLocation=true +ProjectManager.DeletePrevious=true +ProjectManager.DeviceId=STM32H753ZITx +ProjectManager.FirmwarePackage=STM32Cube FW_H7 V1.7.0 +ProjectManager.FreePins=false +ProjectManager.HalAssertFull=false +ProjectManager.HeapSize=0x200 +ProjectManager.KeepUserCode=true +ProjectManager.LastFirmware=true +ProjectManager.LibraryCopy=1 +ProjectManager.MainLocation=Core/Src +ProjectManager.NoMain=false +ProjectManager.PreviousToolchain= +ProjectManager.ProjectBuild=false +ProjectManager.ProjectFileName=STM32H753.ioc +ProjectManager.ProjectName=STM32H753 +ProjectManager.StackSize=0x400 +ProjectManager.TargetToolchain=STM32CubeIDE +ProjectManager.ToolChainLocation= +ProjectManager.UnderRoot=true +ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-SystemClock_Config-RCC-false-HAL-false,3-MX_ETH_Init-ETH-false-HAL-true,4-MX_USART3_UART_Init-USART3-false-HAL-true,5-MX_USB_OTG_FS_PCD_Init-USB_OTG_FS-false-HAL-true,0-MX_CORTEX_M7_Init-CORTEX_M7-false-HAL-true +RCC.ADCFreq_Value=16125000 +RCC.AHB12Freq_Value=240000000 +RCC.AHB4Freq_Value=240000000 +RCC.APB1Freq_Value=120000000 +RCC.APB2Freq_Value=120000000 +RCC.APB3Freq_Value=120000000 +RCC.APB4Freq_Value=120000000 +RCC.AXIClockFreq_Value=240000000 +RCC.CECFreq_Value=32000 +RCC.CKPERFreq_Value=64000000 +RCC.CortexFreq_Value=480000000 +RCC.CpuClockFreq_Value=480000000 +RCC.D1CPREFreq_Value=480000000 +RCC.D1PPRE=RCC_APB3_DIV2 +RCC.D2PPRE1=RCC_APB1_DIV2 +RCC.D2PPRE2=RCC_APB2_DIV2 +RCC.D3PPRE=RCC_APB4_DIV2 +RCC.DFSDMACLkFreq_Value=48000000 +RCC.DFSDMFreq_Value=120000000 +RCC.DIVM1=1 +RCC.DIVN1=120 +RCC.DIVP1Freq_Value=480000000 +RCC.DIVP2Freq_Value=16125000 +RCC.DIVP3Freq_Value=16125000 +RCC.DIVQ1=20 +RCC.DIVQ1Freq_Value=48000000 +RCC.DIVQ2Freq_Value=16125000 +RCC.DIVQ3Freq_Value=16125000 +RCC.DIVR1Freq_Value=480000000 +RCC.DIVR2Freq_Value=16125000 +RCC.DIVR3Freq_Value=16125000 +RCC.FDCANFreq_Value=48000000 +RCC.FMCFreq_Value=240000000 +RCC.FamilyName=M +RCC.HCLK3ClockFreq_Value=240000000 +RCC.HCLKFreq_Value=240000000 +RCC.HPRE=RCC_HCLK_DIV2 +RCC.HRTIMFreq_Value=240000000 +RCC.HSE_VALUE=8000000 +RCC.I2C123Freq_Value=120000000 +RCC.I2C4Freq_Value=120000000 +RCC.IPParameters=ADCFreq_Value,AHB12Freq_Value,AHB4Freq_Value,APB1Freq_Value,APB2Freq_Value,APB3Freq_Value,APB4Freq_Value,AXIClockFreq_Value,CECFreq_Value,CKPERFreq_Value,CortexFreq_Value,CpuClockFreq_Value,D1CPREFreq_Value,D1PPRE,D2PPRE1,D2PPRE2,D3PPRE,DFSDMACLkFreq_Value,DFSDMFreq_Value,DIVM1,DIVN1,DIVP1Freq_Value,DIVP2Freq_Value,DIVP3Freq_Value,DIVQ1,DIVQ1Freq_Value,DIVQ2Freq_Value,DIVQ3Freq_Value,DIVR1Freq_Value,DIVR2Freq_Value,DIVR3Freq_Value,FDCANFreq_Value,FMCFreq_Value,FamilyName,HCLK3ClockFreq_Value,HCLKFreq_Value,HPRE,HRTIMFreq_Value,HSE_VALUE,I2C123Freq_Value,I2C4Freq_Value,LPTIM1Freq_Value,LPTIM2Freq_Value,LPTIM345Freq_Value,LPUART1Freq_Value,LTDCFreq_Value,MCO1PinFreq_Value,MCO2PinFreq_Value,PLL2FRACN,PLL3FRACN,PLLFRACN,QSPIFreq_Value,RNGFreq_Value,RTCFreq_Value,SAI1Freq_Value,SAI23Freq_Value,SAI4AFreq_Value,SAI4BFreq_Value,SDMMCFreq_Value,SPDIFRXFreq_Value,SPI123Freq_Value,SPI45Freq_Value,SPI6Freq_Value,SWPMI1Freq_Value,SYSCLKFreq_VALUE,SYSCLKSource,Tim1OutputFreq_Value,Tim2OutputFreq_Value,TraceFreq_Value,USART16Freq_Value,USART234578Freq_Value,USBFreq_Value,VCO1OutputFreq_Value,VCO2OutputFreq_Value,VCO3OutputFreq_Value,VCOInput1Freq_Value,VCOInput2Freq_Value,VCOInput3Freq_Value +RCC.LPTIM1Freq_Value=120000000 +RCC.LPTIM2Freq_Value=120000000 +RCC.LPTIM345Freq_Value=120000000 +RCC.LPUART1Freq_Value=120000000 +RCC.LTDCFreq_Value=16125000 +RCC.MCO1PinFreq_Value=64000000 +RCC.MCO2PinFreq_Value=480000000 +RCC.PLL2FRACN=0 +RCC.PLL3FRACN=0 +RCC.PLLFRACN=0 +RCC.QSPIFreq_Value=240000000 +RCC.RNGFreq_Value=48000000 +RCC.RTCFreq_Value=32000 +RCC.SAI1Freq_Value=48000000 +RCC.SAI23Freq_Value=48000000 +RCC.SAI4AFreq_Value=48000000 +RCC.SAI4BFreq_Value=48000000 +RCC.SDMMCFreq_Value=48000000 +RCC.SPDIFRXFreq_Value=48000000 +RCC.SPI123Freq_Value=48000000 +RCC.SPI45Freq_Value=120000000 +RCC.SPI6Freq_Value=120000000 +RCC.SWPMI1Freq_Value=120000000 +RCC.SYSCLKFreq_VALUE=480000000 +RCC.SYSCLKSource=RCC_SYSCLKSOURCE_PLLCLK +RCC.Tim1OutputFreq_Value=240000000 +RCC.Tim2OutputFreq_Value=240000000 +RCC.TraceFreq_Value=64000000 +RCC.USART16Freq_Value=120000000 +RCC.USART234578Freq_Value=120000000 +RCC.USBFreq_Value=48000000 +RCC.VCO1OutputFreq_Value=960000000 +RCC.VCO2OutputFreq_Value=32250000 +RCC.VCO3OutputFreq_Value=32250000 +RCC.VCOInput1Freq_Value=8000000 +RCC.VCOInput2Freq_Value=250000 +RCC.VCOInput3Freq_Value=250000 +SH.GPXTI7.0=GPIO_EXTI7 +SH.GPXTI7.ConfNb=1 +USART3.AutoBaudRateEnableParam=UART_ADVFEATURE_AUTOBAUDRATE_DISABLE +USART3.BaudRate=115200 +USART3.ClockPrescaler=PRESCALER_DIV1 +USART3.DMADisableonRxErrorParam=ADVFEATURE_DMA_ENABLEONRXERROR +USART3.DataInvertParam=ADVFEATURE_DATAINV_DISABLE +USART3.FIFOMode=FIFOMODE_DISABLE +USART3.IPParameters=BaudRate,VirtualMode-Asynchronous,WordLength,Parity,StopBits,Mode,OverSampling,OneBitSampling,ClockPrescaler,FIFOMode,TXFIFOThreshold,RXFIFOThreshold,AutoBaudRateEnableParam,TxPinLevelInvertParam,RxPinLevelInvertParam,DataInvertParam,SwapParam,OverrunDisableParam,DMADisableonRxErrorParam,MSBFirstParam +USART3.MSBFirstParam=ADVFEATURE_MSBFIRST_DISABLE +USART3.Mode=MODE_TX_RX +USART3.OneBitSampling=UART_ONE_BIT_SAMPLE_DISABLE +USART3.OverSampling=UART_OVERSAMPLING_16 +USART3.OverrunDisableParam=ADVFEATURE_OVERRUN_ENABLE +USART3.Parity=PARITY_NONE +USART3.RXFIFOThreshold=RXFIFO_THRESHOLD_1EIGHTHFULL +USART3.RxPinLevelInvertParam=ADVFEATURE_RXINV_DISABLE +USART3.StopBits=STOPBITS_1 +USART3.SwapParam=ADVFEATURE_SWAP_DISABLE +USART3.TXFIFOThreshold=TXFIFO_THRESHOLD_1EIGHTHFULL +USART3.TxPinLevelInvertParam=ADVFEATURE_TXINV_DISABLE +USART3.VirtualMode-Asynchronous=VM_ASYNC +USART3.WordLength=WORDLENGTH_8B +USB_OTG_FS.IPParameters=low_power_enable,VirtualMode,battery_charging_enable,lpm_enable,use_dedicated_ep1,vbus_sensing_enable,Sof_enable +USB_OTG_FS.Sof_enable=ENABLE +USB_OTG_FS.VirtualMode=Device_Only +USB_OTG_FS.battery_charging_enable=ENABLE +USB_OTG_FS.low_power_enable=DISABLE +USB_OTG_FS.lpm_enable=DISABLE +USB_OTG_FS.use_dedicated_ep1=DISABLE +USB_OTG_FS.vbus_sensing_enable=ENABLE +VP_CRYP_VS_CRYP.Mode=CRYP_Activate +VP_CRYP_VS_CRYP.Signal=CRYP_VS_CRYP +VP_FREERTOS_VS_CMSIS_V2.Mode=CMSIS_V2 +VP_FREERTOS_VS_CMSIS_V2.Signal=FREERTOS_VS_CMSIS_V2 +VP_HASH_VS_HASH.Mode=HASH_Activate +VP_HASH_VS_HASH.Signal=HASH_VS_HASH +VP_RNG_VS_RNG.Mode=RNG_Activate +VP_RNG_VS_RNG.Signal=RNG_VS_RNG +VP_RTC_VS_RTC_Activate.Mode=RTC_Enabled +VP_RTC_VS_RTC_Activate.Signal=RTC_VS_RTC_Activate +VP_SYS_VS_tim1.Mode=TIM1 +VP_SYS_VS_tim1.Signal=SYS_VS_tim1 +VP_wolfSSL.wolfSSL_VS_wolfSSLJjwolfSSL_4.4.1.Mode=wolfSSLJjwolfSSL +VP_wolfSSL.wolfSSL_VS_wolfSSLJjwolfSSL_4.4.1.Signal=wolfSSL.wolfSSL_VS_wolfSSLJjwolfSSL_4.4.1 +board=NUCLEO-H753ZI +boardIOC=true +wolfSSL.wolfSSL.4.4.1.IPParameters=wolfSSLCcwolfSSLJjwolfSSLJjCore,wolfSSLCcwolfSSLJjwolfCryptJjCore,wolfSSLCcwolfSSLJjwolfCryptJjTest,WOLF_CONF_MATH,WOLF_CONF_RTOS +wolfSSL.wolfSSL.4.4.1.WOLF_CONF_MATH=4 +wolfSSL.wolfSSL.4.4.1.WOLF_CONF_RTOS=2 +wolfSSL.wolfSSL.4.4.1.wolfSSLCcwolfSSLJjwolfCryptJjCore=true +wolfSSL.wolfSSL.4.4.1.wolfSSLCcwolfSSLJjwolfCryptJjTest=true +wolfSSL.wolfSSL.4.4.1.wolfSSLCcwolfSSLJjwolfSSLJjCore=true +wolfSSL.wolfSSL.4.4.1.wolfSSLJjwolfSSL_Checked=true +wolfSSL.wolfSSL.4.4.1_SwParameter=wolfSSLCcwolfSSLJjwolfCryptJjCore\:true;wolfSSLCcwolfSSLJjwolfCryptJjTest\:true;wolfSSLCcwolfSSLJjwolfSSLJjCore\:true; +isbadioc=false diff --git a/IDE/STM32Cube/Boards/STM32L475.ioc b/IDE/STM32Cube/Boards/STM32L475.ioc new file mode 100644 index 000000000..ef775ea14 --- /dev/null +++ b/IDE/STM32Cube/Boards/STM32L475.ioc @@ -0,0 +1,636 @@ +#MicroXplorer Configuration settings - do not modify +FREERTOS.FootprintOK=true +FREERTOS.IPParameters=Tasks01,FootprintOK,configTOTAL_HEAP_SIZE,configUSE_MALLOC_FAILED_HOOK,configCHECK_FOR_STACK_OVERFLOW +FREERTOS.Tasks01=defaultTask,24,128,StartDefaultTask,Default,NULL,Dynamic,NULL,NULL;wolfCrypt,8,8960,wolfCryptDemo,As external,NULL,Dynamic,NULL,NULL +FREERTOS.configCHECK_FOR_STACK_OVERFLOW=2 +FREERTOS.configTOTAL_HEAP_SIZE=88000 +FREERTOS.configUSE_MALLOC_FAILED_HOOK=1 +File.Version=6 +KeepUserPlacement=false +Mcu.Family=STM32L4 +Mcu.IP0=DFSDM1 +Mcu.IP1=FREERTOS +Mcu.IP10=USART1 +Mcu.IP11=USART3 +Mcu.IP12=USB_OTG_FS +Mcu.IP2=I2C2 +Mcu.IP3=NVIC +Mcu.IP4=QUADSPI +Mcu.IP5=RCC +Mcu.IP6=RNG +Mcu.IP7=RTC +Mcu.IP8=SPI3 +Mcu.IP9=SYS +Mcu.IPNb=13 +Mcu.Name=STM32L475V(C-E-G)Tx +Mcu.Package=LQFP100 +Mcu.Pin0=PE2 +Mcu.Pin1=PE3 +Mcu.Pin10=PC2 +Mcu.Pin11=PC3 +Mcu.Pin12=PA0 +Mcu.Pin13=PA1 +Mcu.Pin14=PA2 +Mcu.Pin15=PA3 +Mcu.Pin16=PA4 +Mcu.Pin17=PA5 +Mcu.Pin18=PA6 +Mcu.Pin19=PA7 +Mcu.Pin2=PE4 +Mcu.Pin20=PC4 +Mcu.Pin21=PC5 +Mcu.Pin22=PB0 +Mcu.Pin23=PB1 +Mcu.Pin24=PB2 +Mcu.Pin25=PE7 +Mcu.Pin26=PE8 +Mcu.Pin27=PE9 +Mcu.Pin28=PE10 +Mcu.Pin29=PE11 +Mcu.Pin3=PE5 +Mcu.Pin30=PE12 +Mcu.Pin31=PE13 +Mcu.Pin32=PE14 +Mcu.Pin33=PE15 +Mcu.Pin34=PB10 +Mcu.Pin35=PB11 +Mcu.Pin36=PB12 +Mcu.Pin37=PB13 +Mcu.Pin38=PB14 +Mcu.Pin39=PB15 +Mcu.Pin4=PE6 +Mcu.Pin40=PD8 +Mcu.Pin41=PD9 +Mcu.Pin42=PD10 +Mcu.Pin43=PD11 +Mcu.Pin44=PD12 +Mcu.Pin45=PD13 +Mcu.Pin46=PD14 +Mcu.Pin47=PD15 +Mcu.Pin48=PC6 +Mcu.Pin49=PC7 +Mcu.Pin5=PC13 +Mcu.Pin50=PC8 +Mcu.Pin51=PC9 +Mcu.Pin52=PA8 +Mcu.Pin53=PA9 +Mcu.Pin54=PA10 +Mcu.Pin55=PA11 +Mcu.Pin56=PA12 +Mcu.Pin57=PA13 (JTMS-SWDIO) +Mcu.Pin58=PA14 (JTCK-SWCLK) +Mcu.Pin59=PA15 (JTDI) +Mcu.Pin6=PC14-OSC32_IN (PC14) +Mcu.Pin60=PC10 +Mcu.Pin61=PC11 +Mcu.Pin62=PC12 +Mcu.Pin63=PD0 +Mcu.Pin64=PD1 +Mcu.Pin65=PD2 +Mcu.Pin66=PD3 +Mcu.Pin67=PD4 +Mcu.Pin68=PD5 +Mcu.Pin69=PD6 +Mcu.Pin7=PC15-OSC32_OUT (PC15) +Mcu.Pin70=PD7 +Mcu.Pin71=PB3 (JTDO-TRACESWO) +Mcu.Pin72=PB4 (NJTRST) +Mcu.Pin73=PB5 +Mcu.Pin74=PB6 +Mcu.Pin75=PB7 +Mcu.Pin76=PB8 +Mcu.Pin77=PB9 +Mcu.Pin78=PE0 +Mcu.Pin79=PE1 +Mcu.Pin8=PC0 +Mcu.Pin80=VP_FREERTOS_VS_CMSIS_V2 +Mcu.Pin81=VP_RNG_VS_RNG +Mcu.Pin82=VP_RTC_VS_RTC_Activate +Mcu.Pin83=VP_SYS_VS_tim1 +Mcu.Pin84=VP_wolfSSL.wolfSSL_VS_wolfSSLJjwolfSSL_4.4.1 +Mcu.Pin9=PC1 +Mcu.PinsNb=85 +Mcu.ThirdParty0=wolfSSL.wolfSSL.4.4.1 +Mcu.ThirdPartyNb=1 +Mcu.UserConstants= +Mcu.UserName=STM32L475VGTx +MxCube.Version=5.6.1 +MxDb.Version=DB.5.0.60 +NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:false +NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:false +NVIC.EXTI15_10_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true +NVIC.EXTI9_5_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true +NVIC.ForceEnableDMAVector=true +NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:false +NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:false +NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:false +NVIC.PendSV_IRQn=true\:15\:0\:false\:false\:false\:true\:true\:false +NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4 +NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:false\:false\:true\:false +NVIC.SysTick_IRQn=true\:15\:0\:false\:false\:false\:true\:true\:false +NVIC.TIM1_UP_TIM16_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:true +NVIC.TimeBase=TIM1_UP_TIM16_IRQn +NVIC.TimeBaseIP=TIM1 +NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:false +PA0.GPIOParameters=GPIO_Label +PA0.GPIO_Label=ARD_D1 [UART4_TX] +PA0.Locked=true +PA0.Signal=UART4_TX +PA1.GPIOParameters=GPIO_Label +PA1.GPIO_Label=ARD_D0 [UART4_RX] +PA1.Locked=true +PA1.Signal=UART4_RX +PA10.GPIOParameters=GPIO_Label +PA10.GPIO_Label=USB_OTG_FS_ID +PA10.Locked=true +PA10.Signal=USB_OTG_FS_ID +PA11.GPIOParameters=GPIO_Label +PA11.GPIO_Label=USB_OTG_FS_DM +PA11.Locked=true +PA11.Mode=Device_Only +PA11.Signal=USB_OTG_FS_DM +PA12.GPIOParameters=GPIO_Label +PA12.GPIO_Label=USB_OTG_FS_DP +PA12.Locked=true +PA12.Mode=Device_Only +PA12.Signal=USB_OTG_FS_DP +PA13\ (JTMS-SWDIO).GPIOParameters=GPIO_Label +PA13\ (JTMS-SWDIO).GPIO_Label=SYS_JTMS_SWDIO +PA13\ (JTMS-SWDIO).Locked=true +PA13\ (JTMS-SWDIO).Mode=Serial_Wire +PA13\ (JTMS-SWDIO).Signal=SYS_JTMS-SWDIO +PA14\ (JTCK-SWCLK).GPIOParameters=GPIO_Label +PA14\ (JTCK-SWCLK).GPIO_Label=SYS_JTCK_SWCLK +PA14\ (JTCK-SWCLK).Locked=true +PA14\ (JTCK-SWCLK).Mode=Serial_Wire +PA14\ (JTCK-SWCLK).Signal=SYS_JTCK-SWCLK +PA15\ (JTDI).GPIOParameters=GPIO_Label +PA15\ (JTDI).GPIO_Label=ARD_D9 +PA15\ (JTDI).Locked=true +PA15\ (JTDI).Signal=GPIO_Output +PA2.GPIOParameters=GPIO_Label +PA2.GPIO_Label=ARD_D10 [SPI_SSN] +PA2.Locked=true +PA2.Signal=GPIO_Output +PA3.GPIOParameters=GPIO_Label +PA3.GPIO_Label=ARD_D4 +PA3.Locked=true +PA3.Signal=S_TIM2_CH4 +PA4.GPIOParameters=GPIO_Label +PA4.GPIO_Label=ARD_D7 +PA4.Locked=true +PA4.Signal=ADCx_IN9 +PA5.GPIOParameters=GPIO_Label +PA5.GPIO_Label=ARD_D13 [SPI1_SCK] +PA5.Locked=true +PA5.Signal=SPI1_SCK +PA6.GPIOParameters=GPIO_Label +PA6.GPIO_Label=ARD_D12 [SPI1_MISO] +PA6.Locked=true +PA6.Signal=SPI1_MISO +PA7.GPIOParameters=GPIO_Label +PA7.GPIO_Label=ARD_D11 [SPI1_MOSI] +PA7.Locked=true +PA7.Signal=SPI1_MOSI +PA8.GPIOParameters=GPIO_Label +PA8.GPIO_Label=SPBTLE_RF_RST +PA8.Locked=true +PA8.Signal=GPIO_Output +PA9.GPIOParameters=GPIO_Label +PA9.GPIO_Label=USB_OTG_FS_VBUS [STMPS2141STR_OUT] +PA9.Locked=true +PA9.Signal=USB_OTG_FS_VBUS +PB0.GPIOParameters=GPIO_Label +PB0.GPIO_Label=ARD_D3 [INT_EXT10] +PB0.Locked=true +PB0.Signal=GPXTI0 +PB1.GPIOParameters=GPIO_Label +PB1.GPIO_Label=ARD_D6 [ADC1_IN6] +PB1.Locked=true +PB1.Signal=ADCx_IN16 +PB10.GPIOParameters=GPIO_Label +PB10.GPIO_Label=INTERNAL_I2C2_SCL [VL53L0X_SCL] +PB10.Locked=true +PB10.Mode=I2C +PB10.Signal=I2C2_SCL +PB11.GPIOParameters=GPIO_Label +PB11.GPIO_Label=INTERNAL_I2C2_SDA [VL53L0X_SDA] +PB11.Locked=true +PB11.Mode=I2C +PB11.Signal=I2C2_SDA +PB12.GPIOParameters=GPIO_Label +PB12.GPIO_Label=ISM43362_BOOT0 [ISM43362_BOOT] +PB12.Locked=true +PB12.Signal=GPIO_Output +PB13.GPIOParameters=GPIO_Label +PB13.GPIO_Label=ISM43362_WAKEUP [ISM43362_WKUP] +PB13.Locked=true +PB13.Signal=GPIO_Output +PB14.GPIOParameters=GPIO_Label +PB14.GPIO_Label=LED2 [LED_GREEN] +PB14.Locked=true +PB14.Signal=GPIO_Output +PB15.GPIOParameters=GPIO_Label +PB15.GPIO_Label=SPSGRF_915_SDN [SPSGRF_SDN] +PB15.Locked=true +PB15.Signal=GPIO_Output +PB2.GPIOParameters=GPIO_Label +PB2.GPIO_Label=ARD_D8 +PB2.Locked=true +PB2.Signal=GPIO_Output +PB3\ (JTDO-TRACESWO).GPIOParameters=GPIO_Label +PB3\ (JTDO-TRACESWO).GPIO_Label=SYS_JTD0_SWO +PB3\ (JTDO-TRACESWO).Locked=true +PB3\ (JTDO-TRACESWO).Signal=SYS_JTDO-SWO +PB4\ (NJTRST).GPIOParameters=GPIO_Label +PB4\ (NJTRST).GPIO_Label=ARD_D5 +PB4\ (NJTRST).Locked=true +PB4\ (NJTRST).Signal=GPIO_Output +PB5.GPIOParameters=PinState,GPIO_Label +PB5.GPIO_Label=SPSGRF_915_SPI3_CSN [SPSGRF_SPI_CS] +PB5.Locked=true +PB5.PinState=GPIO_PIN_SET +PB5.Signal=GPIO_Output +PB6.GPIOParameters=GPIO_Label +PB6.GPIO_Label=ST_LINK_UART1_TX +PB6.Locked=true +PB6.Mode=Asynchronous +PB6.Signal=USART1_TX +PB7.GPIOParameters=GPIO_Label +PB7.GPIO_Label=ST_LINK_UART1_RX +PB7.Locked=true +PB7.Mode=Asynchronous +PB7.Signal=USART1_RX +PB8.GPIOParameters=GPIO_Label +PB8.GPIO_Label=ARD_D15 [I2C1_SCL] +PB8.Locked=true +PB8.Signal=I2C1_SCL +PB9.GPIOParameters=GPIO_Label +PB9.GPIO_Label=ARD_D14 [I2C1_SDA] +PB9.Locked=true +PB9.Signal=I2C1_SDA +PC0.GPIOParameters=GPIO_Label +PC0.GPIO_Label=ARD_A5 [ADC] +PC0.Locked=true +PC0.Signal=ADCx_IN1 +PC1.GPIOParameters=GPIO_Label +PC1.GPIO_Label=ARD_A4 [ADC] +PC1.Locked=true +PC1.Signal=ADCx_IN2 +PC10.GPIOParameters=GPIO_Label +PC10.GPIO_Label=INTERNAL_SPI3_SCK [BT module_SPI_SCLK] [ISM43362_SCK] +PC10.Locked=true +PC10.Mode=Full_Duplex_Master +PC10.Signal=SPI3_SCK +PC11.GPIOParameters=GPIO_Label +PC11.GPIO_Label=INTERNAL_SPI3_MISO [BT module_SPI_MISO] [ISM43362_MISO] +PC11.Locked=true +PC11.Mode=Full_Duplex_Master +PC11.Signal=SPI3_MISO +PC12.GPIOParameters=GPIO_Label +PC12.GPIO_Label=INTERNAL_SPI3_MOSI [BT module_SPI_MOSI] [ISM43362_MOSI] +PC12.Locked=true +PC12.Mode=Full_Duplex_Master +PC12.Signal=SPI3_MOSI +PC13.GPIOParameters=GPIO_Label,GPIO_ModeDefaultEXTI +PC13.GPIO_Label=BUTTON_EXTI13 [B2] +PC13.GPIO_ModeDefaultEXTI=GPIO_MODE_IT_FALLING +PC13.Locked=true +PC13.Signal=GPXTI13 +PC14-OSC32_IN\ (PC14).Locked=true +PC14-OSC32_IN\ (PC14).Mode=LSE-External-Oscillator +PC14-OSC32_IN\ (PC14).Signal=RCC_OSC32_IN +PC15-OSC32_OUT\ (PC15).Locked=true +PC15-OSC32_OUT\ (PC15).Mode=LSE-External-Oscillator +PC15-OSC32_OUT\ (PC15).Signal=RCC_OSC32_OUT +PC2.GPIOParameters=GPIO_Label +PC2.GPIO_Label=ARD_A3 [ADC] +PC2.Locked=true +PC2.Signal=ADCx_IN3 +PC3.GPIOParameters=GPIO_Label +PC3.GPIO_Label=ARD_A2 [ADC] +PC3.Locked=true +PC3.Signal=ADCx_IN4 +PC4.GPIOParameters=GPIO_Label +PC4.GPIO_Label=ARD_A1 [ADC] +PC4.Locked=true +PC4.Signal=ADCx_IN13 +PC5.GPIOParameters=GPIO_Label +PC5.GPIO_Label=ARD_A0 [ADC] +PC5.Locked=true +PC5.Signal=ADCx_IN14 +PC6.GPIOParameters=GPIO_Label +PC6.GPIO_Label=VL53L0X_XSHUT [Read_XSHUT] +PC6.Locked=true +PC6.Signal=GPIO_Output +PC7.GPIOParameters=GPIO_Label +PC7.GPIO_Label=VL53L0X_GPIO1_EXTI7 [VL53L0X_GPIO1] +PC7.Locked=true +PC7.Signal=GPXTI7 +PC8.GPIOParameters=GPIO_Label +PC8.GPIO_Label=LSM3MDL_DRDY_EXTI8 [LIS3MDL_DRDY] +PC8.Locked=true +PC8.Signal=GPXTI8 +PC9.GPIOParameters=GPIO_Label +PC9.GPIO_Label=LED3_WIFI_ LED4_BLE +PC9.Locked=true +PC9.Signal=GPIO_Output +PD0.GPIOParameters=GPIO_Label +PD0.GPIO_Label=PMOD_RESET +PD0.Locked=true +PD0.Signal=GPIO_Output +PD1.GPIOParameters=GPIO_Label +PD1.GPIO_Label=PMOD_SPI2_SCK +PD1.Locked=true +PD1.Signal=SPI2_SCK +PD10.GPIOParameters=GPIO_Label +PD10.GPIO_Label=LPS22HB_INT_DRDY_EXTI0 [LPS22HB_INT_DRDY] +PD10.Locked=true +PD10.Signal=GPXTI10 +PD11.GPIOParameters=GPIO_Label +PD11.GPIO_Label=LSM6DSL_INT1_EXTI11 [LSM6DSL_INT1] +PD11.Locked=true +PD11.Signal=GPXTI11 +PD12.GPIOParameters=GPIO_Label +PD12.GPIO_Label=USB_OTG_FS_PWR_EN [STMPS2141STR_EN] +PD12.Locked=true +PD12.Signal=GPIO_Output +PD13.GPIOParameters=PinState,GPIO_Label +PD13.GPIO_Label=SPBTLE_RF_SPI3_CSN [BT module_SPI_CS] +PD13.Locked=true +PD13.PinState=GPIO_PIN_SET +PD13.Signal=GPIO_Output +PD14.GPIOParameters=GPIO_Label +PD14.GPIO_Label=ARD_D2 [INT0_EXTI14] +PD14.Locked=true +PD14.Signal=GPXTI14 +PD15.GPIOParameters=GPIO_Label +PD15.GPIO_Label=HTS221_DRDY_EXTI15 [HTS221_DRDY] +PD15.Locked=true +PD15.Signal=GPXTI15 +PD2.GPIOParameters=GPIO_Label +PD2.GPIO_Label=PMOD_IRQ_EXTI12 +PD2.Locked=true +PD2.Signal=GPXTI2 +PD3.GPIOParameters=GPIO_Label +PD3.GPIO_Label=PMOD_UART2_CTS +PD3.Locked=true +PD3.Signal=USART2_CTS +PD4.GPIOParameters=GPIO_Label +PD4.GPIO_Label=PMOD_UART2_RTS +PD4.Locked=true +PD4.Signal=USART2_RTS +PD5.GPIOParameters=GPIO_Label +PD5.GPIO_Label=PMOD_UART2_TX +PD5.Locked=true +PD5.Signal=USART2_TX +PD6.GPIOParameters=GPIO_Label +PD6.GPIO_Label=PMOD_UART2_RX +PD6.Locked=true +PD6.Signal=USART2_RX +PD7.GPIOParameters=GPIO_Label +PD7.GPIO_Label=STSAFE_A100_RESET [STSAFE-A100_RESET] +PD7.Locked=true +PD7.Signal=GPIO_Output +PD8.GPIOParameters=GPIO_Label +PD8.GPIO_Label=INTERNAL_UART3_TX [ISM43362_RX] +PD8.Locked=true +PD8.Mode=Asynchronous +PD8.Signal=USART3_TX +PD9.GPIOParameters=GPIO_Label +PD9.GPIO_Label=INTERNAL_UART3_RX [ISM43362_TX] +PD9.Locked=true +PD9.Mode=Asynchronous +PD9.Signal=USART3_RX +PE0.GPIOParameters=PinState,GPIO_Label +PE0.GPIO_Label=ISM43362_SPI3_CSN [ISM43362_SSN] +PE0.Locked=true +PE0.PinState=GPIO_PIN_SET +PE0.Signal=GPIO_Output +PE1.GPIOParameters=GPIO_Label +PE1.GPIO_Label=ISM43362_DRDY_EXTI1 [ISM43362_DATARDY] +PE1.Locked=true +PE1.Signal=GPXTI1 +PE10.GPIOParameters=GPIO_Label +PE10.GPIO_Label=QUADSPI_CLK [MX25R6435F_SCLK] +PE10.Locked=true +PE10.Mode=Single Bank +PE10.Signal=QUADSPI_CLK +PE11.GPIOParameters=GPIO_Label +PE11.GPIO_Label=QUADSPI_NCS [MX25R6435F_SCLK] +PE11.Locked=true +PE11.Mode=Single Bank +PE11.Signal=QUADSPI_NCS +PE12.GPIOParameters=GPIO_Label +PE12.GPIO_Label=OQUADSPI_BK1_IO0 [MX25R6435F_IO0] +PE12.Locked=true +PE12.Mode=Single Bank +PE12.Signal=QUADSPI_BK1_IO0 +PE13.GPIOParameters=GPIO_Label +PE13.GPIO_Label=QUADSPI_BK1_IO1 [MX25R6435F_IO1] +PE13.Locked=true +PE13.Mode=Single Bank +PE13.Signal=QUADSPI_BK1_IO1 +PE14.GPIOParameters=GPIO_Label +PE14.GPIO_Label=QUAD_SPI_BK1_IO2 [MX25R6435F_IO2] +PE14.Locked=true +PE14.Mode=Single Bank +PE14.Signal=QUADSPI_BK1_IO2 +PE15.GPIOParameters=GPIO_Label +PE15.GPIO_Label=QUAD_SPI_BK1_IO3 [MX25R6435F_IO3] +PE15.Locked=true +PE15.Mode=Single Bank +PE15.Signal=QUADSPI_BK1_IO3 +PE2.GPIOParameters=GPIO_Label +PE2.GPIO_Label=M24SR64_Y_RF_DISABLE [M24SR64_RFDIS] +PE2.Locked=true +PE2.Signal=GPIO_Output +PE3.GPIOParameters=GPIO_Label +PE3.GPIO_Label=USB_OTG_FS_OVRCR_EXTI3 [STMPS2141STR_FAULT] +PE3.Locked=true +PE3.Signal=GPXTI3 +PE4.GPIOParameters=GPIO_Label +PE4.GPIO_Label=M24SR64_Y_GPO [M24SR64_GPO] +PE4.Locked=true +PE4.Signal=GPIO_Output +PE5.GPIOParameters=GPIO_Label +PE5.GPIO_Label=SPSGRF_915_GPIO3_EXTI5 [SPSGRF_GPIO_3] +PE5.Locked=true +PE5.Signal=GPXTI5 +PE6.GPIOParameters=GPIO_Label +PE6.GPIO_Label=SPBTLE_RF_IRQ_EXTI6 [BT module_SPI_IRQ] +PE6.Locked=true +PE6.Signal=GPXTI6 +PE7.GPIOParameters=GPIO_Label +PE7.GPIO_Label=DFSDM1_DATIN2 [MP34DT01_DOUT] +PE7.Locked=true +PE7.Signal=S_DATAIN2DFSDM1 +PE8.GPIOParameters=GPIO_Label +PE8.GPIO_Label=ISM43362_RST [ISM43362_RSTN] +PE8.Locked=true +PE8.Signal=GPIO_Output +PE9.GPIOParameters=GPIO_Label +PE9.GPIO_Label=DFSDM1_CKOUT [MP34DT01_CLK] +PE9.Locked=true +PE9.Signal=S_CKOUTDFSDM1 +PinOutPanel.RotationAngle=0 +ProjectManager.AskForMigrate=true +ProjectManager.BackupPrevious=false +ProjectManager.CompilerOptimize=6 +ProjectManager.ComputerToolchain=false +ProjectManager.CoupleFile=false +ProjectManager.CustomerFirmwarePackage= +ProjectManager.DefaultFWLocation=true +ProjectManager.DeletePrevious=true +ProjectManager.DeviceId=STM32L475VGTx +ProjectManager.FirmwarePackage=STM32Cube FW_L4 V1.15.1 +ProjectManager.FreePins=false +ProjectManager.HalAssertFull=false +ProjectManager.HeapSize=0x200 +ProjectManager.KeepUserCode=true +ProjectManager.LastFirmware=true +ProjectManager.LibraryCopy=1 +ProjectManager.MainLocation=Core/Src +ProjectManager.NoMain=false +ProjectManager.PreviousToolchain= +ProjectManager.ProjectBuild=false +ProjectManager.ProjectFileName=STM32L475.ioc +ProjectManager.ProjectName=STM32L475 +ProjectManager.StackSize=0x400 +ProjectManager.TargetToolchain=STM32CubeIDE +ProjectManager.ToolChainLocation= +ProjectManager.UnderRoot=true +ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-SystemClock_Config-RCC-false-HAL-false,3-MX_DFSDM1_Init-DFSDM1-false-HAL-true,4-MX_I2C2_Init-I2C2-false-HAL-true,5-MX_QUADSPI_Init-QUADSPI-false-HAL-true,6-MX_SPI3_Init-SPI3-false-HAL-true,7-MX_USART1_UART_Init-USART1-false-HAL-true,8-MX_USART3_UART_Init-USART3-false-HAL-true,9-MX_USB_OTG_FS_PCD_Init-USB_OTG_FS-false-HAL-true +RCC.ADCFreq_Value=48000000 +RCC.AHBFreq_Value=80000000 +RCC.APB1Freq_Value=80000000 +RCC.APB1TimFreq_Value=80000000 +RCC.APB2Freq_Value=80000000 +RCC.APB2TimFreq_Value=80000000 +RCC.CortexFreq_Value=80000000 +RCC.DFSDMFreq_Value=80000000 +RCC.FCLKCortexFreq_Value=80000000 +RCC.FamilyName=M +RCC.HCLKFreq_Value=80000000 +RCC.HSE_VALUE=8000000 +RCC.HSI_VALUE=16000000 +RCC.I2C1Freq_Value=80000000 +RCC.I2C2Freq_Value=80000000 +RCC.I2C3Freq_Value=80000000 +RCC.IPParameters=ADCFreq_Value,AHBFreq_Value,APB1Freq_Value,APB1TimFreq_Value,APB2Freq_Value,APB2TimFreq_Value,CortexFreq_Value,DFSDMFreq_Value,FCLKCortexFreq_Value,FamilyName,HCLKFreq_Value,HSE_VALUE,HSI_VALUE,I2C1Freq_Value,I2C2Freq_Value,I2C3Freq_Value,LPTIM1Freq_Value,LPTIM2Freq_Value,LPUART1Freq_Value,LSCOPinFreq_Value,LSI_VALUE,MCO1PinFreq_Value,MSI_VALUE,PLLN,PLLPoutputFreq_Value,PLLQoutputFreq_Value,PLLRCLKFreq_Value,PLLSAI1N,PLLSAI1PoutputFreq_Value,PLLSAI1QoutputFreq_Value,PLLSAI1RoutputFreq_Value,PLLSAI2PoutputFreq_Value,PLLSAI2RoutputFreq_Value,PWRFreq_Value,RNGFreq_Value,SAI1Freq_Value,SAI2Freq_Value,SDMMCFreq_Value,SWPMI1Freq_Value,SYSCLKFreq_VALUE,SYSCLKSource,UART4Freq_Value,UART5Freq_Value,USART1Freq_Value,USART2Freq_Value,USART3Freq_Value,USBFreq_Value,VCOInputFreq_Value,VCOOutputFreq_Value,VCOSAI1OutputFreq_Value,VCOSAI2OutputFreq_Value +RCC.LPTIM1Freq_Value=80000000 +RCC.LPTIM2Freq_Value=80000000 +RCC.LPUART1Freq_Value=80000000 +RCC.LSCOPinFreq_Value=32000 +RCC.LSI_VALUE=32000 +RCC.MCO1PinFreq_Value=80000000 +RCC.MSI_VALUE=4000000 +RCC.PLLN=40 +RCC.PLLPoutputFreq_Value=22857142.85714286 +RCC.PLLQoutputFreq_Value=80000000 +RCC.PLLRCLKFreq_Value=80000000 +RCC.PLLSAI1N=24 +RCC.PLLSAI1PoutputFreq_Value=13714285.714285715 +RCC.PLLSAI1QoutputFreq_Value=48000000 +RCC.PLLSAI1RoutputFreq_Value=48000000 +RCC.PLLSAI2PoutputFreq_Value=4571428.571428572 +RCC.PLLSAI2RoutputFreq_Value=16000000 +RCC.PWRFreq_Value=80000000 +RCC.RNGFreq_Value=48000000 +RCC.SAI1Freq_Value=13714285.714285715 +RCC.SAI2Freq_Value=13714285.714285715 +RCC.SDMMCFreq_Value=48000000 +RCC.SWPMI1Freq_Value=80000000 +RCC.SYSCLKFreq_VALUE=80000000 +RCC.SYSCLKSource=RCC_SYSCLKSOURCE_PLLCLK +RCC.UART4Freq_Value=80000000 +RCC.UART5Freq_Value=80000000 +RCC.USART1Freq_Value=80000000 +RCC.USART2Freq_Value=80000000 +RCC.USART3Freq_Value=80000000 +RCC.USBFreq_Value=48000000 +RCC.VCOInputFreq_Value=4000000 +RCC.VCOOutputFreq_Value=160000000 +RCC.VCOSAI1OutputFreq_Value=96000000 +RCC.VCOSAI2OutputFreq_Value=32000000 +SH.ADCx_IN1.0=ADC1_IN1 +SH.ADCx_IN1.ConfNb=1 +SH.ADCx_IN13.0=ADC1_IN13 +SH.ADCx_IN13.ConfNb=1 +SH.ADCx_IN14.0=ADC1_IN14 +SH.ADCx_IN14.ConfNb=1 +SH.ADCx_IN16.0=ADC1_IN16 +SH.ADCx_IN16.ConfNb=1 +SH.ADCx_IN2.0=ADC1_IN2 +SH.ADCx_IN2.ConfNb=1 +SH.ADCx_IN3.0=ADC1_IN3 +SH.ADCx_IN3.ConfNb=1 +SH.ADCx_IN4.0=ADC1_IN4 +SH.ADCx_IN4.ConfNb=1 +SH.ADCx_IN9.0=ADC1_IN9 +SH.ADCx_IN9.ConfNb=1 +SH.GPXTI0.0=GPIO_EXTI0 +SH.GPXTI0.ConfNb=1 +SH.GPXTI1.0=GPIO_EXTI1 +SH.GPXTI1.ConfNb=1 +SH.GPXTI10.0=GPIO_EXTI10 +SH.GPXTI10.ConfNb=1 +SH.GPXTI11.0=GPIO_EXTI11 +SH.GPXTI11.ConfNb=1 +SH.GPXTI13.0=GPIO_EXTI13 +SH.GPXTI13.ConfNb=1 +SH.GPXTI14.0=GPIO_EXTI14 +SH.GPXTI14.ConfNb=1 +SH.GPXTI15.0=GPIO_EXTI15 +SH.GPXTI15.ConfNb=1 +SH.GPXTI2.0=GPIO_EXTI2 +SH.GPXTI2.ConfNb=1 +SH.GPXTI3.0=GPIO_EXTI3 +SH.GPXTI3.ConfNb=1 +SH.GPXTI5.0=GPIO_EXTI5 +SH.GPXTI5.ConfNb=1 +SH.GPXTI6.0=GPIO_EXTI6 +SH.GPXTI6.ConfNb=1 +SH.GPXTI7.0=GPIO_EXTI7 +SH.GPXTI7.ConfNb=1 +SH.GPXTI8.0=GPIO_EXTI8 +SH.GPXTI8.ConfNb=1 +SH.S_CKOUTDFSDM1.0=DFSDM1_CKOUT,CKOUT +SH.S_CKOUTDFSDM1.1=DFSDM1_CKOUT,PDM_SPI_Input_from_ch12_and_Internal_Clock +SH.S_CKOUTDFSDM1.ConfNb=2 +SH.S_DATAIN2DFSDM1.0=DFSDM1_DATIN2,PDM_SPI_Input_from_ch12_and_Internal_Clock +SH.S_DATAIN2DFSDM1.ConfNb=1 +SH.S_TIM2_CH4.0=TIM2_CH4 +SH.S_TIM2_CH4.ConfNb=1 +SPI3.CalculateBaudRate=40.0 MBits/s +SPI3.Direction=SPI_DIRECTION_2LINES +SPI3.IPParameters=VirtualType,Mode,Direction,CalculateBaudRate +SPI3.Mode=SPI_MODE_MASTER +SPI3.VirtualType=VM_MASTER +USART1.IPParameters=VirtualMode-Asynchronous +USART1.VirtualMode-Asynchronous=VM_ASYNC +USART3.IPParameters=VirtualMode-Asynchronous +USART3.VirtualMode-Asynchronous=VM_ASYNC +USB_OTG_FS.IPParameters=VirtualMode +USB_OTG_FS.VirtualMode=Device_Only +VP_FREERTOS_VS_CMSIS_V2.Mode=CMSIS_V2 +VP_FREERTOS_VS_CMSIS_V2.Signal=FREERTOS_VS_CMSIS_V2 +VP_RNG_VS_RNG.Mode=RNG_Activate +VP_RNG_VS_RNG.Signal=RNG_VS_RNG +VP_RTC_VS_RTC_Activate.Mode=RTC_Enabled +VP_RTC_VS_RTC_Activate.Signal=RTC_VS_RTC_Activate +VP_SYS_VS_tim1.Mode=TIM1 +VP_SYS_VS_tim1.Signal=SYS_VS_tim1 +VP_wolfSSL.wolfSSL_VS_wolfSSLJjwolfSSL_4.4.1.Mode=wolfSSLJjwolfSSL +VP_wolfSSL.wolfSSL_VS_wolfSSLJjwolfSSL_4.4.1.Signal=wolfSSL.wolfSSL_VS_wolfSSLJjwolfSSL_4.4.1 +board=B-L475E-IOT01A1 +boardIOC=true +wolfSSL.wolfSSL.4.4.1.IPParameters=wolfSSLCcwolfSSLJjwolfSSLJjCore,wolfSSLCcwolfSSLJjwolfCryptJjCore,wolfSSLCcwolfSSLJjwolfCryptJjTest,WOLF_CONF_MATH,WOLF_CONF_RTOS +wolfSSL.wolfSSL.4.4.1.WOLF_CONF_MATH=4 +wolfSSL.wolfSSL.4.4.1.WOLF_CONF_RTOS=2 +wolfSSL.wolfSSL.4.4.1.wolfSSLCcwolfSSLJjwolfCryptJjCore=true +wolfSSL.wolfSSL.4.4.1.wolfSSLCcwolfSSLJjwolfCryptJjTest=true +wolfSSL.wolfSSL.4.4.1.wolfSSLCcwolfSSLJjwolfSSLJjCore=true +wolfSSL.wolfSSL.4.4.1.wolfSSLJjwolfSSL_Checked=true +wolfSSL.wolfSSL.4.4.1_SwParameter=wolfSSLCcwolfSSLJjwolfCryptJjCore\:true;wolfSSLCcwolfSSLJjwolfCryptJjTest\:true;wolfSSLCcwolfSSLJjwolfSSLJjCore\:true; +isbadioc=false diff --git a/IDE/STM32Cube/Boards/STM32L4A6.ioc b/IDE/STM32Cube/Boards/STM32L4A6.ioc new file mode 100644 index 000000000..b289b5339 --- /dev/null +++ b/IDE/STM32Cube/Boards/STM32L4A6.ioc @@ -0,0 +1,170 @@ +#MicroXplorer Configuration settings - do not modify +FREERTOS.FootprintOK=true +FREERTOS.IPParameters=Tasks01,configTOTAL_HEAP_SIZE,configUSE_MALLOC_FAILED_HOOK,configCHECK_FOR_STACK_OVERFLOW,FootprintOK +FREERTOS.Tasks01=defaultTask,24,128,StartDefaultTask,Default,NULL,Dynamic,NULL,NULL;wolfCrypt,8,8960,wolfCryptDemo,As external,NULL,Dynamic,NULL,NULL +FREERTOS.configCHECK_FOR_STACK_OVERFLOW=2 +FREERTOS.configTOTAL_HEAP_SIZE=131072 +FREERTOS.configUSE_MALLOC_FAILED_HOOK=1 +File.Version=6 +KeepUserPlacement=false +LPUART1.BaudRate=115200 +LPUART1.IPParameters=BaudRate,WordLength +LPUART1.WordLength=UART_WORDLENGTH_8B +Mcu.Family=STM32L4 +Mcu.IP0=AES +Mcu.IP1=FREERTOS +Mcu.IP2=HASH +Mcu.IP3=LPUART1 +Mcu.IP4=NVIC +Mcu.IP5=RCC +Mcu.IP6=RNG +Mcu.IP7=RTC +Mcu.IP8=SYS +Mcu.IPNb=9 +Mcu.Name=STM32L4A6ZGTx +Mcu.Package=LQFP144 +Mcu.Pin0=PG7 +Mcu.Pin1=PG8 +Mcu.Pin2=VP_AES_VS_AES +Mcu.Pin3=VP_FREERTOS_VS_CMSIS_V2 +Mcu.Pin4=VP_HASH_VS_HASH +Mcu.Pin5=VP_RNG_VS_RNG +Mcu.Pin6=VP_RTC_VS_RTC_Activate +Mcu.Pin7=VP_RTC_VS_RTC_Calendar +Mcu.Pin8=VP_SYS_VS_tim1 +Mcu.Pin9=VP_wolfSSL.wolfSSL_VS_wolfSSLJjwolfSSL_4.4.1 +Mcu.PinsNb=10 +Mcu.ThirdParty0=wolfSSL.wolfSSL.4.4.1 +Mcu.ThirdPartyNb=1 +Mcu.UserConstants= +Mcu.UserName=STM32L4A6ZGTx +MxCube.Version=5.6.1 +MxDb.Version=DB.5.0.60 +NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false +NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false +NVIC.ForceEnableDMAVector=true +NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false +NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false +NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false +NVIC.PendSV_IRQn=true\:15\:0\:false\:false\:false\:true\:false\:false +NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4 +NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:false\:false\:false\:false +NVIC.SysTick_IRQn=true\:15\:0\:false\:false\:false\:true\:false\:false +NVIC.TIM1_UP_TIM16_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:true +NVIC.TimeBase=TIM1_UP_TIM16_IRQn +NVIC.TimeBaseIP=TIM1 +NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false +PG7.Locked=true +PG7.Mode=Asynchronous +PG7.Signal=LPUART1_TX +PG8.Locked=true +PG8.Mode=Asynchronous +PG8.Signal=LPUART1_RX +PinOutPanel.RotationAngle=0 +ProjectManager.AskForMigrate=true +ProjectManager.BackupPrevious=false +ProjectManager.CompilerOptimize=6 +ProjectManager.ComputerToolchain=false +ProjectManager.CoupleFile=false +ProjectManager.CustomerFirmwarePackage= +ProjectManager.DefaultFWLocation=true +ProjectManager.DeletePrevious=true +ProjectManager.DeviceId=STM32L4A6ZGTx +ProjectManager.FirmwarePackage=STM32Cube FW_L4 V1.15.1 +ProjectManager.FreePins=false +ProjectManager.HalAssertFull=false +ProjectManager.HeapSize=0x200 +ProjectManager.KeepUserCode=true +ProjectManager.LastFirmware=true +ProjectManager.LibraryCopy=1 +ProjectManager.MainLocation=Core/Src +ProjectManager.NoMain=false +ProjectManager.PreviousToolchain= +ProjectManager.ProjectBuild=false +ProjectManager.ProjectFileName=STM32L4A6.ioc +ProjectManager.ProjectName=STM32L4A6 +ProjectManager.StackSize=0x400 +ProjectManager.TargetToolchain=STM32CubeIDE +ProjectManager.ToolChainLocation= +ProjectManager.UnderRoot=true +ProjectManager.functionlistsort=2-SystemClock_Config-RCC-false-HAL-false +RCC.ADCFreq_Value=32000000 +RCC.AHBFreq_Value=80000000 +RCC.APB1Freq_Value=80000000 +RCC.APB1TimFreq_Value=80000000 +RCC.APB2Freq_Value=80000000 +RCC.APB2TimFreq_Value=80000000 +RCC.CortexFreq_Value=80000000 +RCC.DFSDMFreq_Value=80000000 +RCC.FCLKCortexFreq_Value=80000000 +RCC.FamilyName=M +RCC.HCLKFreq_Value=80000000 +RCC.HSE_VALUE=8000000 +RCC.HSI48_VALUE=48000000 +RCC.HSI_VALUE=16000000 +RCC.I2C1Freq_Value=80000000 +RCC.I2C2Freq_Value=80000000 +RCC.I2C3Freq_Value=80000000 +RCC.I2C4Freq_Value=80000000 +RCC.IPParameters=ADCFreq_Value,AHBFreq_Value,APB1Freq_Value,APB1TimFreq_Value,APB2Freq_Value,APB2TimFreq_Value,CortexFreq_Value,DFSDMFreq_Value,FCLKCortexFreq_Value,FamilyName,HCLKFreq_Value,HSE_VALUE,HSI48_VALUE,HSI_VALUE,I2C1Freq_Value,I2C2Freq_Value,I2C3Freq_Value,I2C4Freq_Value,LPTIM1Freq_Value,LPTIM2Freq_Value,LPUART1Freq_Value,LSCOPinFreq_Value,LSE_VALUE,LSI_VALUE,MCO1PinFreq_Value,MSI_VALUE,PLLN,PLLPoutputFreq_Value,PLLQoutputFreq_Value,PLLRCLKFreq_Value,PLLSAI1N,PLLSAI1PoutputFreq_Value,PLLSAI1QoutputFreq_Value,PLLSAI1RoutputFreq_Value,PLLSAI2PoutputFreq_Value,PLLSAI2RoutputFreq_Value,PWRFreq_Value,RNGFreq_Value,SAI1Freq_Value,SAI2Freq_Value,SDMMCFreq_Value,SWPMI1Freq_Value,SYSCLKFreq_VALUE,SYSCLKSource,UART4Freq_Value,UART5Freq_Value,USART1Freq_Value,USART2Freq_Value,USART3Freq_Value,USBFreq_Value,VCOInputFreq_Value,VCOOutputFreq_Value,VCOSAI1OutputFreq_Value,VCOSAI2OutputFreq_Value +RCC.LPTIM1Freq_Value=80000000 +RCC.LPTIM2Freq_Value=80000000 +RCC.LPUART1Freq_Value=80000000 +RCC.LSCOPinFreq_Value=32000 +RCC.LSE_VALUE=32768 +RCC.LSI_VALUE=32000 +RCC.MCO1PinFreq_Value=80000000 +RCC.MSI_VALUE=4000000 +RCC.PLLN=40 +RCC.PLLPoutputFreq_Value=80000000 +RCC.PLLQoutputFreq_Value=80000000 +RCC.PLLRCLKFreq_Value=80000000 +RCC.PLLSAI1N=16 +RCC.PLLSAI1PoutputFreq_Value=32000000 +RCC.PLLSAI1QoutputFreq_Value=32000000 +RCC.PLLSAI1RoutputFreq_Value=32000000 +RCC.PLLSAI2PoutputFreq_Value=16000000 +RCC.PLLSAI2RoutputFreq_Value=16000000 +RCC.PWRFreq_Value=80000000 +RCC.RNGFreq_Value=32000000 +RCC.SAI1Freq_Value=32000000 +RCC.SAI2Freq_Value=32000000 +RCC.SDMMCFreq_Value=32000000 +RCC.SWPMI1Freq_Value=80000000 +RCC.SYSCLKFreq_VALUE=80000000 +RCC.SYSCLKSource=RCC_SYSCLKSOURCE_PLLCLK +RCC.UART4Freq_Value=80000000 +RCC.UART5Freq_Value=80000000 +RCC.USART1Freq_Value=80000000 +RCC.USART2Freq_Value=80000000 +RCC.USART3Freq_Value=80000000 +RCC.USBFreq_Value=32000000 +RCC.VCOInputFreq_Value=4000000 +RCC.VCOOutputFreq_Value=160000000 +RCC.VCOSAI1OutputFreq_Value=64000000 +RCC.VCOSAI2OutputFreq_Value=32000000 +VP_AES_VS_AES.Mode=AES_Activate +VP_AES_VS_AES.Signal=AES_VS_AES +VP_FREERTOS_VS_CMSIS_V2.Mode=CMSIS_V2 +VP_FREERTOS_VS_CMSIS_V2.Signal=FREERTOS_VS_CMSIS_V2 +VP_HASH_VS_HASH.Mode=HASH_Activate +VP_HASH_VS_HASH.Signal=HASH_VS_HASH +VP_RNG_VS_RNG.Mode=RNG_Activate +VP_RNG_VS_RNG.Signal=RNG_VS_RNG +VP_RTC_VS_RTC_Activate.Mode=RTC_Enabled +VP_RTC_VS_RTC_Activate.Signal=RTC_VS_RTC_Activate +VP_RTC_VS_RTC_Calendar.Mode=RTC_Calendar +VP_RTC_VS_RTC_Calendar.Signal=RTC_VS_RTC_Calendar +VP_SYS_VS_tim1.Mode=TIM1 +VP_SYS_VS_tim1.Signal=SYS_VS_tim1 +VP_wolfSSL.wolfSSL_VS_wolfSSLJjwolfSSL_4.4.1.Mode=wolfSSLJjwolfSSL +VP_wolfSSL.wolfSSL_VS_wolfSSLJjwolfSSL_4.4.1.Signal=wolfSSL.wolfSSL_VS_wolfSSLJjwolfSSL_4.4.1 +board=custom +wolfSSL.wolfSSL.4.4.1.IPParameters=wolfSSLCcwolfSSLJjwolfSSLJjCore,WOLFCRYPT_ONLY,WOLF_CONF_MATH,WOLF_CONF_RTOS +wolfSSL.wolfSSL.4.4.1.WOLFCRYPT_ONLY=False +wolfSSL.wolfSSL.4.4.1.WOLF_CONF_MATH=4 +wolfSSL.wolfSSL.4.4.1.WOLF_CONF_RTOS=2 +wolfSSL.wolfSSL.4.4.1.wolfSSLCcwolfSSLJjwolfSSLJjCore=true +wolfSSL.wolfSSL.4.4.1.wolfSSLJjwolfSSL_Checked=true +wolfSSL.wolfSSL.4.4.1_SwParameter=wolfSSLCcwolfSSLJjwolfSSLJjCore\:true; +isbadioc=false diff --git a/IDE/STM32Cube/Boards/STM32L552.ioc b/IDE/STM32Cube/Boards/STM32L552.ioc new file mode 100644 index 000000000..5162ddad0 --- /dev/null +++ b/IDE/STM32Cube/Boards/STM32L552.ioc @@ -0,0 +1,267 @@ +#MicroXplorer Configuration settings - do not modify +ADC1.Channel-0\#ChannelRegularConversion=ADC_CHANNEL_3 +ADC1.IPParameters=Rank-0\#ChannelRegularConversion,Channel-0\#ChannelRegularConversion,SamplingTime-0\#ChannelRegularConversion,OffsetNumber-0\#ChannelRegularConversion,NbrOfConversionFlag,master +ADC1.NbrOfConversionFlag=1 +ADC1.OffsetNumber-0\#ChannelRegularConversion=ADC_OFFSET_NONE +ADC1.Rank-0\#ChannelRegularConversion=1 +ADC1.SamplingTime-0\#ChannelRegularConversion=ADC_SAMPLETIME_2CYCLES_5 +ADC1.master=1 +FREERTOS.FootprintOK=true +FREERTOS.IPParameters=Tasks01,configTOTAL_HEAP_SIZE,configUSE_MALLOC_FAILED_HOOK,configCHECK_FOR_STACK_OVERFLOW,FootprintOK +FREERTOS.Tasks01=defaultTask,24,128,StartDefaultTask,Default,NULL,Dynamic,NULL,NULL;wolfCrypt,8,35840,wolfCryptDemo,As external,NULL,Dynamic,NULL,NULL +FREERTOS.configCHECK_FOR_STACK_OVERFLOW=2 +FREERTOS.configTOTAL_HEAP_SIZE=180000 +FREERTOS.configUSE_MALLOC_FAILED_HOOK=1 +File.Version=6 +KeepUserPlacement=false +LPUART1.BaudRate=115200 +LPUART1.IPParameters=BaudRate +Mcu.Family=STM32L5 +Mcu.IP0=ADC1 +Mcu.IP1=DEBUG +Mcu.IP10=SYS +Mcu.IP11=UCPD1 +Mcu.IP12=USB +Mcu.IP2=FREERTOS +Mcu.IP3=HASH +Mcu.IP4=LPUART1 +Mcu.IP5=NVIC +Mcu.IP6=PWR +Mcu.IP7=RCC +Mcu.IP8=RNG +Mcu.IP9=RTC +Mcu.IPNb=13 +Mcu.Name=STM32L552Z(C-E)TxQ +Mcu.Package=LQFP144 +Mcu.Pin0=PC13 +Mcu.Pin1=PC14-OSC32_IN (PC14) +Mcu.Pin10=PA11 +Mcu.Pin11=PA12 +Mcu.Pin12=PA13 (JTMS/SWDIO) +Mcu.Pin13=PA14 (JTCK/SWCLK) +Mcu.Pin14=PA15 (JTDI) +Mcu.Pin15=PB3 (JTDO/TRACESWO) +Mcu.Pin16=PB5 +Mcu.Pin17=PB7 +Mcu.Pin18=VP_FREERTOS_VS_CMSIS_V2 +Mcu.Pin19=VP_HASH_VS_HASH +Mcu.Pin2=PC15-OSC32_OUT (PC15) +Mcu.Pin20=VP_PWR_VS_DBSignals +Mcu.Pin21=VP_RNG_VS_RNG +Mcu.Pin22=VP_RTC_VS_RTC_Activate +Mcu.Pin23=VP_SYS_VS_tim1 +Mcu.Pin24=VP_wolfSSL.wolfSSL_VS_wolfSSLJjwolfSSL_4.4.1 +Mcu.Pin3=PC2 +Mcu.Pin4=PB14 +Mcu.Pin5=PB15 +Mcu.Pin6=PG7 +Mcu.Pin7=PG8 +Mcu.Pin8=PC7 +Mcu.Pin9=PA9 +Mcu.PinsNb=25 +Mcu.ThirdParty0=wolfSSL.wolfSSL.4.4.1 +Mcu.ThirdPartyNb=1 +Mcu.TrustZone=disable +Mcu.UserConstants= +Mcu.UserName=STM32L552ZETxQ +MxCube.Version=5.6.1 +MxDb.Version=DB.5.0.60 +NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false +NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false +NVIC.ForceEnableDMAVector=true +NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false +NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false +NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false +NVIC.PendSV_IRQn=true\:7\:0\:false\:false\:false\:true\:false\:false +NVIC.PriorityGroup=NVIC_PRIORITYGROUP_3 +NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:false\:false\:false\:false +NVIC.SysTick_IRQn=true\:7\:0\:false\:false\:false\:true\:false\:false +NVIC.TIM1_UP_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:true +NVIC.TimeBase=TIM1_UP_IRQn +NVIC.TimeBaseIP=TIM1 +NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false +PA11.Locked=true +PA11.Mode=Device +PA11.Signal=USB_DM +PA12.Mode=Device +PA12.Signal=USB_DP +PA13\ (JTMS/SWDIO).Locked=true +PA13\ (JTMS/SWDIO).Mode=Trace_Asynchronous_SW +PA13\ (JTMS/SWDIO).Signal=DEBUG_JTMS-SWDIO +PA14\ (JTCK/SWCLK).Locked=true +PA14\ (JTCK/SWCLK).Mode=Trace_Asynchronous_SW +PA14\ (JTCK/SWCLK).Signal=DEBUG_JTCK-SWCLK +PA15\ (JTDI).Locked=true +PA15\ (JTDI).Mode=Source_AllSignals +PA15\ (JTDI).Signal=UCPD1_CC1 +PA9.GPIOParameters=GPIO_Label +PA9.GPIO_Label=LED_RED +PA9.Locked=true +PA9.Signal=GPIO_Output +PB14.GPIOParameters=GPIO_Label +PB14.GPIO_Label=UCPD_FLT +PB14.Locked=true +PB14.Signal=GPXTI14 +PB15.Locked=true +PB15.Mode=Source_AllSignals +PB15.Signal=UCPD1_CC2 +PB3\ (JTDO/TRACESWO).Locked=true +PB3\ (JTDO/TRACESWO).Mode=Trace_Asynchronous_SW +PB3\ (JTDO/TRACESWO).Signal=DEBUG_JTDO-SWO +PB5.GPIOParameters=GPIO_Label +PB5.GPIO_Label=UCPD_DBN +PB5.Locked=true +PB5.Signal=GPIO_Output +PB7.GPIOParameters=GPIO_Label +PB7.GPIO_Label=LED_BLUE +PB7.Locked=true +PB7.Signal=GPIO_Output +PC13.GPIOParameters=GPIO_Label +PC13.GPIO_Label=USER_BUTTON +PC13.Locked=true +PC13.Mode=WakeUp1 +PC13.Signal=PWR_WKUP2 +PC14-OSC32_IN\ (PC14).Locked=true +PC14-OSC32_IN\ (PC14).Mode=LSE-External-Oscillator +PC14-OSC32_IN\ (PC14).Signal=RCC_OSC32_IN +PC15-OSC32_OUT\ (PC15).Locked=true +PC15-OSC32_OUT\ (PC15).Mode=LSE-External-Oscillator +PC15-OSC32_OUT\ (PC15).Signal=RCC_OSC32_OUT +PC2.GPIOParameters=GPIO_Label +PC2.GPIO_Label=VBUS_SENSE +PC2.Locked=true +PC2.Signal=ADCx_IN3 +PC7.GPIOParameters=GPIO_Label +PC7.GPIO_Label=LED_GREEN +PC7.Locked=true +PC7.Signal=GPIO_Output +PG7.GPIOParameters=GPIO_Label +PG7.GPIO_Label=ST-LINK_VCP_TX +PG7.Locked=true +PG7.Mode=Asynchronous +PG7.Signal=LPUART1_TX +PG8.GPIOParameters=GPIO_Label +PG8.GPIO_Label=ST-LINK_VCP_RX +PG8.Locked=true +PG8.Mode=Asynchronous +PG8.Signal=LPUART1_RX +PinOutPanel.RotationAngle=0 +ProjectManager.AskForMigrate=true +ProjectManager.BackupPrevious=false +ProjectManager.CompilerOptimize=6 +ProjectManager.ComputerToolchain=false +ProjectManager.CoupleFile=false +ProjectManager.CustomerFirmwarePackage= +ProjectManager.DefaultFWLocation=true +ProjectManager.DeletePrevious=true +ProjectManager.DeviceId=STM32L552ZETxQ +ProjectManager.FirmwarePackage=STM32Cube FW_L5 V1.2.0 +ProjectManager.FreePins=false +ProjectManager.HalAssertFull=false +ProjectManager.HeapSize=0x200 +ProjectManager.KeepUserCode=true +ProjectManager.LastFirmware=true +ProjectManager.LibraryCopy=1 +ProjectManager.MainLocation=Core/Src +ProjectManager.NoMain=false +ProjectManager.PreviousToolchain= +ProjectManager.ProjectBuild=false +ProjectManager.ProjectFileName=STM32L552.ioc +ProjectManager.ProjectName=STM32L552 +ProjectManager.StackSize=0x400 +ProjectManager.TargetToolchain=STM32CubeIDE +ProjectManager.ToolChainLocation= +ProjectManager.UnderRoot=true +ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-SystemClock_Config-RCC-false-HAL-false,3-MX_ADC1_Init-ADC1-false-HAL-true,4-MX_LPUART1_UART_Init-LPUART1-false-HAL-true,5-MX_RTC_Init-RTC-false-HAL-true,6-MX_UCPD1_Init-UCPD1-false-LL-true,7-MX_USB_PCD_Init-USB-false-HAL-true,0-MX_PWR_Init-PWR-false-HAL-true +RCC.ADCCLockSelection=RCC_ADCCLKSOURCE_SYSCLK +RCC.ADCFreq_Value=110000000 +RCC.AHBFreq_Value=110000000 +RCC.APB1Freq_Value=110000000 +RCC.APB1TimFreq_Value=110000000 +RCC.APB2Freq_Value=110000000 +RCC.APB2TimFreq_Value=110000000 +RCC.CK48CLockSelection=RCC_USBCLKSOURCE_HSI48 +RCC.CRSFreq_Value=48000000 +RCC.CortexFreq_Value=110000000 +RCC.DFSDMAudioFreq_Value=4000000 +RCC.DFSDMFreq_Value=110000000 +RCC.FCLKCortexFreq_Value=110000000 +RCC.FDCANFreq_Value=110000000 +RCC.FamilyName=M +RCC.HCLKFreq_Value=110000000 +RCC.HSE_VALUE=8000000 +RCC.HSI48_VALUE=48000000 +RCC.HSI_VALUE=16000000 +RCC.I2C1Freq_Value=110000000 +RCC.I2C2Freq_Value=110000000 +RCC.I2C3Freq_Value=110000000 +RCC.I2C4Freq_Value=110000000 +RCC.IPParameters=ADCCLockSelection,ADCFreq_Value,AHBFreq_Value,APB1Freq_Value,APB1TimFreq_Value,APB2Freq_Value,APB2TimFreq_Value,CK48CLockSelection,CRSFreq_Value,CortexFreq_Value,DFSDMAudioFreq_Value,DFSDMFreq_Value,FCLKCortexFreq_Value,FDCANFreq_Value,FamilyName,HCLKFreq_Value,HSE_VALUE,HSI48_VALUE,HSI_VALUE,I2C1Freq_Value,I2C2Freq_Value,I2C3Freq_Value,I2C4Freq_Value,LPTIM1Freq_Value,LPTIM2Freq_Value,LPTIM3Freq_Value,LPUART1Freq_Value,LSCOPinFreq_Value,LSI_VALUE,MCO1PinFreq_Value,MSI_VALUE,OCTOSPIMFreq_Value,PLLN,PLLPoutputFreq_Value,PLLQoutputFreq_Value,PLLRCLKFreq_Value,PLLSAI1N,PLLSAI1PoutputFreq_Value,PLLSAI1QoutputFreq_Value,PLLSAI1RoutputFreq_Value,PLLSAI2PoutputFreq_Value,PWRFreq_Value,RNGFreq_Value,RTCClockSelection,RTCFreq_Value,SAI1Freq_Value,SAI2Freq_Value,SDMMCFreq_Value,SYSCLKFreq_VALUE,SYSCLKSource,UART4Freq_Value,UART5Freq_Value,USART1Freq_Value,USART2Freq_Value,USART3Freq_Value,USBFreq_Value,VCOInput2Freq_Value,VCOInput3Freq_Value,VCOInputFreq_Value,VCOOutputFreq_Value,VCOSAI1OutputFreq_Value,VCOSAI2OutputFreq_Value +RCC.LPTIM1Freq_Value=110000000 +RCC.LPTIM2Freq_Value=110000000 +RCC.LPTIM3Freq_Value=110000000 +RCC.LPUART1Freq_Value=110000000 +RCC.LSCOPinFreq_Value=32000 +RCC.LSI_VALUE=32000 +RCC.MCO1PinFreq_Value=110000000 +RCC.MSI_VALUE=4000000 +RCC.OCTOSPIMFreq_Value=110000000 +RCC.PLLN=55 +RCC.PLLPoutputFreq_Value=31428571.42857143 +RCC.PLLQoutputFreq_Value=110000000 +RCC.PLLRCLKFreq_Value=110000000 +RCC.PLLSAI1N=24 +RCC.PLLSAI1PoutputFreq_Value=13714285.714285715 +RCC.PLLSAI1QoutputFreq_Value=48000000 +RCC.PLLSAI1RoutputFreq_Value=48000000 +RCC.PLLSAI2PoutputFreq_Value=4571428.571428572 +RCC.PWRFreq_Value=110000000 +RCC.RNGFreq_Value=48000000 +RCC.RTCClockSelection=RCC_RTCCLKSOURCE_LSE +RCC.RTCFreq_Value=32768 +RCC.SAI1Freq_Value=13714285.714285715 +RCC.SAI2Freq_Value=13714285.714285715 +RCC.SDMMCFreq_Value=31428571.42857143 +RCC.SYSCLKFreq_VALUE=110000000 +RCC.SYSCLKSource=RCC_SYSCLKSOURCE_PLLCLK +RCC.UART4Freq_Value=110000000 +RCC.UART5Freq_Value=110000000 +RCC.USART1Freq_Value=110000000 +RCC.USART2Freq_Value=110000000 +RCC.USART3Freq_Value=110000000 +RCC.USBFreq_Value=48000000 +RCC.VCOInput2Freq_Value=4000000 +RCC.VCOInput3Freq_Value=4000000 +RCC.VCOInputFreq_Value=4000000 +RCC.VCOOutputFreq_Value=220000000 +RCC.VCOSAI1OutputFreq_Value=96000000 +RCC.VCOSAI2OutputFreq_Value=32000000 +SH.ADCx_IN3.0=ADC1_IN3,IN3-Single-Ended +SH.ADCx_IN3.ConfNb=1 +SH.GPXTI14.0=GPIO_EXTI14 +SH.GPXTI14.ConfNb=1 +VP_FREERTOS_VS_CMSIS_V2.Mode=CMSIS_V2 +VP_FREERTOS_VS_CMSIS_V2.Signal=FREERTOS_VS_CMSIS_V2 +VP_HASH_VS_HASH.Mode=HASH_Activate +VP_HASH_VS_HASH.Signal=HASH_VS_HASH +VP_PWR_VS_DBSignals.Mode=DisableDeadBatterySignals +VP_PWR_VS_DBSignals.Signal=PWR_VS_DBSignals +VP_RNG_VS_RNG.Mode=RNG_Activate +VP_RNG_VS_RNG.Signal=RNG_VS_RNG +VP_RTC_VS_RTC_Activate.Mode=RTC_Enabled +VP_RTC_VS_RTC_Activate.Signal=RTC_VS_RTC_Activate +VP_SYS_VS_tim1.Mode=TIM1 +VP_SYS_VS_tim1.Signal=SYS_VS_tim1 +VP_wolfSSL.wolfSSL_VS_wolfSSLJjwolfSSL_4.4.1.Mode=wolfSSLJjwolfSSL +VP_wolfSSL.wolfSSL_VS_wolfSSLJjwolfSSL_4.4.1.Signal=wolfSSL.wolfSSL_VS_wolfSSLJjwolfSSL_4.4.1 +board=NUCLEO-L552ZE-Q +boardIOC=true +wolfSSL.wolfSSL.4.4.1.IPParameters=wolfSSLCcwolfSSLJjwolfSSLJjCore,wolfSSLCcwolfSSLJjwolfCryptJjCore,wolfSSLCcwolfSSLJjwolfCryptJjTest,WOLF_CONF_MATH,WOLF_CONF_RTOS +wolfSSL.wolfSSL.4.4.1.WOLF_CONF_MATH=4 +wolfSSL.wolfSSL.4.4.1.WOLF_CONF_RTOS=2 +wolfSSL.wolfSSL.4.4.1.wolfSSLCcwolfSSLJjwolfCryptJjCore=true +wolfSSL.wolfSSL.4.4.1.wolfSSLCcwolfSSLJjwolfCryptJjTest=true +wolfSSL.wolfSSL.4.4.1.wolfSSLCcwolfSSLJjwolfSSLJjCore=true +wolfSSL.wolfSSL.4.4.1.wolfSSLJjwolfSSL_Checked=true +wolfSSL.wolfSSL.4.4.1_SwParameter=wolfSSLCcwolfSSLJjwolfCryptJjCore\:true;wolfSSLCcwolfSSLJjwolfCryptJjTest\:true;wolfSSLCcwolfSSLJjwolfSSLJjCore\:true; +isbadioc=false diff --git a/IDE/STM32Cube/Boards/STM32L562.ioc b/IDE/STM32Cube/Boards/STM32L562.ioc new file mode 100644 index 000000000..bb06e0823 --- /dev/null +++ b/IDE/STM32Cube/Boards/STM32L562.ioc @@ -0,0 +1,650 @@ +#MicroXplorer Configuration settings - do not modify +ADC1.Channel-0\#ChannelRegularConversion=ADC_CHANNEL_9 +ADC1.IPParameters=Rank-0\#ChannelRegularConversion,master,Channel-0\#ChannelRegularConversion,SamplingTime-0\#ChannelRegularConversion,OffsetNumber-0\#ChannelRegularConversion,NbrOfConversionFlag +ADC1.NbrOfConversionFlag=1 +ADC1.OffsetNumber-0\#ChannelRegularConversion=ADC_OFFSET_NONE +ADC1.Rank-0\#ChannelRegularConversion=1 +ADC1.SamplingTime-0\#ChannelRegularConversion=ADC_SAMPLETIME_2CYCLES_5 +ADC1.master=1 +FREERTOS.FootprintOK=true +FREERTOS.IPParameters=Tasks01,configUSE_MALLOC_FAILED_HOOK,configCHECK_FOR_STACK_OVERFLOW,FootprintOK,configTOTAL_HEAP_SIZE +FREERTOS.Tasks01=defaultTask,24,128,StartDefaultTask,Default,NULL,Dynamic,NULL,NULL;wolfCrypt,8,35840,wolfCryptDemo,As external,NULL,Dynamic,NULL,NULL +FREERTOS.configCHECK_FOR_STACK_OVERFLOW=2 +FREERTOS.configTOTAL_HEAP_SIZE=180000 +FREERTOS.configUSE_MALLOC_FAILED_HOOK=1 +File.Version=6 +I2C1.IPParameters=Timing +I2C1.Timing=0x40505681 +KeepUserPlacement=false +Mcu.Family=STM32L5 +Mcu.IP0=ADC1 +Mcu.IP1=AES +Mcu.IP10=NVIC +Mcu.IP11=OCTOSPI1 +Mcu.IP12=PKA +Mcu.IP13=PWR +Mcu.IP14=RCC +Mcu.IP15=RNG +Mcu.IP16=RTC +Mcu.IP17=SAI1 +Mcu.IP18=SDMMC1 +Mcu.IP19=SPI1 +Mcu.IP2=DEBUG +Mcu.IP20=SYS +Mcu.IP21=TIM4 +Mcu.IP22=TIM16 +Mcu.IP23=TIM17 +Mcu.IP24=UCPD1 +Mcu.IP25=USART1 +Mcu.IP26=USB +Mcu.IP3=DFSDM1 +Mcu.IP4=FMC +Mcu.IP5=FREERTOS +Mcu.IP6=GTZC +Mcu.IP7=HASH +Mcu.IP8=I2C1 +Mcu.IP9=LPUART1 +Mcu.IPNb=27 +Mcu.Name=STM32L562QEIxQ +Mcu.Package=UFBGA132 +Mcu.Pin0=PE5 +Mcu.Pin1=PE3 +Mcu.Pin10=PE2 +Mcu.Pin11=PD4 +Mcu.Pin12=PD1 +Mcu.Pin13=PC12 +Mcu.Pin14=PC10 +Mcu.Pin15=PA12 +Mcu.Pin16=PC14-OSC32_IN (PC14) +Mcu.Pin17=PE6 +Mcu.Pin18=PC13 +Mcu.Pin19=PB3 (JTDO/TRACESWO) +Mcu.Pin2=PE1 +Mcu.Pin20=PD3 +Mcu.Pin21=PD0 +Mcu.Pin22=PA13 (JTMS/SWDIO) +Mcu.Pin23=PA14 (JTCK/SWCLK) +Mcu.Pin24=PA11 +Mcu.Pin25=PC15-OSC32_OUT (PC15) +Mcu.Pin26=PF0 +Mcu.Pin27=PF3 +Mcu.Pin28=PB7 +Mcu.Pin29=PB5 +Mcu.Pin3=PB6 +Mcu.Pin30=PD7 +Mcu.Pin31=PA9 +Mcu.Pin32=PA10 +Mcu.Pin33=PA8 +Mcu.Pin34=PF2 +Mcu.Pin35=PF1 +Mcu.Pin36=PC9 +Mcu.Pin37=PC8 +Mcu.Pin38=PH0-OSC_IN (PH0) +Mcu.Pin39=PC2 +Mcu.Pin4=PG12 +Mcu.Pin40=PC3 +Mcu.Pin41=PG6 +Mcu.Pin42=PG7 +Mcu.Pin43=PG8 +Mcu.Pin44=PC1 +Mcu.Pin45=PG4 +Mcu.Pin46=PG2 +Mcu.Pin47=PG3 +Mcu.Pin48=PG5 +Mcu.Pin49=PC0 +Mcu.Pin5=PD5 +Mcu.Pin50=PD14 +Mcu.Pin51=PD15 +Mcu.Pin52=PF14 +Mcu.Pin53=PE8 +Mcu.Pin54=PE10 +Mcu.Pin55=PE12 +Mcu.Pin56=PD9 +Mcu.Pin57=PA2 +Mcu.Pin58=PA7 +Mcu.Pin59=PB2 +Mcu.Pin6=PD2 +Mcu.Pin60=PF11 +Mcu.Pin61=PG1 +Mcu.Pin62=PE7 +Mcu.Pin63=PE14 +Mcu.Pin64=PB10 +Mcu.Pin65=PB14 +Mcu.Pin66=PB15 +Mcu.Pin67=PA3 +Mcu.Pin68=PA6 +Mcu.Pin69=PA4 +Mcu.Pin7=PC11 +Mcu.Pin70=PB1 +Mcu.Pin71=PF12 +Mcu.Pin72=PF15 +Mcu.Pin73=PE11 +Mcu.Pin74=PE15 +Mcu.Pin75=PB11 +Mcu.Pin76=PB12 +Mcu.Pin77=PD8 +Mcu.Pin78=PB0 +Mcu.Pin79=PE9 +Mcu.Pin8=PA15 (JTDI) +Mcu.Pin80=PE13 +Mcu.Pin81=PD10 +Mcu.Pin82=VP_AES_VS_AES +Mcu.Pin83=VP_DFSDM1_VS_IN0 +Mcu.Pin84=VP_DFSDM1_VS_IN2 +Mcu.Pin85=VP_FREERTOS_VS_CMSIS_V2 +Mcu.Pin86=VP_GTZC_VS_GTZC_Enable +Mcu.Pin87=VP_HASH_VS_HASH +Mcu.Pin88=VP_PKA_VS_PKA +Mcu.Pin89=VP_PWR_VS_DBSignals +Mcu.Pin9=PE4 +Mcu.Pin90=VP_RNG_VS_RNG +Mcu.Pin91=VP_RTC_VS_RTC_Activate +Mcu.Pin92=VP_SYS_VS_tim1 +Mcu.Pin93=VP_SYS_S_VS_Systick +Mcu.Pin94=VP_TIM4_VS_ControllerModeClock +Mcu.Pin95=VP_TIM4_VS_ClockSourceITR +Mcu.Pin96=VP_TIM16_VS_ClockSourceINT +Mcu.Pin97=VP_TIM17_VS_ClockSourceINT +Mcu.Pin98=VP_wolfSSL.wolfSSL_VS_wolfSSLJjwolfSSL_4.4.1 +Mcu.PinsNb=99 +Mcu.ThirdParty0=wolfSSL.wolfSSL.4.4.1 +Mcu.ThirdPartyNb=1 +Mcu.TrustZone=disable +Mcu.UserConstants= +Mcu.UserName=STM32L562QEIxQ +MxCube.Version=5.6.1 +MxDb.Version=DB.5.0.60 +NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false +NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false +NVIC.ForceEnableDMAVector=true +NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false +NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false +NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false +NVIC.PendSV_IRQn=true\:7\:0\:false\:false\:false\:true\:false\:false +NVIC.PriorityGroup=NVIC_PRIORITYGROUP_3 +NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:false\:false\:false\:false +NVIC.SysTick_IRQn=true\:7\:0\:false\:false\:false\:true\:false\:false +NVIC.TIM1_UP_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:true +NVIC.TimeBase=TIM1_UP_IRQn +NVIC.TimeBaseIP=TIM1 +NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false +PA10.GPIOParameters=GPIO_Label +PA10.GPIO_Label=USART1_RX [ST-LINK_VCP_TX] +PA10.Locked=true +PA10.Mode=Asynchronous +PA10.Signal=USART1_RX +PA11.Locked=true +PA11.Mode=Device +PA11.Signal=USB_DM +PA12.Locked=true +PA12.Mode=Device +PA12.Signal=USB_DP +PA13\ (JTMS/SWDIO).Locked=true +PA13\ (JTMS/SWDIO).Mode=Trace_Asynchronous_SW +PA13\ (JTMS/SWDIO).Signal=DEBUG_JTMS-SWDIO +PA14\ (JTCK/SWCLK).Locked=true +PA14\ (JTCK/SWCLK).Mode=Trace_Asynchronous_SW +PA14\ (JTCK/SWCLK).Signal=DEBUG_JTCK-SWCLK +PA15\ (JTDI).Locked=true +PA15\ (JTDI).Mode=Source_AllSignals +PA15\ (JTDI).Signal=UCPD1_CC1 +PA2.Locked=true +PA2.Mode=octods_mode +PA2.Signal=OCTOSPI1_NCS +PA3.Locked=true +PA3.Mode=octods_mode +PA3.Signal=OCTOSPI1_CLK +PA4.GPIOParameters=GPIO_Label +PA4.GPIO_Label=VBUS_SENSE +PA4.Locked=true +PA4.Signal=ADCx_IN9 +PA6.Locked=true +PA6.Mode=octods_mode +PA6.Signal=OCTOSPI1_IO3 +PA7.Locked=true +PA7.Mode=octods_mode +PA7.Signal=OCTOSPI1_IO2 +PA8.GPIOParameters=GPIO_Label +PA8.GPIO_Label=LCD.TE +PA8.Locked=true +PA8.Signal=GPIO_Output +PA9.GPIOParameters=GPIO_Label +PA9.GPIO_Label=USART1_TX [ST-LINK_VCP_RX] +PA9.Locked=true +PA9.Mode=Asynchronous +PA9.Signal=USART1_TX +PB0.Locked=true +PB0.Mode=octods_mode +PB0.Signal=OCTOSPI1_IO1 +PB1.Locked=true +PB1.Mode=octods_mode +PB1.Signal=OCTOSPI1_IO0 +PB10.Locked=true +PB10.Mode=Asynchronous +PB10.Signal=LPUART1_RX +PB11.Locked=true +PB11.Mode=Asynchronous +PB11.Signal=LPUART1_TX +PB12.Locked=true +PB12.Signal=S_DATAIN1DFSDM1 +PB14.GPIOParameters=GPIO_Label +PB14.GPIO_Label=UCPD_FLT +PB14.Locked=true +PB14.Signal=GPIO_Input +PB15.Locked=true +PB15.Mode=Source_AllSignals +PB15.Signal=UCPD1_CC2 +PB2.Locked=true +PB2.Mode=octods_mode +PB2.Signal=OCTOSPI1_DQS +PB3\ (JTDO/TRACESWO).Locked=true +PB3\ (JTDO/TRACESWO).Mode=Trace_Asynchronous_SW +PB3\ (JTDO/TRACESWO).Signal=DEBUG_JTDO-SWO +PB5.GPIOParameters=GPIO_Label +PB5.GPIO_Label=UCPD_DBn +PB5.Locked=true +PB5.Signal=GPIO_Output +PB6.Locked=true +PB6.Mode=I2C +PB6.Signal=I2C1_SCL +PB7.Locked=true +PB7.Mode=I2C +PB7.Signal=I2C1_SDA +PC0.Locked=true +PC0.Mode=octods_mode +PC0.Signal=OCTOSPI1_IO7 +PC1.Locked=true +PC1.Mode=octods_mode +PC1.Signal=OCTOSPI1_IO4 +PC10.Locked=true +PC10.Mode=SD_4_bits_Wide_bus +PC10.Signal=SDMMC1_D2 +PC11.Locked=true +PC11.Mode=SD_4_bits_Wide_bus +PC11.Signal=SDMMC1_D3 +PC12.Locked=true +PC12.Mode=SD_4_bits_Wide_bus +PC12.Signal=SDMMC1_CK +PC13.GPIOParameters=GPIO_Label +PC13.GPIO_Label=USER_BUTTON +PC13.Locked=true +PC13.Signal=GPIO_Input +PC14-OSC32_IN\ (PC14).Locked=true +PC14-OSC32_IN\ (PC14).Mode=LSE-External-Oscillator +PC14-OSC32_IN\ (PC14).Signal=RCC_OSC32_IN +PC15-OSC32_OUT\ (PC15).Locked=true +PC15-OSC32_OUT\ (PC15).Mode=LSE-External-Oscillator +PC15-OSC32_OUT\ (PC15).Signal=RCC_OSC32_OUT +PC2.Locked=true +PC2.Mode=octods_mode +PC2.Signal=OCTOSPI1_IO5 +PC3.Locked=true +PC3.Mode=octods_mode +PC3.Signal=OCTOSPI1_IO6 +PC8.Locked=true +PC8.Mode=SD_4_bits_Wide_bus +PC8.Signal=SDMMC1_D0 +PC9.Locked=true +PC9.Mode=SD_4_bits_Wide_bus +PC9.Signal=SDMMC1_D1 +PD0.Locked=true +PD0.Signal=FMC_D2_DA2 +PD1.Locked=true +PD1.Signal=FMC_D3_DA3 +PD10.Locked=true +PD10.Signal=FMC_D15_DA15 +PD14.Locked=true +PD14.Signal=FMC_D0_DA0 +PD15.Locked=true +PD15.Signal=FMC_D1_DA1 +PD2.Locked=true +PD2.Mode=SD_4_bits_Wide_bus +PD2.Signal=SDMMC1_CMD +PD3.GPIOParameters=GPIO_Label +PD3.GPIO_Label=LED_RED +PD3.Locked=true +PD3.Signal=GPIO_Output +PD4.Locked=true +PD4.Signal=FMC_NOE +PD5.Locked=true +PD5.Signal=FMC_NWE +PD7.Locked=true +PD7.Mode=NorPsramChipSelect1_1 +PD7.Signal=FMC_NE1 +PD8.Locked=true +PD8.Signal=FMC_D13_DA13 +PD9.Locked=true +PD9.Signal=FMC_D14_DA14 +PE1.GPIOParameters=GPIO_Label +PE1.GPIO_Label=LCD_BL_PWM +PE1.Locked=true +PE1.Signal=S_TIM17_CH1 +PE10.Locked=true +PE10.Signal=FMC_D7_DA7 +PE11.Locked=true +PE11.Signal=FMC_D8_DA8 +PE12.Locked=true +PE12.Signal=FMC_D9_DA9 +PE13.Locked=true +PE13.Signal=FMC_D10_DA10 +PE14.Locked=true +PE14.Signal=FMC_D11_DA11 +PE15.Locked=true +PE15.Signal=FMC_D12_DA12 +PE2.Locked=true +PE2.Mode=SAI_A_MasterWithClock +PE2.Signal=SAI1_MCLK_A +PE3.Locked=true +PE3.Mode=SAI_B_SPDIF +PE3.Signal=SAI1_SD_B +PE4.Locked=true +PE4.Mode=SAI_A_MasterWithClock +PE4.Signal=SAI1_FS_A +PE5.Locked=true +PE5.Mode=SAI_A_MasterWithClock +PE5.Signal=SAI1_SCK_A +PE6.Locked=true +PE6.Mode=SAI_A_MasterWithClock +PE6.Signal=SAI1_SD_A +PE7.Locked=true +PE7.Signal=FMC_D4_DA4 +PE8.Locked=true +PE8.Signal=FMC_D5_DA5 +PE9.Locked=true +PE9.Signal=FMC_D6_DA6 +PF0.Locked=true +PF0.Signal=FMC_A0 +PF1.GPIOParameters=GPIO_Label +PF1.GPIO_Label=CTP_INT +PF1.Locked=true +PF1.Signal=GPXTI1 +PF11.GPIOParameters=GPIO_Label +PF11.GPIO_Label=STMOD_SEL_12 +PF11.Locked=true +PF11.Signal=GPIO_Output +PF12.GPIOParameters=GPIO_Label +PF12.GPIO_Label=STMOD_SEL_34 +PF12.Locked=true +PF12.Signal=GPIO_Output +PF14.GPIOParameters=GPIO_Label +PF14.GPIO_Label=LCD_RST +PF14.Locked=true +PF14.Signal=GPIO_Output +PF15.GPIOParameters=GPIO_Label +PF15.GPIO_Label=CTP_RST +PF15.Locked=true +PF15.Signal=GPIO_Output +PF2.GPIOParameters=GPIO_Label +PF2.GPIO_Label=SDIO_DETECT +PF2.Locked=true +PF2.Signal=GPXTI2 +PF3.GPIOParameters=GPIO_Label +PF3.GPIO_Label=GYRO_ACC_INT +PF3.Locked=true +PF3.Signal=GPXTI3 +PG1.GPIOParameters=GPIO_Label +PG1.GPIO_Label=AUDIO_RESETN +PG1.Locked=true +PG1.Signal=GPIO_Output +PG12.GPIOParameters=GPIO_Label +PG12.GPIO_Label=LED_GREEN +PG12.Locked=true +PG12.Signal=GPIO_Output +PG2.Locked=true +PG2.Mode=Full_Duplex_Master +PG2.Signal=SPI1_SCK +PG3.Locked=true +PG3.Mode=Full_Duplex_Master +PG3.Signal=SPI1_MISO +PG4.Locked=true +PG4.Mode=Full_Duplex_Master +PG4.Signal=SPI1_MOSI +PG5.GPIOParameters=GPIO_Label +PG5.GPIO_Label=BLE_CSN +PG5.Locked=true +PG5.Mode=NSS_Signal_Hard_Input +PG5.Signal=SPI1_NSS +PG6.GPIOParameters=GPIO_Label +PG6.GPIO_Label=BLE_INT +PG6.Locked=true +PG6.Signal=GPXTI6 +PG7.Locked=true +PG7.Signal=S_CKOUTDFSDM1 +PG8.GPIOParameters=GPIO_Label +PG8.GPIO_Label=BLE_RSTN +PG8.Locked=true +PG8.Signal=GPIO_Output +PH0-OSC_IN\ (PH0).GPIOParameters=GPIO_Label +PH0-OSC_IN\ (PH0).GPIO_Label=LCD_PWR_ON +PH0-OSC_IN\ (PH0).Locked=true +PH0-OSC_IN\ (PH0).Signal=GPIO_Output +PinOutPanel.CurrentBGAView=Top +PinOutPanel.RotationAngle=0 +ProjectManager.AskForMigrate=true +ProjectManager.BackupPrevious=false +ProjectManager.CompilerOptimize=6 +ProjectManager.ComputerToolchain=false +ProjectManager.CoupleFile=false +ProjectManager.CustomerFirmwarePackage= +ProjectManager.DefaultFWLocation=true +ProjectManager.DeletePrevious=true +ProjectManager.DeviceId=STM32L562QEIxQ +ProjectManager.FirmwarePackage=STM32Cube FW_L5 V1.2.0 +ProjectManager.FreePins=false +ProjectManager.HalAssertFull=false +ProjectManager.HeapSize=0x200 +ProjectManager.KeepUserCode=true +ProjectManager.LastFirmware=true +ProjectManager.LibraryCopy=1 +ProjectManager.MainLocation=Core/Src +ProjectManager.NoMain=false +ProjectManager.PreviousToolchain= +ProjectManager.ProjectBuild=false +ProjectManager.ProjectFileName=STM32L562.ioc +ProjectManager.ProjectName=STM32L562 +ProjectManager.StackSize=0x400 +ProjectManager.TargetToolchain=STM32CubeIDE +ProjectManager.ToolChainLocation= +ProjectManager.UnderRoot=true +ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-SystemClock_Config-RCC-false-HAL-false,3-MX_ADC1_Init-ADC1-false-HAL-true,4-MX_DFSDM1_Init-DFSDM1-false-HAL-true,5-MX_FMC_Init-FMC-false-HAL-true,6-MX_GTZC_Init-GTZC-false-HAL-true,7-MX_I2C1_Init-I2C1-false-HAL-true,8-MX_LPUART1_UART_Init-LPUART1-false-HAL-true,9-MX_USART1_UART_Init-USART1-false-HAL-true,10-MX_OCTOSPI1_Init-OCTOSPI1-false-HAL-true,11-MX_SAI1_Init-SAI1-false-HAL-true,12-MX_SDMMC1_SD_Init-SDMMC1-false-HAL-true,13-MX_SPI1_Init-SPI1-false-HAL-true,14-MX_TIM4_Init-TIM4-false-HAL-true,15-MX_TIM16_Init-TIM16-false-HAL-true,16-MX_TIM17_Init-TIM17-false-HAL-true,17-MX_UCPD1_Init-UCPD1-false-LL-true,18-MX_USB_PCD_Init-USB-false-HAL-true,19-MX_AES_Init-AES-false-HAL-true,20-MX_HASH_Init-HASH-false-HAL-true,21-MX_PKA_Init-PKA-false-HAL-true,22-MX_RNG_Init-RNG-false-HAL-true,0-MX_PWR_Init-PWR-false-HAL-true +RCC.ADCFreq_Value=96000000 +RCC.AHBFreq_Value=110000000 +RCC.APB1Freq_Value=110000000 +RCC.APB1TimFreq_Value=110000000 +RCC.APB2Freq_Value=110000000 +RCC.APB2TimFreq_Value=110000000 +RCC.CK48CLockSelection=RCC_USBCLKSOURCE_MSI +RCC.CRSFreq_Value=48000000 +RCC.CortexFreq_Value=110000000 +RCC.DFSDMAudioFreq_Value=48000000 +RCC.DFSDMFreq_Value=110000000 +RCC.FCLKCortexFreq_Value=110000000 +RCC.FDCANFreq_Value=110000000 +RCC.FamilyName=M +RCC.HCLKFreq_Value=110000000 +RCC.HSE_VALUE=8000000 +RCC.HSI48_VALUE=48000000 +RCC.HSI_VALUE=16000000 +RCC.I2C1Freq_Value=110000000 +RCC.I2C2Freq_Value=110000000 +RCC.I2C3Freq_Value=110000000 +RCC.I2C4Freq_Value=110000000 +RCC.IPParameters=ADCFreq_Value,AHBFreq_Value,APB1Freq_Value,APB1TimFreq_Value,APB2Freq_Value,APB2TimFreq_Value,CK48CLockSelection,CRSFreq_Value,CortexFreq_Value,DFSDMAudioFreq_Value,DFSDMFreq_Value,FCLKCortexFreq_Value,FDCANFreq_Value,FamilyName,HCLKFreq_Value,HSE_VALUE,HSI48_VALUE,HSI_VALUE,I2C1Freq_Value,I2C2Freq_Value,I2C3Freq_Value,I2C4Freq_Value,LPTIM1Freq_Value,LPTIM2Freq_Value,LPTIM3Freq_Value,LPUART1Freq_Value,LSCOPinFreq_Value,LSI_VALUE,MCO1PinFreq_Value,MSIClockRange,MSI_VALUE,OCTOSPIMFreq_Value,PLLM,PLLN,PLLPoutputFreq_Value,PLLQoutputFreq_Value,PLLRCLKFreq_Value,PLLSAI1M,PLLSAI1N,PLLSAI1P,PLLSAI1PoutputFreq_Value,PLLSAI1QoutputFreq_Value,PLLSAI1RoutputFreq_Value,PLLSAI1Source,PLLSAI2PoutputFreq_Value,PWRFreq_Value,RNGFreq_Value,SAI1Freq_Value,SAI2Freq_Value,SDMMCClockSelection,SDMMCFreq_Value,SYSCLKFreq_VALUE,SYSCLKSource,UART4Freq_Value,UART5Freq_Value,USART1Freq_Value,USART2Freq_Value,USART3Freq_Value,USBFreq_Value,VCOInput2Freq_Value,VCOInput3Freq_Value,VCOInputFreq_Value,VCOOutputFreq_Value,VCOSAI1OutputFreq_Value,VCOSAI2OutputFreq_Value +RCC.LPTIM1Freq_Value=110000000 +RCC.LPTIM2Freq_Value=110000000 +RCC.LPTIM3Freq_Value=110000000 +RCC.LPUART1Freq_Value=110000000 +RCC.LSCOPinFreq_Value=32000 +RCC.LSI_VALUE=32000 +RCC.MCO1PinFreq_Value=110000000 +RCC.MSIClockRange=RCC_MSIRANGE_11 +RCC.MSI_VALUE=48000000 +RCC.OCTOSPIMFreq_Value=110000000 +RCC.PLLM=12 +RCC.PLLN=55 +RCC.PLLPoutputFreq_Value=31428571.42857143 +RCC.PLLQoutputFreq_Value=110000000 +RCC.PLLRCLKFreq_Value=110000000 +RCC.PLLSAI1M=4 +RCC.PLLSAI1N=48 +RCC.PLLSAI1P=RCC_PLLP_DIV17 +RCC.PLLSAI1PoutputFreq_Value=11294117.647058824 +RCC.PLLSAI1QoutputFreq_Value=96000000 +RCC.PLLSAI1RoutputFreq_Value=96000000 +RCC.PLLSAI1Source=RCC_PLLSAI1SOURCE_HSI +RCC.PLLSAI2PoutputFreq_Value=54857142.85714286 +RCC.PWRFreq_Value=110000000 +RCC.RNGFreq_Value=48000000 +RCC.SAI1Freq_Value=11294117.647058824 +RCC.SAI2Freq_Value=11294117.647058824 +RCC.SDMMCClockSelection=RCC_SDIOCLKSOURCE_CLK48 +RCC.SDMMCFreq_Value=48000000 +RCC.SYSCLKFreq_VALUE=110000000 +RCC.SYSCLKSource=RCC_SYSCLKSOURCE_PLLCLK +RCC.UART4Freq_Value=110000000 +RCC.UART5Freq_Value=110000000 +RCC.USART1Freq_Value=110000000 +RCC.USART2Freq_Value=110000000 +RCC.USART3Freq_Value=110000000 +RCC.USBFreq_Value=48000000 +RCC.VCOInput2Freq_Value=4000000 +RCC.VCOInput3Freq_Value=48000000 +RCC.VCOInputFreq_Value=4000000 +RCC.VCOOutputFreq_Value=220000000 +RCC.VCOSAI1OutputFreq_Value=192000000 +RCC.VCOSAI2OutputFreq_Value=384000000 +SAI1.ErrorAudioFreq-SAI_A_MasterWithClock=-77.02 % +SAI1.IPParameters=Instance-SAI_B_SPDIF,VirtualMode-SAI_B_SPDIF,RealAudioFreq-SAI_B_SPDIF,Instance-SAI_A_MasterWithClock,VirtualMode-SAI_A_MasterWithClock,MckOutput-SAI_A_MasterWithClock,RealAudioFreq-SAI_A_MasterWithClock,ErrorAudioFreq-SAI_A_MasterWithClock +SAI1.Instance-SAI_A_MasterWithClock=SAI$Index_Block_A +SAI1.Instance-SAI_B_SPDIF=SAI$Index_Block_B +SAI1.MckOutput-SAI_A_MasterWithClock=SAI_MCK_OUTPUT_ENABLE +SAI1.RealAudioFreq-SAI_A_MasterWithClock=44.117 KHz +SAI1.RealAudioFreq-SAI_B_SPDIF=214.285 KHz +SAI1.VirtualMode-SAI_A_MasterWithClock=VM_MASTER +SAI1.VirtualMode-SAI_B_SPDIF=VM_SPDIF +SH.ADCx_IN9.0=ADC1_IN9,IN9-Single-Ended +SH.ADCx_IN9.ConfNb=1 +SH.FMC_A0.0=FMC_A0,A0_1 +SH.FMC_A0.ConfNb=1 +SH.FMC_D0_DA0.0=FMC_DA0 +SH.FMC_D0_DA0.1=FMC_D0,16b-d1 +SH.FMC_D0_DA0.ConfNb=2 +SH.FMC_D10_DA10.0=FMC_DA10 +SH.FMC_D10_DA10.1=FMC_D10,16b-d1 +SH.FMC_D10_DA10.ConfNb=2 +SH.FMC_D11_DA11.0=FMC_DA11 +SH.FMC_D11_DA11.1=FMC_D11,16b-d1 +SH.FMC_D11_DA11.ConfNb=2 +SH.FMC_D12_DA12.0=FMC_DA12 +SH.FMC_D12_DA12.1=FMC_D12,16b-d1 +SH.FMC_D12_DA12.ConfNb=2 +SH.FMC_D13_DA13.0=FMC_DA13 +SH.FMC_D13_DA13.1=FMC_D13,16b-d1 +SH.FMC_D13_DA13.ConfNb=2 +SH.FMC_D14_DA14.0=FMC_DA14 +SH.FMC_D14_DA14.1=FMC_D14,16b-d1 +SH.FMC_D14_DA14.ConfNb=2 +SH.FMC_D15_DA15.0=FMC_DA15 +SH.FMC_D15_DA15.1=FMC_D15,16b-d1 +SH.FMC_D15_DA15.ConfNb=2 +SH.FMC_D1_DA1.0=FMC_DA1 +SH.FMC_D1_DA1.1=FMC_D1,16b-d1 +SH.FMC_D1_DA1.ConfNb=2 +SH.FMC_D2_DA2.0=FMC_DA2 +SH.FMC_D2_DA2.1=FMC_D2,16b-d1 +SH.FMC_D2_DA2.ConfNb=2 +SH.FMC_D3_DA3.0=FMC_DA3 +SH.FMC_D3_DA3.1=FMC_D3,16b-d1 +SH.FMC_D3_DA3.ConfNb=2 +SH.FMC_D4_DA4.0=FMC_DA4 +SH.FMC_D4_DA4.1=FMC_D4,16b-d1 +SH.FMC_D4_DA4.ConfNb=2 +SH.FMC_D5_DA5.0=FMC_DA5 +SH.FMC_D5_DA5.1=FMC_D5,16b-d1 +SH.FMC_D5_DA5.ConfNb=2 +SH.FMC_D6_DA6.0=FMC_DA6 +SH.FMC_D6_DA6.1=FMC_D6,16b-d1 +SH.FMC_D6_DA6.ConfNb=2 +SH.FMC_D7_DA7.0=FMC_DA7 +SH.FMC_D7_DA7.1=FMC_D7,16b-d1 +SH.FMC_D7_DA7.ConfNb=2 +SH.FMC_D8_DA8.0=FMC_DA8 +SH.FMC_D8_DA8.1=FMC_D8,16b-d1 +SH.FMC_D8_DA8.ConfNb=2 +SH.FMC_D9_DA9.0=FMC_DA9 +SH.FMC_D9_DA9.1=FMC_D9,16b-d1 +SH.FMC_D9_DA9.ConfNb=2 +SH.FMC_NOE.0=FMC_NOE,Lcd1 +SH.FMC_NOE.ConfNb=1 +SH.FMC_NWE.0=FMC_NWE,Lcd1 +SH.FMC_NWE.ConfNb=1 +SH.GPXTI1.0=GPIO_EXTI1 +SH.GPXTI1.ConfNb=1 +SH.GPXTI2.0=GPIO_EXTI2 +SH.GPXTI2.ConfNb=1 +SH.GPXTI3.0=GPIO_EXTI3 +SH.GPXTI3.ConfNb=1 +SH.GPXTI6.0=GPIO_EXTI6 +SH.GPXTI6.ConfNb=1 +SH.S_CKOUTDFSDM1.0=DFSDM1_CKOUT,CKOUT +SH.S_CKOUTDFSDM1.ConfNb=1 +SH.S_DATAIN1DFSDM1.0=DFSDM1_DATIN1,Manchester_input_from_ch1 +SH.S_DATAIN1DFSDM1.ConfNb=1 +SH.S_TIM17_CH1.0=TIM17_CH1,PWM Generation1 CH1 +SH.S_TIM17_CH1.ConfNb=1 +SPI1.BaudRatePrescaler=SPI_BAUDRATEPRESCALER_8 +SPI1.CalculateBaudRate=13.75 MBits/s +SPI1.Direction=SPI_DIRECTION_2LINES +SPI1.IPParameters=VirtualType,Mode,Direction,CalculateBaudRate,VirtualNSS,BaudRatePrescaler +SPI1.Mode=SPI_MODE_MASTER +SPI1.VirtualNSS=VM_NSSHARD +SPI1.VirtualType=VM_MASTER +TIM17.Channel=TIM_CHANNEL_1 +TIM17.IPParameters=Channel +USART1.IPParameters=VirtualMode-Asynchronous +USART1.VirtualMode-Asynchronous=VM_ASYNC +VP_AES_VS_AES.Mode=AES_Activate +VP_AES_VS_AES.Signal=AES_VS_AES +VP_DFSDM1_VS_IN0.Mode=Parallel_Input_ch0 +VP_DFSDM1_VS_IN0.Signal=DFSDM1_VS_IN0 +VP_DFSDM1_VS_IN2.Mode=Parallel_Input_ch2 +VP_DFSDM1_VS_IN2.Signal=DFSDM1_VS_IN2 +VP_FREERTOS_VS_CMSIS_V2.Mode=CMSIS_V2 +VP_FREERTOS_VS_CMSIS_V2.Signal=FREERTOS_VS_CMSIS_V2 +VP_GTZC_VS_GTZC_Enable.Mode=GTZC_Enable +VP_GTZC_VS_GTZC_Enable.Signal=GTZC_VS_GTZC_Enable +VP_HASH_VS_HASH.Mode=HASH_Activate +VP_HASH_VS_HASH.Signal=HASH_VS_HASH +VP_PKA_VS_PKA.Mode=PKA_Activate +VP_PKA_VS_PKA.Signal=PKA_VS_PKA +VP_PWR_VS_DBSignals.Mode=DisableDeadBatterySignals +VP_PWR_VS_DBSignals.Signal=PWR_VS_DBSignals +VP_RNG_VS_RNG.Mode=RNG_Activate +VP_RNG_VS_RNG.Signal=RNG_VS_RNG +VP_RTC_VS_RTC_Activate.Mode=RTC_Enabled +VP_RTC_VS_RTC_Activate.Signal=RTC_VS_RTC_Activate +VP_SYS_S_VS_Systick.Mode=SysTick +VP_SYS_S_VS_Systick.Signal=SYS_S_VS_Systick +VP_SYS_VS_tim1.Mode=TIM1 +VP_SYS_VS_tim1.Signal=SYS_VS_tim1 +VP_TIM16_VS_ClockSourceINT.Mode=Enable_Timer +VP_TIM16_VS_ClockSourceINT.Signal=TIM16_VS_ClockSourceINT +VP_TIM17_VS_ClockSourceINT.Mode=Enable_Timer +VP_TIM17_VS_ClockSourceINT.Signal=TIM17_VS_ClockSourceINT +VP_TIM4_VS_ClockSourceITR.Mode=TriggerSource_ITR1 +VP_TIM4_VS_ClockSourceITR.Signal=TIM4_VS_ClockSourceITR +VP_TIM4_VS_ControllerModeClock.Mode=Clock Mode +VP_TIM4_VS_ControllerModeClock.Signal=TIM4_VS_ControllerModeClock +VP_wolfSSL.wolfSSL_VS_wolfSSLJjwolfSSL_4.4.1.Mode=wolfSSLJjwolfSSL +VP_wolfSSL.wolfSSL_VS_wolfSSLJjwolfSSL_4.4.1.Signal=wolfSSL.wolfSSL_VS_wolfSSLJjwolfSSL_4.4.1 +board=STM32L562E-DK +boardIOC=true +wolfSSL.wolfSSL.4.4.1.IPParameters=wolfSSLCcwolfSSLJjwolfSSLJjCore,wolfSSLCcwolfSSLJjwolfCryptJjCore,wolfSSLCcwolfSSLJjwolfCryptJjTest,WOLF_CONF_MATH,WOLF_CONF_RTOS +wolfSSL.wolfSSL.4.4.1.WOLF_CONF_MATH=4 +wolfSSL.wolfSSL.4.4.1.WOLF_CONF_RTOS=2 +wolfSSL.wolfSSL.4.4.1.wolfSSLCcwolfSSLJjwolfCryptJjCore=true +wolfSSL.wolfSSL.4.4.1.wolfSSLCcwolfSSLJjwolfCryptJjTest=true +wolfSSL.wolfSSL.4.4.1.wolfSSLCcwolfSSLJjwolfSSLJjCore=true +wolfSSL.wolfSSL.4.4.1.wolfSSLJjwolfSSL_Checked=true +wolfSSL.wolfSSL.4.4.1_SwParameter=wolfSSLCcwolfSSLJjwolfCryptJjCore\:true;wolfSSLCcwolfSSLJjwolfCryptJjTest\:true;wolfSSLCcwolfSSLJjwolfSSLJjCore\:true; +isbadioc=false diff --git a/IDE/STM32Cube/Boards/STM32WB55.ioc b/IDE/STM32Cube/Boards/STM32WB55.ioc new file mode 100644 index 000000000..dd05360ac --- /dev/null +++ b/IDE/STM32Cube/Boards/STM32WB55.ioc @@ -0,0 +1,256 @@ +#MicroXplorer Configuration settings - do not modify +FREERTOS.FootprintOK=true +FREERTOS.IPParameters=Tasks01,configTOTAL_HEAP_SIZE,configUSE_MALLOC_FAILED_HOOK,configCHECK_FOR_STACK_OVERFLOW,configUSE_DAEMON_TASK_STARTUP_HOOK,FootprintOK +FREERTOS.Tasks01=defaultTask,24,128,StartDefaultTask,Default,NULL,Dynamic,NULL,NULL;wolfCrypt,8,8960,wolfCryptDemo,As external,NULL,Dynamic,NULL,NULL +FREERTOS.configCHECK_FOR_STACK_OVERFLOW=2 +FREERTOS.configTOTAL_HEAP_SIZE=184320 +FREERTOS.configUSE_DAEMON_TASK_STARTUP_HOOK=1 +FREERTOS.configUSE_MALLOC_FAILED_HOOK=1 +File.Version=6 +KeepUserPlacement=false +Mcu.Family=STM32WB +Mcu.IP0=AES1 +Mcu.IP1=AES2 +Mcu.IP10=USB +Mcu.IP2=FREERTOS +Mcu.IP3=NVIC +Mcu.IP4=PKA +Mcu.IP5=RCC +Mcu.IP6=RNG +Mcu.IP7=RTC +Mcu.IP8=SYS +Mcu.IP9=USART1 +Mcu.IPNb=11 +Mcu.Name=STM32WB55RGVx +Mcu.Package=VFQFPN68 +Mcu.Pin0=PC13 +Mcu.Pin1=PC14-OSC32_IN +Mcu.Pin10=PA11 +Mcu.Pin11=PA12 +Mcu.Pin12=PA13 +Mcu.Pin13=PA14 +Mcu.Pin14=PD0 +Mcu.Pin15=PD1 +Mcu.Pin16=PB3 +Mcu.Pin17=PB5 +Mcu.Pin18=PB6 +Mcu.Pin19=PB7 +Mcu.Pin2=PC15-OSC32_OUT +Mcu.Pin20=VP_AES1_VS_AES +Mcu.Pin21=VP_AES2_VS_AES +Mcu.Pin22=VP_FREERTOS_VS_CMSIS_V2 +Mcu.Pin23=VP_PKA_VS_PKA +Mcu.Pin24=VP_RNG_VS_RNG +Mcu.Pin25=VP_RTC_VS_RTC_Activate +Mcu.Pin26=VP_SYS_VS_tim2 +Mcu.Pin27=VP_wolfSSL.wolfSSL_VS_wolfSSLJjwolfSSL_4.4.1 +Mcu.Pin3=PA2 +Mcu.Pin4=PA3 +Mcu.Pin5=PC4 +Mcu.Pin6=OSC_OUT +Mcu.Pin7=OSC_IN +Mcu.Pin8=PB0 +Mcu.Pin9=PB1 +Mcu.PinsNb=28 +Mcu.ThirdParty0=wolfSSL.wolfSSL.4.4.1 +Mcu.ThirdPartyNb=1 +Mcu.UserConstants= +Mcu.UserName=STM32WB55RGVx +MxCube.Version=5.6.1 +MxDb.Version=DB.5.0.60 +NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false +NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false +NVIC.ForceEnableDMAVector=true +NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false +NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false +NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false +NVIC.PendSV_IRQn=true\:15\:0\:false\:false\:false\:true\:false\:false +NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4 +NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:false\:false\:false\:false +NVIC.SysTick_IRQn=true\:15\:0\:false\:false\:false\:true\:false\:false +NVIC.TIM2_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:true +NVIC.TimeBase=TIM2_IRQn +NVIC.TimeBaseIP=TIM2 +NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false +OSC_IN.Locked=true +OSC_IN.Mode=HSE-External-Oscillator +OSC_IN.Signal=RCC_OSC_IN +OSC_OUT.Locked=true +OSC_OUT.Mode=HSE-External-Oscillator +OSC_OUT.Signal=RCC_OSC_OUT +PA11.Locked=true +PA11.Mode=Device +PA11.Signal=USB_DM +PA12.Locked=true +PA12.Mode=Device +PA12.Signal=USB_DP +PA13.GPIOParameters=GPIO_Label +PA13.GPIO_Label=JTMS +PA13.Locked=true +PA13.Mode=Trace_Asynchronous_SW +PA13.Signal=SYS_JTMS-SWDIO +PA14.GPIOParameters=GPIO_Label +PA14.GPIO_Label=JTCK +PA14.Locked=true +PA14.Mode=Trace_Asynchronous_SW +PA14.Signal=SYS_JTCK-SWCLK +PA2.Locked=true +PA2.Signal=LPUART1_TX +PA3.Locked=true +PA3.Signal=LPUART1_RX +PB0.GPIOParameters=GPIO_Label +PB0.GPIO_Label=LD2 [Green Led] +PB0.Locked=true +PB0.Signal=GPIO_Output +PB1.GPIOParameters=GPIO_Label +PB1.GPIO_Label=LD3 [Red Led] +PB1.Locked=true +PB1.Signal=GPIO_Output +PB3.GPIOParameters=GPIO_Label +PB3.GPIO_Label=JTDO +PB3.Locked=true +PB3.Mode=Trace_Asynchronous_SW +PB3.Signal=SYS_JTDO-SWO +PB5.GPIOParameters=GPIO_Label +PB5.GPIO_Label=LD1 [Blue Led] +PB5.Locked=true +PB5.Signal=GPIO_Output +PB6.Locked=true +PB6.Mode=Asynchronous +PB6.Signal=USART1_TX +PB7.Locked=true +PB7.Mode=Asynchronous +PB7.Signal=USART1_RX +PC13.Locked=true +PC13.Mode=SYS_WakeUp1 +PC13.Signal=SYS_WKUP2 +PC14-OSC32_IN.Locked=true +PC14-OSC32_IN.Mode=LSE-External-Oscillator +PC14-OSC32_IN.Signal=RCC_OSC32_IN +PC15-OSC32_OUT.Locked=true +PC15-OSC32_OUT.Mode=LSE-External-Oscillator +PC15-OSC32_OUT.Signal=RCC_OSC32_OUT +PC4.GPIOParameters=GPIO_Label +PC4.GPIO_Label=B1 [Push Button] +PC4.Locked=true +PC4.Signal=GPIO_Input +PCC.Ble.ConnectionInterval=1000.0 +PCC.Ble.DataLength=6 +PCC.Ble.Mode=NOT_SELECTED +PCC.Ble.PowerLevel=Min +PD0.GPIOParameters=GPIO_Label +PD0.GPIO_Label=B2 [Push Button] +PD0.Locked=true +PD0.Signal=GPIO_Input +PD1.GPIOParameters=GPIO_Label +PD1.GPIO_Label=B3 [Push Button] +PD1.Locked=true +PD1.Signal=GPIO_Input +PinOutPanel.RotationAngle=0 +ProjectManager.AskForMigrate=true +ProjectManager.BackupPrevious=false +ProjectManager.CompilerOptimize=6 +ProjectManager.ComputerToolchain=false +ProjectManager.CoupleFile=false +ProjectManager.CustomerFirmwarePackage= +ProjectManager.DefaultFWLocation=true +ProjectManager.DeletePrevious=true +ProjectManager.DeviceId=STM32WB55RGVx +ProjectManager.FirmwarePackage=STM32Cube FW_WB V1.7.0 +ProjectManager.FreePins=false +ProjectManager.HalAssertFull=false +ProjectManager.HeapSize=0x200 +ProjectManager.KeepUserCode=true +ProjectManager.LastFirmware=true +ProjectManager.LibraryCopy=1 +ProjectManager.MainLocation=Core/Src +ProjectManager.NoMain=false +ProjectManager.PreviousToolchain= +ProjectManager.ProjectBuild=false +ProjectManager.ProjectFileName=STM32WB55.ioc +ProjectManager.ProjectName=STM32WB55 +ProjectManager.StackSize=0x400 +ProjectManager.TargetToolchain=STM32CubeIDE +ProjectManager.ToolChainLocation= +ProjectManager.UnderRoot=true +ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-SystemClock_Config-RCC-false-HAL-false,3-MX_USART1_UART_Init-USART1-false-HAL-true,4-MX_USB_PCD_Init-USB-false-HAL-true,5-MX_AES1_Init-AES1-false-HAL-true,6-MX_AES2_Init-AES2-false-HAL-true,7-MX_PKA_Init-PKA-false-HAL-true,8-MX_RNG_Init-RNG-false-HAL-true,9-MX_RTC_Init-RTC-false-HAL-true +RCC.ADCFreq_Value=48000000 +RCC.AHB2CLKDivider=RCC_SYSCLK_DIV2 +RCC.AHBFreq_Value=64000000 +RCC.APB1Freq_Value=64000000 +RCC.APB1TimFreq_Value=64000000 +RCC.APB2Freq_Value=64000000 +RCC.APB2TimFreq_Value=64000000 +RCC.APB3Freq_Value=16000000 +RCC.Cortex2Freq_Value=32000000 +RCC.CortexFreq_Value=64000000 +RCC.FCLK2Freq_Value=32000000 +RCC.FCLKCortexFreq_Value=64000000 +RCC.FamilyName=M +RCC.HCLK2Freq_Value=32000000 +RCC.HCLK3Freq_Value=64000000 +RCC.HCLKFreq_Value=64000000 +RCC.HCLKRFFreq_Value=16000000 +RCC.HSE_VALUE=32000000 +RCC.HSI48_VALUE=48000000 +RCC.HSI_VALUE=16000000 +RCC.I2C1Freq_Value=64000000 +RCC.I2C3Freq_Value=64000000 +RCC.IPParameters=ADCFreq_Value,AHB2CLKDivider,AHBFreq_Value,APB1Freq_Value,APB1TimFreq_Value,APB2Freq_Value,APB2TimFreq_Value,APB3Freq_Value,Cortex2Freq_Value,CortexFreq_Value,FCLK2Freq_Value,FCLKCortexFreq_Value,FamilyName,HCLK2Freq_Value,HCLK3Freq_Value,HCLKFreq_Value,HCLKRFFreq_Value,HSE_VALUE,HSI48_VALUE,HSI_VALUE,I2C1Freq_Value,I2C3Freq_Value,LPTIM1Freq_Value,LPTIM2Freq_Value,LPUART1Freq_Value,LSCOPinFreq_Value,LSI_VALUE,MCO1PinFreq_Value,PLLN,PLLPoutputFreq_Value,PLLQoutputFreq_Value,PLLRCLKFreq_Value,PLLSAI1N,PLLSAI1PoutputFreq_Value,PLLSAI1QoutputFreq_Value,PLLSAI1RoutputFreq_Value,PWRFreq_Value,RNGFreq_Value,SAI1Freq_Value,SMPS1Freq_Value,SMPSCLockSelectionVirtual,SMPSCLockSelectionVirtualVirtual,SMPSDivider,SYSCLKFreq_VALUE,SYSCLKSource,USART1Freq_Value,USBFreq_Value,VCOInputFreq_Value,VCOOutputFreq_Value,VCOSAI1OutputFreq_Value +RCC.LPTIM1Freq_Value=64000000 +RCC.LPTIM2Freq_Value=64000000 +RCC.LPUART1Freq_Value=64000000 +RCC.LSCOPinFreq_Value=32000 +RCC.LSI_VALUE=32000 +RCC.MCO1PinFreq_Value=64000000 +RCC.PLLN=32 +RCC.PLLPoutputFreq_Value=64000000 +RCC.PLLQoutputFreq_Value=64000000 +RCC.PLLRCLKFreq_Value=64000000 +RCC.PLLSAI1N=24 +RCC.PLLSAI1PoutputFreq_Value=48000000 +RCC.PLLSAI1QoutputFreq_Value=48000000 +RCC.PLLSAI1RoutputFreq_Value=48000000 +RCC.PWRFreq_Value=64000000 +RCC.RNGFreq_Value=32000 +RCC.SAI1Freq_Value=48000000 +RCC.SMPS1Freq_Value=16000000 +RCC.SMPSCLockSelectionVirtual=RCC_SMPSCLKSOURCE_HSI +RCC.SMPSCLockSelectionVirtualVirtual=RCC_SMPSCLKSOURCE_HSI +RCC.SMPSDivider=1 +RCC.SYSCLKFreq_VALUE=64000000 +RCC.SYSCLKSource=RCC_SYSCLKSOURCE_PLLCLK +RCC.USART1Freq_Value=64000000 +RCC.USBFreq_Value=48000000 +RCC.VCOInputFreq_Value=4000000 +RCC.VCOOutputFreq_Value=128000000 +RCC.VCOSAI1OutputFreq_Value=96000000 +USART1.IPParameters=VirtualMode-Asynchronous +USART1.VirtualMode-Asynchronous=VM_ASYNC +VP_AES1_VS_AES.Mode=AES_Activate +VP_AES1_VS_AES.Signal=AES1_VS_AES +VP_AES2_VS_AES.Mode=AES_Activate +VP_AES2_VS_AES.Signal=AES2_VS_AES +VP_FREERTOS_VS_CMSIS_V2.Mode=CMSIS_V2 +VP_FREERTOS_VS_CMSIS_V2.Signal=FREERTOS_VS_CMSIS_V2 +VP_PKA_VS_PKA.Mode=PKA_Activate +VP_PKA_VS_PKA.Signal=PKA_VS_PKA +VP_RNG_VS_RNG.Mode=RNG_Activate +VP_RNG_VS_RNG.Signal=RNG_VS_RNG +VP_RTC_VS_RTC_Activate.Mode=RTC_Enabled +VP_RTC_VS_RTC_Activate.Signal=RTC_VS_RTC_Activate +VP_SYS_VS_tim2.Mode=TIM2 +VP_SYS_VS_tim2.Signal=SYS_VS_tim2 +VP_wolfSSL.wolfSSL_VS_wolfSSLJjwolfSSL_4.4.1.Mode=wolfSSLJjwolfSSL +VP_wolfSSL.wolfSSL_VS_wolfSSLJjwolfSSL_4.4.1.Signal=wolfSSL.wolfSSL_VS_wolfSSLJjwolfSSL_4.4.1 +board=P-NUCLEO-WB55-Nucleo +boardIOC=true +wolfSSL.wolfSSL.4.4.1.IPParameters=wolfSSLCcwolfSSLJjwolfSSLJjCore,wolfSSLCcwolfSSLJjwolfCryptJjCore,wolfSSLCcwolfSSLJjwolfCryptJjTest,WOLF_CONF_MATH,WOLF_CONF_RTOS +wolfSSL.wolfSSL.4.4.1.WOLF_CONF_MATH=4 +wolfSSL.wolfSSL.4.4.1.WOLF_CONF_RTOS=2 +wolfSSL.wolfSSL.4.4.1.wolfSSLCcwolfSSLJjwolfCryptJjCore=true +wolfSSL.wolfSSL.4.4.1.wolfSSLCcwolfSSLJjwolfCryptJjTest=true +wolfSSL.wolfSSL.4.4.1.wolfSSLCcwolfSSLJjwolfSSLJjCore=true +wolfSSL.wolfSSL.4.4.1.wolfSSLJjwolfSSL_Checked=true +wolfSSL.wolfSSL.4.4.1_SwParameter=wolfSSLCcwolfSSLJjwolfCryptJjCore\:true;wolfSSLCcwolfSSLJjwolfCryptJjTest\:true;wolfSSLCcwolfSSLJjwolfSSLJjCore\:true; +isbadioc=false diff --git a/IDE/STM32Cube/README.md b/IDE/STM32Cube/README.md new file mode 100644 index 000000000..b2908002e --- /dev/null +++ b/IDE/STM32Cube/README.md @@ -0,0 +1,63 @@ +# wolfSSL STM32 Example for STM32 Cube IDE + +This example includes: + +* wolfCrypt test +* wolfCrypt benchmark +* wolfSSL TLS client/server test using in-memory transfers + +These examples use the CubeMX Hal for STM32. If you'd like to use the older Standard Peripheral library undefine `WOLFSSL_STM32_CUBEMX` in `user_settings.h`. + +## Requirements + +* STM32CubeIDE: Integrated Development Environment for STM32 [https://www.st.com/en/development-tools/stm32cubeide.html](https://www.st.com/en/development-tools/stm32cubeide.html) + +## Setup + +1. Using the STM32CubeMX tool, load the `/IDE/STM32Cube/Boards/*.ioc` file for your target. +2. Adjust the HAL options based on your specific micro-controller. +3. Enable the security RNG/HASH/CRYPT if available. +4. Enable the RTC and UART if available. +5. Add wolfSSL via Additional Software and check/configure wolfSSL. +6. Generate source code. + +## Configuration + +The settings for the wolfSTM32 project are located in `/IDE/STM32Cube/wolfSSL.wolfSSL_conf.h`. The section for hardware platform may need to be adjusted depending on your processor and board: + +* To enable STM32F2 support define `WOLFSSL_STM32F2`. +* To enable STM32F4 support define `WOLFSSL_STM32F4`. +* To enable STM32F7 support define `WOLFSSL_STM32F7`. +* To enable STM32L4 support define `WOLFSSL_STM32L4`. +* To enable STM32L5 support define `WOLFSSL_STM32L5`. +* To enable STM32WB support define `WOLFSSL_STM32WB`. + +The L5 and WB55 support ECC PKA acceleration, which is enabled with `WOLFSSL_STM32_PKA`. + +To disable hardware crypto acceleration you can define: + +* `#define NO_STM32_HASH` +* `#define NO_STM32_CRYPTO` + +To enable the latest CubeMX HAL support please use: `#define STM32_HAL_V2` + +If you are using FreeRTOS make sure your `FreeRTOSConfig.h` has its `configTOTAL_HEAP_SIZE` increased. + +The TLS client/server benchmark example requires about 76 KB for allocated tasks (with stack) and peak heap. + +## Example Output + +``` +....MENU + +.t. WolfCrypt Test +.b. WolfCrypt Benchmark +.l. WolfSSL TLS Bench +.e. Show Cipher List + +Please select one of the above options: +``` + +## Support + +For questions please email [support@wolfssl.com](mailto:support@wolfssl.com) diff --git a/IDE/STM32Cube/include.am b/IDE/STM32Cube/include.am new file mode 100644 index 000000000..c9a65f052 --- /dev/null +++ b/IDE/STM32Cube/include.am @@ -0,0 +1,18 @@ +# vim:ft=automake +# included from Top Level Makefile.am +# All paths should be given relative to the root + +EXTRA_DIST+= IDE/STM32Cube/README.md +EXTRA_DIST+= IDE/STM32Cube/main.c +EXTRA_DIST+= IDE/STM32Cube/wolfssl_example.c +EXTRA_DIST+= IDE/STM32Cube/wolfSSL.wolfSSL_conf.h +EXTRA_DIST+= IDE/STM32Cube/wolfssl_example.h +EXTRA_DIST+= IDE/STM32Cube/Boards/STM32F407.ioc +EXTRA_DIST+= IDE/STM32Cube/Boards/STM32F437.ioc +EXTRA_DIST+= IDE/STM32Cube/Boards/STM32F777.ioc +EXTRA_DIST+= IDE/STM32Cube/Boards/STM32H753.ioc +EXTRA_DIST+= IDE/STM32Cube/Boards/STM32L4A6.ioc +EXTRA_DIST+= IDE/STM32Cube/Boards/STM32L475.ioc +EXTRA_DIST+= IDE/STM32Cube/Boards/STM32L552.ioc +EXTRA_DIST+= IDE/STM32Cube/Boards/STM32L562.ioc +EXTRA_DIST+= IDE/STM32Cube/Boards/STM32WB55.ioc diff --git a/IDE/STM32Cube/main.c b/IDE/STM32Cube/main.c new file mode 100644 index 000000000..6c35e8f98 --- /dev/null +++ b/IDE/STM32Cube/main.c @@ -0,0 +1,366 @@ +/* main.c + * + * Copyright (C) 2006-2020 wolfSSL Inc. + * + * This file is part of wolfSSL. + * + * wolfSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * wolfSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA + */ + +/* Example for main.c with STM32Cube/wolfssl_example.c */ + +#if 0 /* EXAMPLE main.c */ + +/* Includes ------------------------------------------------------------------*/ +#include "wolfssl_example.h" + +/* Private variables ---------------------------------------------------------*/ +CRYP_HandleTypeDef hcryp; +__ALIGN_BEGIN static const uint32_t pKeyCRYP[6] __ALIGN_END = { + 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000}; +HASH_HandleTypeDef hhash; +RNG_HandleTypeDef hrng; +RTC_HandleTypeDef hrtc; +UART_HandleTypeDef huart4; + +/* Definitions for defaultTask */ +#ifndef SINGLE_THREADED + #ifdef CMSIS_OS2_H_ + osThreadId_t defaultTaskHandle; + const osThreadAttr_t wolfCryptDemo_attributes = { + .name = "wolfCryptDemo", + .priority = (osPriority_t) osPriorityNormal, + .stack_size = WOLF_EXAMPLES_STACK + }; + #else + osThreadId defaultTaskHandle; + #endif +#endif + +/* Private function prototypes -----------------------------------------------*/ +void SystemClock_Config(void); +static void MX_GPIO_Init(void); +static void MX_CRYP_Init(void); +static void MX_HASH_Init(void); +static void MX_RNG_Init(void); +static void MX_UART4_Init(void); +static void MX_RTC_Init(void); + +/* Retargets the C library printf function to the USART. */ +#include +#ifdef __GNUC__ +int __io_putchar(int ch) +#else +int fputc(int ch, FILE *f) +#endif +{ + HAL_UART_Transmit(&huart4, (uint8_t *)&ch, 1, 0xFFFF); + + return ch; +} +#ifdef __GNUC__ +int _write(int file,char *ptr, int len) +{ + int DataIdx; + for (DataIdx= 0; DataIdx< len; DataIdx++) { + __io_putchar(*ptr++); + } + return len; +} +#endif + +int main(void) +{ + /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ + HAL_Init(); + + /* Turn off buffers, so I/O occurs immediately */ + setvbuf(stdin, NULL, _IONBF, 0); + setvbuf(stdout, NULL, _IONBF, 0); + setvbuf(stderr, NULL, _IONBF, 0); + + /* Configure the system clock */ + SystemClock_Config(); + + /* Initialize all configured peripherals */ + MX_GPIO_Init(); + MX_CRYP_Init(); + MX_HASH_Init(); + MX_RNG_Init(); + MX_UART4_Init(); + MX_RTC_Init(); + MX_SPI1_Init(); + MX_UART4_Init(); + +#ifdef SINGLE_THREADED + wolfCryptDemo(NULL); +#else + /* Init scheduler */ + osKernelInitialize(); + + /* Create the thread(s) */ + /* definition and creation of defaultTask */ + #ifdef CMSIS_OS2_H_ + defaultTaskHandle = osThreadNew(wolfCryptDemo, NULL, &wolfCryptDemo_attributes); + #else + osThreadDef(defaultTask, wolfCryptDemo, osPriorityNormal, 0, WOLF_EXAMPLES_STACK); + defaultTaskHandle = osThreadCreate(osThread(defaultTask), NULL); + #endif + + /* Start scheduler */ + osKernelStart(); + + /* We should never get here as control is now taken by the scheduler */ + + /* Infinite loop */ + while (1) {} +#endif /* SINGLE_THREADED */ +} + +/** System Clock Configuration +*/ +static void SystemClock_Config(void) +{ + RCC_OscInitTypeDef RCC_OscInitStruct = {0}; + RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; + RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0}; + + /** Configure the main internal regulator output voltage + */ + __HAL_RCC_PWR_CLK_ENABLE(); + __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1); + /** Initializes the CPU, AHB and APB busses clocks + */ + RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI|RCC_OSCILLATORTYPE_LSI; + RCC_OscInitStruct.HSIState = RCC_HSI_ON; + RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT; + RCC_OscInitStruct.LSIState = RCC_LSI_ON; + RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; + RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI; + RCC_OscInitStruct.PLL.PLLM = 8; + RCC_OscInitStruct.PLL.PLLN = 160; + RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2; + RCC_OscInitStruct.PLL.PLLQ = 7; + if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) { + Error_Handler(); + } + /** Initializes the CPU, AHB and APB busses clocks + */ + RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK|RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; + RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; + RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; + RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4; + RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2; + + if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_5) != HAL_OK) { + Error_Handler(); + } + PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_RTC; + PeriphClkInitStruct.RTCClockSelection = RCC_RTCCLKSOURCE_LSI; + if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK) { + Error_Handler(); + } +} + +/** + * @brief CRYP Initialization Function + * @param None + * @retval None + */ +static void MX_CRYP_Init(void) +{ + hcryp.Instance = CRYP; + hcryp.Init.DataType = CRYP_DATATYPE_32B; + hcryp.Init.pKey = (uint32_t *)pKeyCRYP; + hcryp.Init.Algorithm = CRYP_TDES_ECB; + hcryp.Init.DataWidthUnit = CRYP_DATAWIDTHUNIT_WORD; + if (HAL_CRYP_Init(&hcryp) != HAL_OK) { + Error_Handler(); + } +} + +/** + * @brief HASH Initialization Function + * @param None + * @retval None + */ +static void MX_HASH_Init(void) +{ + hhash.Init.DataType = HASH_DATATYPE_32B; + if (HAL_HASH_Init(&hhash) != HAL_OK) { + Error_Handler(); + } +} + +/** + * @brief RNG Initialization Function + * @param None + * @retval None + */ +static void MX_RNG_Init(void) +{ + hrng.Instance = RNG; + if (HAL_RNG_Init(&hrng) != HAL_OK) { + Error_Handler(); + } +} + +/** + * @brief RTC Initialization Function + * @param None + * @retval None + */ +static void MX_RTC_Init(void) +{ + RTC_TimeTypeDef sTime = {0}; + RTC_DateTypeDef sDate = {0}; + + /* Initialize RTC Only */ + hrtc.Instance = RTC; + hrtc.Init.HourFormat = RTC_HOURFORMAT_24; + hrtc.Init.AsynchPrediv = 127; + hrtc.Init.SynchPrediv = 255; + hrtc.Init.OutPut = RTC_OUTPUT_DISABLE; + hrtc.Init.OutPutPolarity = RTC_OUTPUT_POLARITY_HIGH; + hrtc.Init.OutPutType = RTC_OUTPUT_TYPE_OPENDRAIN; + if (HAL_RTC_Init(&hrtc) != HAL_OK) { + Error_Handler(); + } + /* Initialize RTC and set the Time and Date */ + sTime.Hours = 0x0; + sTime.Minutes = 0x0; + sTime.Seconds = 0x0; + sTime.DayLightSaving = RTC_DAYLIGHTSAVING_NONE; + sTime.StoreOperation = RTC_STOREOPERATION_RESET; + if (HAL_RTC_SetTime(&hrtc, &sTime, RTC_FORMAT_BCD) != HAL_OK) { + Error_Handler(); + } + sDate.WeekDay = RTC_WEEKDAY_MONDAY; + sDate.Month = RTC_MONTH_JANUARY; + sDate.Date = 0x1; + sDate.Year = 0x0; + + if (HAL_RTC_SetDate(&hrtc, &sDate, RTC_FORMAT_BCD) != HAL_OK) { + Error_Handler(); + } +} + +/** + * @brief UART4 Initialization Function + * @param None + * @retval None + */ +static void MX_UART4_Init(void) +{ + huart4.Instance = UART4; + huart4.Init.BaudRate = 115200; + huart4.Init.WordLength = UART_WORDLENGTH_8B; + huart4.Init.StopBits = UART_STOPBITS_1; + huart4.Init.Parity = UART_PARITY_NONE; + huart4.Init.Mode = UART_MODE_TX_RX; + huart4.Init.HwFlowCtl = UART_HWCONTROL_NONE; + huart4.Init.OverSampling = UART_OVERSAMPLING_16; + if (HAL_UART_Init(&huart4) != HAL_OK) { + Error_Handler(); + } +} + +/** + * @brief GPIO Initialization Function + * @param None + * @retval None + */ +static void MX_GPIO_Init(void) +{ + /* GPIO Ports Clock Enable */ + __HAL_RCC_GPIOC_CLK_ENABLE(); +} + + /** + * @brief Period elapsed callback in non blocking mode + * @note This function is called when TIM1 interrupt took place, inside + * HAL_TIM_IRQHandler(). It makes a direct call to HAL_IncTick() to increment + * a global variable "uwTick" used as application time base. + * @param htim : TIM handle + * @retval None + */ +void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) +{ + if (htim->Instance == TIM1) { + HAL_IncTick(); + } +} + +/** + * @brief This function is executed in case of error occurrence. + * @retval None + */ +void Error_Handler(void) +{ + /* User can add his own implementation to report the HAL error return state */ + while(1) + { + } +} + +#ifdef USE_FULL_ASSERT +/** + * @brief Reports the name of the source file and the source line number + * where the assert_param error has occurred. + * @param file: pointer to the source file name + * @param line: assert_param error line source number + * @retval None + */ +void assert_failed(uint8_t *file, uint32_t line) +{ + /* User can add his own implementation to report the file name and line number, + tex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */ +} +#endif /* USE_FULL_ASSERT */ + + +#if 0 +/* Working _sbrk example for .ld based libC malloc/free */ +/* Replace this with one in Core/Src/sysmem.c */ +/* Symbols defined in the linker script */ +extern uint8_t _end; +extern uint8_t _estack; +extern uint32_t _Min_Stack_Size; +void* _sbrk(ptrdiff_t incr) +{ + static uint8_t* __sbrk_heap_end = NULL; + const uint32_t stack_limit = (uint32_t)&_estack - (uint32_t)&_Min_Stack_Size; + const uint8_t* max_heap = (uint8_t *)stack_limit; + uint8_t* prev_heap_end; + + /* Initialize heap end at first call */ + if (__sbrk_heap_end == NULL) { + __sbrk_heap_end = &_end; + } + + /* Protect heap from growing into the reserved MSP stack */ + if (__sbrk_heap_end + incr > max_heap) { + errno = ENOMEM; + return (void *)-1; + } + + prev_heap_end = __sbrk_heap_end; + __sbrk_heap_end += incr; + + return (void*)prev_heap_end; +} +#endif + +#endif /* EXAMPLE main.c */ diff --git a/IDE/STM32Cube/wolfSSL.wolfSSL_conf.h b/IDE/STM32Cube/wolfSSL.wolfSSL_conf.h new file mode 100644 index 000000000..063db0b5d --- /dev/null +++ b/IDE/STM32Cube/wolfSSL.wolfSSL_conf.h @@ -0,0 +1,543 @@ +/* wolfSSL.wolfSSL_conf.h + * + * Copyright (C) 2006-2020 wolfSSL Inc. + * + * This file is part of wolfSSL. + * + * wolfSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * wolfSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA + */ + +/* STM32 Cube Configuration File + * Included automatically when USE_HAL_DRIVER is defined + * (and not WOLFSSL_USER_SETTINGS or HAVE_CONF_H). + */ + +#ifndef __WOLFSSL_WOLFSSL_CONF_H__ +#define __WOLFSSL_WOLFSSL_CONF_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +/*---------- Debug Support -----------*/ +#define WOLF_CONF_DEBUG 0 + +/*---------- wolfCrypt Only -----------*/ +#define WOLF_CONF_WOLFCRYPT_ONLY 0 + +/*---------- TLS v1.3 -----------*/ +#define WOLF_CONF_TLS13 1 + +/*---------- TLS v1.2 -----------*/ +#define WOLF_CONF_TLS12 1 + +/*---------- DTLS Support -----------*/ +#define WOLF_CONF_DTLS 0 + +/*---------- Math Configuration -----------*/ +#define WOLF_CONF_MATH 4 + +/*---------- RTOS -----------*/ +#define WOLF_CONF_RTOS 2 + +/*---------- RSA Support -----------*/ +#define WOLF_CONF_RSA 1 + +/*---------- ECC Support -----------*/ +#define WOLF_CONF_ECC 1 + +/*---------- DH (Diffie–Hellman) Support -----------*/ +#define WOLF_CONF_DH 1 + +/*---------- AES GCM Support -----------*/ +#define WOLF_CONF_AESGCM 1 + +/*---------- AES CBC Support -----------*/ +#define WOLF_CONF_AESCBC 0 + +/*---------- ChaCha20 / Poly1305 Support -----------*/ +#define WOLF_CONF_CHAPOLY 1 + +/*---------- Ed25519 / Curve25519 Support -----------*/ +#define WOLF_CONF_EDCURVE25519 0 + +/*---------- MD5 Support -----------*/ +#define WOLF_CONF_MD5 0 + +/*---------- SHA1 Support -----------*/ +#define WOLF_CONF_SHA1 0 + +/*---------- SHA2-224 Support -----------*/ +#define WOLF_CONF_SHA2_224 0 + +/*---------- SHA2-256 Support -----------*/ +#define WOLF_CONF_SHA2_256 1 + +/*---------- SHA2-384 Support -----------*/ +#define WOLF_CONF_SHA2_384 0 + +/*---------- SHA2-512 Support -----------*/ +#define WOLF_CONF_SHA2_512 0 + +/*---------- SHA3 Support -----------*/ +#define WOLF_CONF_SHA3 0 + +/*---------- Pre-Shared-Key Support -----------*/ +#define WOLF_CONF_PSK 0 + +/*---------- Pwd Based Key Derivation Support -----------*/ +#define WOLF_CONF_PWDBASED 0 + +/*---------- Keep Peer Cert Support -----------*/ +#define WOLF_CONF_KEEP_PEER_CERT 0 + +/*---------- Base64 Encode Support -----------*/ +#define WOLF_CONF_BASE64_ENCODE 0 + +/*---------- OpenSSL Extra Support -----------*/ +#define WOLF_CONF_OPENSSL_EXTRA 0 + +/*---------- wolfCrypt test/benchmark -----------*/ +#define WOLF_CONF_TEST 1 + + +/* ------------------------------------------------------------------------- */ +/* Hardware platform */ +/* ------------------------------------------------------------------------- */ +#define NO_STM32_HASH +#define NO_STM32_CRYPTO + +#if defined(STM32WB55xx) + #define WOLFSSL_STM32WB + #define WOLFSSL_STM32_PKA + #undef NO_STM32_CRYPTO + #define HAL_CONSOLE_UART huart1 +#elif defined(STM32F407xx) + #define WOLFSSL_STM32F4 + #define HAL_CONSOLE_UART huart2 +#elif defined(STM32F437xx) + #define WOLFSSL_STM32F4 + #undef NO_STM32_HASH + #undef NO_STM32_CRYPTO + #define STM32_HAL_V2 + #define HAL_CONSOLE_UART huart4 +#elif defined(STM32F777xx) + #define WOLFSSL_STM32F7 + #undef NO_STM32_HASH + #undef NO_STM32_CRYPTO + #define STM32_HAL_V2 + #define HAL_CONSOLE_UART huart2 +#elif defined(STM32H753xx) + #define WOLFSSL_STM32H7 + #undef NO_STM32_HASH + #undef NO_STM32_CRYPTO + #define HAL_CONSOLE_UART huart3 +#elif defined(STM32L4A6xx) + #define WOLFSSL_STM32L4 + #undef NO_STM32_HASH + #undef NO_STM32_CRYPTO + #define HAL_CONSOLE_UART hlpuart1 +#elif defined(STM32L475xx) + #define WOLFSSL_STM32L4 + #define HAL_CONSOLE_UART huart1 +#elif defined(STM32L562xx) + #define WOLFSSL_STM32L5 + #define WOLFSSL_STM32_PKA + #define HAL_CONSOLE_UART huart1 +#elif defined(STM32L552xx) + #define WOLFSSL_STM32L5 + #undef NO_STM32_HASH + #define HAL_CONSOLE_UART hlpuart1 +#else + #warning Please define a hardware platform! + #define WOLFSSL_STM32F4 /* default */ + #define HAL_CONSOLE_UART huart4 +#endif + +/* ------------------------------------------------------------------------- */ +/* Platform */ +/* ------------------------------------------------------------------------- */ +#define SIZEOF_LONG_LONG 8 +#define WOLFSSL_GENERAL_ALIGNMENT 4 +#define WOLFSSL_STM32_CUBEMX +#define WOLFSSL_SMALL_STACK +#define WOLFSSL_USER_IO +#define WOLFSSL_NO_SOCK +#define WOLFSSL_IGNORE_FILE_WARN + +/* ------------------------------------------------------------------------- */ +/* Operating System */ +/* ------------------------------------------------------------------------- */ +#if defined(WOLF_CONF_RTOS) && WOLF_CONF_RTOS == 2 + #define FREERTOS +#else + #define SINGLE_THREADED +#endif + +/* ------------------------------------------------------------------------- */ +/* Math Configuration */ +/* ------------------------------------------------------------------------- */ +/* 1=Fast, 2=Normal, 3=SP C, 4=SP Cortex-M */ +#if defined(WOLF_CONF_MATH) && WOLF_CONF_MATH != 2 + /* fast (stack) math */ + #define USE_FAST_MATH + #define TFM_TIMING_RESISTANT + + /* Optimizations (TFM_ARM, TFM_ASM or none) */ + //#define TFM_NO_ASM + //#define TFM_ASM +#endif +#if defined(WOLF_CONF_MATH) && (WOLF_CONF_MATH == 3 || WOLF_CONF_MATH == 4) + /* single precision only */ + #define WOLFSSL_SP + #define WOLFSSL_SP_SMALL /* use smaller version of code */ + #define WOLFSSL_HAVE_SP_RSA + #define WOLFSSL_HAVE_SP_DH + #define WOLFSSL_HAVE_SP_ECC + #define WOLFSSL_SP_MATH + #define SP_WORD_SIZE 32 + + //#define WOLFSSL_SP_NO_MALLOC + //#define WOLFSSL_SP_CACHE_RESISTANT + + /* single precision Cortex-M only */ + #if WOLF_CONF_MATH == 4 + #define WOLFSSL_SP_ASM /* required if using the ASM versions */ + #define WOLFSSL_SP_ARM_CORTEX_M_ASM + #endif +#endif + +/* ------------------------------------------------------------------------- */ +/* Enable Features */ +/* ------------------------------------------------------------------------- */ +/* Required for TLS */ +#define HAVE_TLS_EXTENSIONS +#define HAVE_SUPPORTED_CURVES +#define HAVE_ENCRYPT_THEN_MAC +#define HAVE_EXTENDED_MASTER + +#if defined(WOLF_CONF_TLS13) && WOLF_CONF_TLS13 == 1 + #define WOLFSSL_TLS13 + #define HAVE_HKDF +#endif +#if defined(WOLF_CONF_DTLS) && WOLF_CONF_DTLS == 1 + #define WOLFSSL_DTLS +#endif +#if defined(WOLF_CONF_PSK) && WOLF_CONF_PSK == 0 + #define NO_PSK +#endif +#if defined(WOLF_CONF_PWDBASED) && WOLF_CONF_PWDBASED == 0 + #define NO_PWDBASED +#endif +#if defined(WOLF_CONF_KEEPPEERCERT) && WOLF_CONF_KEEPPEERCERT == 1 + #define KEEP_PEER_CERT +#endif +#if defined(WOLF_CONF_BASE64_ENCODE) && WOLF_CONF_BASE64_ENCODE == 1 + #define WOLFSSL_BASE64_ENCODE +#endif +#if defined(WOLF_CONF_OPENSSL_EXTRA) && WOLF_CONF_OPENSSL_EXTRA == 1 + #define OPENSSL_EXTRA +#endif + +/* TLS Session Cache */ +#if 0 + #define SMALL_SESSION_CACHE +#else + #define NO_SESSION_CACHE +#endif + +/* ------------------------------------------------------------------------- */ +/* Crypto */ +/* ------------------------------------------------------------------------- */ +/* RSA */ +#undef NO_RSA +#if defined(WOLF_CONF_RSA) && WOLF_CONF_RSA == 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 + + /* Enables blinding mode, to prevent timing attacks */ + #undef WC_RSA_BLINDING + #define WC_RSA_BLINDING + + /* RSA PSS Support (required for TLS v1.3) */ + #ifdef WOLFSSL_TLS13 + #define WC_RSA_PSS + #endif +#else + #define NO_RSA +#endif + +/* ECC */ +#undef HAVE_ECC +#if defined(WOLF_CONF_ECC) && WOLF_CONF_ECC == 1 + #define HAVE_ECC + + /* Manually define enabled 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 */ + #define ECC_TIMING_RESISTANT + + /* Compressed ECC key support */ + //#define HAVE_COMP_KEY + + #ifdef USE_FAST_MATH + #ifdef NO_RSA + /* Custom fastmath size if not using RSA */ + /* MAX = ROUND32(ECC BITS 256) + SIZE_OF_MP_DIGIT(32) */ + #define FP_MAX_BITS (256 + 32) + #else + #define ALT_ECC_SIZE + #endif + + /* Enable TFM optimizations for ECC */ + //#define TFM_ECC192 + //#define TFM_ECC224 + #define TFM_ECC256 + //#define TFM_ECC384 + //#define TFM_ECC521 + #endif +#endif + +/* DH */ +#undef NO_DH +#if defined(WOLF_CONF_DH) && WOLF_CONF_DH == 1 + #define HAVE_DH /* freeRTOS settings.h requires this */ + #define HAVE_FFDHE_2048 + #define HAVE_DH_DEFAULT_PARAMS +#else + #define NO_DH +#endif + +/* AES */ +#if defined(WOLF_CONF_AESGCM) && WOLF_CONF_AESGCM == 1 + #define HAVE_AESGCM + /* GCM Method: GCM_SMALL, GCM_WORD32 or GCM_TABLE */ + /* GCM_TABLE is about 4K larger and 3x faster */ + #define GCM_SMALL + #define HAVE_AES_DECRYPT +#endif + +#if defined(WOLF_CONF_AESCBC) && WOLF_CONF_AESCBC == 1 + #define HAVE_AES_CBC + #define HAVE_AES_DECRYPT +#endif + +/* Other possible AES modes */ +//#define WOLFSSL_AES_COUNTER +//#define HAVE_AESCCM +//#define WOLFSSL_AES_XTS +//#define WOLFSSL_AES_DIRECT +//#define HAVE_AES_ECB + +/* ChaCha20 / Poly1305 */ +#undef HAVE_CHACHA +#undef HAVE_POLY1305 +#if defined(WOLF_CONF_CHAPOLY) && WOLF_CONF_CHAPOLY == 1 + #define HAVE_CHACHA + #define HAVE_POLY1305 + + /* Needed for Poly1305 */ + #undef HAVE_ONE_TIME_AUTH + #define HAVE_ONE_TIME_AUTH +#endif + +/* Ed25519 / Curve25519 */ +#undef HAVE_CURVE25519 +#undef HAVE_ED25519 +#if defined(WOLF_CONF_EDCURVE25519) && WOLF_CONF_EDCURVE25519 == 1 + #define HAVE_CURVE25519 + #define HAVE_ED25519 + + /* Optionally use small math (less flash usage, but much slower) */ + #define CURVED25519_SMALL +#endif + +/* ------------------------------------------------------------------------- */ +/* Hashing */ +/* ------------------------------------------------------------------------- */ +/* Sha1 */ +#undef NO_SHA +#if defined(WOLF_CONF_SHA1) && WOLF_CONF_SHA1 == 1 + /* 1k smaller, but 25% slower */ + //#define USE_SLOW_SHA +#else + #define NO_SHA +#endif + +/* Sha2-256 */ +#undef NO_SHA256 +#if defined(WOLF_CONF_SHA2_256) && WOLF_CONF_SHA2_256 == 1 + /* not unrolled - ~2k smaller and ~25% slower */ + //#define USE_SLOW_SHA256 + + //#define WOLFSSL_SHAKE256 + + /* Sha2-224 */ + #if defined(WOLF_CONF_SHA2_224) && WOLF_CONF_SHA2_224 == 1 + #define WOLFSSL_SHA224 + #endif +#else + #define NO_SHA256 +#endif + +/* Sha2-512 */ +#undef WOLFSSL_SHA512 +#if defined(WOLF_CONF_SHA2_512) && WOLF_CONF_SHA2_512 == 1 + /* over twice as small, but 50% slower */ + //#define USE_SLOW_SHA512 + + #define WOLFSSL_SHA512 + #define HAVE_SHA512 /* freeRTOS settings.h requires this */ +#endif + +/* Sha2-384 */ +#undef WOLFSSL_SHA384 +#if defined(WOLF_CONF_SHA2_384) && WOLF_CONF_SHA2_384 == 1 + #define WOLFSSL_SHA384 +#endif + +/* Sha3 */ +#undef WOLFSSL_SHA3 +#if defined(WOLF_CONF_SHA3) && WOLF_CONF_SHA3 == 1 + #define WOLFSSL_SHA3 +#endif + +/* MD5 */ +#if defined(WOLF_CONF_MD5) && WOLF_CONF_MD5 == 1 + /* enabled */ +#else + #define NO_MD5 +#endif + +/* ------------------------------------------------------------------------- */ +/* Benchmark / Test */ +/* ------------------------------------------------------------------------- */ +/* Use reduced benchmark / test sizes */ +#define BENCH_EMBEDDED +#define USE_CERT_BUFFERS_2048 +#define USE_CERT_BUFFERS_256 + +/* ------------------------------------------------------------------------- */ +/* Debugging */ +/* ------------------------------------------------------------------------- */ +#if defined(WOLF_CONF_DEBUG) && WOLF_CONF_DEBUG == 1 + #define DEBUG_WOLFSSL + + /* Use this to measure / print heap usage */ + #if 0 + #define USE_WOLFSSL_MEMORY + #define WOLFSSL_TRACK_MEMORY + #define WOLFSSL_DEBUG_MEMORY + #define WOLFSSL_DEBUG_MEMORY_PRINT + #endif +#else + //#define NO_WOLFSSL_MEMORY + //#define NO_ERROR_STRINGS +#endif + +/* ------------------------------------------------------------------------- */ +/* Port */ +/* ------------------------------------------------------------------------- */ + +/* Override Current Time */ +/* Allows custom "custom_time()" function to be used for benchmark */ +#define WOLFSSL_USER_CURRTIME + +/* ------------------------------------------------------------------------- */ +/* RNG */ +/* ------------------------------------------------------------------------- */ +#define NO_OLD_RNGNAME /* conflicts with STM RNG macro */ +#define HAVE_HASHDRBG + +/* ------------------------------------------------------------------------- */ +/* Disable Features */ +/* ------------------------------------------------------------------------- */ +#if defined(WOLF_CONF_TLS12) && WOLF_CONF_TLS12 == 0 + #define WOLFSSL_NO_TLS12 +#endif +#if defined(WOLF_CONF_WOLFCRYPT_ONLY) && WOLF_CONF_WOLFCRYPT_ONLY == 1 + #define WOLFCRYPT_ONLY +#endif +//#define NO_WOLFSSL_SERVER +//#define NO_WOLFSSL_CLIENT + +#if defined(WOLF_CONF_TEST) && WOLF_CONF_TEST == 0 + #define NO_CRYPT_TEST + #define NO_CRYPT_BENCHMARK +#endif + +#define NO_FILESYSTEM +#define NO_WRITEV +#define NO_MAIN_DRIVER +#define NO_DEV_RANDOM +#define NO_OLD_TLS +#define WOLFSSL_NO_CLIENT_AUTH /* disable client auth for Ed25519/Ed448 */ + +#define NO_DSA +#define NO_RC4 +#define NO_HC128 +#define NO_RABBIT +#define NO_MD4 +#define NO_DES3 + +/* In-lining of misc.c functions */ +/* If defined, must include wolfcrypt/src/misc.c in build */ +/* Slower, but about 1k smaller */ +//#define NO_INLINE + +/* Base16 / Base64 encoding */ +//#define NO_CODING + +/* bypass certificate date checking, due to lack of properly configured RTC source */ +#ifndef HAL_RTC_MODULE_ENABLED + #define NO_ASN_TIME +#endif + + +#ifdef __cplusplus +} +#endif + +#endif /*__WOLFSSL_WOLFSSL_CONF_H__ */ diff --git a/IDE/OPENSTM32/Src/wolfssl_example.c b/IDE/STM32Cube/wolfssl_example.c similarity index 85% rename from IDE/OPENSTM32/Src/wolfssl_example.c rename to IDE/STM32Cube/wolfssl_example.c index 72380803f..eead6fa24 100644 --- a/IDE/OPENSTM32/Src/wolfssl_example.c +++ b/IDE/STM32Cube/wolfssl_example.c @@ -30,12 +30,17 @@ #include /* WC_MAX_DIGEST_SIZE */ -#define WOLFSSL_DEBUG_MEMORY -#ifdef WOLFSSL_DEBUG_MEMORY -/* for memory debugging */ -#include +#ifndef SINGLE_THREADED + #include + + #ifdef WOLFSSL_DEBUG_MEMORY + /* for memory debugging */ + #include + #endif #endif +#include +#include /***************************************************************************** * Configuration @@ -47,9 +52,18 @@ #define BENCH_RUNTIME_SEC 20 #define BENCH_SHOW_PEER_INFO 1 #define TEST_PACKET_SIZE (2 * 1024) /* TLS packet size */ +#ifdef BENCH_EMBEDDED +#define TEST_MAX_SIZE (4 * 1024) +#else #define TEST_MAX_SIZE (32 * 1024) /* Total bytes to benchmark */ +#endif /* Must be large enough to handle max packet size - TLS header MAX_MSG_EXTRA + MAX DIGEST */ #define MEM_BUFFER_SZ (TEST_PACKET_SIZE + 38 + WC_MAX_DIGEST_SIZE) +/* make sure memory buffer size is large enough */ +#if MEM_BUFFER_SZ < 2048 + #undef MEM_BUFFER_SZ + #define MEM_BUFFER_SZ 2048 +#endif #define SHOW_VERBOSE 0 /* Default output is tab delimited format */ #ifndef WOLFSSL_CIPHER_LIST_MAX_SIZE #define WOLFSSL_CIPHER_LIST_MAX_SIZE 2048 @@ -58,15 +72,41 @@ /* define this to test only a specific cipher suite(s) (colon separated) */ #define TEST_CIPHER_SUITE "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256" #endif - +#if 0 + /* use non-blocking mode for read/write IO */ + #define BENCH_USE_NONBLOCK +#endif /***************************************************************************** * Private types/enumerations/variables ****************************************************************************/ +#ifdef WOLFSSL_STATIC_MEMORY + #if 1 /* on-chip RAM */ + #define RAM_STATIC + #else /* external RAM */ + /* requires .ld to be updated with ".extram" section */ + #define RAM_STATIC __attribute__ ((section (".extram"))) + #endif + #define WOLF_GEN_MEM (20*1024) + #define WOLF_TLS_GEN_MEM (90*1024) + #define WOLF_TLS_IO_POOL_MEM (35*1024) + + RAM_STATIC static byte gWolfMem[WOLF_GEN_MEM]; + RAM_STATIC static byte gWolfCTXCli[WOLF_TLS_GEN_MEM]; + RAM_STATIC static byte gWolfIOCli[WOLF_TLS_IO_POOL_MEM]; + RAM_STATIC static byte gWolfCTXSrv[WOLF_TLS_GEN_MEM]; + RAM_STATIC static byte gWolfIOSrv[WOLF_TLS_IO_POOL_MEM]; + + WOLFSSL_HEAP_HINT* HEAP_HINT = NULL; +#endif /* WOLFSSL_STATIC_MEMORY */ + + /* UART definitions */ -extern UART_HandleTypeDef huart4; -extern SPI_HandleTypeDef hspi1; +#ifndef HAL_CONSOLE_UART +#define HAL_CONSOLE_UART huart4 +#endif +extern UART_HandleTypeDef HAL_CONSOLE_UART; /***************************************************************************** * Public types/enumerations/variables @@ -77,16 +117,20 @@ typedef struct func_args { int return_code; } func_args; -const char menu1[] = "\r\n" - "\tt. WolfCrypt Test\r\n" - "\tb. WolfCrypt Benchmark\r\n" - "\tl. WolfSSL TLS Bench\r\n" - "\te. Show Cipher List\r\n"; +const char menu1[] = "\n" + "\tt. WolfCrypt Test\n" + "\tb. WolfCrypt Benchmark\n" + "\tl. WolfSSL TLS Bench\n" + "\te. Show Cipher List\n"; + +static void PrintMemStats(void); +double current_time(void); -static const char* kShutdown = "shutdown"; #if (!defined(NO_WOLFSSL_CLIENT) || !defined(NO_WOLFSSL_SERVER)) && \ - !defined(WOLFCRYPT_ONLY) + !defined(WOLFCRYPT_ONLY) && !defined(SINGLE_THREADED) + +static const char* kShutdown = "shutdown"; static const char* kTestStr = "Biodiesel cupidatat marfa, cliche aute put a bird on it incididunt elit\n" @@ -220,10 +264,14 @@ typedef struct { typedef struct { int ret; - osThreadDef_t threadDef; osThreadId threadId; +#ifdef CMSIS_OS2_H_ + osSemaphoreId_t mutex; +#else + osThreadDef_t threadDef; osSemaphoreDef_t mutexDef; osSemaphoreId mutex; +#endif byte shutdown:1; byte done:1; @@ -257,30 +305,14 @@ typedef struct { } info_t; -extern RTC_HandleTypeDef hrtc; -double current_time(void) -{ - RTC_TimeTypeDef time; - RTC_DateTypeDef date; - uint32_t subsec; - - /* must get time and date here due to STM32 HW bug */ - HAL_RTC_GetTime(&hrtc, &time, FORMAT_BIN); - HAL_RTC_GetDate(&hrtc, &date, FORMAT_BIN); - subsec = (255 - time.SubSeconds) * 1000 / 255; - - (void) date; - - /* return seconds.milliseconds */ - return ((double) time.Hours * 24) + ((double) time.Minutes * 60) - + (double) time.Seconds + ((double) subsec / 1000); -} +/***************************************************************************** + * Private functions + ****************************************************************************/ static double gettime_secs(int reset) { return current_time(); } - static void PrintTlsStats(stats_t* wcStat, const char* desc, const char* cipher, int verbose) { const char* formatStr; @@ -313,30 +345,6 @@ static void PrintTlsStats(stats_t* wcStat, const char* desc, const char* cipher, wcStat->connTime * 1000 / wcStat->connCount); } -static void ShowCiphers(void) -{ - int ret; - char* ciphers = (char*)XMALLOC(WOLFSSL_CIPHER_LIST_MAX_SIZE, NULL, - DYNAMIC_TYPE_TMP_BUFFER); - if (ciphers) { - ret = wolfSSL_get_ciphers(ciphers, WOLFSSL_CIPHER_LIST_MAX_SIZE); - if (ret == WOLFSSL_SUCCESS) - printf("%s\n", ciphers); - XFREE(ciphers, NULL, DYNAMIC_TYPE_TMP_BUFFER); - } -} - - -static void PrintMemStats(void) -{ -#ifdef WOLFSSL_DEBUG_MEMORY - printf("\nHeap MinEver %d, Free %d, Stack %lu\n", - xPortGetMinimumEverFreeHeapSize(), - xPortGetFreeHeapSize(), - uxTaskGetStackHighWaterMark(NULL)); -#endif -} - #if defined(KEEP_PEER_CERT) || defined(KEEP_OUR_CERT) static const char* client_showx509_msg[] = { @@ -481,7 +489,11 @@ static void ShowPeer(WOLFSSL* ssl) /* server send callback */ static int ServerMemSend(info_t* info, char* buf, int sz) { +#ifdef CMSIS_OS2_H_ + osSemaphoreAcquire(info->client.mutex, osWaitForever); +#else osSemaphoreWait(info->client.mutex, osWaitForever); +#endif #ifndef BENCH_USE_NONBLOCK /* check for overflow */ @@ -499,7 +511,11 @@ static int ServerMemSend(info_t* info, char* buf, int sz) info->to_client.write_idx += sz; info->to_client.write_bytes += sz; +#ifdef CMSIS_OS2_H_ + osThreadFlagsSet(info->client.threadId, 1); +#else osSignalSet(info->client.threadId, 1); +#endif osSemaphoreRelease(info->client.mutex); #ifdef BENCH_USE_NONBLOCK @@ -512,14 +528,23 @@ static int ServerMemSend(info_t* info, char* buf, int sz) /* server recv callback */ static int ServerMemRecv(info_t* info, char* buf, int sz) { +#ifdef CMSIS_OS2_H_ + osSemaphoreAcquire(info->server.mutex, osWaitForever); +#else osSemaphoreWait(info->server.mutex, osWaitForever); +#endif #ifndef BENCH_USE_NONBLOCK while (info->to_server.write_idx - info->to_server.read_idx < sz && !info->client.done) { osSemaphoreRelease(info->server.mutex); +#ifdef CMSIS_OS2_H_ + osThreadFlagsWait(1, osFlagsWaitAny, osWaitForever); + osSemaphoreAcquire(info->server.mutex, osWaitForever); +#else osSignalWait(1, osWaitForever); osSemaphoreWait(info->server.mutex, osWaitForever); +#endif } #else if (info->to_server.write_idx - info->to_server.read_idx < sz) @@ -548,7 +573,11 @@ static int ServerMemRecv(info_t* info, char* buf, int sz) /* client send callback */ static int ClientMemSend(info_t* info, char* buf, int sz) { +#ifdef CMSIS_OS2_H_ + osSemaphoreAcquire(info->server.mutex, osWaitForever); +#else osSemaphoreWait(info->server.mutex, osWaitForever); +#endif #ifndef BENCH_USE_NONBLOCK /* check for overflow */ @@ -567,7 +596,11 @@ static int ClientMemSend(info_t* info, char* buf, int sz) info->to_server.write_idx += sz; info->to_server.write_bytes += sz; +#ifdef CMSIS_OS2_H_ + osThreadFlagsSet(info->server.threadId, 1); +#else osSignalSet(info->server.threadId, 1); +#endif osSemaphoreRelease(info->server.mutex); #ifdef BENCH_USE_NONBLOCK @@ -580,14 +613,23 @@ static int ClientMemSend(info_t* info, char* buf, int sz) /* client recv callback */ static int ClientMemRecv(info_t* info, char* buf, int sz) { +#ifdef CMSIS_OS2_H_ + osSemaphoreAcquire(info->client.mutex, osWaitForever); +#else osSemaphoreWait(info->client.mutex, osWaitForever); +#endif #ifndef BENCH_USE_NONBLOCK while (info->to_client.write_idx - info->to_client.read_idx < sz && !info->server.done) { osSemaphoreRelease(info->client.mutex); +#ifdef CMSIS_OS2_H_ + osThreadFlagsWait(1, osFlagsWaitAny, osWaitForever); + osSemaphoreAcquire(info->client.mutex, osWaitForever); +#else osSignalWait(1, osWaitForever); osSemaphoreWait(info->client.mutex, osWaitForever); +#endif } #else if (info->to_client.write_idx - info->to_client.read_idx < sz) @@ -645,7 +687,7 @@ static int bench_tls_client(info_t* info) { byte *writeBuf = NULL, *readBuf = NULL; double start, total = 0; - int ret, readBufSz; + int ret = 0, readBufSz; WOLFSSL_CTX* cli_ctx = NULL; WOLFSSL* cli_ssl = NULL; int haveShownPeerInfo = 0; @@ -656,21 +698,43 @@ static int bench_tls_client(info_t* info) /* set up client */ #ifdef WOLFSSL_TLS13 - if (tls13) + if (tls13) { + #ifdef WOLFSSL_STATIC_MEMORY + ret = wolfSSL_CTX_load_static_memory(&cli_ctx, wolfTLSv1_3_client_method_ex, + gWolfCTXCli, sizeof(gWolfCTXCli), WOLFMEM_GENERAL , 10); + #else cli_ctx = wolfSSL_CTX_new(wolfTLSv1_3_client_method()); + #endif + } #endif - if (!tls13) + if (!tls13) { #if !defined(WOLFSSL_TLS13) + #ifdef WOLFSSL_STATIC_MEMORY + ret = wolfSSL_CTX_load_static_memory(&cli_ctx, wolfSSLv23_client_method_ex, + gWolfCTXCli, sizeof(gWolfCTXCli), WOLFMEM_GENERAL , 10); + #else cli_ctx = wolfSSL_CTX_new(wolfSSLv23_client_method()); + #endif #elif !defined(WOLFSSL_NO_TLS12) + #ifdef WOLFSSL_STATIC_MEMORY + ret = wolfSSL_CTX_load_static_memory(&cli_ctx, wolfTLSv1_2_client_method_ex, + gWolfCTXCli, sizeof(gWolfCTXCli), WOLFMEM_GENERAL , 10); + #else cli_ctx = wolfSSL_CTX_new(wolfTLSv1_2_client_method()); + #endif #endif + } - if (cli_ctx == NULL) { - printf("error creating ctx\n"); + if (cli_ctx == NULL || ret != 0) { + printf("error creating ctx: ret %d\n", ret); ret = MEMORY_E; goto exit; } +#ifdef WOLFSSL_STATIC_MEMORY + ret = wolfSSL_CTX_load_static_memory(&cli_ctx, 0, gWolfIOCli, sizeof(gWolfIOCli), + WOLFMEM_IO_POOL, 10 ); +#endif + #ifndef NO_CERTS #ifdef HAVE_ECC if (XSTRSTR(info->cipher, "ECDSA")) { @@ -733,7 +797,7 @@ static int bench_tls_client(info_t* info) cli_ssl = wolfSSL_new(cli_ctx); if (cli_ssl == NULL) { printf("error creating client object\n"); - goto exit; + ret = MEMORY_E; goto exit; } wolfSSL_SetIOReadCtx(cli_ssl, info); @@ -846,6 +910,7 @@ static int bench_tls_client(info_t* info) exit: if (ret != 0 && ret != WOLFSSL_SUCCESS) { + info->doShutdown = 1; printf("Client Error: %d (%s)\n", ret, wolfSSL_ERR_reason_error_string(ret)); } @@ -862,7 +927,11 @@ exit: return ret; } +#ifdef CMSIS_OS2_H_ +static void client_thread(void* args) +#else static void client_thread(const void* args) +#endif { int ret; info_t* info = (info_t*)args; @@ -871,8 +940,13 @@ static void client_thread(const void* args) ret = bench_tls_client(info); /* signal server */ - if (!info->server.done && info->server.threadId != 0) + if (!info->server.done && info->server.threadId != 0) { +#ifdef CMSIS_OS2_H_ + osThreadFlagsSet(info->server.threadId, 1); +#else osSignalSet(info->server.threadId, 1); +#endif + } info->client.ret = ret; info->client.done = 1; osThreadSuspend(NULL); @@ -888,7 +962,7 @@ static int bench_tls_server(info_t* info) { byte *readBuf = NULL; double start; - int ret, len = 0, readBufSz; + int ret = 0, len = 0, readBufSz; WOLFSSL_CTX* srv_ctx = NULL; WOLFSSL* srv_ssl = NULL; int tls13 = XSTRNCMP(info->cipher, "TLS13", 5) == 0; @@ -896,16 +970,43 @@ static int bench_tls_server(info_t* info) /* set up server */ #ifdef WOLFSSL_TLS13 - if (tls13) - srv_ctx = wolfSSL_CTX_new(wolfTLSv1_3_server_method()); + if (tls13) { + #ifdef WOLFSSL_STATIC_MEMORY + ret = wolfSSL_CTX_load_static_memory(&srv_ctx, wolfTLSv1_3_server_method_ex, + gWolfCTXSrv, sizeof(gWolfCTXSrv), WOLFMEM_GENERAL , 10); + #else + srv_ctx = wolfSSL_CTX_new(wolfTLSv1_3_server_method()); + #endif + } #endif - if (!tls13) - srv_ctx = wolfSSL_CTX_new(wolfSSLv23_server_method()); - if (srv_ctx == NULL) { - printf("error creating server ctx\n"); + if (!tls13) { +#if !defined(WOLFSSL_TLS13) + #ifdef WOLFSSL_STATIC_MEMORY + ret = wolfSSL_CTX_load_static_memory(&srv_ctx, wolfSSLv23_server_method_ex, + gWolfCTXSrv, sizeof(gWolfCTXSrv), WOLFMEM_GENERAL , 10); + #else + srv_ctx = wolfSSL_CTX_new(wolfSSLv23_server_method()); + #endif +#elif !defined(WOLFSSL_NO_TLS12) + #ifdef WOLFSSL_STATIC_MEMORY + ret = wolfSSL_CTX_load_static_memory(&srv_ctx, wolfTLSv1_2_server_method_ex, + gWolfCTXSrv, sizeof(gWolfCTXSrv), WOLFMEM_GENERAL , 10); + #else + srv_ctx = wolfSSL_CTX_new(wolfTLSv1_2_server_method()); + #endif +#endif + } + + if (srv_ctx == NULL || ret != 0) { + printf("error creating server ctx: ret %d\n", ret); ret = MEMORY_E; goto exit; } +#ifdef WOLFSSL_STATIC_MEMORY + ret = wolfSSL_CTX_load_static_memory(&srv_ctx, 0, gWolfIOSrv, sizeof(gWolfIOSrv), + WOLFMEM_IO_POOL, 10 ); +#endif + #ifndef NO_CERTS #ifdef HAVE_ECC if (XSTRSTR(info->cipher, "ECDSA")) { @@ -1081,6 +1182,7 @@ static int bench_tls_server(info_t* info) exit: if (ret != 0 && ret != WOLFSSL_SUCCESS) { + info->doShutdown = 1; printf("Server Error: %d (%s)\n", ret, wolfSSL_ERR_reason_error_string(ret)); } @@ -1096,7 +1198,11 @@ exit: return ret; } +#ifdef CMSIS_OS2_H_ +static void server_thread(void* args) +#else static void server_thread(const void* args) +#endif { int ret; info_t* info = (info_t*)args; @@ -1105,8 +1211,13 @@ static void server_thread(const void* args) ret = bench_tls_server(info); /* signal client */ - if (!info->client.done && info->client.threadId != 0) + if (!info->client.done && info->client.threadId != 0) { +#ifdef CMSIS_OS2_H_ + osThreadFlagsSet(info->client.threadId, 1); +#else osSignalSet(info->client.threadId, 1); +#endif + } info->server.ret = ret; info->server.done = 1; osThreadSuspend(NULL); @@ -1118,6 +1229,19 @@ static void server_thread(const void* args) osThreadTerminate(info->server.threadId); } +#ifdef CMSIS_OS2_H_ +static const osThreadAttr_t server_thread_attributes = { + .name = "server_thread", + .priority = (osPriority_t) osPriorityNormal, + .stack_size = WOLF_EXAMPLES_STACK +}; +static const osThreadAttr_t client_thread_attributes = { + .name = "client_thread", + .priority = (osPriority_t) osPriorityNormal, + .stack_size = WOLF_EXAMPLES_STACK +}; +#endif + int bench_tls(void* args) { int ret = 0; @@ -1170,6 +1294,10 @@ int bench_tls(void* args) info->showPeerInfo = argShowPeerInfo; info->showVerbose = argShowVerbose; +#ifdef CMSIS_OS2_H_ + info->server.mutex = osSemaphoreNew(1, 0, NULL); + info->client.mutex = osSemaphoreNew(1, 0, NULL); +#else info->server.mutex = osSemaphoreCreate(&info->server.mutexDef, 1); info->client.mutex = osSemaphoreCreate(&info->client.mutexDef, 1); @@ -1183,6 +1311,7 @@ int bench_tls(void* args) info->client.threadDef.pthread = client_thread; info->client.threadDef.tpriority = osPriorityNormal; info->client.threadDef.stacksize = WOLF_EXAMPLES_STACK; +#endif /* parse by : */ while ((cipher != NULL) && (cipher[0] != '\0')) { @@ -1213,13 +1342,21 @@ int bench_tls(void* args) /* start threads */ if (info->server.threadId == 0) { +#ifdef CMSIS_OS2_H_ + info->server.threadId = osThreadNew(server_thread, info, &server_thread_attributes); +#else info->server.threadId = osThreadCreate(&info->server.threadDef, info); +#endif } else { osThreadResume(info->server.threadId); } if (info->client.threadId == 0) { +#ifdef CMSIS_OS2_H_ + info->client.threadId = osThreadNew(client_thread, info, &client_thread_attributes); +#else info->client.threadId = osThreadCreate(&info->client.threadDef, info); +#endif } else { osThreadResume(info->client.threadId); @@ -1277,19 +1414,84 @@ exit: return ret; } -#endif /* (!NO_WOLFSSL_CLIENT || !NO_WOLFSSL_SERVER) && !WOLFCRYPT_ONLY */ +#endif /* (!NO_WOLFSSL_CLIENT || !NO_WOLFSSL_SERVER) && !WOLFCRYPT_ONLY && !SINGLE_THREADED */ -/***************************************************************************** - * Private functions - ****************************************************************************/ +#ifndef WOLFCRYPT_ONLY +static void ShowCiphers(void) +{ + int ret; + char* ciphers = (char*)XMALLOC(WOLFSSL_CIPHER_LIST_MAX_SIZE, NULL, + DYNAMIC_TYPE_TMP_BUFFER); + if (ciphers) { + ret = wolfSSL_get_ciphers(ciphers, WOLFSSL_CIPHER_LIST_MAX_SIZE); + if (ret == WOLFSSL_SUCCESS) + printf("%s\n", ciphers); + XFREE(ciphers, NULL, DYNAMIC_TYPE_TMP_BUFFER); + } +} +#endif + +static void PrintMemStats(void) +{ +#ifdef WOLFSSL_DEBUG_MEMORY + printf("\nHeap MinEver %d, Free %d, Stack %lu\n", + xPortGetMinimumEverFreeHeapSize(), + xPortGetFreeHeapSize(), + uxTaskGetStackHighWaterMark(NULL)); +#endif +} + +#if 0 +static void* wolfMallocCb(size_t size) +{ + void* ptr = malloc(size); + if (ptr == NULL) { + printf("BREAK!\n"); + } + return ptr; +} +static void wolfFreeCb(void *ptr) +{ + free(ptr); +} +static void* wolfReallocCb(void *ptr, size_t size) +{ + return realloc(ptr, size); +} +#endif /***************************************************************************** * Public functions ****************************************************************************/ +#ifdef HAL_RTC_MODULE_ENABLED +extern RTC_HandleTypeDef hrtc; +double current_time(void) +{ + RTC_TimeTypeDef time; + RTC_DateTypeDef date; + uint32_t subsec; + + /* must get time and date here due to STM32 HW bug */ + HAL_RTC_GetTime(&hrtc, &time, FORMAT_BIN); + HAL_RTC_GetDate(&hrtc, &date, FORMAT_BIN); + subsec = (255 - time.SubSeconds) * 1000 / 255; + + (void) date; + + /* return seconds.milliseconds */ + return ((double) time.Hours * 24) + ((double) time.Minutes * 60) + + (double) time.Seconds + ((double) subsec / 1000); +} +#endif /* HAL_RTC_MODULE_ENABLED */ + +#ifdef CMSIS_OS2_H_ +void wolfCryptDemo(void* argument) +#else void wolfCryptDemo(const void* argument) +#endif { HAL_StatusTypeDef halRet; - uint8_t buffer[1]; /* single char */ + uint8_t buffer[2]; func_args args; #ifdef DEBUG_WOLFSSL @@ -1297,18 +1499,31 @@ void wolfCryptDemo(const void* argument) #endif /* initialize wolfSSL */ +#ifdef WOLFCRYPT_ONLY + wolfCrypt_Init(); +#else wolfSSL_Init(); +#endif + +#ifdef WOLFSSL_STATIC_MEMORY + if (wc_LoadStaticMemory(&HEAP_HINT, gWolfMem, sizeof(gWolfMem), + WOLFMEM_GENERAL, 10) != 0) { + printf("unable to load static memory"); + } +#endif + + //wolfSSL_SetAllocators(wolfMallocCb, wolfFreeCb, wolfReallocCb); while (1) { memset(&args, 0, sizeof(args)); args.return_code = NOT_COMPILED_IN; /* default */ - printf("\r\n\t\t\t\tMENU\r\n"); + printf("\n\t\t\t\tMENU\n"); printf(menu1); printf("Please select one of the above options:\n"); do { - halRet = HAL_UART_Receive(&huart4, buffer, sizeof(buffer), 100); + halRet = HAL_UART_Receive(&HAL_CONSOLE_UART, buffer, sizeof(buffer), 100); } while (halRet != HAL_OK || buffer[0] == '\n' || buffer[0] == '\r'); switch (buffer[0]) { @@ -1317,6 +1532,8 @@ void wolfCryptDemo(const void* argument) #ifndef NO_CRYPT_TEST args.return_code = 0; wolfcrypt_test(&args); + #else + args.return_code = NOT_COMPILED_IN; #endif printf("Crypt Test: Return code %d\n", args.return_code); break; @@ -1326,30 +1543,42 @@ void wolfCryptDemo(const void* argument) #ifndef NO_CRYPT_BENCHMARK args.return_code = 0; benchmark_test(&args); + #else + args.return_code = NOT_COMPILED_IN; #endif printf("Benchmark Test: Return code %d\n", args.return_code); break; case 'l': printf("Running TLS Benchmarks...\n"); - #if (!defined(NO_WOLFSSL_CLIENT) || !defined(NO_WOLFSSL_SERVER)) && !defined(WOLFCRYPT_ONLY) + #if (!defined(NO_WOLFSSL_CLIENT) || !defined(NO_WOLFSSL_SERVER)) && !defined(WOLFCRYPT_ONLY) && !defined(SINGLE_THREADED) bench_tls(&args); + #else + args.return_code = NOT_COMPILED_IN; #endif printf("TLS Benchmarks: Return code %d\n", args.return_code); break; case 'e': + #ifndef WOLFCRYPT_ONLY ShowCiphers(); + #else + printf("Not compiled in\n"); + #endif break; // All other cases go here default: - printf("\r\nSelection out of range\r\n"); + printf("\nSelection out of range\n"); break; } PrintMemStats(); } +#ifdef WOLFCRYPT_ONLY + wolfCrypt_Cleanup(); +#else wolfSSL_Cleanup(); +#endif } diff --git a/IDE/OPENSTM32/Inc/wolfssl_example.h b/IDE/STM32Cube/wolfssl_example.h similarity index 90% rename from IDE/OPENSTM32/Inc/wolfssl_example.h rename to IDE/STM32Cube/wolfssl_example.h index c97e2dd84..f43884d87 100644 --- a/IDE/OPENSTM32/Inc/wolfssl_example.h +++ b/IDE/STM32Cube/wolfssl_example.h @@ -22,10 +22,6 @@ #ifndef WOLFSSL_EXAMPLE_H_ #define WOLFSSL_EXAMPLE_H_ -#include -#include -#include - #ifdef HAVE_CONFIG_H #include #endif @@ -39,11 +35,18 @@ #include #include -#ifndef WOLF_EXAMPLES_STACK -#define WOLF_EXAMPLES_STACK (30 * configMINIMAL_STACK_SIZE) +#ifndef SINGLE_THREADED +#include #endif -void wolfCryptDemo(void const * argument); +#ifndef WOLF_EXAMPLES_STACK +#define WOLF_EXAMPLES_STACK (30*1024) +#endif +#ifdef CMSIS_OS2_H_ +void wolfCryptDemo(void* argument); +#else +void wolfCryptDemo(void const * argument); +#endif #endif /* WOLFSSL_EXAMPLE_H_ */ diff --git a/IDE/include.am b/IDE/include.am index 828b173ad..ec75c5ffd 100644 --- a/IDE/include.am +++ b/IDE/include.am @@ -12,7 +12,7 @@ include IDE/ROWLEY-CROSSWORKS-ARM/include.am include IDE/TRUESTUDIO/include.am include IDE/ARDUINO/include.am include IDE/INTIME-RTOS/include.am -include IDE/OPENSTM32/include.am +include IDE/STM32Cube/include.am include IDE/VS-ARM/include.am include IDE/VS-AZURE-SPHERE/include.am include IDE/GCC-ARM/include.am diff --git a/sslSniffer/sslSnifferTest/snifftest.c b/sslSniffer/sslSnifferTest/snifftest.c index 1b4292af1..f8873962b 100644 --- a/sslSniffer/sslSnifferTest/snifftest.c +++ b/sslSniffer/sslSnifferTest/snifftest.c @@ -35,7 +35,7 @@ #endif #ifndef WOLFSSL_SNIFFER - +#ifndef NO_MAIN_DRIVER /* blank build */ #include #include @@ -44,7 +44,7 @@ int main(void) printf("do ./configure --enable-sniffer to enable build support\n"); return EXIT_SUCCESS; } - +#endif /* !NO_MAIN_DRIVER */ #else /* do a full build */ diff --git a/wolfssl/wolfcrypt/port/st/stm32.h b/wolfssl/wolfcrypt/port/st/stm32.h index 06a49160f..3db84c7e9 100644 --- a/wolfssl/wolfcrypt/port/st/stm32.h +++ b/wolfssl/wolfcrypt/port/st/stm32.h @@ -92,7 +92,7 @@ int wc_Stm32_Hash_Final(STM32_HASH_Context* stmCtx, word32 algo, #ifndef NO_AES #if !defined(STM32_CRYPTO_AES_GCM) && (defined(WOLFSSL_STM32F4) || \ defined(WOLFSSL_STM32F7) || defined(WOLFSSL_STM32L4) || \ - defined(WOLFSSL_STM32L5)) + defined(WOLFSSL_STM32L5) || defined(WOLFSSL_STM32H7)) /* Hardware supports AES GCM acceleration */ #define STM32_CRYPTO_AES_GCM #endif @@ -113,8 +113,8 @@ int wc_Stm32_Hash_Final(STM32_HASH_Context* stmCtx, word32 algo, #endif /* Detect newer CubeMX crypto HAL (HAL_CRYP_Encrypt / HAL_CRYP_Decrypt) */ - #if !defined(STM32_HAL_V2) && \ - (defined(WOLFSSL_STM32F7) || defined(WOLFSSL_STM32L5)) && defined(CRYP_AES_GCM) + #if !defined(STM32_HAL_V2) && defined(CRYP_AES_GCM) && \ + (defined(WOLFSSL_STM32F7) || defined(WOLFSSL_STM32L5) || defined(WOLFSSL_STM32H7)) #define STM32_HAL_V2 #endif diff --git a/wolfssl/wolfcrypt/settings.h b/wolfssl/wolfcrypt/settings.h index f22357c29..37190676f 100644 --- a/wolfssl/wolfcrypt/settings.h +++ b/wolfssl/wolfcrypt/settings.h @@ -219,6 +219,9 @@ #ifdef WOLFSSL_USER_SETTINGS #include "user_settings.h" +#elif defined(USE_HAL_DRIVER) && !defined(HAVE_CONFIG_H) + /* STM Configuration File (generated by CubeMX) */ + #include "wolfSSL.wolfSSL_conf.h" #endif @@ -1204,7 +1207,7 @@ extern void uITRON4_free(void *p) ; #if defined(WOLFSSL_STM32F2) || defined(WOLFSSL_STM32F4) || \ defined(WOLFSSL_STM32F7) || defined(WOLFSSL_STM32F1) || \ defined(WOLFSSL_STM32L4) || defined(WOLFSSL_STM32L5) || \ - defined(WOLFSSL_STM32WB) + defined(WOLFSSL_STM32WB) || defined(WOLFSSL_STM32H7) #define SIZEOF_LONG_LONG 8 #ifndef CHAR_BIT @@ -1251,6 +1254,8 @@ extern void uITRON4_free(void *p) ; #include "stm32f7xx_hal.h" #elif defined(WOLFSSL_STM32F1) #include "stm32f1xx_hal.h" + #elif defined(WOLFSSL_STM32H7) + #include "stm32h7xx_hal.h" #elif defined(WOLFSSL_STM32WB) #include "stm32wbxx_hal.h" #endif @@ -1296,12 +1301,14 @@ extern void uITRON4_free(void *p) ; #endif #elif defined(WOLFSSL_STM32F7) #include "stm32f7xx.h" + #elif defined(WOLFSSL_STM32H7) + #include "stm32h7xx.h" #elif defined(WOLFSSL_STM32F1) #include "stm32f1xx.h" #endif #endif /* WOLFSSL_STM32_CUBEMX */ #endif /* WOLFSSL_STM32F2 || WOLFSSL_STM32F4 || WOLFSSL_STM32L4 || - WOLFSSL_STM32L5 || WOLFSSL_STM32F7 || WOLFSSL_STMWB */ + WOLFSSL_STM32L5 || WOLFSSL_STM32F7 || WOLFSSL_STMWB || WOLFSSL_STM32H7 */ #ifdef WOLFSSL_DEOS #include #include