diff --git a/app/include/rom.h b/app/include/rom.h index 80168fff..7de1c5e0 100644 --- a/app/include/rom.h +++ b/app/include/rom.h @@ -147,4 +147,7 @@ void srand(unsigned int); void uart_div_modify(int no, unsigned int freq); +/* Returns 0 on success, 1 on failure */ +uint8_t SPIRead(uint32_t src_addr, uint32_t *des_addr, uint32_t size); + #endif diff --git a/app/user/Makefile b/app/user/Makefile index 3744f4ee..50da583a 100644 --- a/app/user/Makefile +++ b/app/user/Makefile @@ -15,6 +15,7 @@ ifndef PDIR GEN_LIBS = libuser.a endif +STD_CFLAGS=-std=gnu11 -Wimplicit ############################################################# # Configuration i.e. compile options etc. diff --git a/app/user/user_exceptions.h b/app/user/user_exceptions.h index ae9be64e..c1611a21 100644 --- a/app/user/user_exceptions.h +++ b/app/user/user_exceptions.h @@ -3,3 +3,4 @@ #include void load_non_32_wide_handler (struct exception_frame *ef, uint32_t cause) TEXT_SECTION_ATTR; +void __real__xtos_set_exception_handler (uint32_t cause, exception_handler_fn fn); diff --git a/app/user/user_main.c b/app/user/user_main.c index def44315..c4b9d367 100644 --- a/app/user/user_main.c +++ b/app/user/user_main.c @@ -13,6 +13,7 @@ #include "c_string.h" #include "c_stdlib.h" #include "flash_fs.h" +#include "flash_api.h" #include "user_interface.h" #include "user_exceptions.h" #include "user_modules.h" @@ -69,7 +70,7 @@ void TEXT_SECTION_ATTR user_start_trampoline (void) * terse and not as readable as one might like. */ SPIFlashInfo sfi; - SPIRead (0, &sfi, sizeof (sfi)); // Cache read not enabled yet, safe to use + SPIRead (0, (uint32_t *)(&sfi), sizeof (sfi)); // Cache read not enabled yet, safe to use if (sfi.size < 2) // Compensate for out-of-order 4mbit vs 2mbit values sfi.size ^= 1; uint32_t flash_end_addr = (256 * 1024) << sfi.size; diff --git a/sdk-overrides/include/osapi.h b/sdk-overrides/include/osapi.h index 9253e581..6e8c56e3 100644 --- a/sdk-overrides/include/osapi.h +++ b/sdk-overrides/include/osapi.h @@ -12,6 +12,8 @@ unsigned int uart_baudrate_detect(unsigned int uart_no, unsigned int async); void NmiTimSetFunc(void (*func)(void)); +void call_user_start(void); + #include_next "osapi.h" #endif