summaryrefslogtreecommitdiff
path: root/src/cc1111
diff options
context:
space:
mode:
Diffstat (limited to 'src/cc1111')
-rw-r--r--src/cc1111/ao_adc.c2
-rw-r--r--src/cc1111/ao_arch.h17
-rw-r--r--src/cc1111/ao_intflash.c2
-rw-r--r--src/cc1111/ao_packet.c4
-rw-r--r--src/cc1111/ao_packet_master.c2
-rw-r--r--src/cc1111/ao_packet_slave.c2
6 files changed, 23 insertions, 6 deletions
diff --git a/src/cc1111/ao_adc.c b/src/cc1111/ao_adc.c
index 6aa6e018..1688eceb 100644
--- a/src/cc1111/ao_adc.c
+++ b/src/cc1111/ao_adc.c
@@ -46,7 +46,7 @@ ao_adc_get(__xdata struct ao_adc *packet)
#else
uint8_t i = ao_adc_ring_prev(ao_adc_head);
#endif
- memcpy(packet, &ao_adc_ring[i], sizeof (struct ao_adc));
+ ao_xmemcpy(packet, &ao_adc_ring[i], sizeof (struct ao_adc));
}
void
diff --git a/src/cc1111/ao_arch.h b/src/cc1111/ao_arch.h
index 8a41791f..02e36189 100644
--- a/src/cc1111/ao_arch.h
+++ b/src/cc1111/ao_arch.h
@@ -204,4 +204,21 @@ struct ao_adc {
#define AO_ADC_RING 32
+/* ao_string.c */
+
+void
+_ao_xmemcpy(__xdata uint8_t *dst, __xdata uint8_t *src, uint8_t count);
+
+#define ao_xmemcpy(d,s,c) _ao_xmemcpy((__xdata uint8_t *) (d), (__xdata uint8_t *) (s), (c))
+
+void
+_ao_xmemset(__xdata uint8_t *dst, uint8_t value, uint8_t count);
+
+#define ao_xmemset(d,v,c) _ao_xmemset((__xdata uint8_t *) (d), (v), (c))
+
+int8_t
+_ao_xmemcmp(__xdata uint8_t *a, __xdata uint8_t *b, uint8_t count);
+
+#define ao_xmemcmp(d,s,c) _ao_xmemcmp((__xdata uint8_t *) (d), (__xdata uint8_t *) (s), (c))
+
#endif /* _AO_ARCH_H_ */
diff --git a/src/cc1111/ao_intflash.c b/src/cc1111/ao_intflash.c
index d76d954e..632e2a85 100644
--- a/src/cc1111/ao_intflash.c
+++ b/src/cc1111/ao_intflash.c
@@ -180,7 +180,7 @@ ao_storage_device_read(uint32_t pos, __xdata void *d, uint16_t len) __reentrant
{
if (pos >= ao_storage_total || pos + len > ao_storage_total)
return 0;
- memcpy(d, ao_intflash+pos, len);
+ ao_xmemcpy(d, ao_intflash+pos, len);
return 1;
}
diff --git a/src/cc1111/ao_packet.c b/src/cc1111/ao_packet.c
index f627e02b..37ba92e0 100644
--- a/src/cc1111/ao_packet.c
+++ b/src/cc1111/ao_packet.c
@@ -35,7 +35,7 @@ ao_packet_send(void)
ao_led_on(AO_LED_RED);
/* If any tx data is pending then copy it into the tx packet */
if (ao_packet_tx_used && ao_tx_packet.len == 0) {
- memcpy(&ao_tx_packet.d, tx_data, ao_packet_tx_used);
+ ao_xmemcpy(&ao_tx_packet.d, tx_data, ao_packet_tx_used);
ao_tx_packet.len = ao_packet_tx_used;
ao_tx_packet.seq++;
ao_packet_tx_used = 0;
@@ -80,7 +80,7 @@ ao_packet_recv(void)
/* Copy data to the receive data buffer and set up the
* offsets
*/
- memcpy(rx_data, ao_rx_packet.packet.d, ao_rx_packet.packet.len);
+ ao_xmemcpy(rx_data, ao_rx_packet.packet.d, ao_rx_packet.packet.len);
ao_packet_rx_used = 0;
ao_packet_rx_len = ao_rx_packet.packet.len;
diff --git a/src/cc1111/ao_packet_master.c b/src/cc1111/ao_packet_master.c
index 0d0be30e..ab19f979 100644
--- a/src/cc1111/ao_packet_master.c
+++ b/src/cc1111/ao_packet_master.c
@@ -81,7 +81,7 @@ ao_packet_master(void)
ao_packet_master_delay = AO_PACKET_MASTER_DELAY_SHORT;
while (ao_packet_enable) {
uint8_t r;
- memcpy(ao_tx_packet.callsign, ao_config.callsign, AO_MAX_CALLSIGN);
+ ao_xmemcpy(ao_tx_packet.callsign, ao_config.callsign, AO_MAX_CALLSIGN);
ao_packet_send();
if (ao_tx_packet.len)
ao_packet_master_busy();
diff --git a/src/cc1111/ao_packet_slave.c b/src/cc1111/ao_packet_slave.c
index d7cafa68..fd5d443e 100644
--- a/src/cc1111/ao_packet_slave.c
+++ b/src/cc1111/ao_packet_slave.c
@@ -24,7 +24,7 @@ ao_packet_slave(void)
ao_tx_packet.len = AO_PACKET_SYN;
while (ao_packet_enable) {
if (ao_packet_recv()) {
- memcpy(&ao_tx_packet.callsign, &ao_rx_packet.packet.callsign, AO_MAX_CALLSIGN);
+ ao_xmemcpy(&ao_tx_packet.callsign, &ao_rx_packet.packet.callsign, AO_MAX_CALLSIGN);
#if HAS_FLIGHT
ao_flight_force_idle = TRUE;
#endif