#include #include /* HW Related */ #include "board.h" #include "clock_config.h" #include "peripherals.h" #include "pin_mux.h" /* Console */ #include "fsl_debug_console.h" /* MISC */ #include "ip_stack_helpers.h" #include "system_utilities.h" /*FreeRTOS*/ #include "FreeRTOS.h" #include "task.h" /* MbedTLS */ #include "mbedtls/aes.h" #include "mbedtls/gcm.h" #include "mbedtls/sha1.h" #include "mbedtls/sha256.h" #include "mbedtls/sha512.h" static void vTaskHello(void *pvParameters); static void mtls_selftests(int verbose); int main(void) { BOARD_InitBootPins(); BOARD_BootClockRUN(); BOARD_InitBootPeripherals(); BOARD_InitDebugConsole(); BOARD_EnableRTC(); print_hardware(); sram_test(); mtls_selftests(1); xTaskCreate(vTaskHello, "HELLO", 256, NULL, 32, NULL); vTaskStartScheduler(); for (;;) { __WFI(); } } static void vTaskHello(void *pvParameters) { ip_stack_setup(); time_t t; struct tm *cur_tm; for (;;) { vTaskDelay(pdMS_TO_TICKS(1000)); t = time(NULL); cur_tm = localtime(&t); printf("Current time: %04d-%02d-%02d %02d:%02d:%02d\r\n", cur_tm->tm_year + 1900, cur_tm->tm_mon + 1, cur_tm->tm_mday, cur_tm->tm_hour, cur_tm->tm_min, cur_tm->tm_sec); } } static void mtls_selftests(int verbose) { uint8_t failed_cases = 0; if (mbedtls_aes_self_test(verbose) != 0) failed_cases++; if (mbedtls_gcm_self_test(verbose) != 0) failed_cases++; if (mbedtls_sha1_self_test(verbose) != 0) failed_cases++; if (mbedtls_sha256_self_test(verbose) != 0) failed_cases++; if (mbedtls_sha512_self_test(verbose) != 0) failed_cases++; printf("MbedTLS selftests completed, %d case(s) failed.\r\n", failed_cases); }