Quicksort für LPC1768 -> Error

OP #2171500
Hallo!

Bin gerade dabei, ein Quicksort-Programm für den LPC1768 zu realisieren. 
Leider stürzt das Programm bei Feldgrößen ab ca. 200...250 Elementen in 
der Quicksort-Funktion ab, obwohl der Chip mit 64 kB RAM eigentlich 
genug Reserve haben sollte. Was habe ich falsch gemacht?

Die Implementierung auf einem LM3S8962 (TI) funktioniert bei 1024 
Elementen übrigens einwandfrei, nur eben nicht auf dem LPC.
Angehängte Dateien:
Gast #2171520
Bedenke, dass der LPC1768 die 64kB NICHT am Stück hat.
Einmal 32kB ab $10000000 und einmal 32kB ab $2007C000.
Wenn du Speicherplatz statisch allokierst, sollte aber der Linker 
melden, wenn es nicht passt.
OP #2171539
Danke für Eure Hinweise.

wegen Debugger:
Ich nehme das Keil µVision4 zum Debuggen. Dort springt er in den 
HardFault_Handler. Habe das Projekt mal angehangen.


Wie löse ich das Stack-Problem bzw. woran sehe ich konkret, wo es zum 
Überlauf kommt oder wieviel Stack ich brauche?
Angehängte Dateien:
Gast #2171545
> Wie löse ich das Stack-Problem bzw. woran sehe ich konkret, wo es zum
> Überlauf kommt oder wieviel Stack ich brauche?
Du siehst doch im LinkerSkript bis wohin SP maximal laufen darf. Wenn Du 
im HF-Handler bist: wohin zeigt SP?
Oder Du initialisierst den Stack mit einem Muster (0xDEADBEEF z.B.). 
Wenn du im HF bist, schaust du, ob dein Stack noch das Muster enthält, 
falls nicht, ist der SP in Data/BSS reingelaufen und killt dir was 
wichtiges.
OP #2171563
Entschuldige die dummen Fragen, aber ich bin noch nicht so sehr 
bewandert in diesen Sachen. :(
Wie initialisiere ich den Stack mit einem Muster? Was ist BSS?

Wenn er in den HF-Handler springt, hat der Stackpointer (R13?) 
0x100010F0.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 15 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.