This leaves the whole 8MB of flash for flight storage
Signed-off-by: Keith Packard <keithp@keithp.com>
_ao_config_put(void)
{
ao_config_setup();
_ao_config_put(void)
{
ao_config_setup();
- ao_config_write(&ao_config, sizeof (ao_config));
+ ao_config_erase();
+ ao_config_write(0, &ao_config, sizeof (ao_config));
#if HAS_FLIGHT
ao_log_write_erase(0);
#endif
#if HAS_FLIGHT
ao_log_write_erase(0);
#endif
* need before calling ao_storage_read here
*/
ao_config_setup();
* need before calling ao_storage_read here
*/
ao_config_setup();
- ao_config_read(&ao_config, sizeof (ao_config));
+ ao_config_read(0, &ao_config, sizeof (ao_config));
#endif
if (ao_config.major != AO_CONFIG_MAJOR) {
ao_config.major = AO_CONFIG_MAJOR;
#endif
if (ao_config.major != AO_CONFIG_MAJOR) {
ao_config.major = AO_CONFIG_MAJOR;
ao_config_log_set(void) __reentrant
{
uint16_t block = (uint16_t) (ao_storage_block >> 10);
ao_config_log_set(void) __reentrant
{
uint16_t block = (uint16_t) (ao_storage_block >> 10);
- uint16_t config = (uint16_t) (ao_storage_config >> 10);
+ uint16_t log_max = (uint16_t) (ao_storage_log_max >> 10);
ao_cmd_decimal();
if (ao_cmd_status != ao_cmd_success)
ao_cmd_decimal();
if (ao_cmd_status != ao_cmd_success)
printf("Storage must be empty before changing log size\n");
else if (block > 1024 && (ao_cmd_lex_i & (block - 1)))
printf("Flight log size must be multiple of %d kB\n", block);
printf("Storage must be empty before changing log size\n");
else if (block > 1024 && (ao_cmd_lex_i & (block - 1)))
printf("Flight log size must be multiple of %d kB\n", block);
- else if (ao_cmd_lex_i > config)
- printf("Flight log max %d kB\n", config);
+ else if (ao_cmd_lex_i > log_max)
+ printf("Flight log max %d kB\n", log_max);
else {
_ao_config_edit_start();
ao_config.flight_log_max = (uint32_t) ao_cmd_lex_i << 10;
else {
_ao_config_edit_start();
ao_config.flight_log_max = (uint32_t) ao_cmd_lex_i << 10;
#include <ao_storage.h>
#define ao_config_setup() ao_storage_setup()
#include <ao_storage.h>
#define ao_config_setup() ao_storage_setup()
-
-#define ao_config_write(bytes, len) do { \
- ao_storage_erase(ao_storage_config); \
- ao_storage_write(ao_storage_config, bytes, len); \
- } while (0)
-
-#define ao_config_read(bytes, len) ao_storage_read(ao_storage_config, bytes, len)
-
+#define ao_config_erase() ao_storage_erase(ao_storage_config)
+#define ao_config_write(pos,bytes, len) ao_storage_write(ao_storage_config+(pos), bytes, len)
+#define ao_config_read(pos,bytes, len) ao_storage_read(ao_storage_config+(pos), bytes, len)
#define ao_config_flush() ao_storage_flush()
#endif
#define ao_config_flush() ao_storage_flush()
#endif
#include <ao_eeprom.h>
#define ao_config_setup()
#include <ao_eeprom.h>
#define ao_config_setup()
-#define ao_config_write(bytes, len) ao_eeprom_write(0, bytes, len)
-#define ao_config_read(bytes, len) ao_eeprom_read(0, bytes, len)
+#define ao_config_erase()
+#define ao_config_write(pos,bytes, len) ao_eeprom_write(pos, bytes, len)
+#define ao_config_read(pos,bytes, len) ao_eeprom_read(pos, bytes, len)
#define ao_config_flush()
#endif
#define ao_config_flush()
#endif
#include "ao.h"
#include <ao_log.h>
#include "ao.h"
#include <ao_log.h>
__pdata uint32_t ao_log_current_pos;
__pdata uint32_t ao_log_end_pos;
__pdata uint32_t ao_log_current_pos;
__pdata uint32_t ao_log_end_pos;
static uint32_t
ao_log_erase_pos(uint8_t i)
{
static uint32_t
ao_log_erase_pos(uint8_t i)
{
- return i * sizeof (struct ao_log_erase) + AO_STORAGE_ERASE_LOG;
+ return i * sizeof (struct ao_log_erase);
{
erase.unused = 0x00;
erase.flight = ao_flight_number;
{
erase.unused = 0x00;
erase.flight = ao_flight_number;
- ao_storage_write(ao_log_erase_pos(pos), &erase, sizeof (erase));
- ao_storage_flush();
+ ao_config_write(ao_log_erase_pos(pos), &erase, sizeof (erase));
+ ao_config_flush();
}
static void
ao_log_read_erase(uint8_t pos)
{
}
static void
ao_log_read_erase(uint8_t pos)
{
- ao_storage_read(ao_log_erase_pos(pos), &erase, sizeof (erase));
+ ao_config_read(ao_log_erase_pos(pos), &erase, sizeof (erase));
static uint8_t
ao_log_slots()
{
static uint8_t
ao_log_slots()
{
- return (uint8_t) (ao_storage_config / ao_config.flight_log_max);
+ return (uint8_t) (ao_storage_log_max / ao_config.flight_log_max);
ao_m25.c \
ao_usb_stm.c \
ao_exti_stm.c \
ao_m25.c \
ao_usb_stm.c \
ao_exti_stm.c \
ao_report.c \
ao_convert_pa.c \
ao_log.c \
ao_report.c \
ao_convert_pa.c \
ao_log.c \
#define SERIAL_3_PC10_PC11 0
#define SERIAL_3_PD8_PD9 0
#define SERIAL_3_PC10_PC11 0
#define SERIAL_3_PD8_PD9 0
+#define AO_CONFIG_DEFAULT_FLIGHT_LOG_MAX (512 * 1024)
#define HAS_EEPROM 1
#define USE_INTERNAL_FLASH 0
#define HAS_EEPROM 1
#define USE_INTERNAL_FLASH 0
+#define USE_EEPROM_CONFIG 1
+#define USE_STORAGE_CONFIG 0
#define HAS_USB 1
#define HAS_BEEP 1
#define BEEPER_CHANNEL 4
#define HAS_USB 1
#define HAS_BEEP 1
#define BEEPER_CHANNEL 4
ao_mma655x_init();
#endif
ao_mma655x_init();
#endif
ao_storage_init();
ao_flight_init();
ao_storage_init();
ao_flight_init();