future
Newbie level 6
- Joined
- Dec 20, 2004
- Messages
- 13
- Helped
- 1
- Reputation
- 2
- Reaction score
- 0
- Trophy points
- 1,281
- Activity points
- 109
Hello everybody,
I am implementing a simple rtos with just 4 primitives: Timing, messages, events and counting semaphores.
Tasks run when the kernel dispatches one of these primitives.
Timing handles the task delays and timeouts.
Messages passes a pointer from task to task by the use of a third object (messagebox)
Events send a signal to all registered tasks on this object (eventbox)
Semaphore is an object that provides means to track resource usage.
All of these kernel calls suspends the sending task until the messages/events are sent and processed by the receivers... then sender task is resumed.
If there is nothing to do, idle callback runs.
Now the question. This simple kernel can be used to help solve many programming problems, but how complex do you think it can be? My opinion is that it can grow to a really bigger system if I/someone can port comms and other stacks to it.
I am implementing a simple rtos with just 4 primitives: Timing, messages, events and counting semaphores.
Tasks run when the kernel dispatches one of these primitives.
Timing handles the task delays and timeouts.
Messages passes a pointer from task to task by the use of a third object (messagebox)
Events send a signal to all registered tasks on this object (eventbox)
Semaphore is an object that provides means to track resource usage.
All of these kernel calls suspends the sending task until the messages/events are sent and processed by the receivers... then sender task is resumed.
If there is nothing to do, idle callback runs.
Now the question. This simple kernel can be used to help solve many programming problems, but how complex do you think it can be? My opinion is that it can grow to a really bigger system if I/someone can port comms and other stacks to it.