#include "ao.h"
__xdata struct ao_config ao_config;
-__xdata uint8_t ao_config_loaded;
-__xdata uint8_t ao_config_dirty;
+__pdata uint8_t ao_config_loaded;
+__pdata uint8_t ao_config_dirty;
__xdata uint8_t ao_config_mutex;
#define AO_CONFIG_DEFAULT_MAIN_DEPLOY 250
ao_config_callsign_set(void) __reentrant
{
uint8_t c;
- char callsign[AO_MAX_CALLSIGN + 1];
+ static __xdata char callsign[AO_MAX_CALLSIGN + 1];
+ memset(callsign, '\0', sizeof callsign);
ao_cmd_white();
c = 0;
while (ao_cmd_lex_c != '\n') {
return;
ao_mutex_get(&ao_config_mutex);
_ao_config_get();
- while (c < AO_MAX_CALLSIGN + 1)
- callsign[c++] = '\0';
memcpy(&ao_config.callsign, &callsign,
AO_MAX_CALLSIGN + 1);
ao_config_dirty = 1;
#endif /* HAS_EEPROM */
struct ao_config_var {
- const char *str;
+ __code char *str;
void (*set)(void) __reentrant;
void (*show)(void) __reentrant;
};