I will give that a try in the next week or two. Production deadlines prevent me from jumping on it right now.

As far as fitting the compiled output to a generic RTOS embedded system it would seem to me that:

Each Pascal main program is treated as a task/process that runs unto itself other than by interaction with calls to the OS and any shared resources (memory mapped I/O in particular).

Each task needs a initiator program that sets up the stack pointer, heap, and possibly a pointer to global stuff. And of course a terminator to put it to sleep.

The Pascal program needs to be either linked to a reentrant RTL or to a set of RTL sub-programs per task.

Since I'm interested in embedded control there is little I/O to files, multiple SIO / USB and net ports. That can be handled by tasks dedicated to do so, such as one task per port, with re-entrant code.

Scheduling, time keeping, task control, intertask communications and the like are all handled by OS supervisor calls using Traps or illegal instruction exceptions.

All in all it isn't an overwhelming amount of work to do, especially since I've got that stuff running for CPU32 now and it "just" needs conversion to MCF.

_______________________________________________
fpc-devel maillist  -  [email protected]
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to