X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Fao.h;h=8db22799f24df6fca7ec59fb30cc54416572d504;hb=68b2b66d7574dfd0bd5e3571b8ffad32ca5d2b73;hp=a2dfadd00fb72438f302865cc73059eabd53e9d9;hpb=544003a8da0248fd6f3c62ded86af74ab7cdadf6;p=fw%2Faltos diff --git a/src/ao.h b/src/ao.h index a2dfadd0..8db22799 100644 --- a/src/ao.h +++ b/src/ao.h @@ -289,6 +289,18 @@ ao_led_for(uint8_t colors, uint16_t ticks) __reentrant; void ao_led_init(uint8_t enable); +/* + * ao_romconfig.c + */ + +#define AO_ROMCONFIG_VERSION 2 + +extern __code __at (0x00a0) uint16_t ao_romconfig_version; +extern __code __at (0x00a2) uint16_t ao_romconfig_check; +extern __code __at (0x00a4) uint16_t ao_serial_number; +extern __code __at (0x00a6) uint32_t ao_radio_cal; +extern __code __at (0x00aa) uint8_t ao_usb_descriptors []; + /* * ao_usb.c */ @@ -552,6 +564,7 @@ struct ao_log_record { uint8_t year; uint8_t month; uint8_t day; + uint8_t extra; } gps_date; struct { uint16_t d0; @@ -561,8 +574,8 @@ struct ao_log_record { }; /* Write a record to the eeprom log */ -void -ao_log_data(struct ao_log_record *log); +uint8_t +ao_log_data(__xdata struct ao_log_record *log) __reentrant; /* Flush the log */ void @@ -804,7 +817,7 @@ ao_gps_report_init(void); */ #define AO_MAX_CALLSIGN 8 -#define AO_TELEMETRY_VERSION 2 +#define AO_TELEMETRY_VERSION 3 struct ao_telemetry { uint8_t addr; @@ -997,8 +1010,7 @@ ao_rssi_init(uint8_t rssi_led); * each instance of a product */ -extern const uint8_t ao_usb_descriptors []; -extern const uint16_t ao_serial_number; +extern __code __at(0x00aa) uint8_t ao_usb_descriptors []; extern const char ao_version[]; extern const char ao_manufacturer[]; extern const char ao_product[]; @@ -1034,7 +1046,7 @@ struct ao_fifo { * Packet-based command interface */ -#define AO_PACKET_MAX 8 +#define AO_PACKET_MAX 64 #define AO_PACKET_SYN (uint8_t) 0xff struct ao_packet { @@ -1043,6 +1055,7 @@ struct ao_packet { uint8_t seq; uint8_t ack; uint8_t d[AO_PACKET_MAX]; + uint8_t callsign[AO_MAX_CALLSIGN]; }; struct ao_packet_recv {