This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CCS/LAUNCXL-CC1350:gmtime()中的错误

Guru**** 2589300 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/617243/ccs-launchxl-cc1350-error-in-gmtime

部件号:LAUNCXL-CC1350

工具/软件:Code Composer Studio

您好,

我使用CCS 7.1 和编译器TI v.16.9 .3.LTS。首先我按seconds_set (timestamp)设置时间戳。 然后我想设置当地时间,例如gmte(..)。 从论坛中我了解到,有 一个用来存储时区数据的_tz结构。 默认值为:

tz _tz =

  -1,                     /*日光*/
  2.16万,                  /* timezone */
  "CST",                  /* tzname  */
  "dst",                  /* dstname */
};
gmtime(..)根据时区(UTC+6)给出日期。 但是当我将时区更改为负时,gmtimtime显示错误(对于CST,应该为-2.16万!)。 gmte.c的来源具有以下条件:

_code_access struct TM *GMTIME (const TIMET *TIMER)

   TIMET gtime =_tz.timezone;/*当前时区的差异   */
                               /*和GMT (以秒                     为单位)*/

   /*------------------ */
   /*如果通过添加时区来溢出time_t,则返回NULL            */
   /*------------------ */
#if defined(_TIME64_implementation)
   如果(*timer > int64_MAX - gtime)返回NULL;
#否则
   如果(*timer > UINT32_MAX - gte))返回NULL;
#endif

   if (timer) gtime +=*timer;
   返回LOCALTIME(&gtime);
}

当gtime < 0时,我认为存在溢出。 如何更改此库? 是否未实施DST (夏时制)?

JacekRz

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    什么是TIMET和TZ? 系统名称为Time_t和struct TM。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我认为这是TI的实施。 来源是:
    C:16.9 \ti\ccsv7\tools\compiler\ti-CGT-arm_LTS.3.lts\lib\src\gmtime.c
    C:16.9 \ti\ccsv7\tools\compiler\ti-CGT-arm_ARM.3.LTS\lib\src\tmzone.c
    JacekRz
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    很抱歉。  RTS中的时区处理和日间照明节省时间处理不起作用。  我在 SDOWP系统中提交了CodeGen-3617以解决此问题。  欢迎您使用我签名中下面的SDOWP链接进行关注。

    谢谢,此致,

    -George