Have been trying to force LARGE array allocation in SDRAM. Due to a bug somewhere in compiler or configuration, arrays defined in l502_user_process.c with '#include l502_sdram_noinit.h' or '__attribute__((section('.sdram_noinit')))' directives (that should allocate array in SDRAM) wrongly allocates in MEM_L1_DATA_A and overfills it. Workaround: define large arrays with these directives in l502_streams.c and include them via 'extern'.

This commit is contained in:
2025-07-18 17:48:29 +03:00
parent f19d963f09
commit 1555adc25b
22 changed files with 8536 additions and 8262 deletions

View File

@ -116,7 +116,8 @@ ASFLAGS = $(MCFLAGS) -g -mthumb -gdwarf-2 -Wa,-amhls=$(<:.s=.lst) $(ADEFS)
#-gdwarf-2
ANOMALY_FLAGS = -mspecld-anomaly -mcsync-anomaly
CPFLAGS = $(MCFLAGS) $(OPT) $(ANOMALY_FLAGS) -std=gnu99 -g -Wall -Wstrict-prototypes -Wa,-ahlms=$(addprefix $(LSTDIR)/, $(notdir $(@:.o=.lst))) $(DEFS)
LDFLAGS = $(MCFLAGS) -T$(LDSCRIPT) -nostartfiles -N -Wl,-Map=$(BINDIR)/$(PROJECT).map,--cref,--gc-sections $(LIBDIR) -lm
#LDFLAGS = $(MCFLAGS) -T$(LDSCRIPT) -nostartfiles -N -Wl,-Map=$(BINDIR)/$(PROJECT).map,--cref,--gc-sections $(LIBDIR) -lm
LDFLAGS = $(MCFLAGS) -T$(LDSCRIPT) -nostartfiles -N -Map=$(BINDIR)/$(PROJECT).map,--cref, -lm
#
# Generate dependency information
CPFLAGS += -MD -MP -MF $(DEPDIR)/$(@F).d