mirror of
https://gitee.com/beecue/fastbee.git
synced 2025-12-22 10:55:56 +08:00
更新硬件SDK
This commit is contained in:
77
sdk/合宙/air780e/csdk/luatos-soc-2022/interface/src/__wrap.c
Normal file
77
sdk/合宙/air780e/csdk/luatos-soc-2022/interface/src/__wrap.c
Normal file
@@ -0,0 +1,77 @@
|
||||
#include "common_api.h"
|
||||
#include "time.h"
|
||||
#include "osasys.h"
|
||||
|
||||
void RTC_GetDateTime(Date_UserDataStruct *pDate, Time_UserDataStruct *pTime)
|
||||
{
|
||||
Tamp2UTC(time(NULL), pDate, pTime, 0);
|
||||
}
|
||||
|
||||
static struct tm prvTM;
|
||||
extern const uint32_t DayTable[2][12];
|
||||
struct tm *__wrap_localtime (const time_t *_timer)
|
||||
{
|
||||
Time_UserDataStruct Time;
|
||||
Date_UserDataStruct Date;
|
||||
uint64_t Sec;
|
||||
utc_timer_value_t *timeUtc = OsaSystemTimeReadUtc();
|
||||
if (_timer)
|
||||
{
|
||||
Sec = *_timer;
|
||||
Tamp2UTC(Sec + timeUtc->timeZone * 900, &Date, &Time, 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
Tamp2UTC(timeUtc->UTCsecs + timeUtc->timeZone * 900, &Date, &Time, 0);
|
||||
}
|
||||
prvTM.tm_year = Date.Year - 1900;
|
||||
prvTM.tm_mon = Date.Mon - 1;
|
||||
prvTM.tm_mday = Date.Day;
|
||||
prvTM.tm_hour = Time.Hour;
|
||||
prvTM.tm_min = Time.Min;
|
||||
prvTM.tm_sec = Time.Sec;
|
||||
prvTM.tm_wday = Time.Week;
|
||||
prvTM.tm_yday = Date.Day - 1;
|
||||
prvTM.tm_yday += DayTable[IsLeapYear(Date.Year)][Date.Mon - 1];
|
||||
return &prvTM;
|
||||
}
|
||||
|
||||
struct tm *__wrap_gmtime (const time_t *_timer)
|
||||
{
|
||||
Time_UserDataStruct Time;
|
||||
Date_UserDataStruct Date;
|
||||
uint64_t Sec;
|
||||
if (_timer)
|
||||
{
|
||||
Sec = *_timer;
|
||||
Tamp2UTC(Sec, &Date, &Time, 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
RTC_GetDateTime(&Date, &Time);
|
||||
}
|
||||
prvTM.tm_year = Date.Year - 1900;
|
||||
prvTM.tm_mon = Date.Mon - 1;
|
||||
prvTM.tm_mday = Date.Day;
|
||||
prvTM.tm_hour = Time.Hour;
|
||||
prvTM.tm_min = Time.Min;
|
||||
prvTM.tm_sec = Time.Sec;
|
||||
prvTM.tm_wday = Time.Week;
|
||||
prvTM.tm_yday = Date.Day - 1;
|
||||
prvTM.tm_yday += DayTable[IsLeapYear(Date.Year)][Date.Mon - 1];
|
||||
return &prvTM;
|
||||
}
|
||||
|
||||
clock_t __wrap_clock (void)
|
||||
{
|
||||
return GetSysTickMS()/1000;
|
||||
}
|
||||
|
||||
time_t __wrap_time (time_t *_Time)
|
||||
{
|
||||
utc_timer_value_t *timeUtc = OsaSystemTimeReadUtc();
|
||||
if (_Time != NULL) {
|
||||
*_Time = timeUtc->UTCsecs;
|
||||
}
|
||||
return timeUtc->UTCsecs;
|
||||
}
|
||||
Reference in New Issue
Block a user