FreeCalypso > hg > freecalypso-tools
annotate target-utils/libcommon/buzzer.c @ 619:f82551c77e58
libserial-newlnx: ASYNC_LOW_LATENCY patch reverted
Reports from Das Signal indicate that loadtools performance on Debian
is about the same as on Slackware, and that including or omitting the
ASYNC_LOW_LATENCY patch from Serg makes no difference. Because the
patch in question does not appear to be necessary, it is being reverted
until and unless someone other than Serg reports an actual real-world
system on which loadtools operation times are slowed compared to the
Mother's Slackware reference and on which Slackware-like performance
can be restored by setting the ASYNC_LOW_LATENCY flag.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Thu, 27 Feb 2020 01:09:48 +0000 |
parents | 4be951811791 |
children |
rev | line source |
---|---|
36
29d0965ebf86
target-utils: buzzer exercising code written, added to c139explore
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 /* |
29d0965ebf86
target-utils: buzzer exercising code written, added to c139explore
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2 * Commands for exercising the Calypso's buzzer output, whatever |
29d0965ebf86
target-utils: buzzer exercising code written, added to c139explore
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
3 * actual hardware (piezo buzzer or vibrator) it may be driving |
29d0965ebf86
target-utils: buzzer exercising code written, added to c139explore
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
4 * on a given Calypso device. |
29d0965ebf86
target-utils: buzzer exercising code written, added to c139explore
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
5 */ |
29d0965ebf86
target-utils: buzzer exercising code written, added to c139explore
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
6 |
29d0965ebf86
target-utils: buzzer exercising code written, added to c139explore
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
7 #include <sys/types.h> |
29d0965ebf86
target-utils: buzzer exercising code written, added to c139explore
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
8 #include "types.h" |
29d0965ebf86
target-utils: buzzer exercising code written, added to c139explore
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
9 |
107
4be951811791
target-utils/libcommon: extern u_long strtoul(); added where needed
Mychaela Falconia <falcon@freecalypso.org>
parents:
36
diff
changeset
|
10 extern u_long strtoul(); |
4be951811791
target-utils/libcommon: extern u_long strtoul(); added where needed
Mychaela Falconia <falcon@freecalypso.org>
parents:
36
diff
changeset
|
11 |
36
29d0965ebf86
target-utils: buzzer exercising code written, added to c139explore
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
12 #define ARMIO_LOAD_TIM (*(volatile u16 *) 0xFFFE4808) |
29d0965ebf86
target-utils: buzzer exercising code written, added to c139explore
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
13 #define BUZZ_LIGHT_REG (*(volatile u16 *) 0xFFFE480E) |
29d0965ebf86
target-utils: buzzer exercising code written, added to c139explore
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
14 #define BUZZ_LEVEL_REG (*(volatile u16 *) 0xFFFE4812) |
29d0965ebf86
target-utils: buzzer exercising code written, added to c139explore
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
15 |
29d0965ebf86
target-utils: buzzer exercising code written, added to c139explore
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
16 void |
29d0965ebf86
target-utils: buzzer exercising code written, added to c139explore
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
17 cmd_buzlev(argbulk) |
29d0965ebf86
target-utils: buzzer exercising code written, added to c139explore
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
18 char *argbulk; |
29d0965ebf86
target-utils: buzzer exercising code written, added to c139explore
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
19 { |
29d0965ebf86
target-utils: buzzer exercising code written, added to c139explore
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
20 char *argv[2]; |
29d0965ebf86
target-utils: buzzer exercising code written, added to c139explore
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
21 u32 arg; |
29d0965ebf86
target-utils: buzzer exercising code written, added to c139explore
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
22 |
29d0965ebf86
target-utils: buzzer exercising code written, added to c139explore
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
23 if (parse_args(argbulk, 0, 1, argv, 0) < 0) |
29d0965ebf86
target-utils: buzzer exercising code written, added to c139explore
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
24 return; |
29d0965ebf86
target-utils: buzzer exercising code written, added to c139explore
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
25 if (argv[0]) { |
29d0965ebf86
target-utils: buzzer exercising code written, added to c139explore
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
26 arg = strtoul(argv[0], 0, 0); |
29d0965ebf86
target-utils: buzzer exercising code written, added to c139explore
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
27 if (arg > 0xFFFF) { |
29d0965ebf86
target-utils: buzzer exercising code written, added to c139explore
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
28 printf("ERROR: argument out of range\n"); |
29d0965ebf86
target-utils: buzzer exercising code written, added to c139explore
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
29 return; |
29d0965ebf86
target-utils: buzzer exercising code written, added to c139explore
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
30 } |
29d0965ebf86
target-utils: buzzer exercising code written, added to c139explore
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
31 BUZZ_LEVEL_REG = arg; |
29d0965ebf86
target-utils: buzzer exercising code written, added to c139explore
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
32 } else |
29d0965ebf86
target-utils: buzzer exercising code written, added to c139explore
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
33 printf("%04X\n", BUZZ_LEVEL_REG); |
29d0965ebf86
target-utils: buzzer exercising code written, added to c139explore
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
34 } |
29d0965ebf86
target-utils: buzzer exercising code written, added to c139explore
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
35 |
29d0965ebf86
target-utils: buzzer exercising code written, added to c139explore
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
36 void |
29d0965ebf86
target-utils: buzzer exercising code written, added to c139explore
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
37 cmd_buz(argbulk) |
29d0965ebf86
target-utils: buzzer exercising code written, added to c139explore
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
38 char *argbulk; |
29d0965ebf86
target-utils: buzzer exercising code written, added to c139explore
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
39 { |
29d0965ebf86
target-utils: buzzer exercising code written, added to c139explore
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
40 char *argv[2]; |
29d0965ebf86
target-utils: buzzer exercising code written, added to c139explore
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
41 u32 arg; |
29d0965ebf86
target-utils: buzzer exercising code written, added to c139explore
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
42 int c; |
29d0965ebf86
target-utils: buzzer exercising code written, added to c139explore
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
43 |
29d0965ebf86
target-utils: buzzer exercising code written, added to c139explore
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
44 if (parse_args(argbulk, 1, 1, argv, 0) < 0) |
29d0965ebf86
target-utils: buzzer exercising code written, added to c139explore
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
45 return; |
29d0965ebf86
target-utils: buzzer exercising code written, added to c139explore
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
46 arg = strtoul(argv[0], 0, 0); |
29d0965ebf86
target-utils: buzzer exercising code written, added to c139explore
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
47 if (arg > 0xFFFF) { |
29d0965ebf86
target-utils: buzzer exercising code written, added to c139explore
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
48 printf("ERROR: argument out of range\n"); |
29d0965ebf86
target-utils: buzzer exercising code written, added to c139explore
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
49 return; |
29d0965ebf86
target-utils: buzzer exercising code written, added to c139explore
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
50 } |
29d0965ebf86
target-utils: buzzer exercising code written, added to c139explore
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
51 ARMIO_LOAD_TIM = arg; |
29d0965ebf86
target-utils: buzzer exercising code written, added to c139explore
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
52 BUZZ_LIGHT_REG = 1; |
29d0965ebf86
target-utils: buzzer exercising code written, added to c139explore
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
53 for (;;) { |
29d0965ebf86
target-utils: buzzer exercising code written, added to c139explore
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
54 c = serial_in_poll(); |
29d0965ebf86
target-utils: buzzer exercising code written, added to c139explore
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
55 if (c >= 0) |
29d0965ebf86
target-utils: buzzer exercising code written, added to c139explore
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
56 break; |
29d0965ebf86
target-utils: buzzer exercising code written, added to c139explore
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
57 } |
29d0965ebf86
target-utils: buzzer exercising code written, added to c139explore
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
58 BUZZ_LIGHT_REG = 0; |
29d0965ebf86
target-utils: buzzer exercising code written, added to c139explore
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
59 } |