<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent posts to Raspbian Tuning #2: Realtime</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/d2c2823b69/" rel="alternate"/><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/d2c2823b69/feed.atom" rel="self"/><id>https://forge.codesys.com/forge/talk/Deutsch/thread/d2c2823b69/</id><updated>2020-02-28T04:01:09.571000Z</updated><subtitle>Recent posts to Raspbian Tuning #2: Realtime</subtitle><entry><title>Raspbian Tuning #2: Realtime</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/d2c2823b69/?limit=25#a254" rel="alternate"/><published>2020-02-28T04:01:09.571000Z</published><updated>2020-02-28T04:01:09.571000Z</updated><author><name>Weissnix</name><uri>https://forge.codesys.com/u/weissnix/</uri></author><id>https://forge.codesys.comb3577de35dd293c757233a1748f24a3f243d9049</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Müsste man, um Real-Time-Verhalten zu bekommen, nicht auch noch die Priorität des Codesys-Prozesses auf dem RPi erhöhen?&lt;/p&gt;
&lt;p&gt;Also durch den Befehl "top" erhalte ich die PID des Codesys-Prozesses.&lt;br/&gt;
Anschließend schaue ich mir die Prioritäten an:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="nv"&gt;@navio&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nl"&gt;rpi&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;chrt&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2146&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="n"&gt;pid&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2146&lt;/span&gt;&lt;span class="s1"&gt;'s current scheduling policy: SCHED_OTHER&lt;/span&gt;
&lt;span class="s1"&gt;pid 2146'&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;current&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;scheduling&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;priority&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Daraus folgt, dass der Prozess als Standard-Task behandelt wird. Müsste man die Priorität nicht entsprechend ändern, dass Codesys als Realtime-Task fungiert?&lt;br/&gt;
Beispiel:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="nv"&gt;@navio&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nl"&gt;rpi&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;chrt&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;90&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="mi"&gt;2146&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="nv"&gt;@navio&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nl"&gt;rpi&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;chrt&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2146&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="n"&gt;pid&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2146&lt;/span&gt;&lt;span class="s1"&gt;'s current scheduling policy: SCHED_FIFO&lt;/span&gt;
&lt;span class="s1"&gt;pid 2146'&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;current&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;scheduling&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;priority&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;90&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Wird nicht erst damit die Echtzeit garantiert? Ich frage nach, da ich mit dem Thema selbst nicht wirklich vertraut bin.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Raspbian Tuning #2: Realtime</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/d2c2823b69/?limit=25#4b3e" rel="alternate"/><published>2020-02-28T04:01:03.958000Z</published><updated>2020-02-28T04:01:03.958000Z</updated><author><name>plcmax</name><uri>https://forge.codesys.com/u/plcmax/</uri></author><id>https://forge.codesys.com19b2c39e059c7baca439a31e6c4fff91aa8b5ddf</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hallo,&lt;/p&gt;
&lt;p&gt;ja wenn es denn stabil läuft reicht das, man muss sonst nichts tun bei rt_preemt patch.&lt;br/&gt;
Was aber der eigentliche Flaschenhals am Pi ist, &lt;br/&gt;
ist vermutlich eher die Ethernet-USB Anbindung welche auch für das  Onboard Ethernet&lt;br/&gt;
verwendet wird.&lt;/p&gt;
&lt;p&gt;Viele Grüße&lt;br/&gt;
plcmax&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Raspbian Tuning #2: Realtime</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/d2c2823b69/?limit=25#d5ee" rel="alternate"/><published>2020-02-28T04:01:01.964000Z</published><updated>2020-02-28T04:01:01.964000Z</updated><author><name>blaggejoe</name><uri>https://forge.codesys.com/u/blaggejoe/</uri></author><id>https://forge.codesys.comb9bf2ab60492f7597a3ef93cc4d3b0026ce502ea</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hi&lt;/p&gt;
&lt;p&gt;Ich komme noch mit einem 2. Optimierungsvorschlag: Statt Standard-Raspbian könnte man ja auch Raspbian mit RT Erweiterung verwenden.&lt;br/&gt;
Die Navio-Jungs haben es scheinbar hingekriegt, die RT-Erweiterung für den Raspberry Pi 1 &amp;amp; 2 fehlerfrei zu integrieren.&lt;br/&gt;
&lt;a class="" href="http://www.emlid.com/real-time-linux-for-raspberry-pi-2-and-updated-apm-binaries/" rel="nofollow"&gt;http://www.emlid.com/real-time-linux-fo ... -binaries/&lt;/a&gt;&lt;br/&gt;
Eigentlich müsste diese Erweiterung den max. Jitter von &amp;lt; ~400us auf &amp;lt; ~60us runterkriegen.&lt;br/&gt;
Reichts es für die Hart-Echtzeiteigenschaften von CoDeSys einfach dieses Image zu verwenden oder steckt da noch mehr dahinter?&lt;br/&gt;
Bzw. wie wird der max. Jitter von CoDeSys gemessen?&lt;/p&gt;
&lt;p&gt;Gruss&lt;br/&gt;
Ralf&lt;/p&gt;&lt;/div&gt;</summary></entry></feed>