Description
| F´ Version | n/a |
| Affected Component | FPP |
Feature Description
For a project that I'm working on, it would be very useful to be able to define execution time limits on specific port calls. For example:
async input port transmit: Fw.Buffer duration 50us # handling "transmit" messages should take no more than 50us
sync input port schedIn: Svc.Sched duration 200us # executing the rategroup behaviors for this component should take no more than 200us
output port loadDmaEngine: Fw.Buffer duration 10us # the component that handles this port call should take no more than 10 us to do so
The details of how this is enforced (or whether it is only measured) would presumably be platform-specific, and don't need to be implemented in the F Prime core. But it would still require some level of FPP modeling support and autocoding support.
Since this might be a niche feature, it would also satisfy my needs to provide a generic mechanism that can be used to implement this feature on a platform-specific or project-specific basis. For example, I understand that FPP has an existing "annotations" feature that can be used to add additional unstructured information to FPP models. However, there would also need to be a generic feature that allows for the required code generation.
Rationale
Some control loops involve executing code across many components as part of critical, hard-real-time behaviors. It would be useful to be able to model these deadlines and inject code to enforce them on a granular basis, rather than relying on higher-level analysis and testing.