#define AO_PANIC_FLASH 9 /* Invalid flash part (or wrong blocksize) */
#define AO_PANIC_USB 10 /* Trying to send USB packet while busy */
#define AO_PANIC_BT 11 /* Communications with bluetooth device failed */
+#define AO_PANIC_STACK 12 /* Stack overflow */
/* Stop the operating system, beeping and blinking the reason */
void
};
void
-ao_cmd_register(__code struct ao_cmds *cmds);
+ao_cmd_register(const __code struct ao_cmds *cmds);
void
ao_cmd_init(void);
#error Please define HAS_SERIAL_1
#endif
-#if HAS_SERIAL_1
+#if HAS_SERIAL_1 | HAS_SERIAL_2 | HAS_SERIAL_3
#ifndef USE_SERIAL_STDIN
#error Please define USE_SERIAL_STDIN
#endif
ao_serial_pollchar(void) __critical;
void
-ao_serial_set_stdin(uint8_t stdin);
+ao_serial_set_stdin(uint8_t in);
#endif
void
ao_serial_init(void);
#endif
+#ifndef HAS_SERIAL_0
+#define HAS_SERIAL_0 0
+#endif
+
+#if HAS_SERIAL_0
+
+extern volatile __xdata struct ao_fifo ao_usart0_rx_fifo;
+extern volatile __xdata struct ao_fifo ao_usart0_tx_fifo;
+
+void
+ao_serial0_rx0_isr(void) ao_arch_interrupt(2);
+
+void
+ao_serial0_tx0_isr(void) ao_arch_interrupt(7);
+
+char
+ao_serial0_getchar(void) __critical;
+
+void
+ao_serial0_putchar(char c) __critical;
+
+void
+ao_serial0_drain(void) __critical;
+
+void
+ao_serial0_set_speed(uint8_t speed);
+
+void
+ao_serial0_init(void);
+
+#endif
+
+
/*
* ao_spi.c
*/
ao_radio_set_packet(void);
void
-ao_radio_send(__xdata void *data, uint8_t size) __reentrant;
+ao_radio_send(__xdata void *d, uint8_t size) __reentrant;
uint8_t
-ao_radio_recv(__xdata void *data, uint8_t size) __reentrant;
+ao_radio_recv(__xdata void *d, uint8_t size) __reentrant;
void
ao_radio_recv_abort(void);
struct ao_radio_channel {
char name[AO_CHANNEL_NAME_LEN];
uint32_t kHz;
- uint32_t radio_setting;
};
#endif
uint32_t radio_setting; /* minor version 7 */
uint8_t radio_enable; /* minor version 8 */
uint8_t aes_key[AO_AES_LEN]; /* minor version 9 */
+ uint32_t frequency; /* minor version 10 */
#if HAS_RADIO_CHANNELS
struct ao_radio_channel radio_channels[AO_NUM_CHANNELS]; /* minor version 10 */
#endif
/* ao_lcd.c */
void
-ao_lcd_putchar(uint8_t data);
+ao_lcd_putchar(uint8_t d);
void
ao_lcd_putstring(char *string);
/* ao_lcd_port.c */
void
-ao_lcd_port_put_nibble(uint8_t rs, uint8_t data);
+ao_lcd_port_put_nibble(uint8_t rs, uint8_t d);
void
ao_lcd_port_init(void);
/* ao_aes.c */
-__xdata uint8_t ao_aes_mutex;
+extern __xdata uint8_t ao_aes_mutex;
/* AES keys and blocks are 128 bits */
uint32_t
ao_sqrt(uint32_t op);
+/*
+ * ao_freq.c
+ */
+
+int32_t ao_freq_to_set(int32_t freq, int32_t cal);
+
#endif /* _AO_H_ */