Arm 将库Embeddetls与LwIP 2.1.0集成在未定义的对'_gettimeofday';

Arm 将库Embeddetls与LwIP 2.1.0集成在未定义的对'_gettimeofday';,arm,cortex-m,lwip,mbedtls,Arm,Cortex M,Lwip,Mbedtls,我已经尝试将库mbedTLS与LWIP2.1.0集成。我已将以下内容添加到我的lwipopts.h文件中 #ifndef LWIP_ALTCP #define LWIP_ALTCP 1 #endif #ifndef LWIP_ALTCP_TLS #define LWIP_ALTCP_TLS 1 #endif 我已经像这样将库添加到我的项目中,并为编译器引用了它们: 我还对mbedtls/include/config.h文件进行了更改,使其不使用windows或linux 我得到了一个“未定

我已经尝试将库mbedTLS与LWIP2.1.0集成。我已将以下内容添加到我的lwipopts.h文件中

#ifndef LWIP_ALTCP
#define LWIP_ALTCP 1
#endif

#ifndef LWIP_ALTCP_TLS
#define LWIP_ALTCP_TLS 1
#endif
我已经像这样将库添加到我的项目中,并为编译器引用了它们:

我还对mbedtls/include/config.h文件进行了更改,使其不使用windows或linux

我得到了一个“未定义的对”_gettimeofday的引用”,我把它缩小到了arm gnu工具链中唯一定义它的地方:

#ifdef _COMPILING_NEWLIB
int _EXFUN(_gettimeofday, (struct timeval *__p, void *__tz));
#endif

可能是什么情况?当我关闭LWIP\u ALTCP\u TLS时,所有内容都会编译文件,但TLS无法使用。是否需要打开/关闭更多标志?

RTFM:the
\u gettimeofday()
函数是一个系统调用,用户在使用newlib中的日期和时间函数时必须实现该调用

最低限度的实施相当简单:

int _gettimeofday (struct timeval *tp, void *tzp){
  tp->tv_sec = unixTimeInSecs;
  tp->tv_usec = 0; 
  return 0;
}
TLS库需要证书检查的当前时间:SSL证书仅在特定日期范围内有效