Simulink, sample time

Gast #1268133
Lesenswert?

Hallo zusammen,

für ein embedded Linux (emdebian) verwende ich Simulink zur 
Codegenerierung. Verwende ich bspw. einen integrator, benötigt dieser 
eine feste Zeitbasis, also bspw. Aufruf alle 10ms (rtOneStep()).

Diese Samplezeit lässt sich in Simulink variieren.

Gibt es eine Möglichkeit, dies dann unter einem normalen Linux halbwegs 
vernünftig zu verwenden? Ein Echtzeitbetriebssystem mit z.B. 
zeitscheibenbasis würde es ja schaffen, alle 10ms die Simulink-Funktion 
aufzurufen. Geht dies auch unter einem normalen Linux? verwende ich 
einen normalen timer ist die Zeit relativ grob aufgelöst, vor allem bei 
Prozessorlast.

Kann man hier vielleicht mit variable step-time arbeiten?
Für tips bedanke ich mich schonmal im Voraus!

Danke und Grüsse,
Peter
#1268865
Lesenswert?

Hallo Peter,

welche Distribution/Kernelversion setzt Du denn ein? Normalerweile muss 
man anfangs die Konfiguration machen (mittels "make menuconfig"). Hier 
kannst Du dann u.A. die Frequenz einstellen (CONFIG_HZ=1000). Danach 
"make all" und make bzImage. Sollte eigentlich so funktionieren ....

Grüße,
Michael
Gast #1268958
Lesenswert?

Hallo,

ich crosscompiliere unter lenny für arm (kernel 2.6.29). Habe schon 
einige Male Kernel compiliert, jedoch via make menuconfig finde ich die 
CONFIG_HZ in keiner Weise; nur im .config File.

Dieses erstelle ich also (mit make menuconfig bspw.) und ändere danch 
CONFIG_HZ in der .config manuell auf 1000.

Starte dann den make (make uImage), das erste was er (trotzdem) macht, 
ist  die config "neu zu erstellen" (er überschreibt die config_hz mit 
200).
Ansonsten bleibt das .config-File nach meinem (menuconfig)-Wunsch.

Bin mir sicher, dass ich was übersehe (habe zwischenzeitl. auch schon 
die "config-template"-Files unter arch/arm/config modifiziert (so gut 
wie alle auf 1000hz gesetzt), kein Erfolg). Bin sogar soweit gegeangen, 
dass ein grep CONFIG_HZ=200 keine Ergebnisse im Kernel-build-verzeichnis 
liefert.

Hast Du noch einen  Tip parat? ;)

Danke, Gruss, Peter
#1270546
Lesenswert?

Hallo Peter,

also die Jungs in der Arbeit hatten auch keine groß anderen Ideen ...

hier sind die Einstellungen von meinem System:

Processor type and features --> Timer frequency --> 1000 Hz
Processor type and features --> Preemption model --> Preemptible kernel 
(Low Latency Desktop)
Processor type and features --> Preempt the Big Kernel Lock --> (enable)

in der Konfiguration muss folgendes stehen:
CONFIG_HZ_1000=y

hoffe jetzt klappts ....

Grüße,
Michael

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren