??? 01/28/05 01:27 Read: times |
#85973 - Small systems - task scheduling Responding to: ???'s previous message |
I really do question the need for a fancy task scheduler and computed calls for what is essentially a 'small system'. With most embedded systems, the tasks are known up front so therefore the address can be hard coded. similarly with scheduling the priorities are normally fixed - in most of my apps I use a co-operative tasker with a 10mS tick. I have up to 8 tasks of fixed priority. Each of these tasks has a timer that activates the task when it expires, the task can also be activated by calling "set_task". At each dispatch, the task run flags are evaluated for the highest priority to run, then that task is run for that tick. Whilst inter-task comms and semaphores are nice, they have a bit of overhead and a probably best left to a pre-emptive type RTOS. By definition - a co-operative task system need no interlocks since only one task can run at one time, and the task runs to completion. Sorry to pour water on your idea! Nowadays, if I want a pre-emptive type RTSO with semaphores and inter-task communication (pipes etc) - I wouldn't be choosing to use a 8051 type micro, most probsbly it would be ARM. I did see a product doing pre-emptive task switching by saving the whole cpu state (including stack) to xram - and with a 12 clock cpu! Needless to say a task switch was expensive for cpu time. I couldn't help but think at the time a co-operative tasker would've been more suitable. |
Topic | Author | Date |
Computed Call | 01/01/70 00:00 | |
Computed Call | 01/01/70 00:00 | |
simulate an LCALL @A+DPTR instruction? | 01/01/70 00:00 | |
Solution | 01/01/70 00:00 | |
Computed LCALL | 01/01/70 00:00 | |
Computed LCALL | 01/01/70 00:00 | |
Table offset | 01/01/70 00:00 | |
x2, not x3 | 01/01/70 00:00 | |
what is the problem | 01/01/70 00:00 | |
My Problem | 01/01/70 00:00 | |
never heard of it | 01/01/70 00:00 | |
It is....... | 01/01/70 00:00 | |
RTOS | 01/01/70 00:00 | |
8051 RTOs Limitations/Issues/Opportunity | 01/01/70 00:00 | |
How? | 01/01/70 00:00 | |
Decisions, decisions | 01/01/70 00:00 | |
Small systems - task scheduling | 01/01/70 00:00 | |
Worth it? | 01/01/70 00:00 | |
Scheduler | 01/01/70 00:00 | |
Scheduler | 01/01/70 00:00 | |
running small in a big way | 01/01/70 00:00 | |
Example | 01/01/70 00:00 | |
in very small chips | 01/01/70 00:00 | |
In all sorts of sizes of chips | 01/01/70 00:00 | |
time dependednt | 01/01/70 00:00 | |
RTOS or Not | 01/01/70 00:00 | |
opinion piece | 01/01/70 00:00 | |
fact piece | 01/01/70 00:00 | |
Opinion piece | 01/01/70 00:00 | |
suggestion piece | 01/01/70 00:00 | |
reasons | 01/01/70 00:00 | |
Polite discussion | 01/01/70 00:00 | |
Politeness | 01/01/70 00:00 | |
Thanks | 01/01/70 00:00 | |
Politeness | 01/01/70 00:00 | |
What are you Rabbiting on about? | 01/01/70 00:00 | |
Close but no Cigar | 01/01/70 00:00 | |
Rabbit food | 01/01/70 00:00 | |
Plessey | 01/01/70 00:00 | |
small world | 01/01/70 00:00 | |
Smaller than you imagine!![]() | 01/01/70 00:00 | |
I use the computed LCALL ... | 01/01/70 00:00 | |
go it | 01/01/70 00:00 | |
Call tabs in-line | 01/01/70 00:00 | |
abbreviated | 01/01/70 00:00 | |
... and further optimized... | 01/01/70 00:00 | |
has been already disscussed | 01/01/70 00:00 | |
Scheduler of course | 01/01/70 00:00 | |
Scheduler | 01/01/70 00:00 |