How to cover a "corner case": the need for expressing dependencies on features #5
mdortel-stm
started this conversation in
Ideas
Replies: 1 comment 1 reply
-
Can we discuss this next week in the Open-CMSIS-Pack meeting? Would you be able to present/share the problem to the wider audience? |
Beta Was this translation helpful? Give feedback.
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
STMicroelectronics is willing to deliver its HAL drivers with a CMSIS Pack descriptor, the PDSC.
To address relationship between drivers, the definitions of conditions is naturally meant to be used.
Above drivers, we will deliver simple configurable examples, designed to cover all hardware families.
The relationship between example and used drivers should have been logically based on dependency, furthermore on dependency on APIs.
But, a strong structural constraints prevents from using that mechanism : HAL drivers will be delivered in a way where there will be on pack for each device family containing all peripheral drivers. In addition, there will not be a pack declaring a common API implemented in each family pack.
The consequence of this is that, for example, we need to find another mechanism to express dependency on drivers avoiding to list explicitly each driver component in each family pack, which would be a not acceptable maintenance effort.
In parallel, following the idea that component identification should be separated from component classification (meaning that both information must not be supported by the same element of the PDSC), a proposal arose : associate definitions of "features" in a component, allowing the classification of it, without the structural restriction of "only 1 value for 1 type of feature for 1 component".
So, our first idea was to propose to allow conditions on those features.
Understanding that this could be seen a proposal "pushing in the opposite way of CMSIS mindset", which states that dependencies between components should rely on identification, on the component itself or its API, an other way to address this (maybe ST-only) corner case could be to allow in the definition of the PDSC some entry points for proprietary extensions. As an example, @jkrech already pointed out to /package/devices/family/.../environment:
Beta Was this translation helpful? Give feedback.
All reactions