Store the configuration on the SD card
This commit is contained in:
11
sdcard.c
11
sdcard.c
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user