Arduino: How to use 512k Ram area for program space?

Hi,
how can I get the Arduino Ide to offer to upload with the bootloader to use the 512k Ram space for larger programs?
Thanks a lot!
Christof

Hm, looks as if the info
APP_TYPE = BOOT_SRAM
must somehow be given to a makefile? But where can I find such makefile or is there a way to pass this in a *.ino text?
Thanks for any hints!

Edit: Found somewhere, that Arduino does not use makefiles. Perhaps the information is in some boards.txt somewhere?

Afaik the bootloader is specifically made for libDaisy, which Daisyduino does not use.

So I don’t think it is possible to flash Daisyduino patches to sram this way.

Ok, thank you!
After some hours I have learned, that Arduino does use it’s own linker script file, “DAISY_SEED.ld” which is located in:
C:\Users.…\AppData\Local\Arduino15\packages\STMicroelectronics\hardware\stm32\2.7.1\variants\STM32H7xx\H742I(G-I)(K-T)_H743I(G-I)(K-T)_H750IB(K-T)_H753II(K-T)
It has nearly the same format as the linker script files in
C:\Users.…\Documents\plugdata\Toolchain\usr\etc\linkers
I copied and renamed sram_linker_sdram.lds to the folder used by Arduino.
After some tweaking I was able to compile and link. Unfortunately Arduino still tries to load the .bin file to the internal flash ram. Also Arduino prints old/wrong memory usage numbers.
The Web programmer seems to take the .hex file and the blink program seems to run for a short while, then crashes.

Am I still very far or already quite near the goal???

1 Like

Some hours later:
I found out, that Plugdata uses the script STM32H750IB_sram.lds in C:\Users.…\Documents\plugdata\Toolchain\usr\lib\libdaisy\core so I switched over to use this. (Rename, modify a little bit and store into C:\Users.…\AppData\Local\Arduino15\packages\STMicroelectronics\hardware\stm32\2.7.1\variants\STM32H7xx\H742I(G-I)(K-T)_H743I(G-I)(K-T)_H750IB(K-T)_H753II(K-T)

Next step is to get this loaded into external flash ram. - This is started by a shell script stm32CubeProg.sh in C:\Users.…\AppData\Local\Arduino15\packages\STMicroelectronics\tools\STM32Tools\2.2.1

Here we learn, that Plugdata, does not use STM32_Programmer_CLI.exe but uses C:/Users/ChWEb/Documents/plugdata/Toolchain/usr/bin/dfu-util.exe
As the STM32 programmer needs an additional file for the particular external flash, which seems not to be provided (??), so switched over to use dfu-util.exe.
dfu-util.exe -a 0 -s 0x90040000:leave -D “${FILEPATH}” -d ,0483:df11
does write the binary into the external flash at 0x90040000.

Unfortunately something is still wrong, the program does not work.

Perhaps someone can direct me a little bit?
What I don’t understand: The program, which shall be executed from SRAM at 0x24000000 is now sitting in external flash at 0x90040000. Where from does the bootloader know to what destination to put the program at startup? As far as I understand, a binary file does not contain address information?

Any hints very welcome!