FreeCalypso > hg > fc-tourmaline
view helpers/build-date.c @ 261:841a848ba762
SPI SWE: clear any pending boot-time interrupts in spi_init()
Charger plug/unplug hw logic in the Iota ABB has no built-in debouncing,
thus electrical contact bounce on the charging power connection interface
produces a lot of charger plug/unplug interrupts. When we boot in
charging mode (charging power present at boot time and is presumably
the cause of Switch-ON), some bounce may occur between the initial
Iota Switch-ON action and Calypso firmware booting. By clearing any
accumulated ITSTATREG interrupts on boot, we prevent these pre-boot
interrupts from generating charger plug/unplug events to FCHG, which
would upset smooth from-boot charging.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Fri, 14 May 2021 02:49:05 +0000 |
parents | 775dba605f33 |
children |
line wrap: on
line source
/* * This program runs at firmware build time to produce a C file for the * fw build that includes the build date and time stamp. */ #include <stdio.h> #include <stdlib.h> #include <string.h> #include <strings.h> #include <time.h> main(argc, argv) char **argv; { time_t now; struct tm *tm; if (argc < 2 || argc > 4) { fprintf(stderr, "usage: %s config_name target_name src_version\n", argv[0]); exit(1); } time(&now); tm = gmtime(&now); printf("const char firmware_version_str[] =\n"); if (argc >= 3) printf("\"FreeCalypso Tourmaline %s (%s), ", argv[1], argv[2]); else printf("\"FreeCalypso Tourmaline %s, ", argv[1]); if (argc >= 4 && strcmp(argv[3], "unknown")) printf("source version %s, ", argv[3]); printf("build date %d-%02d-%02dT%02d:%02d:%02dZ\";\n", tm->tm_year+1900, tm->tm_mon+1, tm->tm_mday, tm->tm_hour, tm->tm_min, tm->tm_sec); exit(0); }