Although I confirmed that the operation was stable for a long time, I noticed that the number of satellites and the time were occasionally not displayed correctly, so I investigated.
I found that when communication with the GPS module was 9600bps, the NMEA sentence sometimes overran.
I tried to set the GPS module to 19200bps or higher, but it did not work properly.
After further investigation, I found that only one of the two UARTs was set, so I corrected it. In addition, I modified it so that the baud rate setting is automatically changed and saved when the GPS module is ATGM336H.
I also modified sprintf to use snprintf.
As an additional element, I added an hour offset to the GPS menu so that the local time can be displayed.
Since the year, month, and date are not displayed, it does nothing, and daylight saving time is not taken into account.
I don't know much about github, so I've attached a zip of the modified source code and the bin file.
The version name has been slightly changed to make it easier to distinguish.
I hope it will be helpful to someone.