__reentrant causes the compiler to place args and locals on the stack
instead of in the data segment.
Signed-off-by: Keith Packard <keithp@keithp.com>
+ao_adc_dump(void) __reentrant
- __xdata struct ao_adc packet;
+ static __xdata struct ao_adc packet;
ao_adc_get(&packet);
printf("tick: %5u accel: %4d pres: %4d temp: %4d batt: %4d drogue: %4d main: %4d\n",
packet.tick, packet.accel >> 4, packet.pres >> 4, packet.temp >> 4,
ao_adc_get(&packet);
printf("tick: %5u accel: %4d pres: %4d temp: %4d batt: %4d drogue: %4d main: %4d\n",
packet.tick, packet.accel >> 4, packet.pres >> 4, packet.temp >> 4,
+ee_dump(void) __reentrant
- __xdata uint8_t b;
- __xdata uint16_t block;
- __xdata uint8_t i;
+ uint8_t b;
+ uint16_t block;
+ uint8_t i;
ao_cmd_hex();
block = ao_cmd_lex_i;
ao_cmd_hex();
block = ao_cmd_lex_i;
+ee_store(void) __reentrant
- __xdata uint16_t block;
- __xdata uint8_t i;
- __xdata uint16_t len;
- __xdata uint8_t b;
- __xdata uint32_t addr;
+ uint16_t block;
+ uint8_t i;
+ uint16_t len;
+ uint8_t b;
+ uint32_t addr;
ao_cmd_hex();
block = ao_cmd_lex_i;
ao_cmd_hex();
block = ao_cmd_lex_i;
#define AO_VEL_COUNT_TO_MS(count) ((int16_t) ((count) / 2700))
static void
#define AO_VEL_COUNT_TO_MS(count) ((int16_t) ((count) / 2700))
static void
+ao_flight_status(void) __reentrant
{
printf("STATE: %7s accel: %d speed: %d altitude: %d main: %d\n",
ao_state_names[ao_flight_state],
{
printf("STATE: %7s accel: %d speed: %d altitude: %d main: %d\n",
ao_state_names[ao_flight_state],
-ao_sirf_set_message_rate(uint8_t msg, uint8_t rate)
+ao_sirf_set_message_rate(uint8_t msg, uint8_t rate) __reentrant
{
uint16_t cksum = 0x00a6;
uint8_t i;
{
uint16_t cksum = 0x00a6;
uint8_t i;
+dump_log(void) __reentrant
__xdata uint8_t ao_usb_ep0_in_len;
__xdata uint8_t ao_usb_ep0_in_buf[2];
__xdata uint8_t ao_usb_ep0_out_len;
__xdata uint8_t ao_usb_ep0_in_len;
__xdata uint8_t ao_usb_ep0_in_buf[2];
__xdata uint8_t ao_usb_ep0_out_len;
-__xdata uint8_t *__data ao_usb_ep0_out_data;
+__xdata uint8_t *__xdata ao_usb_ep0_out_data;
__xdata uint8_t ao_usb_configuration;
/* Send an IN data packet */
__xdata uint8_t ao_usb_configuration;
/* Send an IN data packet */