Creating dependencies between middleware components

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Creating dependencies between middleware components

PetrKraus
NXP Employee
NXP Employee
2 0 838

Comprehensive information about SDK SW components and SDK release describing YML can be found in the Yml data record guide here:

http://10.193.108.154:4000/mcu-sdk-generator/doc/Yml%20data%20record%20guide.html#add-a-middleware-y...

 

Example

We need to build a dependency from the eIQ component to the CMSIS DSK Library component.

pastedImage_1.png

It is needed to add the dependency definition into the __requires__ section of the dependent component into YML:

middleware.eiq.cmsis_nn:

  section-type: component

  __requires__:

    - middleware.eiq.ui_control

      CMSIS_DSP_Lib.arm_cortexM7lfdp_math

  contents:

    cc-include:

      - path: middleware/eiq/cmsis-nn/Include

    files:

...

Such dependency will be reflected on the MCUXpresso website and also in the SDK manifest file:

    <component id="middleware.eiq.cmsis_nn.MIMXRT1052" name="CMSIS-NN" brief="CMSIS-NN library" version="1.0.0" full_name="CMSIS-NN library" devices="MIMXRT1052xxxxB" dependency="platform.CMSIS_DSP_Lib.arm_cortexM7lfdp_math.MIMXRT1052" category="Machine Learning/eIQ" user_visible="true" type="middleware">

      <source path="middleware/eiq/cmsis-nn/Include" target_path="CMSIS/NN/Include" type="c_include">

        <files mask="arm_nnfunctions.h"/>

        <files mask="arm_nnsupportfunctions.h"/>

        <files mask="arm_nn_tables.h"/>

      </source>

How to verify that the dependency has been correctly described it will really work in the SW tools?

  1. You can generate an SDK package with this component and check the behavior in the MCUX IDE.
  2. You can check SDK release data tables - output of the first two stages of the SDK Generator, where the component dependencies are resolved:
    1. Run “ruby all_evkxxx.rb -a eiq -c superset -o target_dir“, in the target_dir/devices/<xxxx>/<xxxx>.yml, you can check under your middleware.eiq.ui_control, it should have the “CMSIS_DSP_Lib.ui_control” in the “web_requires”, like

      middleware.eiq.ui_control:

        section-type: component_support

        __requires__:

          - board.evkbimxrt1050

          - board.evkmimxrt1060

        component_info:

          common:

            ui_name: eIQ

            ui_description: eIQ machine learning

            ui_category: Middleware

            ui_control: 'True'

            ui_control_default: 'False'

            ui_release_specific: 'True'

            full_name: eIQ

            class: Machine Learning

            version: 1.0

            description: eIQ machine learning

        web_requires:

          - CMSIS_DSP_Lib.ui_control

  3. You can ask the SWPE team to deploy your experimental SDK release superset with this change on an MCUX sandbox website - follow instructions described here: https://confluence.sw.nxp.com/display/MCUXSDKB/Deployment+of+an+experimental+SDK+release+image+on+th...