[修改] 增加freeRTOS
1. 版本FreeRTOSv202212.01,命名为kernel;
This commit is contained in:
109
kernel/FreeRTOS-Plus/ThirdParty/wolfSSL/IDE/LPCXPRESSO/lib_wolfssl/lpc_18xx_port.c
vendored
Normal file
109
kernel/FreeRTOS-Plus/ThirdParty/wolfSSL/IDE/LPCXPRESSO/lib_wolfssl/lpc_18xx_port.c
vendored
Normal file
@ -0,0 +1,109 @@
|
||||
/* lpc_18xx_port.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
|
||||
*/
|
||||
|
||||
|
||||
#include "board.h"
|
||||
#include "otp_18xx_43xx.h" /* For RNG */
|
||||
#include "timer_18xx_43xx.h"
|
||||
|
||||
static uint32_t mTimeInit = 0;
|
||||
#define TIMER_SCALER 1000000
|
||||
static void init_time(void)
|
||||
{
|
||||
if(mTimeInit == 0) {
|
||||
uint32_t timerFreq;
|
||||
|
||||
/* Set current time for RTC 2:00:00PM, 2012-10-05 */
|
||||
RTC_TIME_T FullTime;
|
||||
|
||||
Chip_RTC_Init(LPC_RTC);
|
||||
|
||||
FullTime.time[RTC_TIMETYPE_SECOND] = 0;
|
||||
FullTime.time[RTC_TIMETYPE_MINUTE] = 0;
|
||||
FullTime.time[RTC_TIMETYPE_HOUR] = 14;
|
||||
FullTime.time[RTC_TIMETYPE_DAYOFMONTH] = 5;
|
||||
FullTime.time[RTC_TIMETYPE_DAYOFWEEK] = 5;
|
||||
FullTime.time[RTC_TIMETYPE_DAYOFYEAR] = 279;
|
||||
FullTime.time[RTC_TIMETYPE_MONTH] = 10;
|
||||
FullTime.time[RTC_TIMETYPE_YEAR] = 2012;
|
||||
|
||||
Chip_RTC_SetFullTime(LPC_RTC, &FullTime);
|
||||
|
||||
/* Enable RTC (starts increase the tick counter and second counter register) */
|
||||
Chip_RTC_Enable(LPC_RTC, ENABLE);
|
||||
|
||||
/* Enable timer 1 clock and reset it */
|
||||
Chip_TIMER_Init(LPC_TIMER2);
|
||||
Chip_RGU_TriggerReset(RGU_TIMER2_RST);
|
||||
while (Chip_RGU_InReset(RGU_TIMER2_RST)) {}
|
||||
|
||||
/* Get timer peripheral clock rate */
|
||||
timerFreq = Chip_Clock_GetRate(CLK_MX_TIMER2);
|
||||
|
||||
/* Timer setup */
|
||||
Chip_TIMER_Reset(LPC_TIMER2);
|
||||
Chip_TIMER_PrescaleSet(LPC_TIMER2, timerFreq/TIMER_SCALER);
|
||||
Chip_TIMER_Enable(LPC_TIMER2);
|
||||
|
||||
mTimeInit = 1;
|
||||
}
|
||||
}
|
||||
|
||||
double current_time()
|
||||
{
|
||||
//RTC_TIME_T FullTime;
|
||||
uint32_t timerMs;
|
||||
|
||||
init_time();
|
||||
timerMs = Chip_TIMER_ReadCount(LPC_TIMER2);
|
||||
|
||||
//Chip_RTC_GetFullTime(LPC_RTC, &FullTime);
|
||||
//(double)FullTime.time[RTC_TIMETYPE_SECOND]
|
||||
|
||||
return (double)timerMs/TIMER_SCALER;
|
||||
}
|
||||
|
||||
/* Memory location of the generated random numbers (for total of 128 bits) */
|
||||
static volatile uint32_t* mRandData = (uint32_t*)0x40045050;
|
||||
static uint32_t mRandInit = 0;
|
||||
static uint32_t mRandIndex = 0;
|
||||
uint32_t rand_gen(void)
|
||||
{
|
||||
uint32_t rand = 0;
|
||||
uint32_t status = LPC_OK;
|
||||
if(mRandIndex == 0) {
|
||||
if(mRandInit == 0) {
|
||||
Chip_OTP_Init();
|
||||
mRandInit = 1;
|
||||
}
|
||||
status = Chip_OTP_GenRand();
|
||||
}
|
||||
if(status == LPC_OK) {
|
||||
rand = mRandData[mRandIndex];
|
||||
}
|
||||
else {
|
||||
printf("GenRand Failed 0x%x\n", status);
|
||||
}
|
||||
if(++mRandIndex > 4) {
|
||||
mRandIndex = 0;
|
||||
}
|
||||
return rand;
|
||||
}
|
||||
81
kernel/FreeRTOS-Plus/ThirdParty/wolfSSL/IDE/LPCXPRESSO/lib_wolfssl/user_settings.h
vendored
Normal file
81
kernel/FreeRTOS-Plus/ThirdParty/wolfSSL/IDE/LPCXPRESSO/lib_wolfssl/user_settings.h
vendored
Normal file
@ -0,0 +1,81 @@
|
||||
#include <stdint.h>
|
||||
|
||||
/* Configuration */
|
||||
#define WOLFSSL_USER_IO
|
||||
#define WOLFSSL_GENERAL_ALIGNMENT 4
|
||||
#define WOLFSSL_SMALL_STACK
|
||||
#define WOLFSSL_BASE64_ENCODE
|
||||
#define WOLFSSL_SHA512
|
||||
|
||||
#define HAVE_ECC
|
||||
#define HAVE_AESGCM
|
||||
#define HAVE_CURVE25519
|
||||
#define HAVE_HKDF
|
||||
#define HAVE_HASHDRBG
|
||||
#define HAVE_CHACHA
|
||||
#define HAVE_POLY1305
|
||||
#define HAVE_ONE_TIME_AUTH
|
||||
#define HAVE_TLS_EXTENSIONS
|
||||
#define HAVE_SUPPORTED_CURVES
|
||||
#define HAVE_ERRNO_H
|
||||
#define HAVE_LWIP_NATIVE
|
||||
|
||||
#define FP_LUT 4
|
||||
#define FP_MAX_BITS 2048 /* 4096 */
|
||||
#define ECC_USER_CURVES /* Disables P-112, P-128, P-160, P-192, P-224, P-384, P-521 but leaves P-256 enabled */
|
||||
#define FP_MAX_BITS_ECC (256 * 2)
|
||||
#define ALT_ECC_SIZE
|
||||
#define USE_FAST_MATH
|
||||
#define SMALL_SESSION_CACHE
|
||||
#define CURVED25519_SMALL
|
||||
#define RSA_LOW_MEM
|
||||
#define GCM_SMALL
|
||||
#define ECC_SHAMIR
|
||||
#define USE_SLOW_SHA2
|
||||
#define MP_LOW_MEM
|
||||
#define TFM_TIMING_RESISTANT
|
||||
//#define TFM_ARM
|
||||
|
||||
|
||||
/* Remove Features */
|
||||
#define NO_DEV_RANDOM
|
||||
#define NO_FILESYSTEM
|
||||
#define NO_WRITEV
|
||||
#define NO_MAIN_DRIVER
|
||||
#define NO_WOLFSSL_MEMORY
|
||||
#define NO_DEV_RANDOM
|
||||
#define NO_MD4
|
||||
#define NO_RABBIT
|
||||
#define NO_HC128
|
||||
#define NO_DSA
|
||||
#define NO_PWDBASED
|
||||
#define NO_PSK
|
||||
#define NO_64BIT
|
||||
#define NO_WOLFSSL_SERVER
|
||||
#define NO_OLD_TLS
|
||||
#define NO_DES3
|
||||
#define NO_MD5
|
||||
#define NO_RC4
|
||||
#define NO_DH
|
||||
#define NO_SHA
|
||||
|
||||
|
||||
/* Benchmark / Testing */
|
||||
#define BENCH_EMBEDDED
|
||||
#define USE_CERT_BUFFERS_1024
|
||||
|
||||
|
||||
/* Custom functions */
|
||||
extern uint32_t rand_gen(void);
|
||||
#define CUSTOM_RAND_GENERATE rand_gen
|
||||
#define CUSTOM_RAND_TYPE uint32_t
|
||||
|
||||
extern double current_time(int reset);
|
||||
#define WOLFSSL_USER_CURRTIME
|
||||
|
||||
|
||||
/* Debugging - Optional */
|
||||
#if 0
|
||||
#define fprintf(file, format, ...) printf(format, ##__VA_ARGS__)
|
||||
#define DEBUG_WOLFSSL
|
||||
#endif
|
||||
Reference in New Issue
Block a user