I would like to develop an MCS userland scheduler that manages the release times and deadlines of the other threads executing in the system. The catch is that I’d like to work within the CAmkES environment as much as possible.
Question: How do I give the scheduler component access to the TCBs of other CAmkES components? Is there an unadvertised config setting or some CAPDL template jujitsu magic one must first master?
Thanks,
-John
There’s no existing mechanism to do this in CAmkES, so you’d have to write a custom CAmkES template.
It could be a relatively simple template that makes sure the component gets caps to all the other TCBs or it could be more sophisticated allowing you to specify which other component TCBs to get, and possibly even interfaces/libraries through which to manipulate them.
As a starting point, a component can get its own TCB by doing: camkes_get_tls()->tcb_cap
.
Thanks Ihor. I got things working with a simple template. I like the idea of a library to tighten access a bit better.