Multiple properties accessing common register

Embedded Components are functional-oriented therefore allows settings that do not affect only one peripheral but several of them. However, it is also possible to access each peripheral individually, one-by-one using the Peripheral Initialization Components. This means that some specific hardware functionalities can be accessed from multiple components.

During application design, Processor Expert verifies that component properties accessing the same functionality are not in conflict with other properties and if conflict is detected then informs user.

For example, pin routing involves configuration of multiple registers across different peripherals and it is possible to set it manually for each involved peripheral or just set required pin in pin property of Embedded Component that needs the pin for its function (it consumes the pin).

Processor Expert searches its knowledge base for initialization value of all registers involved in pin routing and searches the project for any Embedded Component which would also initialize such registers. If any component is found then it is checked that its settings doesn't produce initialization which would be in conflict with initialization required to route pin used by the consuming component. If any conflict in initialization is detected user is informed by error showed for each property which affects the routing and user has to resolve them. This is when Automatic property value can be used.

Properties which affects common hardware functionality allows setting Automatic value instead of using specific setting. Automatic value signals that property doesn't require specific setting and leaves the control of hardware functionality to different property to specify it. Therefore, property set to Automatic is not causing any conflicts. All properties that allow Automatic value have it as a default state after component is added to the project.

In example described above, means that if consumer property defines required pin and at the same time properties involved in its routing have Automatic set then there are no conflicts or errors. When Automatic is set in the property then currently used value is controlled by different property, however the value is showed next to the automatically controlled property in the Details column in the Component Inspector View. Also, if the property controls registers which are initialized by the component's initialization method then the currently used value is propagated through the property into the initialization method.