Liste des Groupes | Revenir à ca embedded |
I have an embedded project that is compiled in Atmel Studio 7.0. The target is and ARM MCU, so the toolchain is arm-gnu-toolchain. The installed toolchain version is 6.3.1.508. newlib version is 2.5.0.I /seriously/ dislike Microchip's way of handling toolchains. They work with old, outdated versions, rename and rebrand them and their documentation to make it look like they wrote them themselves, then add license checks and software locks so that optimisation is disabled unless you pay them vast amounts of money for the software other people wrote and gave away freely. To my knowledge, they do not break the letter of the license for GCC and other tools and libraries, but they most certainly break the spirit of the licenses in every way imaginable.
In this build system the type time_t is defined as long, so 32 bits.
I'm using time_t mainly to show it on a display for the user (as a broken down time) and tag with a timestamp some events (that the user will see as broken down time).
The time can be received by Internet or by the user, if the device is not connected. In both cases, time_t is finally used.
As you know, my system will show the Y2038 issue. I don't know if some of my devices will be active in 2038, anyway I'd like to fix this potential issue now.
One possibility is to use a modern toolchain[1] that most probably uses a new version of newlib that manages 64 bits time_t. However I think I should address several warnings and other problems after upgrading the toolchain.
Another possibility is to rewrite my own my_mktime(), my_localtime() and so on that accepts and returns my_time_t variables, defined as 64 bits. However I'm not capable in writing such functions. Do you have some implementations? I don't need full functional time functions, for example the timezone can be fixed at build time, I don't need to set it at runtime.
Any suggestions?
[1] https://developer.arm.com/-/media/Files/downloads/gnu/14.2.rel1/binrel/arm-gnu-toolchain-14.2.rel1-mingw-w64-i686-arm-none-eabi.zip
Les messages affichés proviennent d'usenet.