Forum: Projekte & Code eRTK auf github.com


von T. E. (ter)


Lesenswert?

Hallo Forum,
ich habe ein Projekt um einen Betriebssystemkern (eRTK) auf github 
reingestellt.
Es geht um Echtzeit/Multitasking auf bisher AVR und SAM mit der Absicht 
es auf die neueren Cortex Mikrocontroller anzupassen.
Eine Portierung auf SAM21 Cortex M0+ habe ich bereits begonnen und im 
Test, jedoch suche ich weitere Tester um evtl. Bugs zu finden.
Ob sowas heutzutage noch interessant ist obwohl es ja bereits genug "am 
Markt" gibt muß jeder selber für sich beurteilen.
Den Kernel auf Atmega habe ich bereits selber im Einsatz.
Ich würde mich freuen, wenn sich Leute finden
die mitarbeiten wollen um das Projekt weiterentwickeln.
In diesem Sinne,

Gruß
  Tom

Link: https://github.com/eRTK/eRTK

: Bearbeitet durch User
von abcd (Gast)


Lesenswert?

Ich bin mal ein wenig durch den Quellcode gegangen.

1. Wäre schön, wenn du dich beim Kommentieren an einige Standards halten 
würdest (Doxygen und so).

2. Die Einrückungen sind chaotisch

2. Sehr viele magische Zahlen die man eher in #defines schreiben und 
auslagern sollte

Wenn ich solche Sachen wie

1
  TCNT0=( uint8_t )( -1*TIMERPRELOAD );

lese, froestelt es mir am linken Fuss.

Dito beispielhaft mit solchen Teilen
1
 if( n ) {
2
      stack[n][ERTK_STACKSIZE-32]=rom_tcb[n-1].param0&0xff;
3
      stack[n][ERTK_STACKSIZE-33]=rom_tcb[n-1].param0>>8;
4
      stack[n][ERTK_STACKSIZE-30]=( uint16_t )( rom_tcb[n-1].param1 )&0xff;
5
      stack[n][ERTK_STACKSIZE-31]=( uint16_t )( rom_tcb[n-1].param1 )>>8;
6
     }


Sachen wie "deadbeef" hören sich zwar lustig an, aber verderben mir als 
externen so ziemlich die Lust an lesen
1
void eRTK_get_sema( eRTK_TYPE semaid ) { /* Warten bis Semaphore frei ist und danach besetzen */
2
  if( semaid>=ANZSEMA ) deadbeef( SYS_UNKNOWN );
3
  while( xch( &sema[semaid], 1 ) ) { /* >0 = sema blockiert */
4
    sei();
5
    eRTK_wefet( 1 );
6
   }
7
 }

IMHO solltest du dir mal ein gutes Referenz-RTOS anschauen (Stichwort 
Nuttx) und dir die Modularisierungs- und Syntaxaspekte gezielt 
anschauen. Auch ist Nuttx eine Referenz der guten Dokumentation.

Hoffe meine Kritik hilft dir zu wachsen.

von T. E. (ter)


Lesenswert?

Hallo abcd,
ich danke für das Codereview ;)
Wie schon in meiner ersten Mail geschrieben,
muß jeder für sich entscheiden ob er an dem Projekt mitarbeiten möchte.
Einige Referenz RTOSe kenne ich,
die ersten waren z.B. iRMX von Intel oder RMOS von Siemens um 1990 
herum.
Gerade für kleinere uC ist sowas völlig übertrieben,
es ging mir um eine schlanke Lösung mit den Basisfunktionen.
Sicherlich kann man alles immer besser machen oder oder anders benennen 
oder anders formatieren.
Ich biete hier kein fertiges System an sondern eine Basis für die 
Weiterentwicklung.
Ich würde mich freuen,
wenn sich Leute finden die mitarbeiten wollen um das Projekt 
weiterentwickeln.
Gruß
  Tom

von Armin S. (knall_e)


Lesenswert?

Hi Tom,

danke für deinen Source.
Ich bin gerade dabei ihn komplett zu überarbeiten.
Ich hatte dein Projekt urspruenglich geforkt, entwickle es jetzt aber 
hier weiter:

https://github.com/siredmar/EdmarOs

Mal schauen wie sich das Ganze noch entwickelt.
Gruss
Armin

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.