FreeCalypso > hg > fc-magnetite
view helpers/makeline.c @ 680:ee3ac8c617cb
armio.c: set GPIO2 output high initially
On TI-canonical platforms GPIO2 is DCD modem control output. In TI's
original code the AI_InitIOConfig() function called from Init_Target()
would configure GPIO2 as an output and set the initial output value to
low, but then the init code in uartfax.c called from Init_Serial_Flows()
would immediately change it to high, corresponding to DCD not asserted.
The result is a momentary asserted-state glitch on the DCD output.
The present change eliminates this glitch, setting DCD output to
not-asserted initially like it should be.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Thu, 25 Jun 2020 03:17:43 +0000 |
parents | 352f80da6813 |
children |
line wrap: on
line source
/* * This helper utility for the FreeCalypso Magnetite build system * emits potentially long generated Makefile lines, breaking them into * multiple lines with backslashes. */ #include <stdio.h> #include <stdlib.h> #include <string.h> #include <strings.h> int is_cmd, equ_or_colon, extra_indent; int linelen; main(argc, argv) char **argv; { char **ap; if (argc < 4) { fprintf(stderr, "error: too few arguments\n", argv[0]); exit(1); } if (!strcmp(argv[1], "def")) { is_cmd = 0; equ_or_colon = '='; extra_indent = 0; } else if (!strcmp(argv[1], "dep")) { is_cmd = 0; equ_or_colon = ':'; extra_indent = 1; } else if (!strcmp(argv[1], "cmd")) { is_cmd = 1; extra_indent = 1; } else { fprintf(stderr, "error: line type \"%s\" not known\n", argv[1]); exit(1); } if (is_cmd) { putchar('\t'); linelen = 8; } else linelen = 0; fputs(argv[2], stdout); linelen += strlen(argv[2]); if (is_cmd) { putchar(' '); linelen++; } else { putchar(equ_or_colon); linelen++; putchar('\t'); do linelen++; while (linelen & 7); } fputs(argv[3], stdout); linelen += strlen(argv[3]); for (ap = argv + 4; *ap; ap++) { if (linelen + 1 + strlen(*ap) <= 78) { putchar(' '); linelen++; } else { fputs(" \\\n\t", stdout); linelen = 8; if (extra_indent) { fputs(" ", stdout); linelen += 4; } } fputs(*ap, stdout); linelen += strlen(*ap); } putchar('\n'); exit(0); }