summaryrefslogtreecommitdiff
path: root/src/core
diff options
context:
space:
mode:
authorMike Beattie <mike@ethernal.org>2012-08-08 06:46:56 +1200
committerMike Beattie <mike@ethernal.org>2012-08-08 06:46:56 +1200
commitbd02349111ae0f39b320e6a10a330051ddc39fdf (patch)
treeab7a29204eea195db77aa302fbe3e2012ef5049e /src/core
parent8e4ebd1f6eb928b5cb7bcda4ed88851aa9e61bdf (diff)
parentc7f228503870c44dfd278ede8b0980dbac73d3c7 (diff)
Merge branch 'master' of git://git.gag.com/fw/altos
Diffstat (limited to 'src/core')
-rw-r--r--src/core/ao.h14
-rw-r--r--src/core/ao_aes.h2
-rw-r--r--src/core/ao_config.c3
-rw-r--r--src/core/ao_radio_cmac.c8
-rw-r--r--src/core/ao_storage.c1
5 files changed, 23 insertions, 5 deletions
diff --git a/src/core/ao.h b/src/core/ao.h
index 65b9eb18..5e1fbb9d 100644
--- a/src/core/ao.h
+++ b/src/core/ao.h
@@ -125,7 +125,12 @@ ao_panic(uint8_t reason);
* ao_timer.c
*/
-extern volatile __data uint16_t ao_tick_count;
+#ifndef AO_TICK_TYPE
+#define AO_TICK_TYPE uint16_t
+#define AO_TICK_SIGNED int16_t
+#endif
+
+extern volatile __data AO_TICK_TYPE ao_tick_count;
/* Our timer runs at 100Hz */
#define AO_HERTZ 100
@@ -432,6 +437,7 @@ ao_gps_report_mega_init(void);
* ao_telemetry_orig.c
*/
+#if LEGACY_MONITOR
struct ao_adc_orig {
uint16_t tick; /* tick when the sample was read */
int16_t accel; /* accelerometer */
@@ -489,6 +495,8 @@ struct ao_telemetry_tiny_recv {
uint8_t status;
};
+#endif /* LEGACY_MONITOR */
+
/* Unfortunately, we've exposed the CC1111 rssi units as the 'usual' method
* for reporting RSSI. So, now we use these values everywhere
*/
@@ -582,6 +590,8 @@ ao_radio_init(void);
* ao_monitor.c
*/
+#if HAS_MONITOR
+
extern const char const * const ao_state_names[];
#define AO_MONITOR_RING 8
@@ -618,6 +628,8 @@ ao_monitor_enable(void);
void
ao_monitor_init(void) __reentrant;
+#endif
+
/*
* ao_stdio.c
*/
diff --git a/src/core/ao_aes.h b/src/core/ao_aes.h
index 7f67374d..ab3e367e 100644
--- a/src/core/ao_aes.h
+++ b/src/core/ao_aes.h
@@ -29,9 +29,11 @@ enum ao_aes_mode {
};
#if HAS_AES
+#ifdef SDCC
void
ao_aes_isr(void) __interrupt 4;
#endif
+#endif
void
ao_aes_set_mode(enum ao_aes_mode mode);
diff --git a/src/core/ao_config.c b/src/core/ao_config.c
index e2095e65..f19dd9cd 100644
--- a/src/core/ao_config.c
+++ b/src/core/ao_config.c
@@ -17,8 +17,11 @@
#include "ao.h"
#include "ao_log.h"
+#include <ao_storage.h>
+#if HAS_FLIGHT
#include <ao_sample.h>
#include <ao_data.h>
+#endif
__xdata struct ao_config ao_config;
__pdata uint8_t ao_config_loaded;
diff --git a/src/core/ao_radio_cmac.c b/src/core/ao_radio_cmac.c
index e263f0db..7a377002 100644
--- a/src/core/ao_radio_cmac.c
+++ b/src/core/ao_radio_cmac.c
@@ -121,7 +121,7 @@ radio_cmac_recv(uint8_t len, uint16_t timeout) __reentrant
}
ao_radio_cmac_rssi = (int16_t) (((int8_t) cmac_data[len + AO_CMAC_KEY_LEN]) >> 1) - 74;
- if (!(cmac_data[len + AO_CMAC_KEY_LEN +1] & PKT_APPEND_STATUS_1_CRC_OK))
+ if (!(cmac_data[len + AO_CMAC_KEY_LEN +1] & AO_RADIO_STATUS_CRC_OK))
return AO_RADIO_CMAC_CRC_ERROR;
ao_config_get();
@@ -233,9 +233,9 @@ radio_cmac_recv_cmd(void) __reentrant
static __xdata struct ao_launch_command command;
static __xdata struct ao_launch_query query;
-static pdata uint16_t launch_serial;
-static pdata uint8_t launch_channel;
-static pdata uint16_t tick_offset;
+static __pdata uint16_t launch_serial;
+static __pdata uint8_t launch_channel;
+static __pdata uint16_t tick_offset;
static void
launch_args(void) __reentrant
diff --git a/src/core/ao_storage.c b/src/core/ao_storage.c
index b2dd435b..adf7e4d4 100644
--- a/src/core/ao_storage.c
+++ b/src/core/ao_storage.c
@@ -16,6 +16,7 @@
*/
#include <ao.h>
+#include <ao_storage.h>
uint8_t
ao_storage_read(ao_pos_t pos, __xdata void *buf, uint16_t len) __reentrant