ADD library update-client
This commit is contained in:
@@ -1,8 +1,10 @@
|
||||
#include "mbed.h"
|
||||
#include "FlashIAPBlockDevice.h"
|
||||
#include "update-client/block_device_application.hpp"
|
||||
|
||||
#include "mbed_trace.h"
|
||||
#if MBED_CONF_MBED_TRACE_ENABLE
|
||||
#define TRACE_GROUP "bootloader"
|
||||
#define TRACE_GROUP "BOOTLOADER"
|
||||
#endif // MBED_CONF_MBED_TRACE_ENABLE
|
||||
|
||||
#if MBED_CONF_MBED_TRACE_ENABLE
|
||||
@@ -22,14 +24,30 @@ int main() {
|
||||
mbed_trace_print_function_set(boot_debug);
|
||||
#endif // MBED_CONF_MBED_TRACE_ENABLE
|
||||
|
||||
tr_debug("BikeComputer bootloader\r\n");
|
||||
tr_debug("BikeComputer bootloader\r");
|
||||
|
||||
// at this stage we directly branch to the main application
|
||||
void *sp = *((void **) POST_APPLICATION_ADDR + 0); // NOLINT(readability/casting)
|
||||
void *pc = *((void **) POST_APPLICATION_ADDR + 1); // NOLINT(readability/casting)
|
||||
tr_debug("Starting application at address 0x%08x (sp 0x%08x, pc 0x%08x)\r\n", POST_APPLICATION_ADDR, (uint32_t) sp, (uint32_t) pc);
|
||||
FlashIAPBlockDevice flashIAPBlockDevice(MBED_ROM_START, MBED_ROM_SIZE);
|
||||
int ret = flashIAPBlockDevice.init();
|
||||
if(ret == 0) {
|
||||
update_client::BlockDeviceApplication app(flashIAPBlockDevice, HEADER_ADDR - MBED_ROM_START, POST_APPLICATION_ADDR - MBED_ROM_START); //MBED_CONF_UPDATE_CLIENT_STORAGE_ADDRESS);//
|
||||
tr_debug("Checking active application\n");
|
||||
|
||||
mbed_start_application(POST_APPLICATION_ADDR);
|
||||
tr_debug("MBED_ROM_START : 0x%08x", MBED_ROM_START);
|
||||
tr_debug("MBED_ROM_SIZE : 0x%08x", MBED_ROM_SIZE);
|
||||
tr_debug("HEADER_ADDR : 0x%08x", HEADER_ADDR);
|
||||
tr_debug("APPLICATION_ADDR : 0x%08x", APPLICATION_ADDR);
|
||||
tr_debug("POST_APPLICATION_ADDR : 0x%08x\n", POST_APPLICATION_ADDR);
|
||||
|
||||
return 0;
|
||||
update_client::UCErrorCode ret = app.checkApplication();
|
||||
if(ret == update_client::UCErrorCode::UC_ERR_NONE) {
|
||||
tr_debug("Application is valid");
|
||||
void *sp = *((void **) POST_APPLICATION_ADDR + 0); // NOLINT(readability/casting)
|
||||
void *pc = *((void **) POST_APPLICATION_ADDR + 1); // NOLINT(readability/casting)
|
||||
tr_debug("Starting application at address 0x%08x (sp 0x%08x, pc 0x%08x)", POST_APPLICATION_ADDR, (uint32_t) sp, (uint32_t) pc);
|
||||
mbed_start_application(POST_APPLICATION_ADDR);
|
||||
}
|
||||
tr_error("Error on check of the application");
|
||||
}
|
||||
tr_error("Error on init flash IAP block device");
|
||||
return -1;
|
||||
}
|
||||
Reference in New Issue
Block a user