NeKernel's RT Scheduler Subsystem, Application Processors.
Why?
Because NeKernel targets Multiple cores at first, thus the the Application Processors system.
How?
We can:
- Map cores to a HW Thread structure, A C++ structure.
- Make it run our task when it is registered by
mp_register_task
- We keep the thread ID from the HTS (HardwareThreadScheduler) inside the HW Thread.
- And we plug that into the higher level of the scheduler architecture.
This way the design is modular, easy to extend, and easily debuggable.
C++ function signature (defined with C mangling)
EXTERN_C BOOL mp_register_task(HAL::StackFramePtr stack_frame, ProcessID thrdid);