altos: Expose cc1200 radio test functions for telemini bringup
authorKeith Packard <keithp@keithp.com>
Wed, 27 Jul 2016 20:24:57 +0000 (13:24 -0700)
committerKeith Packard <keithp@keithp.com>
Wed, 27 Jul 2016 20:24:57 +0000 (13:24 -0700)
This exposes the cc1200 radio test function so we can load special
test firmware in telemini to do the radio cal as it has no USB to
perform that interactively.

Signed-off-by: Keith Packard <keithp@keithp.com>
src/cc1111/ao_radio.c
src/drivers/ao_cc1200.c
src/kernel/ao.h

index ad337fc586cd7475e5d97609a77af6fe73d50de9..166d14d5e9e67cd5e4b92828714bb0bc64af0342 100644 (file)
@@ -588,13 +588,13 @@ ao_radio_rdf_abort(void)
 
 /* Output carrier */
 
-static __xdata ao_radio_test_on;
+static __xdata radio_test_on;
 
 void
 ao_radio_test(uint8_t on)
 {
        if (on) {
-               if (!ao_radio_test_on) {
+               if (!radio_test_on) {
 #if HAS_MONITOR
                        ao_monitor_disable();
 #endif
@@ -606,13 +606,13 @@ ao_radio_test(uint8_t on)
 #endif
                        ao_radio_get(0xff);
                        RFST = RFST_STX;
-                       ao_radio_test_on = 1;
+                       radio_test_on = 1;
                }
        } else  {
-               if (ao_radio_test_on) {
+               if (radio_test_on) {
                        ao_radio_idle();
                        ao_radio_put();
-                       ao_radio_test_on = 0;
+                       radio_test_on = 0;
 #if HAS_MONITOR
                        ao_monitor_enable();
 #endif
index 1f2a3ba9e0ded765fc67488ce98eae0a5800b9a7..2bc997348b8b47375f258842a96a3067f9e2aff6 100644 (file)
@@ -803,18 +803,12 @@ ao_radio_rdf_abort(void)
        ao_wakeup(&ao_radio_wake);
 }
 
-static void
-ao_radio_test_cmd(void)
+static uint8_t radio_on;
+
+void
+ao_radio_test_on(void)
 {
-       uint8_t mode = 2;
-       static uint8_t radio_on;
-       ao_cmd_white();
-       if (ao_cmd_lex_c != '\n') {
-               ao_cmd_decimal();
-               mode = (uint8_t) ao_cmd_lex_u32;
-       }
-       mode++;
-       if ((mode & 2) && !radio_on) {
+       if (!radio_on) {
 #if HAS_MONITOR
                ao_monitor_disable();
 #endif
@@ -837,12 +831,12 @@ ao_radio_test_cmd(void)
 #endif
                radio_on = 1;
        }
-       if (mode == 3) {
-               printf ("Hit a character to stop..."); flush();
-               getchar();
-               putchar('\n');
-       }
-       if ((mode & 1) && radio_on) {
+}
+
+void
+ao_radio_test_off(void)
+{
+       if (radio_on) {
                ao_radio_idle();
                ao_radio_put();
                radio_on = 0;
@@ -855,6 +849,27 @@ ao_radio_test_cmd(void)
        }
 }
 
+static void
+ao_radio_test_cmd(void)
+{
+       uint8_t mode = 2;
+       ao_cmd_white();
+       if (ao_cmd_lex_c != '\n') {
+               ao_cmd_decimal();
+               mode = (uint8_t) ao_cmd_lex_u32;
+       }
+       mode++;
+       if ((mode & 2))
+               ao_radio_test_on();
+       if (mode == 3) {
+               printf ("Hit a character to stop..."); flush();
+               getchar();
+               putchar('\n');
+       }
+       if ((mode & 1))
+               ao_radio_test_off();
+}
+
 void
 ao_radio_send(const void *d, uint8_t size)
 {
index 50fd065f4dd5da38bd916853348edf23cf766814..fb41d7a9ff8b024ac133f879cdac222d5ec05b3e 100644 (file)
@@ -640,6 +640,12 @@ ao_radio_continuity(uint8_t c);
 void
 ao_radio_rdf_abort(void);
 
+void
+ao_radio_test_on(void);
+
+void
+ao_radio_test_off(void);
+
 void
 ao_radio_init(void);