最近项目中需要使用 RTC,使用文件IO设置RTC时间时,RTC时间总是无法设置。
使用gdb调试。发现调用函数 mktime返回错误。在32位的arm上,如果 tm_year的值大于137,也就出错了。因为,time_t是个4字节的值,存储的是1900年到现在的秒数,即只能存储137年左右的时间,超过就溢出了。
设置的 tm_year不能超过 137,也就是年份不能超过 2037年
最近项目中需要使用 RTC,使用文件IO设置RTC时间时,RTC时间总是无法设置。
使用gdb调试。发现调用函数 mktime返回错误。在32位的arm上,如果 tm_year的值大于137,也就出错了。因为,time_t是个4字节的值,存储的是1900年到现在的秒数,即只能存储137年左右的时间,超过就溢出了。
设置的 tm_year不能超过 137,也就是年份不能超过 2037年