Sysparam by @foogod (#180)
* Sysparam implementation sysparam improvements Mostly done, a few minor cleanups left. Add sysparam_editor example Sysparam code cleanup Add documentation to sysparam.h Fix up sysparam.h docs Added a couple more debug statements Fix potential memory leak if realloc() fails Major sysparam overhaul Add sysparam_get_info function Add sysparam initialization to app_main.c * Fixed warnings, added license
This commit is contained in:
parent
b07c34b863
commit
40dc3bf945
6 changed files with 1740 additions and 0 deletions
|
|
@ -28,6 +28,7 @@
|
|||
#include "espressif/phy_info.h"
|
||||
#include "sdk_internal.h"
|
||||
#include "esplibs/libmain.h"
|
||||
#include "sysparam.h"
|
||||
|
||||
/* This is not declared in any header file (but arguably should be) */
|
||||
|
||||
|
|
@ -141,6 +142,8 @@ void IRAM sdk_user_start(void) {
|
|||
uint32_t cksum_len;
|
||||
uint32_t cksum_value;
|
||||
uint32_t ic_flash_addr;
|
||||
uint32_t sysparam_addr;
|
||||
sysparam_status_t status;
|
||||
|
||||
SPI(0).USER0 |= SPI_USER0_CS_SETUP;
|
||||
sdk_SPIRead(0, buf32, 4);
|
||||
|
|
@ -206,6 +209,20 @@ void IRAM sdk_user_start(void) {
|
|||
}
|
||||
memcpy(&sdk_g_ic.s, buf32, sizeof(struct sdk_g_ic_saved_st));
|
||||
|
||||
// By default, put the sysparam region just below the config sectors at the
|
||||
// top of the flash space
|
||||
sysparam_addr = flash_size - (4 + DEFAULT_SYSPARAM_SECTORS) * sdk_flashchip.sector_size;
|
||||
status = sysparam_init(sysparam_addr, flash_size);
|
||||
if (status == SYSPARAM_NOTFOUND) {
|
||||
status = sysparam_create_area(sysparam_addr, DEFAULT_SYSPARAM_SECTORS, false);
|
||||
if (status == SYSPARAM_OK) {
|
||||
status = sysparam_init(sysparam_addr, 0);
|
||||
}
|
||||
}
|
||||
if (status != SYSPARAM_OK) {
|
||||
printf("WARNING: Could not initialize sysparams (%d)!\n", status);
|
||||
}
|
||||
|
||||
user_start_phase2();
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue