FreeCalypso > hg > freecalypso-tools
annotate target-utils/loadagent/sertimeout.c @ 998:fb7442e3d430
CHANGES: mention flash write protection support
| author | Mychaela Falconia <falcon@freecalypso.org> | 
|---|---|
| date | Mon, 04 Dec 2023 02:17:54 +0000 | 
| parents | 880c6d31e487 | 
| children | 
| rev | line source | 
|---|---|
| 644 
69acf5e0a21d
loadagent: implemented sertimeout calibration command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1 /* | 
| 
69acf5e0a21d
loadagent: implemented sertimeout calibration command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 2 * Here we are going to implement a function for serial input with a timeout. | 
| 
69acf5e0a21d
loadagent: implemented sertimeout calibration command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 3 */ | 
| 
69acf5e0a21d
loadagent: implemented sertimeout calibration command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 4 | 
| 
69acf5e0a21d
loadagent: implemented sertimeout calibration command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 5 #include <stdlib.h> | 
| 
69acf5e0a21d
loadagent: implemented sertimeout calibration command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 6 | 
| 
69acf5e0a21d
loadagent: implemented sertimeout calibration command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 7 serial_in_timeout(count) | 
| 
69acf5e0a21d
loadagent: implemented sertimeout calibration command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 8 unsigned count; | 
| 
69acf5e0a21d
loadagent: implemented sertimeout calibration command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 9 { | 
| 
69acf5e0a21d
loadagent: implemented sertimeout calibration command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 10 int c; | 
| 
69acf5e0a21d
loadagent: implemented sertimeout calibration command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 11 | 
| 
69acf5e0a21d
loadagent: implemented sertimeout calibration command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 12 do | 
| 
69acf5e0a21d
loadagent: implemented sertimeout calibration command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 13 c = serial_in_poll(); | 
| 
69acf5e0a21d
loadagent: implemented sertimeout calibration command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 14 while (c < 0 && --count); | 
| 
69acf5e0a21d
loadagent: implemented sertimeout calibration command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 15 return c; | 
| 
69acf5e0a21d
loadagent: implemented sertimeout calibration command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 16 } | 
| 
69acf5e0a21d
loadagent: implemented sertimeout calibration command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 17 | 
| 
69acf5e0a21d
loadagent: implemented sertimeout calibration command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 18 void | 
| 
69acf5e0a21d
loadagent: implemented sertimeout calibration command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 19 cmd_sertimeout(argbulk) | 
| 
69acf5e0a21d
loadagent: implemented sertimeout calibration command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 20 char *argbulk; | 
| 
69acf5e0a21d
loadagent: implemented sertimeout calibration command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 21 { | 
| 
69acf5e0a21d
loadagent: implemented sertimeout calibration command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 22 char *argv[2]; | 
| 645 
880c6d31e487
loadagent sertimeout calibration command simplified
 Mychaela Falconia <falcon@freecalypso.org> parents: 
644diff
changeset | 23 int count; | 
| 644 
69acf5e0a21d
loadagent: implemented sertimeout calibration command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 24 | 
| 
69acf5e0a21d
loadagent: implemented sertimeout calibration command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 25 if (parse_args(argbulk, 1, 1, argv, 0) < 0) | 
| 
69acf5e0a21d
loadagent: implemented sertimeout calibration command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 26 return; | 
| 
69acf5e0a21d
loadagent: implemented sertimeout calibration command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 27 count = atoi(argv[0]); | 
| 645 
880c6d31e487
loadagent sertimeout calibration command simplified
 Mychaela Falconia <falcon@freecalypso.org> parents: 
644diff
changeset | 28 serial_in_timeout(count); | 
| 644 
69acf5e0a21d
loadagent: implemented sertimeout calibration command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 29 } | 
