mirror of
https://github.com/esp8266/Arduino.git
synced 2025-07-05 12:42:22 +03:00
Clean up code to build under GCC7, fix pgm_read_unaligned (#6270)
Apply most compatible changes needed to get the core compiling under GCC 7.2 to the main gcc 4.8 tree to ease porting for 3.0.0. Update pgmspace.h with corrected and optimized unaligned pgm_read macros. Now pgm_read_dword in the unaligned case gives proper results even if optimization is enabled and is also written in assembly and only 1 instruction longer than the pgm_read_byte macro (which also has been optimized to reduce 1 instruction). These changes should marginally shrink code and speed up flash reads accordingly. The toolchain should/will be rebuilt at a later time with this optimization to ensure it's used in the libc.a/etc. files.
This commit is contained in:
committed by
david gauchard
parent
76cda9bdbc
commit
d2a487dfd9
@ -236,8 +236,8 @@ void init_done() {
|
||||
|
||||
*/
|
||||
|
||||
extern "C" void ICACHE_RAM_ATTR app_entry_redefinable(void) __attribute__((weak));
|
||||
extern "C" void ICACHE_RAM_ATTR app_entry_redefinable(void)
|
||||
extern "C" void app_entry_redefinable(void) __attribute__((weak));
|
||||
extern "C" void app_entry_redefinable(void)
|
||||
{
|
||||
/* Allocate continuation context on this SYS stack,
|
||||
and save pointer to it. */
|
||||
@ -248,9 +248,9 @@ extern "C" void ICACHE_RAM_ATTR app_entry_redefinable(void)
|
||||
call_user_start();
|
||||
}
|
||||
|
||||
static void ICACHE_RAM_ATTR app_entry_custom (void) __attribute__((weakref("app_entry_redefinable")));
|
||||
static void app_entry_custom (void) __attribute__((weakref("app_entry_redefinable")));
|
||||
|
||||
extern "C" void ICACHE_RAM_ATTR app_entry (void)
|
||||
extern "C" void app_entry (void)
|
||||
{
|
||||
return app_entry_custom();
|
||||
}
|
||||
|
Reference in New Issue
Block a user