© 2011 Tobias Frischmann Keil Board

Herausforderungen eines Arm7 Controllers

Wie auch schon in anderen Artikeln erwähnt, wird der gesamte Funktionsumfang des Fahrzeuges durch ein Matlab Simulink-Modell realisiert. Dieser wird auf einen Arm7-Mikrocontroller (LPC2388) portiert. Durch ständige Weiterentwicklungen/Verbesserungen wächst der erstellte Programmcode rasch an, so dass auf den ersten Blick unlogische Zustände (insbesondere der Stellsignale) beim Testen des Systems auftraten. Im Allgemeinen kann dies viele Ursachen haben. Fehler im Simulink-Modell, Fehler bei der Einbindung des Simulink C-Codes in das bestehende Rahmenprogramm, falsche Ansteuerung der Aktorik usw.

Ein bedeutendes Problem konnte auf ein Merkmal des Mikrocontroller eingegrenzt werden.

Das Problem

Folgendes wurde beim Debuggen des Controllers beobachtet:

Ausschnitt uVision 4 beim Debuggen

Der Wert mehrerer Variablen ändert sich von einem zum nächsten Debug-Schritt, ohne das in der entsprechenden Programmzeile (s. Programmzeiger) ein Zugriff auf die dargestellten Variablen stattfindet.

Die Lösung

Durch viele Tests hat sich herausgestellt, dass der Userstack des Arm7-Controllers für den im Laufe der Zeit größer gewordenen Simulink-Programmcode zu klein wurde. Eine Vergrößerung dessen im Startupscript behebt das Problem!

Folgende Programmzeile im Startupscript wurde verändert:

 USR_Stack_Size  EQU     0x00000500

Kommentieren

Emailadresse wird niemals gezeigt oder weitergegeben. Obligatorisch *

*
*

Diese HTML tags funktionieren: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>