Defragster

Results 59 comments of Defragster

Nice Frank - I didn't take the next step to locate the source lines. https://github.com/PaulStoffregen/Audio/blob/2254de01a97cca187d647d3527799209318cef75/gui/index.html#L1757

Did some testing with this - variation of above psram test sketch and also went to LittleFS in PSRAM and ran Integrity test. Saw same faster 8MB perf and also...

Any ref info for correct use or note on the direction of the failure? It is odd that that single var resides isolated in a big block (2K?) of RAM...

Not this topic? in delay.c :: uint32_t micros(void) ` do { __LDREXW(&systick_safe_read); smc = systick_millis_count; scc = systick_cycle_count; } while ( __STREXW(1, &systick_safe_read));` Some means of atomic read is needed?

Quick look I don't see any other suggestions for use where this {__LDREXW... __STREXW} is broken. Seems it is deprecated in 'mainstream' ARM beyond M4/M7. Ref notes found show use...

Just wondered what triggered your concern - thanks for the link - seems that is maybe a new look at it. Would be interesting to find the systick _faux_ interrupt...

Wrote a sketch that showed me what I expected to see - more 'testy' than anything I wrote before. Cloned cores micros() to MYmicros(), with only change being to increment...

minor code edits - oddity explained by code call order where millis() was changing between calls See : [https://forum.pjrc.com/threads/68180-how-to-debug-problem-caused-by-micros()-overrunning-and-going-back-to-zero?p=288543&viewfull=1#post288543](url)

It would need tweaking to work on T_3.x's

Paul, LTO may not be working - at least executing - but without this added change it won't compile: Add line 266:: void HardFault_HandlerC(unsigned int *hardfault_args) __attribute__((used));