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
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.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.