Store the configuration on the SD card

This commit is contained in:
2015-08-13 14:10:09 +00:00
parent 53a8072424
commit d0f9f46f9c
16 changed files with 271 additions and 26 deletions

View File

@@ -6,6 +6,7 @@
#include "timer.h"
#include "event.h"
#include "log.h"
#include "config.h"
#define spi_write_array(x) spi_write_bytes(x, sizeof(x)/sizeof(x[0]))
@@ -492,6 +493,7 @@ void sdcard_prepare(void)
{
unsigned int magic;
unsigned int start_sector;
unsigned int config_sector;
unsigned int count;
if (!sdcard_read(0, log_buffer, 512))
@@ -506,10 +508,12 @@ void sdcard_prepare(void)
WRITE_UINT(log_buffer, 0, LOG_MAGIC);
start_sector = SDCARD_BOUNDARY_SIZE;
log_generation = 0;
config_sector = 1;
putstr("Did not find header. Formatting.\r\n");
} else {
start_sector = READ_UINT(log_buffer, 4);
log_generation = READ_UINT(log_buffer, 8);
config_sector = READ_UINT(log_buffer, 12);
count = 0;
putstr("Found header.\r\n");
putstr("Last started at sector ");
@@ -539,6 +543,7 @@ void sdcard_prepare(void)
WRITE_UINT(log_buffer, 4, start_sector);
WRITE_UINT(log_buffer, 8, log_generation);
WRITE_UINT(log_buffer, 12, config_sector);
putstr("Starting at sector ");
putint(start_sector);
@@ -551,7 +556,13 @@ void sdcard_prepare(void)
sdcard_sector = start_sector;
sdcard_offset = 0;
if (!sdcard_read(config_sector, log_buffer, 512))
return;
log_enabled = TRUE;
config_init(log_buffer);
}