Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

AUTOSAR OS configuration example

As with version 3.0, AUTOSAR switched from OSEK-OIL to a XML based format in order to configure their OS. I'm looking now for an example of how this configuration can look like. The AUTOSAR specification unfortunately just covers the configuration parameters. Has anyone an idea where to get an example?

like image 796
ph09 Avatar asked Mar 12 '26 20:03

ph09


1 Answers

If you use the textual language for Ecuc value configuation provided by Artop, a textual configuration could look like this:

module Os = {
    container OsAppMode = {

    }
    container OsOS: ExampleOS = {
        param OsUseParameterAccess = true
        param OsStackMonitoring = true
        param OsStatus = .EXTENDED
        param OsUseGetServiceId = true
        param OsUseResScheduler = true
        container OsHooks = {
            param OsErrorHook = true
            param OsPostTaskHook = true
            param OsPreTaskHook = true
            param OsShutdownHook = true
            param OsStartupHook = true
        }
    }

    container OsEvent : ev1 = {



    }

    container OsTask : task1 = {
        ref OsTaskEventRef = os/Os/ev1
    }
}

The generated .arxml would then be:

<?xml version="1.0" encoding="UTF-8"?>
<AUTOSAR xmlns="http://autosar.org/schema/r4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://autosar.org/schema/r4.0 autosar_4-2-2.xsd">
  <ADMIN-DATA>
    <USED-LANGUAGES>
      <L-10 L="EN" xml:space="preserve">English</L-10>
    </USED-LANGUAGES>
  </ADMIN-DATA>
  <AR-PACKAGES>
    <AR-PACKAGE>
      <SHORT-NAME>os</SHORT-NAME>
      <ELEMENTS>
        <ECUC-VALUE-COLLECTION>
          <SHORT-NAME>os</SHORT-NAME>
          <ECUC-VALUES>
            <ECUC-MODULE-CONFIGURATION-VALUES-REF-CONDITIONAL>
              <ECUC-MODULE-CONFIGURATION-VALUES-REF DEST="ECUC-MODULE-CONFIGURATION-VALUES">/os/Os</ECUC-MODULE-CONFIGURATION-VALUES-REF>
            </ECUC-MODULE-CONFIGURATION-VALUES-REF-CONDITIONAL>
          </ECUC-VALUES>
        </ECUC-VALUE-COLLECTION>
        <ECUC-MODULE-CONFIGURATION-VALUES>
          <SHORT-NAME>Os</SHORT-NAME>
          <ADMIN-DATA>
            <SDGS>
              <SDG GID="source">
                <SD GID="VALUE">/osconfig/os.ecucvalues</SD>
              </SDG>
            </SDGS>
          </ADMIN-DATA>
          <DEFINITION-REF DEST="ECUC-MODULE-DEF">/AUTOSAR/EcucDefs/Os</DEFINITION-REF>
          <IMPLEMENTATION-CONFIG-VARIANT>VARIANT-PRE-COMPILE</IMPLEMENTATION-CONFIG-VARIANT>
          <CONTAINERS>
            <ECUC-CONTAINER-VALUE>
              <SHORT-NAME>OsAppMode</SHORT-NAME>
              <ADMIN-DATA>
                <SDGS>
                  <SDG GID="source">
                    <SD GID="VALUE">/osconfig/os.ecucvalues</SD>
                  </SDG>
                </SDGS>
              </ADMIN-DATA>
              <DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsAppMode</DEFINITION-REF>
            </ECUC-CONTAINER-VALUE>
            <ECUC-CONTAINER-VALUE>
              <SHORT-NAME>ExampleOS</SHORT-NAME>
              <ADMIN-DATA>
                <SDGS>
                  <SDG GID="source">
                    <SD GID="VALUE">/osconfig/os.ecucvalues</SD>
                  </SDG>
                </SDGS>
              </ADMIN-DATA>
              <DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsOS</DEFINITION-REF>
              <PARAMETER-VALUES>
                <ECUC-NUMERICAL-PARAM-VALUE>
                  <DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsOS/OsUseParameterAccess</DEFINITION-REF>
                  <ANNOTATIONS>
                    <ANNOTATION>
                      <LABEL>
                        <L-4 L="EN">source</L-4>
                      </LABEL>
                      <ANNOTATION-ORIGIN>Ecuc Values Editor</ANNOTATION-ORIGIN>
                      <ANNOTATION-TEXT>
                        <P SI="egal">
                          <L-1 L="EN">/osconfig/os.ecucvalues</L-1>
                        </P>
                      </ANNOTATION-TEXT>
                    </ANNOTATION>
                  </ANNOTATIONS>
                  <VALUE>1</VALUE>
                </ECUC-NUMERICAL-PARAM-VALUE>
                <ECUC-NUMERICAL-PARAM-VALUE>
                  <DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsOS/OsStackMonitoring</DEFINITION-REF>
                  <ANNOTATIONS>
                    <ANNOTATION>
                      <LABEL>
                        <L-4 L="EN">source</L-4>
                      </LABEL>
                      <ANNOTATION-ORIGIN>Ecuc Values Editor</ANNOTATION-ORIGIN>
                      <ANNOTATION-TEXT>
                        <P SI="egal">
                          <L-1 L="EN">/osconfig/os.ecucvalues</L-1>
                        </P>
                      </ANNOTATION-TEXT>
                    </ANNOTATION>
                  </ANNOTATIONS>
                  <VALUE>1</VALUE>
                </ECUC-NUMERICAL-PARAM-VALUE>
                <ECUC-TEXTUAL-PARAM-VALUE>
                  <DEFINITION-REF DEST="ECUC-ENUMERATION-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsOS/OsStatus</DEFINITION-REF>
                  <ANNOTATIONS>
                    <ANNOTATION>
                      <LABEL>
                        <L-4 L="EN">source</L-4>
                      </LABEL>
                      <ANNOTATION-ORIGIN>Ecuc Values Editor</ANNOTATION-ORIGIN>
                      <ANNOTATION-TEXT>
                        <P SI="egal">
                          <L-1 L="EN">/osconfig/os.ecucvalues</L-1>
                        </P>
                      </ANNOTATION-TEXT>
                    </ANNOTATION>
                  </ANNOTATIONS>
                  <VALUE>EXTENDED</VALUE>
                </ECUC-TEXTUAL-PARAM-VALUE>
                <ECUC-NUMERICAL-PARAM-VALUE>
                  <DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsOS/OsUseGetServiceId</DEFINITION-REF>
                  <ANNOTATIONS>
                    <ANNOTATION>
                      <LABEL>
                        <L-4 L="EN">source</L-4>
                      </LABEL>
                      <ANNOTATION-ORIGIN>Ecuc Values Editor</ANNOTATION-ORIGIN>
                      <ANNOTATION-TEXT>
                        <P SI="egal">
                          <L-1 L="EN">/osconfig/os.ecucvalues</L-1>
                        </P>
                      </ANNOTATION-TEXT>
                    </ANNOTATION>
                  </ANNOTATIONS>
                  <VALUE>1</VALUE>
                </ECUC-NUMERICAL-PARAM-VALUE>
                <ECUC-NUMERICAL-PARAM-VALUE>
                  <DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsOS/OsUseResScheduler</DEFINITION-REF>
                  <ANNOTATIONS>
                    <ANNOTATION>
                      <LABEL>
                        <L-4 L="EN">source</L-4>
                      </LABEL>
                      <ANNOTATION-ORIGIN>Ecuc Values Editor</ANNOTATION-ORIGIN>
                      <ANNOTATION-TEXT>
                        <P SI="egal">
                          <L-1 L="EN">/osconfig/os.ecucvalues</L-1>
                        </P>
                      </ANNOTATION-TEXT>
                    </ANNOTATION>
                  </ANNOTATIONS>
                  <VALUE>1</VALUE>
                </ECUC-NUMERICAL-PARAM-VALUE>
              </PARAMETER-VALUES>
              <SUB-CONTAINERS>
                <ECUC-CONTAINER-VALUE>
                  <SHORT-NAME>OsHooks</SHORT-NAME>
                  <ADMIN-DATA>
                    <SDGS>
                      <SDG GID="source">
                        <SD GID="VALUE">/osconfig/os.ecucvalues</SD>
                      </SDG>
                    </SDGS>
                  </ADMIN-DATA>
                  <DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsOS/OsHooks</DEFINITION-REF>
                  <PARAMETER-VALUES>
                    <ECUC-NUMERICAL-PARAM-VALUE>
                      <DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsOS/OsHooks/OsErrorHook</DEFINITION-REF>
                      <ANNOTATIONS>
                        <ANNOTATION>
                          <LABEL>
                            <L-4 L="EN">source</L-4>
                          </LABEL>
                          <ANNOTATION-ORIGIN>Ecuc Values Editor</ANNOTATION-ORIGIN>
                          <ANNOTATION-TEXT>
                            <P SI="egal">
                              <L-1 L="EN">/osconfig/os.ecucvalues</L-1>
                            </P>
                          </ANNOTATION-TEXT>
                        </ANNOTATION>
                      </ANNOTATIONS>
                      <VALUE>1</VALUE>
                    </ECUC-NUMERICAL-PARAM-VALUE>
                    <ECUC-NUMERICAL-PARAM-VALUE>
                      <DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsOS/OsHooks/OsPostTaskHook</DEFINITION-REF>
                      <ANNOTATIONS>
                        <ANNOTATION>
                          <LABEL>
                            <L-4 L="EN">source</L-4>
                          </LABEL>
                          <ANNOTATION-ORIGIN>Ecuc Values Editor</ANNOTATION-ORIGIN>
                          <ANNOTATION-TEXT>
                            <P SI="egal">
                              <L-1 L="EN">/osconfig/os.ecucvalues</L-1>
                            </P>
                          </ANNOTATION-TEXT>
                        </ANNOTATION>
                      </ANNOTATIONS>
                      <VALUE>1</VALUE>
                    </ECUC-NUMERICAL-PARAM-VALUE>
                    <ECUC-NUMERICAL-PARAM-VALUE>
                      <DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsOS/OsHooks/OsPreTaskHook</DEFINITION-REF>
                      <ANNOTATIONS>
                        <ANNOTATION>
                          <LABEL>
                            <L-4 L="EN">source</L-4>
                          </LABEL>
                          <ANNOTATION-ORIGIN>Ecuc Values Editor</ANNOTATION-ORIGIN>
                          <ANNOTATION-TEXT>
                            <P SI="egal">
                              <L-1 L="EN">/osconfig/os.ecucvalues</L-1>
                            </P>
                          </ANNOTATION-TEXT>
                        </ANNOTATION>
                      </ANNOTATIONS>
                      <VALUE>1</VALUE>
                    </ECUC-NUMERICAL-PARAM-VALUE>
                    <ECUC-NUMERICAL-PARAM-VALUE>
                      <DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsOS/OsHooks/OsShutdownHook</DEFINITION-REF>
                      <ANNOTATIONS>
                        <ANNOTATION>
                          <LABEL>
                            <L-4 L="EN">source</L-4>
                          </LABEL>
                          <ANNOTATION-ORIGIN>Ecuc Values Editor</ANNOTATION-ORIGIN>
                          <ANNOTATION-TEXT>
                            <P SI="egal">
                              <L-1 L="EN">/osconfig/os.ecucvalues</L-1>
                            </P>
                          </ANNOTATION-TEXT>
                        </ANNOTATION>
                      </ANNOTATIONS>
                      <VALUE>1</VALUE>
                    </ECUC-NUMERICAL-PARAM-VALUE>
                    <ECUC-NUMERICAL-PARAM-VALUE>
                      <DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF">/AUTOSAR/EcucDefs/Os/OsOS/OsHooks/OsStartupHook</DEFINITION-REF>
                      <ANNOTATIONS>
                        <ANNOTATION>
                          <LABEL>
                            <L-4 L="EN">source</L-4>
                          </LABEL>
                          <ANNOTATION-ORIGIN>Ecuc Values Editor</ANNOTATION-ORIGIN>
                          <ANNOTATION-TEXT>
                            <P SI="egal">
                              <L-1 L="EN">/osconfig/os.ecucvalues</L-1>
                            </P>
                          </ANNOTATION-TEXT>
                        </ANNOTATION>
                      </ANNOTATIONS>
                      <VALUE>1</VALUE>
                    </ECUC-NUMERICAL-PARAM-VALUE>
                  </PARAMETER-VALUES>
                </ECUC-CONTAINER-VALUE>
              </SUB-CONTAINERS>
            </ECUC-CONTAINER-VALUE>
            <ECUC-CONTAINER-VALUE>
              <SHORT-NAME>ev1</SHORT-NAME>
              <ADMIN-DATA>
                <SDGS>
                  <SDG GID="source">
                    <SD GID="VALUE">/osconfig/os.ecucvalues</SD>
                  </SDG>
                </SDGS>
              </ADMIN-DATA>
              <DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsEvent</DEFINITION-REF>
            </ECUC-CONTAINER-VALUE>
            <ECUC-CONTAINER-VALUE>
              <SHORT-NAME>task1</SHORT-NAME>
              <ADMIN-DATA>
                <SDGS>
                  <SDG GID="source">
                    <SD GID="VALUE">/osconfig/os.ecucvalues</SD>
                  </SDG>
                </SDGS>
              </ADMIN-DATA>
              <DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Os/OsTask</DEFINITION-REF>
              <REFERENCE-VALUES>
                <ECUC-REFERENCE-VALUE>
                  <DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/AUTOSAR/EcucDefs/Os/OsTask/OsTaskEventRef</DEFINITION-REF>
                  <ANNOTATIONS>
                    <ANNOTATION>
                      <LABEL>
                        <L-4 L="EN">source</L-4>
                      </LABEL>
                      <ANNOTATION-ORIGIN>Ecuc Values Editor</ANNOTATION-ORIGIN>
                      <ANNOTATION-TEXT>
                        <P SI="egal">
                          <L-1 L="EN">/osconfig/os.ecucvalues</L-1>
                        </P>
                      </ANNOTATION-TEXT>
                    </ANNOTATION>
                  </ANNOTATIONS>
                  <VALUE-REF DEST="ECUC-CONTAINER-VALUE">/os/Os/ev1</VALUE-REF>
                </ECUC-REFERENCE-VALUE>
              </REFERENCE-VALUES>
            </ECUC-CONTAINER-VALUE>
          </CONTAINERS>
        </ECUC-MODULE-CONFIGURATION-VALUES>
      </ELEMENTS>
    </AR-PACKAGE>
  </AR-PACKAGES>
</AUTOSAR>
like image 127
Andreas Graf Avatar answered Mar 15 '26 12:03

Andreas Graf