Guten Tag alle zusammen,
ich arbeite zurzeit mit einem STM32F407. Um den Flash zu schonen debugge
ich diesen im RAM, was auch wunderbar funktioniert. Jedoch schaffe ich
es nicht mehr, ganz normal den Flash zu nutzen. Er startet immer alte
Programme.
Kann mir jemand sagen, was ich wie einstellen muss, dass die Programme
an der richtigen Stelle im Flash landen und ausgeführt werden?
Mein Speicher ist wie folgt eingeteilt:
MEMORY
1 | {
|
2 | SECTOR0 (rx) : ORIGIN = 0x08000000, LENGTH = 16K
|
3 | FEEPROM (rx) : ORIGIN = 0x08004000, LENGTH = 32K
|
4 | ROM (rwx) : ORIGIN = 0x0800C000, LENGTH = 976K
|
5 | RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 128K
|
6 | CCRAM (rwx) : ORIGIN = 0x10000000, LENGTH = 64K
|
7 | }
|
In den Release-Einstellungen in den Build-options habe ich folgendes:
Policy: Use target settings
Linker script: stm32f407vg_flash.ld
Stack size: 0x0200
Heap size 0x0200
Im Interface (Target Settings) ist nur "Run to main()" aktiviert.
Der ST-Link ist folgendermaßen konfiguriert:
Interface: swd
Vector table start: 0x08000000
Reset Type: System
Nur "Load program" und "Vector table relocation" sind aktiviert.
Vielen Dank schonmal.
Edit: Entschuldigung, ich nutze Em::Blocks 2.30