陈杰 преди 3 години
родител
ревизия
8b7caa1f09
променени са 100 файла, в които са добавени 34039 реда и са изтрити 11233 реда
  1. 1 1
      .cproject
  2. 4 4
      .settings/language.settings.xml
  3. 220 220
      Project_Settings/Debugger/S32K146_4G_Debug_FLASH_PNE.launch
  4. 1733 0
      RTD/include/Adc.h
  5. 448 0
      RTD/include/Adc_Ip.h
  6. 68 0
      RTD/include/Adc_Ip_HeaderWrapper_S32K14x_Extended.h
  7. 62 0
      RTD/include/Adc_Ip_HeaderWrapper_S32K1xx.h
  8. 262 0
      RTD/include/Adc_Ip_HwAccess.h
  9. 422 0
      RTD/include/Adc_Ip_Types.h
  10. 356 0
      RTD/include/Adc_Ipw.h
  11. 111 0
      RTD/include/Adc_Ipw_Irq.h
  12. 340 0
      RTD/include/Adc_Ipw_Types.h
  13. 475 0
      RTD/include/Adc_Types.h
  14. 167 167
      RTD/include/Det.h
  15. 100 100
      RTD/include/Det_stub.h
  16. 196 196
      RTD/include/OsIf.h
  17. 165 165
      RTD/include/OsIf_Cfg_TypesDef.h
  18. 74 74
      RTD/include/OsIf_DeviceRegisters.h
  19. 255 255
      RTD/include/OsIf_Internal.h
  20. 109 109
      RTD/include/OsIf_Timer_Custom.h
  21. 109 109
      RTD/include/OsIf_Timer_System.h
  22. 163 163
      RTD/include/OsIf_Timer_System_Internal_Systick.h
  23. 349 0
      RTD/include/Pdb_Adc_Ip.h
  24. 128 0
      RTD/include/Pdb_Adc_Ip_HwAccess.h
  25. 226 0
      RTD/include/Pdb_Adc_Ip_Types.h
  26. 334 0
      RTD/include/SchM_Adc.h
  27. 5862 0
      RTD/src/Adc.c
  28. 1351 0
      RTD/src/Adc_Ip.c
  29. 111 0
      RTD/src/Adc_Ip_Isr.c
  30. 2233 0
      RTD/src/Adc_Ipw.c
  31. 1701 0
      RTD/src/Adc_Ipw_Irq.c
  32. 287 287
      RTD/src/Det.c
  33. 244 244
      RTD/src/Det_stub.c
  34. 350 350
      RTD/src/OsIf_Timer.c
  35. 464 464
      RTD/src/OsIf_Timer_System.c
  36. 832 0
      RTD/src/Pdb_Adc_Ip.c
  37. 111 0
      RTD/src/Pdb_Adc_Ip_Isr.c
  38. 3197 0
      RTD/src/SchM_Adc.c
  39. 190 0
      S32K146_4G.mex
  40. 164 0
      generate/include/Adc_Cfg.h
  41. 459 0
      generate/include/Adc_CfgDefines.h
  42. 140 0
      generate/include/Adc_Ip_Cfg.h
  43. 159 0
      generate/include/Adc_Ip_CfgDefines.h
  44. 118 0
      generate/include/Adc_Ip_VS_0_PBcfg.h
  45. 141 0
      generate/include/Adc_Ipw_Cfg.h
  46. 100 0
      generate/include/Adc_Ipw_CfgDefines.h
  47. 136 0
      generate/include/Adc_Ipw_VS_0_PBcfg.h
  48. 116 0
      generate/include/Adc_VS_0_PBcfg.h
  49. 275 275
      generate/include/CDD_Mcl_Cfg.h
  50. 214 214
      generate/include/CDD_Mcl_Cfg_Defines.h
  51. 137 137
      generate/include/CDD_Mcl_VS_0_PBcfg.h
  52. 113 113
      generate/include/Cache_Ip_Cfg_Defines.h
  53. 89 89
      generate/include/Cache_Ip_Cfg_DeviceRegisters.h
  54. 331 331
      generate/include/Can_Cfg.h
  55. 83 83
      generate/include/Can_Externals.h
  56. 161 161
      generate/include/Can_Ipw_Cfg.h
  57. 116 116
      generate/include/Can_Ipw_VS_0_PBcfg.h
  58. 118 118
      generate/include/Can_VS_0_PBcfg.h
  59. 135 135
      generate/include/Clock_Ip_Cfg.h
  60. 310 310
      generate/include/Clock_Ip_Cfg_Defines.h
  61. 104 104
      generate/include/Clock_Ip_VS_0_PBcfg.h
  62. 532 532
      generate/include/Dio_Cfg.h
  63. 199 199
      generate/include/Dma_Ip_Cfg.h
  64. 269 269
      generate/include/Dma_Ip_Cfg_Defines.h
  65. 240 240
      generate/include/Dma_Ip_Cfg_DeviceRegistersV2.h
  66. 99 99
      generate/include/Dma_Ip_Cfg_Devices.h
  67. 149 149
      generate/include/Dma_Ip_VS_0_PBcfg.h
  68. 119 119
      generate/include/EcuM_Cfg.h
  69. 239 239
      generate/include/FlexCAN_Ip_Cfg.h
  70. 74 74
      generate/include/FlexCAN_Ip_CfgDefines.h
  71. 85 85
      generate/include/FlexCAN_Ip_VS_0_PBcfg.h
  72. 150 150
      generate/include/Flexio_Mcl_Ip_Cfg.h
  73. 175 175
      generate/include/Flexio_Mcl_Ip_Cfg_Defines.h
  74. 90 90
      generate/include/Flexio_Mcl_Ip_Cfg_DeviceRegisters.h
  75. 105 105
      generate/include/Flexio_Mcl_Ip_VS_0_PBcfg.h
  76. 278 278
      generate/include/Flexio_Spi_Ip_Cfg.h
  77. 103 103
      generate/include/Flexio_Spi_Ip_CfgDefines.h
  78. 109 109
      generate/include/Flexio_Spi_Ip_VS_0_PBcfg.h
  79. 123 123
      generate/include/Flexio_Uart_Ip_Cfg.h
  80. 107 107
      generate/include/Flexio_Uart_Ip_CfgDefines.h
  81. 124 124
      generate/include/Flexio_Uart_Ip_Defines.h
  82. 141 141
      generate/include/Flexio_Uart_Ip_VS_0_PBcfg.h
  83. 123 123
      generate/include/Ftm_Mcl_Ip_Cfg.h
  84. 87 87
      generate/include/Ftm_Mcl_Ip_Cfg_DeviceRegisters.h
  85. 98 98
      generate/include/Gpio_Dio_Ip_Cfg.h
  86. 127 126
      generate/include/IntCtrl_Ip_Cfg.h
  87. 103 103
      generate/include/IntCtrl_Ip_CfgDefines.h
  88. 239 239
      generate/include/Lpspi_Ip_Cfg.h
  89. 103 103
      generate/include/Lpspi_Ip_VS_0_PBcfg.h
  90. 124 124
      generate/include/Lpuart_Uart_Ip_Cfg.h
  91. 121 121
      generate/include/Lpuart_Uart_Ip_Defines.h
  92. 171 171
      generate/include/Lpuart_Uart_Ip_VS_0_PBcfg.h
  93. 826 836
      generate/include/Mcu_Cfg.h
  94. 117 117
      generate/include/Mcu_VS_0_PBcfg.h
  95. 143 143
      generate/include/OsIf_Cfg.h
  96. 125 125
      generate/include/Os_cfg.h
  97. 140 0
      generate/include/Pdb_Adc_Ip_Cfg.h
  98. 122 0
      generate/include/Pdb_Adc_Ip_CfgDefines.h
  99. 118 0
      generate/include/Pdb_Adc_Ip_VS_0_PBcfg.h
  100. 113 113
      generate/include/Platform_Cfg.h

+ 1 - 1
.cproject

@@ -768,7 +768,7 @@
 	<storageModule moduleId="org.eclipse.embsys" parent_project="true" register_architecture="" register_board="---  none ---" register_chip="" register_core="" register_vendor=""/>
 	<storageModule moduleId="refreshScope"/>
 	<storageModule moduleId="com.nxp.s32ds.cle.uct.core">
-		<sdkComponents>platform.driver.osif;platform.driver.det;platform.driver.rte_can;platform.driver.rte_dio;platform.driver.rte_mcu;platform.driver.rte_mcl;platform.driver.rte_port;platform.driver.rte_uart;platform.os.freertos;platform.driver.Can;platform.driver.CanIf;platform.driver.dio;platform.driver.ecum;platform.driver.mcu;platform.driver.mcl;platform.driver.Platform;platform.driver.port;platform.driver.uart;platform.driver.clock</sdkComponents>
+		<sdkComponents>platform.driver.osif;platform.driver.det;platform.driver.rte_can;platform.driver.rte_dio;platform.driver.rte_mcu;platform.driver.rte_mcl;platform.driver.rte_port;platform.driver.rte_uart;platform.os.freertos;platform.driver.Can;platform.driver.CanIf;platform.driver.dio;platform.driver.ecum;platform.driver.mcu;platform.driver.mcl;platform.driver.Platform;platform.driver.port;platform.driver.uart;platform.driver.clock;platform.driver.adc;platform.driver.rte_adc</sdkComponents>
 		<COND_TOOLCHAIN_ADD_REMOVE_COMPONENTS_OPTION>true</COND_TOOLCHAIN_ADD_REMOVE_COMPONENTS_OPTION>
 		<COND_TOOLCHAIN_COPY_SOURCES>true</COND_TOOLCHAIN_COPY_SOURCES>
 	</storageModule>

+ 4 - 4
.settings/language.settings.xml

@@ -5,7 +5,7 @@
 			<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
 			<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
 			<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
-			<provider class="com.freescale.s32ds.cross.gnu.CrossGCCBuiltinSpecsDetector" console="false" env-hash="512964616103659477" id="com.freescale.s32ds.cross.gnu.CrossGCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT S32DS Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
+			<provider class="com.freescale.s32ds.cross.gnu.CrossGCCBuiltinSpecsDetector" console="false" env-hash="1805121227979261312" id="com.freescale.s32ds.cross.gnu.CrossGCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT S32DS Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
 				<language-scope id="org.eclipse.cdt.core.gcc"/>
 				<language-scope id="org.eclipse.cdt.core.g++"/>
 			</provider>
@@ -16,7 +16,7 @@
 			<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
 			<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
 			<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
-			<provider class="com.freescale.s32ds.cross.gnu.CrossGCCBuiltinSpecsDetector" console="false" env-hash="512964616103659477" id="com.freescale.s32ds.cross.gnu.CrossGCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT S32DS Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
+			<provider class="com.freescale.s32ds.cross.gnu.CrossGCCBuiltinSpecsDetector" console="false" env-hash="1805121227979261312" id="com.freescale.s32ds.cross.gnu.CrossGCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT S32DS Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
 				<language-scope id="org.eclipse.cdt.core.gcc"/>
 				<language-scope id="org.eclipse.cdt.core.g++"/>
 			</provider>
@@ -27,7 +27,7 @@
 			<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
 			<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
 			<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
-			<provider class="com.freescale.s32ds.cross.gnu.CrossGCCBuiltinSpecsDetector" console="false" env-hash="512964616103659477" id="com.freescale.s32ds.cross.gnu.CrossGCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT S32DS Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
+			<provider class="com.freescale.s32ds.cross.gnu.CrossGCCBuiltinSpecsDetector" console="false" env-hash="1805121227979261312" id="com.freescale.s32ds.cross.gnu.CrossGCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT S32DS Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
 				<language-scope id="org.eclipse.cdt.core.gcc"/>
 				<language-scope id="org.eclipse.cdt.core.g++"/>
 			</provider>
@@ -38,7 +38,7 @@
 			<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
 			<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
 			<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
-			<provider class="com.freescale.s32ds.cross.gnu.CrossGCCBuiltinSpecsDetector" console="false" env-hash="512964616103659477" id="com.freescale.s32ds.cross.gnu.CrossGCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT S32DS Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
+			<provider class="com.freescale.s32ds.cross.gnu.CrossGCCBuiltinSpecsDetector" console="false" env-hash="1805121227979261312" id="com.freescale.s32ds.cross.gnu.CrossGCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT S32DS Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
 				<language-scope id="org.eclipse.cdt.core.gcc"/>
 				<language-scope id="org.eclipse.cdt.core.g++"/>
 			</provider>

+ 220 - 220
Project_Settings/Debugger/S32K146_4G_Debug_FLASH_PNE.launch

@@ -1,220 +1,220 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<launchConfiguration type="com.pemicro.debug.gdbjtag.pne.launchConfigurationType">
-<booleanAttribute key="com.nxp.s32ds.ext.cdt.debug.svd.ask_before_clean" value="false"/>
-<booleanAttribute key="com.nxp.s32ds.ext.cdt.debug.svd.clean_watch_view" value="false"/>
-<stringAttribute key="com.nxp.s32ds.ext.cdt.debug.svd.merge_strategy" value="ALL"/>
-<stringAttribute key="com.nxp.s32ds.ext.cdt.debug.svd.svd_path" value=""/>
-<booleanAttribute key="com.nxp.s32ds.ext.cdt.debug.svd.use_default" value="true"/>
-<listAttribute key="com.pemicro.debug.gdbjtag.pne.ELVES"/>
-<listAttribute key="com.pemicro.debug.gdbjtag.pne.ELVES_OFFSET"/>
-<intAttribute key="com.pemicro.debug.gdbjtag.pne.NUMBER_ELVES" value="0"/>
-<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.PE.BUSERR" value="true"/>
-<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.PE.CHKERR" value="true"/>
-<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.PE.CORERESET" value="true"/>
-<stringAttribute key="com.pemicro.debug.gdbjtag.pne.PE.DEVICE_NAME" value="NXP_S32K1xx_S32K146F1M0M11"/>
-<stringAttribute key="com.pemicro.debug.gdbjtag.pne.PE.GDB_OPTIONS" value=""/>
-<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.PE.HARDERR" value="true"/>
-<intAttribute key="com.pemicro.debug.gdbjtag.pne.PE.HARDWARE_INTERFACE" value="0"/>
-<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.PE.INTERR" value="true"/>
-<stringAttribute key="com.pemicro.debug.gdbjtag.pne.PE.LAST_ATTRIBUTE_HEADER" value="com.pemicro.debug.gdbjtag.pne.ml."/>
-<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.PE.MMERR" value="true"/>
-<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.PE.NOCPERR" value="true"/>
-<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.PE.STATERR" value="true"/>
-<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.PE.STREAMING_ENABLE_PORT1" value="true"/>
-<stringAttribute key="com.pemicro.debug.gdbjtag.pne.PE.STREAMING_SERVER_PORT1" value="10224"/>
-<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.PE.USE_EXTERNAL_SERVER" value="true"/>
-<intAttribute key="com.pemicro.debug.gdbjtag.pne.algorithmIndex" value="0"/>
-<stringAttribute key="com.pemicro.debug.gdbjtag.pne.alternativeAlgorithmPath" value=""/>
-<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.attachToRunning" value="false"/>
-<stringAttribute key="com.pemicro.debug.gdbjtag.pne.customTrimFrequency" value="0"/>
-<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_eth.ALWAYS_ERASE" value="false"/>
-<stringAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_eth.CYCLONE_IP" value=""/>
-<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_eth.DO_RESET_DELAY" value="false"/>
-<intAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_eth.INTERFACE_PORT" value="0"/>
-<stringAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_eth.INTERFACE_PORT_STRING" value=""/>
-<stringAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_eth.NETWORK_CARD_IP" value=""/>
-<stringAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_eth.POWER_DOWN_DELAY" value="250"/>
-<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_eth.POWER_OFF" value="false"/>
-<stringAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_eth.POWER_UP_DELAY" value="250"/>
-<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_eth.PROVIDE_POWER" value="true"/>
-<intAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_eth.REGULATOR_VOLTAGE" value="0"/>
-<stringAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_eth.RESET_DELAY" value="0"/>
-<stringAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_eth.SHIFT_FREQ" value="5000"/>
-<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_eth.SPECIFY_IP" value="false"/>
-<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_eth.SPECIFY_NETWORK_CARD" value="false"/>
-<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_eth.STARTUP_USE_SWD" value="true"/>
-<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_ser.ALWAYS_ERASE" value="false"/>
-<stringAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_ser.CYCLONE_IP" value=""/>
-<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_ser.DO_RESET_DELAY" value="false"/>
-<intAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_ser.INTERFACE_PORT" value="0"/>
-<stringAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_ser.INTERFACE_PORT_STRING" value=""/>
-<stringAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_ser.NETWORK_CARD_IP" value=""/>
-<stringAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_ser.POWER_DOWN_DELAY" value="250"/>
-<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_ser.POWER_OFF" value="false"/>
-<stringAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_ser.POWER_UP_DELAY" value="250"/>
-<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_ser.PROVIDE_POWER" value="true"/>
-<intAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_ser.REGULATOR_VOLTAGE" value="0"/>
-<stringAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_ser.RESET_DELAY" value="0"/>
-<stringAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_ser.SHIFT_FREQ" value="5000"/>
-<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_ser.SPECIFY_IP" value="false"/>
-<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_ser.SPECIFY_NETWORK_CARD" value="false"/>
-<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_ser.STARTUP_USE_SWD" value="true"/>
-<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_usb.ALWAYS_ERASE" value="false"/>
-<stringAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_usb.CYCLONE_IP" value=""/>
-<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_usb.DO_RESET_DELAY" value="false"/>
-<intAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_usb.INTERFACE_PORT" value="0"/>
-<stringAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_usb.INTERFACE_PORT_STRING" value=""/>
-<stringAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_usb.NETWORK_CARD_IP" value=""/>
-<stringAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_usb.POWER_DOWN_DELAY" value="250"/>
-<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_usb.POWER_OFF" value="false"/>
-<stringAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_usb.POWER_UP_DELAY" value="250"/>
-<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_usb.PROVIDE_POWER" value="true"/>
-<intAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_usb.REGULATOR_VOLTAGE" value="0"/>
-<stringAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_usb.RESET_DELAY" value="0"/>
-<stringAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_usb.SHIFT_FREQ" value="5000"/>
-<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_usb.SPECIFY_IP" value="false"/>
-<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_usb.SPECIFY_NETWORK_CARD" value="false"/>
-<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_usb.STARTUP_USE_SWD" value="true"/>
-<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.doContinue" value="true"/>
-<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.doGdbServerAllocateSemihostingConsole" value="true"/>
-<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.doPartitioning" value="false"/>
-<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.enableSemihosting" value="true"/>
-<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.enableSemihostingIoclientGdbClient" value="false"/>
-<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.enableSemihostingIoclientTelnet" value="true"/>
-<stringAttribute key="com.pemicro.debug.gdbjtag.pne.eraseCommandParam" value="EM"/>
-<intAttribute key="com.pemicro.debug.gdbjtag.pne.eraseOptionIndex" value="0"/>
-<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.eraseOptionsenabled" value="false"/>
-<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.executeUnlockCommand" value="false"/>
-<stringAttribute key="com.pemicro.debug.gdbjtag.pne.gdbClientOtherCommands" value="set mem inaccessible-by-default off&#13;&#10;set tcp auto-retry on&#13;&#10;set tcp connect-timeout 240&#13;&#10;set remotetimeout 60"/>
-<stringAttribute key="com.pemicro.debug.gdbjtag.pne.gdbClientOtherOptions" value=""/>
-<intAttribute key="com.pemicro.debug.gdbjtag.pne.gdbServerTelnetPortNumber" value="51794"/>
-<intAttribute key="com.pemicro.debug.gdbjtag.pne.gdbmiPortNumber" value="6224"/>
-<intAttribute key="com.pemicro.debug.gdbjtag.pne.jtagPreIrBits" value="0"/>
-<intAttribute key="com.pemicro.debug.gdbjtag.pne.jtagTapNumber" value="0"/>
-<stringAttribute key="com.pemicro.debug.gdbjtag.pne.macScript" value=""/>
-<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.macScriptEnable" value="false"/>
-<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.ml.ALWAYS_ERASE" value="false"/>
-<stringAttribute key="com.pemicro.debug.gdbjtag.pne.ml.CYCLONE_IP" value=""/>
-<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.ml.DO_RESET_DELAY" value="false"/>
-<intAttribute key="com.pemicro.debug.gdbjtag.pne.ml.INTERFACE_PORT" value="0"/>
-<stringAttribute key="com.pemicro.debug.gdbjtag.pne.ml.INTERFACE_PORT_STRING" value="USB1"/>
-<stringAttribute key="com.pemicro.debug.gdbjtag.pne.ml.NETWORK_CARD_IP" value=""/>
-<stringAttribute key="com.pemicro.debug.gdbjtag.pne.ml.POWER_DOWN_DELAY" value="250"/>
-<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.ml.POWER_OFF" value="false"/>
-<stringAttribute key="com.pemicro.debug.gdbjtag.pne.ml.POWER_UP_DELAY" value="1000"/>
-<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.ml.PROVIDE_POWER" value="true"/>
-<intAttribute key="com.pemicro.debug.gdbjtag.pne.ml.REGULATOR_VOLTAGE" value="0"/>
-<stringAttribute key="com.pemicro.debug.gdbjtag.pne.ml.RESET_DELAY" value="0"/>
-<stringAttribute key="com.pemicro.debug.gdbjtag.pne.ml.SHIFT_FREQ" value="5000"/>
-<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.ml.SPECIFY_IP" value="false"/>
-<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.ml.SPECIFY_NETWORK_CARD" value="false"/>
-<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.ml.STARTUP_USE_SWD" value="true"/>
-<stringAttribute key="com.pemicro.debug.gdbjtag.pne.ml.SWO_BAUDRATE_SWITCH_MULTILINK_VALUE" value="-1.000000"/>
-<stringAttribute key="com.pemicro.debug.gdbjtag.pne.ml.SWO_BAUDRATE_SWITCH_TARGET_VALUE" value="-1.000000"/>
-<stringAttribute key="com.pemicro.debug.gdbjtag.pne.otherRunCommands" value=""/>
-<intAttribute key="com.pemicro.debug.gdbjtag.pne.partitionParam" value="0"/>
-<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.preserveMemory0" value="false"/>
-<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.preserveMemory1" value="false"/>
-<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.preserveMemory2" value="false"/>
-<stringAttribute key="com.pemicro.debug.gdbjtag.pne.preserveMemoryFrom0" value="0"/>
-<stringAttribute key="com.pemicro.debug.gdbjtag.pne.preserveMemoryFrom1" value="0"/>
-<stringAttribute key="com.pemicro.debug.gdbjtag.pne.preserveMemoryFrom2" value="0"/>
-<stringAttribute key="com.pemicro.debug.gdbjtag.pne.preserveMemoryTo0" value="3"/>
-<stringAttribute key="com.pemicro.debug.gdbjtag.pne.preserveMemoryTo1" value="3"/>
-<stringAttribute key="com.pemicro.debug.gdbjtag.pne.preserveMemoryTo2" value="3"/>
-<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.preservePartioning" value="false"/>
-<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.programtrim" value="false"/>
-<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.sda.ALWAYS_ERASE" value="false"/>
-<stringAttribute key="com.pemicro.debug.gdbjtag.pne.sda.CYCLONE_IP" value=""/>
-<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.sda.DO_RESET_DELAY" value="false"/>
-<intAttribute key="com.pemicro.debug.gdbjtag.pne.sda.INTERFACE_PORT" value="0"/>
-<stringAttribute key="com.pemicro.debug.gdbjtag.pne.sda.INTERFACE_PORT_STRING" value=""/>
-<stringAttribute key="com.pemicro.debug.gdbjtag.pne.sda.NETWORK_CARD_IP" value=""/>
-<stringAttribute key="com.pemicro.debug.gdbjtag.pne.sda.POWER_DOWN_DELAY" value=""/>
-<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.sda.POWER_OFF" value="false"/>
-<stringAttribute key="com.pemicro.debug.gdbjtag.pne.sda.POWER_UP_DELAY" value=""/>
-<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.sda.PROVIDE_POWER" value="true"/>
-<intAttribute key="com.pemicro.debug.gdbjtag.pne.sda.REGULATOR_VOLTAGE" value="0"/>
-<stringAttribute key="com.pemicro.debug.gdbjtag.pne.sda.RESET_DELAY" value="0"/>
-<stringAttribute key="com.pemicro.debug.gdbjtag.pne.sda.SHIFT_FREQ" value="5000"/>
-<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.sda.SPECIFY_IP" value="false"/>
-<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.sda.SPECIFY_NETWORK_CARD" value="false"/>
-<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.sda.STARTUP_USE_SWD" value="true"/>
-<intAttribute key="com.pemicro.debug.gdbjtag.pne.selectedCoreNumber" value="1"/>
-<intAttribute key="com.pemicro.debug.gdbjtag.pne.serverPortNumber" value="7224"/>
-<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.trc_eth.ALWAYS_ERASE" value="false"/>
-<stringAttribute key="com.pemicro.debug.gdbjtag.pne.trc_eth.CYCLONE_IP" value=""/>
-<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.trc_eth.DO_RESET_DELAY" value="false"/>
-<intAttribute key="com.pemicro.debug.gdbjtag.pne.trc_eth.INTERFACE_PORT" value="0"/>
-<stringAttribute key="com.pemicro.debug.gdbjtag.pne.trc_eth.INTERFACE_PORT_STRING" value=""/>
-<stringAttribute key="com.pemicro.debug.gdbjtag.pne.trc_eth.NETWORK_CARD_IP" value=""/>
-<stringAttribute key="com.pemicro.debug.gdbjtag.pne.trc_eth.POWER_DOWN_DELAY" value="250"/>
-<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.trc_eth.POWER_OFF" value="false"/>
-<stringAttribute key="com.pemicro.debug.gdbjtag.pne.trc_eth.POWER_UP_DELAY" value="250"/>
-<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.trc_eth.PROVIDE_POWER" value="true"/>
-<intAttribute key="com.pemicro.debug.gdbjtag.pne.trc_eth.REGULATOR_VOLTAGE" value="0"/>
-<stringAttribute key="com.pemicro.debug.gdbjtag.pne.trc_eth.RESET_DELAY" value="0"/>
-<stringAttribute key="com.pemicro.debug.gdbjtag.pne.trc_eth.SHIFT_FREQ" value="5000"/>
-<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.trc_eth.SPECIFY_IP" value="false"/>
-<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.trc_eth.SPECIFY_NETWORK_CARD" value="false"/>
-<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.trc_eth.STARTUP_USE_SWD" value="true"/>
-<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.trc_usb.ALWAYS_ERASE" value="false"/>
-<stringAttribute key="com.pemicro.debug.gdbjtag.pne.trc_usb.CYCLONE_IP" value=""/>
-<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.trc_usb.DO_RESET_DELAY" value="false"/>
-<intAttribute key="com.pemicro.debug.gdbjtag.pne.trc_usb.INTERFACE_PORT" value="0"/>
-<stringAttribute key="com.pemicro.debug.gdbjtag.pne.trc_usb.INTERFACE_PORT_STRING" value=""/>
-<stringAttribute key="com.pemicro.debug.gdbjtag.pne.trc_usb.NETWORK_CARD_IP" value=""/>
-<stringAttribute key="com.pemicro.debug.gdbjtag.pne.trc_usb.POWER_DOWN_DELAY" value="250"/>
-<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.trc_usb.POWER_OFF" value="false"/>
-<stringAttribute key="com.pemicro.debug.gdbjtag.pne.trc_usb.POWER_UP_DELAY" value="250"/>
-<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.trc_usb.PROVIDE_POWER" value="true"/>
-<intAttribute key="com.pemicro.debug.gdbjtag.pne.trc_usb.REGULATOR_VOLTAGE" value="0"/>
-<stringAttribute key="com.pemicro.debug.gdbjtag.pne.trc_usb.RESET_DELAY" value="0"/>
-<stringAttribute key="com.pemicro.debug.gdbjtag.pne.trc_usb.SHIFT_FREQ" value="5000"/>
-<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.trc_usb.SPECIFY_IP" value="false"/>
-<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.trc_usb.SPECIFY_NETWORK_CARD" value="false"/>
-<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.trc_usb.STARTUP_USE_SWD" value="true"/>
-<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.useAlternativeAlgorithm" value="false"/>
-<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.useCustomTrim" value="false"/>
-<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.useDaisyChain" value="false"/>
-<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.imageFileName" value=""/>
-<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.imageOffset" value=""/>
-<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.ipAddress" value="localhost"/>
-<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.jtagDevice" value="GNU ARM PEMicro Interface"/>
-<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.jtagDeviceId" value="com.pemicro.debug.gdbjtag.pne.jtagdeviceid"/>
-<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.loadImage" value="true"/>
-<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.loadSymbols" value="true"/>
-<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.pcRegister" value=""/>
-<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setPcRegister" value="false"/>
-<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setResume" value="false"/>
-<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setStopAt" value="true"/>
-<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.stopAt" value="main"/>
-<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.symbolsFileName" value=""/>
-<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.symbolsOffset" value=""/>
-<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useFileForImage" value="false"/>
-<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useFileForSymbols" value="false"/>
-<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useProjBinaryForImage" value="true"/>
-<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useProjBinaryForSymbols" value="true"/>
-<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useRemoteTarget" value="true"/>
-<stringAttribute key="org.eclipse.cdt.debug.mi.core.commandFactory" value="Standard (Windows)"/>
-<stringAttribute key="org.eclipse.cdt.debug.mi.core.protocol" value="mi"/>
-<booleanAttribute key="org.eclipse.cdt.debug.mi.core.verboseMode" value="false"/>
-<stringAttribute key="org.eclipse.cdt.dsf.gdb.DEBUG_NAME" value="${S32DS_GDB_ARM32_EXE}"/>
-<booleanAttribute key="org.eclipse.cdt.dsf.gdb.UPDATE_THREADLIST_ON_SUSPEND" value="false"/>
-<intAttribute key="org.eclipse.cdt.launch.ATTR_BUILD_BEFORE_LAUNCH_ATTR" value="2"/>
-<stringAttribute key="org.eclipse.cdt.launch.COREFILE_PATH" value=""/>
-<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_REGISTER_GROUPS" value=""/>
-<stringAttribute key="org.eclipse.cdt.launch.PROGRAM_NAME" value="Debug_FLASH/S32K146_4G.elf"/>
-<stringAttribute key="org.eclipse.cdt.launch.PROJECT_ATTR" value="S32K146_4G"/>
-<booleanAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_AUTO_ATTR" value="false"/>
-<stringAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_ID_ATTR" value="com.nxp.s32ds.cle.arm.mbs.arm32.bare.gnu.9.2.exe.debug.222968549"/>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/S32K146_4G"/>
-</listAttribute>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
-<listEntry value="4"/>
-</listAttribute>
-<stringAttribute key="org.eclipse.dsf.launch.MEMORY_BLOCKS" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;memoryBlockExpressionList context=&quot;reserved-for-future-use&quot;&gt;&#13;&#10;&lt;gdbmemoryBlockExpression address=&quot;536806032&quot; label=&quot;RX_Buffer[UART_LPUART2]&quot;/&gt;&#13;&#10;&lt;gdbmemoryBlockExpression address=&quot;536823956&quot; label=&quot;GpsBufferGet&quot;/&gt;&#13;&#10;&lt;gdbmemoryBlockExpression address=&quot;255&quot; label=&quot;SocketId&quot;/&gt;&#13;&#10;&lt;/memoryBlockExpressionList&gt;&#13;&#10;"/>
-<stringAttribute key="process_factory_id" value="org.eclipse.cdt.dsf.gdb.GdbProcessFactory"/>
-<stringAttribute key="saved_expressions&lt;seperator&gt;Unknown" value="0x1fff01d0,0x1fff01c0,0x1fff4b00,0x1fff4b51,0x1fff4b56,0x1fff0290,0x1fff4894,0x1fff04e8,0x1fff01c8,0x1fff2ce8,0x1fff0100,0x1fff08d0,0x1fff4b48,0x1fff4b50,0x1fff0103"/>
-</launchConfiguration>
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="com.pemicro.debug.gdbjtag.pne.launchConfigurationType">
+<booleanAttribute key="com.nxp.s32ds.ext.cdt.debug.svd.ask_before_clean" value="false"/>
+<booleanAttribute key="com.nxp.s32ds.ext.cdt.debug.svd.clean_watch_view" value="false"/>
+<stringAttribute key="com.nxp.s32ds.ext.cdt.debug.svd.merge_strategy" value="ALL"/>
+<stringAttribute key="com.nxp.s32ds.ext.cdt.debug.svd.svd_path" value=""/>
+<booleanAttribute key="com.nxp.s32ds.ext.cdt.debug.svd.use_default" value="true"/>
+<listAttribute key="com.pemicro.debug.gdbjtag.pne.ELVES"/>
+<listAttribute key="com.pemicro.debug.gdbjtag.pne.ELVES_OFFSET"/>
+<intAttribute key="com.pemicro.debug.gdbjtag.pne.NUMBER_ELVES" value="0"/>
+<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.PE.BUSERR" value="true"/>
+<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.PE.CHKERR" value="true"/>
+<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.PE.CORERESET" value="true"/>
+<stringAttribute key="com.pemicro.debug.gdbjtag.pne.PE.DEVICE_NAME" value="NXP_S32K1xx_S32K146F1M0M11"/>
+<stringAttribute key="com.pemicro.debug.gdbjtag.pne.PE.GDB_OPTIONS" value=""/>
+<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.PE.HARDERR" value="true"/>
+<intAttribute key="com.pemicro.debug.gdbjtag.pne.PE.HARDWARE_INTERFACE" value="0"/>
+<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.PE.INTERR" value="true"/>
+<stringAttribute key="com.pemicro.debug.gdbjtag.pne.PE.LAST_ATTRIBUTE_HEADER" value="com.pemicro.debug.gdbjtag.pne.ml."/>
+<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.PE.MMERR" value="true"/>
+<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.PE.NOCPERR" value="true"/>
+<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.PE.STATERR" value="true"/>
+<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.PE.STREAMING_ENABLE_PORT1" value="true"/>
+<stringAttribute key="com.pemicro.debug.gdbjtag.pne.PE.STREAMING_SERVER_PORT1" value="10224"/>
+<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.PE.USE_EXTERNAL_SERVER" value="true"/>
+<intAttribute key="com.pemicro.debug.gdbjtag.pne.algorithmIndex" value="0"/>
+<stringAttribute key="com.pemicro.debug.gdbjtag.pne.alternativeAlgorithmPath" value=""/>
+<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.attachToRunning" value="false"/>
+<stringAttribute key="com.pemicro.debug.gdbjtag.pne.customTrimFrequency" value="0"/>
+<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_eth.ALWAYS_ERASE" value="false"/>
+<stringAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_eth.CYCLONE_IP" value=""/>
+<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_eth.DO_RESET_DELAY" value="false"/>
+<intAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_eth.INTERFACE_PORT" value="0"/>
+<stringAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_eth.INTERFACE_PORT_STRING" value=""/>
+<stringAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_eth.NETWORK_CARD_IP" value=""/>
+<stringAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_eth.POWER_DOWN_DELAY" value="250"/>
+<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_eth.POWER_OFF" value="false"/>
+<stringAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_eth.POWER_UP_DELAY" value="250"/>
+<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_eth.PROVIDE_POWER" value="true"/>
+<intAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_eth.REGULATOR_VOLTAGE" value="0"/>
+<stringAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_eth.RESET_DELAY" value="0"/>
+<stringAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_eth.SHIFT_FREQ" value="5000"/>
+<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_eth.SPECIFY_IP" value="false"/>
+<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_eth.SPECIFY_NETWORK_CARD" value="false"/>
+<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_eth.STARTUP_USE_SWD" value="true"/>
+<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_ser.ALWAYS_ERASE" value="false"/>
+<stringAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_ser.CYCLONE_IP" value=""/>
+<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_ser.DO_RESET_DELAY" value="false"/>
+<intAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_ser.INTERFACE_PORT" value="0"/>
+<stringAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_ser.INTERFACE_PORT_STRING" value=""/>
+<stringAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_ser.NETWORK_CARD_IP" value=""/>
+<stringAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_ser.POWER_DOWN_DELAY" value="250"/>
+<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_ser.POWER_OFF" value="false"/>
+<stringAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_ser.POWER_UP_DELAY" value="250"/>
+<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_ser.PROVIDE_POWER" value="true"/>
+<intAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_ser.REGULATOR_VOLTAGE" value="0"/>
+<stringAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_ser.RESET_DELAY" value="0"/>
+<stringAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_ser.SHIFT_FREQ" value="5000"/>
+<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_ser.SPECIFY_IP" value="false"/>
+<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_ser.SPECIFY_NETWORK_CARD" value="false"/>
+<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_ser.STARTUP_USE_SWD" value="true"/>
+<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_usb.ALWAYS_ERASE" value="false"/>
+<stringAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_usb.CYCLONE_IP" value=""/>
+<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_usb.DO_RESET_DELAY" value="false"/>
+<intAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_usb.INTERFACE_PORT" value="0"/>
+<stringAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_usb.INTERFACE_PORT_STRING" value=""/>
+<stringAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_usb.NETWORK_CARD_IP" value=""/>
+<stringAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_usb.POWER_DOWN_DELAY" value="250"/>
+<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_usb.POWER_OFF" value="false"/>
+<stringAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_usb.POWER_UP_DELAY" value="250"/>
+<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_usb.PROVIDE_POWER" value="true"/>
+<intAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_usb.REGULATOR_VOLTAGE" value="0"/>
+<stringAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_usb.RESET_DELAY" value="0"/>
+<stringAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_usb.SHIFT_FREQ" value="5000"/>
+<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_usb.SPECIFY_IP" value="false"/>
+<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_usb.SPECIFY_NETWORK_CARD" value="false"/>
+<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.cyc_usb.STARTUP_USE_SWD" value="true"/>
+<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.doContinue" value="true"/>
+<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.doGdbServerAllocateSemihostingConsole" value="true"/>
+<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.doPartitioning" value="false"/>
+<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.enableSemihosting" value="true"/>
+<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.enableSemihostingIoclientGdbClient" value="false"/>
+<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.enableSemihostingIoclientTelnet" value="true"/>
+<stringAttribute key="com.pemicro.debug.gdbjtag.pne.eraseCommandParam" value="EM"/>
+<intAttribute key="com.pemicro.debug.gdbjtag.pne.eraseOptionIndex" value="0"/>
+<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.eraseOptionsenabled" value="false"/>
+<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.executeUnlockCommand" value="false"/>
+<stringAttribute key="com.pemicro.debug.gdbjtag.pne.gdbClientOtherCommands" value="set mem inaccessible-by-default off&#13;&#10;set tcp auto-retry on&#13;&#10;set tcp connect-timeout 240&#13;&#10;set remotetimeout 60"/>
+<stringAttribute key="com.pemicro.debug.gdbjtag.pne.gdbClientOtherOptions" value=""/>
+<intAttribute key="com.pemicro.debug.gdbjtag.pne.gdbServerTelnetPortNumber" value="51794"/>
+<intAttribute key="com.pemicro.debug.gdbjtag.pne.gdbmiPortNumber" value="6224"/>
+<intAttribute key="com.pemicro.debug.gdbjtag.pne.jtagPreIrBits" value="0"/>
+<intAttribute key="com.pemicro.debug.gdbjtag.pne.jtagTapNumber" value="0"/>
+<stringAttribute key="com.pemicro.debug.gdbjtag.pne.macScript" value=""/>
+<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.macScriptEnable" value="false"/>
+<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.ml.ALWAYS_ERASE" value="false"/>
+<stringAttribute key="com.pemicro.debug.gdbjtag.pne.ml.CYCLONE_IP" value=""/>
+<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.ml.DO_RESET_DELAY" value="false"/>
+<intAttribute key="com.pemicro.debug.gdbjtag.pne.ml.INTERFACE_PORT" value="0"/>
+<stringAttribute key="com.pemicro.debug.gdbjtag.pne.ml.INTERFACE_PORT_STRING" value="USB1"/>
+<stringAttribute key="com.pemicro.debug.gdbjtag.pne.ml.NETWORK_CARD_IP" value=""/>
+<stringAttribute key="com.pemicro.debug.gdbjtag.pne.ml.POWER_DOWN_DELAY" value="250"/>
+<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.ml.POWER_OFF" value="false"/>
+<stringAttribute key="com.pemicro.debug.gdbjtag.pne.ml.POWER_UP_DELAY" value="1000"/>
+<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.ml.PROVIDE_POWER" value="true"/>
+<intAttribute key="com.pemicro.debug.gdbjtag.pne.ml.REGULATOR_VOLTAGE" value="0"/>
+<stringAttribute key="com.pemicro.debug.gdbjtag.pne.ml.RESET_DELAY" value="0"/>
+<stringAttribute key="com.pemicro.debug.gdbjtag.pne.ml.SHIFT_FREQ" value="5000"/>
+<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.ml.SPECIFY_IP" value="false"/>
+<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.ml.SPECIFY_NETWORK_CARD" value="false"/>
+<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.ml.STARTUP_USE_SWD" value="true"/>
+<stringAttribute key="com.pemicro.debug.gdbjtag.pne.ml.SWO_BAUDRATE_SWITCH_MULTILINK_VALUE" value="-1.000000"/>
+<stringAttribute key="com.pemicro.debug.gdbjtag.pne.ml.SWO_BAUDRATE_SWITCH_TARGET_VALUE" value="-1.000000"/>
+<stringAttribute key="com.pemicro.debug.gdbjtag.pne.otherRunCommands" value=""/>
+<intAttribute key="com.pemicro.debug.gdbjtag.pne.partitionParam" value="0"/>
+<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.preserveMemory0" value="false"/>
+<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.preserveMemory1" value="false"/>
+<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.preserveMemory2" value="false"/>
+<stringAttribute key="com.pemicro.debug.gdbjtag.pne.preserveMemoryFrom0" value="0"/>
+<stringAttribute key="com.pemicro.debug.gdbjtag.pne.preserveMemoryFrom1" value="0"/>
+<stringAttribute key="com.pemicro.debug.gdbjtag.pne.preserveMemoryFrom2" value="0"/>
+<stringAttribute key="com.pemicro.debug.gdbjtag.pne.preserveMemoryTo0" value="3"/>
+<stringAttribute key="com.pemicro.debug.gdbjtag.pne.preserveMemoryTo1" value="3"/>
+<stringAttribute key="com.pemicro.debug.gdbjtag.pne.preserveMemoryTo2" value="3"/>
+<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.preservePartioning" value="false"/>
+<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.programtrim" value="false"/>
+<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.sda.ALWAYS_ERASE" value="false"/>
+<stringAttribute key="com.pemicro.debug.gdbjtag.pne.sda.CYCLONE_IP" value=""/>
+<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.sda.DO_RESET_DELAY" value="false"/>
+<intAttribute key="com.pemicro.debug.gdbjtag.pne.sda.INTERFACE_PORT" value="0"/>
+<stringAttribute key="com.pemicro.debug.gdbjtag.pne.sda.INTERFACE_PORT_STRING" value=""/>
+<stringAttribute key="com.pemicro.debug.gdbjtag.pne.sda.NETWORK_CARD_IP" value=""/>
+<stringAttribute key="com.pemicro.debug.gdbjtag.pne.sda.POWER_DOWN_DELAY" value=""/>
+<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.sda.POWER_OFF" value="false"/>
+<stringAttribute key="com.pemicro.debug.gdbjtag.pne.sda.POWER_UP_DELAY" value=""/>
+<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.sda.PROVIDE_POWER" value="true"/>
+<intAttribute key="com.pemicro.debug.gdbjtag.pne.sda.REGULATOR_VOLTAGE" value="0"/>
+<stringAttribute key="com.pemicro.debug.gdbjtag.pne.sda.RESET_DELAY" value="0"/>
+<stringAttribute key="com.pemicro.debug.gdbjtag.pne.sda.SHIFT_FREQ" value="5000"/>
+<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.sda.SPECIFY_IP" value="false"/>
+<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.sda.SPECIFY_NETWORK_CARD" value="false"/>
+<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.sda.STARTUP_USE_SWD" value="true"/>
+<intAttribute key="com.pemicro.debug.gdbjtag.pne.selectedCoreNumber" value="1"/>
+<intAttribute key="com.pemicro.debug.gdbjtag.pne.serverPortNumber" value="7224"/>
+<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.trc_eth.ALWAYS_ERASE" value="false"/>
+<stringAttribute key="com.pemicro.debug.gdbjtag.pne.trc_eth.CYCLONE_IP" value=""/>
+<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.trc_eth.DO_RESET_DELAY" value="false"/>
+<intAttribute key="com.pemicro.debug.gdbjtag.pne.trc_eth.INTERFACE_PORT" value="0"/>
+<stringAttribute key="com.pemicro.debug.gdbjtag.pne.trc_eth.INTERFACE_PORT_STRING" value=""/>
+<stringAttribute key="com.pemicro.debug.gdbjtag.pne.trc_eth.NETWORK_CARD_IP" value=""/>
+<stringAttribute key="com.pemicro.debug.gdbjtag.pne.trc_eth.POWER_DOWN_DELAY" value="250"/>
+<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.trc_eth.POWER_OFF" value="false"/>
+<stringAttribute key="com.pemicro.debug.gdbjtag.pne.trc_eth.POWER_UP_DELAY" value="250"/>
+<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.trc_eth.PROVIDE_POWER" value="true"/>
+<intAttribute key="com.pemicro.debug.gdbjtag.pne.trc_eth.REGULATOR_VOLTAGE" value="0"/>
+<stringAttribute key="com.pemicro.debug.gdbjtag.pne.trc_eth.RESET_DELAY" value="0"/>
+<stringAttribute key="com.pemicro.debug.gdbjtag.pne.trc_eth.SHIFT_FREQ" value="5000"/>
+<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.trc_eth.SPECIFY_IP" value="false"/>
+<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.trc_eth.SPECIFY_NETWORK_CARD" value="false"/>
+<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.trc_eth.STARTUP_USE_SWD" value="true"/>
+<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.trc_usb.ALWAYS_ERASE" value="false"/>
+<stringAttribute key="com.pemicro.debug.gdbjtag.pne.trc_usb.CYCLONE_IP" value=""/>
+<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.trc_usb.DO_RESET_DELAY" value="false"/>
+<intAttribute key="com.pemicro.debug.gdbjtag.pne.trc_usb.INTERFACE_PORT" value="0"/>
+<stringAttribute key="com.pemicro.debug.gdbjtag.pne.trc_usb.INTERFACE_PORT_STRING" value=""/>
+<stringAttribute key="com.pemicro.debug.gdbjtag.pne.trc_usb.NETWORK_CARD_IP" value=""/>
+<stringAttribute key="com.pemicro.debug.gdbjtag.pne.trc_usb.POWER_DOWN_DELAY" value="250"/>
+<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.trc_usb.POWER_OFF" value="false"/>
+<stringAttribute key="com.pemicro.debug.gdbjtag.pne.trc_usb.POWER_UP_DELAY" value="250"/>
+<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.trc_usb.PROVIDE_POWER" value="true"/>
+<intAttribute key="com.pemicro.debug.gdbjtag.pne.trc_usb.REGULATOR_VOLTAGE" value="0"/>
+<stringAttribute key="com.pemicro.debug.gdbjtag.pne.trc_usb.RESET_DELAY" value="0"/>
+<stringAttribute key="com.pemicro.debug.gdbjtag.pne.trc_usb.SHIFT_FREQ" value="5000"/>
+<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.trc_usb.SPECIFY_IP" value="false"/>
+<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.trc_usb.SPECIFY_NETWORK_CARD" value="false"/>
+<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.trc_usb.STARTUP_USE_SWD" value="true"/>
+<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.useAlternativeAlgorithm" value="false"/>
+<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.useCustomTrim" value="false"/>
+<booleanAttribute key="com.pemicro.debug.gdbjtag.pne.useDaisyChain" value="false"/>
+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.imageFileName" value=""/>
+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.imageOffset" value=""/>
+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.ipAddress" value="localhost"/>
+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.jtagDevice" value="GNU ARM PEMicro Interface"/>
+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.jtagDeviceId" value="com.pemicro.debug.gdbjtag.pne.jtagdeviceid"/>
+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.loadImage" value="true"/>
+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.loadSymbols" value="true"/>
+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.pcRegister" value=""/>
+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setPcRegister" value="false"/>
+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setResume" value="false"/>
+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setStopAt" value="true"/>
+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.stopAt" value="main"/>
+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.symbolsFileName" value=""/>
+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.symbolsOffset" value=""/>
+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useFileForImage" value="false"/>
+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useFileForSymbols" value="false"/>
+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useProjBinaryForImage" value="true"/>
+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useProjBinaryForSymbols" value="true"/>
+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useRemoteTarget" value="true"/>
+<stringAttribute key="org.eclipse.cdt.debug.mi.core.commandFactory" value="Standard (Windows)"/>
+<stringAttribute key="org.eclipse.cdt.debug.mi.core.protocol" value="mi"/>
+<booleanAttribute key="org.eclipse.cdt.debug.mi.core.verboseMode" value="false"/>
+<stringAttribute key="org.eclipse.cdt.dsf.gdb.DEBUG_NAME" value="${S32DS_GDB_ARM32_EXE}"/>
+<booleanAttribute key="org.eclipse.cdt.dsf.gdb.UPDATE_THREADLIST_ON_SUSPEND" value="false"/>
+<intAttribute key="org.eclipse.cdt.launch.ATTR_BUILD_BEFORE_LAUNCH_ATTR" value="2"/>
+<stringAttribute key="org.eclipse.cdt.launch.COREFILE_PATH" value=""/>
+<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_REGISTER_GROUPS" value=""/>
+<stringAttribute key="org.eclipse.cdt.launch.PROGRAM_NAME" value="Debug_FLASH/S32K146_4G.elf"/>
+<stringAttribute key="org.eclipse.cdt.launch.PROJECT_ATTR" value="S32K146_4G"/>
+<booleanAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_AUTO_ATTR" value="false"/>
+<stringAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_ID_ATTR" value="com.nxp.s32ds.cle.arm.mbs.arm32.bare.gnu.9.2.exe.debug.222968549"/>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/S32K146_4G"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="4"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.dsf.launch.MEMORY_BLOCKS" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;memoryBlockExpressionList context=&quot;reserved-for-future-use&quot;&gt;&#13;&#10;&lt;gdbmemoryBlockExpression address=&quot;536806032&quot; label=&quot;RX_Buffer[UART_LPUART2]&quot;/&gt;&#13;&#10;&lt;gdbmemoryBlockExpression address=&quot;536823956&quot; label=&quot;GpsBufferGet&quot;/&gt;&#13;&#10;&lt;gdbmemoryBlockExpression address=&quot;255&quot; label=&quot;SocketId&quot;/&gt;&#13;&#10;&lt;/memoryBlockExpressionList&gt;&#13;&#10;"/>
+<stringAttribute key="process_factory_id" value="org.eclipse.cdt.dsf.gdb.GdbProcessFactory"/>
+<stringAttribute key="saved_expressions&lt;seperator&gt;Unknown" value="0x1fff4b00,0x1fff4b51,0x1fff4b56,0x1fff0290,0x1fff4894,0x1fff04e8,0x1fff01c8,0x1fff2ce8,0x1fff0100,0x1fff08d0,0x1fff4b48,0x1fff4b50,0x1fff0103,1fff3798,0x1fff3798"/>
+</launchConfiguration>

+ 1733 - 0
RTD/include/Adc.h

@@ -0,0 +1,1733 @@
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : ADC
+*   Dependencies         : none
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_D2108_ASR_REL_4_4_REV_0000_20210810
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+#ifndef ADC_H
+#define ADC_H
+
+/**
+*   @file    Adc.h
+*   @implements      Adc.h_Artifact
+*   @addtogroup adc_driver
+*   @{
+*/
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+/*==================================================================================================
+*                                        INCLUDE FILES
+* 1) system and project includes
+* 2) needed interfaces from external units
+* 3) internal and external interfaces from this unit
+==================================================================================================*/
+#include "Mcal.h"
+#include "Adc_Cfg.h"
+#include "Adc_Types.h"
+
+/*==================================================================================================
+*                              SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+#define ADC_VENDOR_ID                           43
+#define ADC_MODULE_ID                           123
+#define ADC_AR_RELEASE_MAJOR_VERSION            4
+#define ADC_AR_RELEASE_MINOR_VERSION            4
+#define ADC_AR_RELEASE_REVISION_VERSION         0
+#define ADC_SW_MAJOR_VERSION                    1
+#define ADC_SW_MINOR_VERSION                    0
+#define ADC_SW_PATCH_VERSION                    0
+
+/*==================================================================================================
+*                                     FILE VERSION CHECKS
+==================================================================================================*/
+#ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
+/* Check if source file and Mcal header file are of the same AutoSar version */
+#if ((ADC_AR_RELEASE_MAJOR_VERSION != MCAL_AR_RELEASE_MAJOR_VERSION) || \
+     (ADC_AR_RELEASE_MINOR_VERSION != MCAL_AR_RELEASE_MINOR_VERSION) \
+    )
+#error "AutoSar Version Numbers of Adc.h and Mcal.h are different"
+#endif
+#endif
+
+/* Check if source file and ADC configuration header file are of the same vendor */
+#if (ADC_VENDOR_ID != ADC_VENDOR_ID_CFG)
+#error "Adc.h and Adc_Cfg.h have different vendor ids"
+#endif
+
+/* Check if source file and ADC configuration header file are of the same Autosar version */
+#if ((ADC_AR_RELEASE_MAJOR_VERSION != ADC_AR_RELEASE_MAJOR_VERSION_CFG) || \
+     (ADC_AR_RELEASE_MINOR_VERSION != ADC_AR_RELEASE_MINOR_VERSION_CFG) || \
+     (ADC_AR_RELEASE_REVISION_VERSION != ADC_AR_RELEASE_REVISION_VERSION_CFG) \
+    )
+#error "AutoSar Version Numbers of Adc.h and Adc_Cfg.h are different"
+#endif
+
+/* Check if source file and ADC configuration header file are of the same software version */
+#if ((ADC_SW_MAJOR_VERSION != ADC_SW_MAJOR_VERSION_CFG) || \
+     (ADC_SW_MINOR_VERSION != ADC_SW_MINOR_VERSION_CFG) || \
+     (ADC_SW_PATCH_VERSION != ADC_SW_PATCH_VERSION_CFG) \
+    )
+#error "Software Version Numbers of Adc.h and Adc_Cfg.h are different"
+#endif
+
+/* Check if source file and Adc Types header file are of the same vendor */
+#if (ADC_VENDOR_ID != ADC_VENDOR_ID_TYPES_H)
+#error "Adc.h and Adc_Types.h have different vendor ids"
+#endif
+
+/* Check if source file and Adc Types header file are of the same Autosar version */
+#if ((ADC_AR_RELEASE_MAJOR_VERSION != ADC_AR_RELEASE_MAJOR_VERSION_TYPES_H) || \
+     (ADC_AR_RELEASE_MINOR_VERSION != ADC_AR_RELEASE_MINOR_VERSION_TYPES_H) || \
+     (ADC_AR_RELEASE_REVISION_VERSION != ADC_AR_RELEASE_REVISION_VERSION_TYPES_H) \
+    )
+#error "AutoSar Version Numbers of Adc.h and Adc_Types.h are different"
+#endif
+
+/* Check if source file and Adc Types header file are of the same software version */
+#if ((ADC_SW_MAJOR_VERSION != ADC_SW_MAJOR_VERSION_TYPES_H) || \
+     (ADC_SW_MINOR_VERSION != ADC_SW_MINOR_VERSION_TYPES_H) || \
+     (ADC_SW_PATCH_VERSION != ADC_SW_PATCH_VERSION_TYPES_H) \
+    )
+#error "Software Version Numbers of Adc.h and Adc_Types.h are different"
+#endif
+
+/*==================================================================================================
+*                                          CONSTANTS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                      DEFINES AND MACROS
+==================================================================================================*/
+/**
+*       Development errors.
+*       The following errors shall be detectable by the ADC module depending on its
+*       configuration (development / production mode).
+*
+*       All error codes
+*
+*/
+
+/**
+* @brief   API service used without Adc module initialization.
+* */
+#define ADC_E_UNINIT                                 ((uint8)0x0AU)
+
+/**
+* @brief   Adc module is busy with a running operation.
+* */
+#define ADC_E_BUSY                                   ((uint8)0x0BU)
+
+/**
+* @brief   Adc module is in idle state.
+* */
+#define ADC_E_IDLE                                   ((uint8)0x0CU)
+
+/**
+* @brief   The ADC module is already initialized.
+* */
+#define ADC_E_ALREADY_INITIALIZED                    ((uint8)0x0DU)
+
+/**
+* @brief   The ADC module is not properly configured.
+* */
+#define ADC_E_PARAM_CONFIG                           ((uint8)0x0EU)
+
+/**
+* @brief   API service is called using an invalid pointer (e.g. the pointer should not be NULL).
+* */
+#define ADC_E_PARAM_POINTER                          ((uint8)0x14U)
+
+/**
+* @brief   API service used with an invalid ADC group.
+* */
+#define ADC_E_PARAM_GROUP                            ((uint8)0x15U)
+
+/**
+* @brief   API service used with an invalid ADC Conversion Mode.
+* */
+#define ADC_E_WRONG_CONV_MODE                        ((uint8)0x16U)
+
+/**
+* @brief   API service used with an invalid ADC Trigger Source.
+* */
+#define ADC_E_WRONG_TRIGG_SRC                        ((uint8)0x17U)
+
+/**
+* @brief   Check the notification capability of a group.
+* */
+#define ADC_E_NOTIF_CAPABILITY                       ((uint8)0x18U)
+
+/**
+* @brief   API service used without initializing the buffer.
+* */
+#define ADC_E_BUFFER_UNINIT                          ((uint8)0x19U)
+
+#if (ADC_POWER_STATE_SUPPORTED == STD_ON)
+/**
+* @brief   One or more ADC group/channel not in IDLE state.
+* */
+#define ADC_E_NOT_DISENGAGED                        ((uint8)0x1AU)
+
+/**
+* @brief   Unsupported power state request.
+* */
+#define ADC_E_POWER_STATE_NOT_SUPPORTED             ((uint8)0x1BU)
+
+/**
+* @brief   Requested power state can not be reached directly.
+* */
+#define ADC_E_TRANSITION_NOT_POSSIBLE               ((uint8)0x1CU)
+
+/**
+* @brief   ADC not prepared for target power state.
+* */
+#define ADC_E_PERIPHERAL_NOT_PREPARED               ((uint8)0x1DU)
+#endif /* (ADC_POWER_STATE_SUPPORTED == STD_ON) */
+
+/**
+* @brief    The Adc_StartGroupConversion and Adc_EnableHardwareTrigger services can not queue
+            another conversion (queue is full)
+*/
+#define ADC_E_QUEUE_FULL                             ((uint8)0x20U)
+
+#if (ADC_SET_HW_UNIT_POWER_MODE_API == STD_ON)
+/**
+* @brief   An error occurred when the Adc_SetHwUnitPowerMode services is used.
+* */
+#define ADC_E_SET_HW_UNIT_POWER_MODE                 ((uint8)0x21U)
+#endif
+
+#if (ADC_ENABLE_CTUTRIG_NONAUTO_API == STD_ON)
+/**
+* @brief   Wrong trigger source to be used for the group.
+* */
+#define ADC_E_PARAM_TRIGGER                          ((uint8)0x22U)
+#endif
+
+#if (ADC_ENABLE_CH_DISABLE_CH_NONAUTO_API == STD_ON)
+/**
+* @brief   Adc_EnableChannel or Adc_DisableChannel services called with a wrong channel.
+* */
+#define ADC_E_WRONG_ENABLE_CH_DISABLE_CH_GROUP       ((uint8)0x23U)
+/**
+* @brief   Adc_EnableChannel or Adc_DisableChannel services called with a wrong channel identifier (ID).
+* */
+#define ADC_E_WRONG_ENABLE_CH_DISABLE_CH_ID          ((uint8)0x24U)
+#endif
+
+#if (ADC_ENABLE_CONFIGURE_THRESHOLD_NONAUTO_API == STD_ON)
+/**
+* @brief   Adc_ConfigureThreshold service is called using wrong values.
+* */
+#define ADC_E_WRONG_CONF_THRHLD_VALUE                ((uint8)0x25U)
+#endif
+
+/**
+* @brief   API service called using a wrong ADC unit.
+* */
+#define ADC_E_PARAM_UNIT                             ((uint8)0x26U)
+
+#if (ADC_CTU_CONTROL_MODE_EXTRA_APIS == STD_ON)
+/**
+* @brief   API service called using a wrong CTU trigger.
+* */
+#define ADC_E_WRONG_CTU_TRIGGER                    ((uint8)0x28U)
+/**
+* @brief   API service called using a wrong CTU CLCR trigger.
+* */
+#define ADC_E_WRONG_CTU_CLCR_TRIGGER               ((uint8)0x29U)
+#endif
+
+#if (ADC_DUAL_CLOCK_MODE == STD_ON)
+/**
+* @brief   Adc_SetClockMode service called using an invalid clock mode.
+* */
+#define ADC_E_INVALID_CLOCK_MODE                     ((uint8)0x29U)
+#endif
+
+#if (ADC_SETCHANNEL_API == STD_ON)
+/**
+* @brief   Adc_SetChannel service called using an invalid channel list.
+* */
+#define ADC_E_PARAM_CHANNEL                          ((uint8)0x2AU)
+#endif
+
+/**
+* @brief   An error occurred if the timeout counter variable has expired when checking status flags.
+* */
+#define ADC_E_TIMEOUT                                ((uint8)0x2BU)
+
+#if (ADC_ENABLE_CTU_CONTROL_MODE_API == STD_ON)
+/**
+* @brief   Error when a function which works only in CTU Control Mode is called when CTU control mode is disabled.
+* */
+#define ADC_E_CONTROL_MODE_DISABLED                  ((uint8)0x30U)
+#endif /* (ADC_ENABLE_CTU_CONTROL_MODE_API == STD_ON) */
+
+#define ADC_E_BUFFER_UNINIT_LIST                     ((uint32)0x00000001U)
+#define ADC_E_WRONG_TRIGG_SRC_LIST                   ((uint32)0x00000002U)
+#define ADC_E_QUEUE_FULL_LIST                        ((uint32)0x00000004U)
+#define ADC_E_WRONG_CONV_MODE_LIST                   ((uint32)0x00000008U)
+#if (ADC_ENABLE_CH_DISABLE_CH_NONAUTO_API == STD_ON)
+#define ADC_E_WRONG_ENABLE_CH_DISABLE_CH_GROUP_LIST  ((uint32)0x00000010U)
+#define ADC_E_WRONG_ENABLE_CH_DISABLE_CH_ID_LIST     ((uint32)0x00000020U)
+#endif /* (ADC_ENABLE_CH_DISABLE_CH_NONAUTO_API == STD_ON) */
+
+/**
+          All AUTOSAR API's service IDs
+*/
+
+/**
+* @brief API service ID for Adc_Init function
+* */
+#define ADC_INIT_ID                                  0x00U
+
+/**
+* @brief API service ID for Adc_DeInit function
+* */
+#define ADC_DEINIT_ID                                0x01U
+
+/**
+* @brief API service ID for Adc_StartGroupConversion function
+* */
+#define ADC_STARTGROUPCONVERSION_ID                  0x02U
+
+/**
+* @brief API service ID for Adc_StopGroupConversion function
+* */
+#define ADC_STOPGROUPCONVERSION_ID                   0x03U
+
+/**
+* @brief API service ID for Adc_ReadGroup function
+* */
+#define ADC_VALUEREADGROUP_ID                        0x04U
+
+/**
+* @brief API service ID for Adc_EnableHardwareTrigger function
+* */
+#define ADC_ENABLEHARDWARETRIGGER_ID                 0x05U
+
+/**
+* @brief API service ID for Adc_DisableHardwareTrigger function
+* */
+#define ADC_DISABLEHARDWARETRIGGER_ID                0x06U
+
+/**
+* @brief API service ID for Adc_EnableGroupNotification function
+* */
+#define ADC_ENABLEGROUPNOTIFICATION_ID               0x07U
+
+/**
+* @brief API service ID for Adc_DisableGroupNotification function
+* */
+#define ADC_DISABLEGROUPNOTIFICATION_ID              0x08U
+
+/**
+* @brief API service ID for Adc_GetGroupStatus function
+* */
+#define ADC_GETGROUPSTATUS_ID                        0x09U
+
+/**
+* @brief API service ID for Adc_GetVersionInfo function
+* */
+#define ADC_GETVERSIONINFO_ID                        0x0AU
+
+/**
+* @brief API service ID for Adc_GetStreamLastPointer function
+* */
+#define ADC_GETSTREAMLASTPOINTER_ID                  0x0BU
+
+/**
+* @brief API service ID for Adc_SetupResultBuffer function
+* */
+#define ADC_SETUPRESULTBUFFER_ID                     0x0CU
+
+#if (ADC_POWER_STATE_SUPPORTED == STD_ON)
+/**
+* @brief API service ID for Adc_SetPowerState function
+* */
+#define ADC_SETPOWERSTATE_ID                         0x10U
+
+/**
+* @brief API service ID for Adc_GetCurrentPowerState function
+* */
+#define ADC_GETCURRENTPOWERSTATE_ID                  0x11U
+
+/**
+* @brief API service ID for Adc_GetTargetPowerState function
+* */
+#define ADC_GETTARGETPOWERSTATE_ID                   0x12U
+
+/**
+* @brief API service ID for Adc_PreparePowerState function
+* */
+#define ADC_PREPAREPOWERSTATE_ID                     0x13U
+#endif /* (ADC_POWER_STATE_SUPPORTED == STD_ON) */
+
+/**
+*        All Autosar Extension API's service IDs
+**       NOTE: Parameters used when raising an error/exception
+*/
+#if (ADC_ENABLE_CTUTRIG_NONAUTO_API == STD_ON)
+/**
+* @brief API service ID for Adc_HwResultReadGroup function
+* */
+#define ADC_HWRESULTREADGROUP_ID                     0x20U
+/**
+* @brief API service ID for Adc_EnableCTUTrigge function
+* */
+#define ADC_ENABLECTUTRIGGER_ID                      0x21U
+/**
+* @brief API service ID for Adc_DisableCTUTrigger function
+* */
+#define ADC_DISABLECTUTRIGGER_ID                     0x22U
+#endif
+
+#if (ADC_SET_HW_UNIT_POWER_MODE_API == STD_ON)
+/**
+* @brief API service ID for Adc_SetHwUnitPowerMode function
+* */
+#define ADC_SET_HW_UNIT_POWER_MODE_ID                0x23U
+#if (ADC_BCTU_AVAILABLE == STD_ON)
+/**
+* @brief API service ID for Adc_CtuSetPowerMode function
+* */
+#define ADC_CTU_SET_POWER_MODE_ID                    0x24U
+#endif /* (ADC_BCTU_AVAILABLE == STD_ON) */
+#endif /* (ADC_SET_HW_UNIT_POWER_MODE_API == STD_ON) */
+
+#if (ADC_DUAL_CLOCK_MODE == STD_ON)
+/**
+* @brief API service ID for Adc_SetClockMode function
+* */
+#define ADC_SETCLOCKMODE_ID                          0x25U
+#endif
+
+#if (ADC_ENABLE_CH_DISABLE_CH_NONAUTO_API == STD_ON)
+/**
+* @brief API service ID for Adc_EnableChannel function
+* */
+#define ADC_ENABLE_CHANNEL_ID                        0x26U
+/**
+* @brief API service ID for Adc_DisableChannel function
+* */
+#define ADC_DISABLE_CHANNEL_ID                       0x27U
+#endif
+
+#if (ADC_GET_INJECTED_CONVERSION_STATUS_API == STD_ON)
+/**
+* @brief API service ID for Adc_GetInjectedConversionStatus function
+* */
+#define ADC_GETINJECTEDCONVERSIONSTATUS_ID           0x28U
+#endif
+
+#if (ADC_CALIBRATION == STD_ON)
+/**
+* @brief API service ID for Adc_Calibrate function
+* */
+#define ADC_CALIBRATE_ID                             0x29U
+#endif
+
+#if (ADC_SELF_TEST == STD_ON)
+#define ADC_SELFTEST_ID                              0x2AU
+#endif
+
+#if (ADC_ENABLE_CONFIGURE_THRESHOLD_NONAUTO_API == STD_ON)
+/**
+* @brief API service ID for Adc_ConfigureThreshold function
+* */
+#define ADC_CONFIGURE_THRESHOLD_ID                   0x2BU
+#endif
+
+#if (ADC_CTU_CONTROL_MODE_EXTRA_APIS == STD_ON)
+/**
+* @brief API service ID for Adc_CtuWriteTriggerEnableMask function
+* */
+#define CTU_SET_WRITE_TRIG_EN_MASK_ID                (0x2CU)
+/**
+* @brief API service ID for Adc_CtuSetTriggerEnable function
+* */
+#define CTU_SET_TRIGGER_ENABLE_ID                    (0x2DU)
+/**
+* @brief API service ID for Adc_CtuSetTriggerAdcCmdAddress function
+* */
+#define CTU_SET_TRIGGER_ADC_CMD_ADDRESS_ID           (0x2EU)
+/**
+* @brief API service ID for Adc_CtuSetTriggerCompare function
+* */
+#define CTU_SET_TRIGGER_COMPARE_ID                   (0x2FU)
+#endif
+
+#if (ADC_SETCHANNEL_API == STD_ON)
+/**
+* @brief API service ID for Adc_SetChannel function
+* */
+#define ADC_SETCHANNEL_ID                            (0x30U)
+#endif
+
+#if (ADC_ENABLE_CTU_CONTROL_MODE_API == STD_ON)
+/**
+* @brief API service ID for Adc_EnableCtuControlMode function
+* */
+#define ADC_ENABLE_CTU_CONTROL_MODE_ID               (0x32U)
+/**
+* @brief API service ID for Adc_DisableCtuControlMode function
+* */
+#define ADC_DISABLE_CTU_CONTROL_MODE_ID              (0x33U)
+
+#define ADC_CTU_ENABLE_HW_TRIGGER_ID                 (0x34U)
+#define ADC_CTU_DISABLE_HW_TRIGGER_ID                (0x35U)
+#define ADC_CTU_START_CONVERSION_ID                  (0x36U)
+#define ADC_CTU_READ_CONV_DATA_ID                    (0x37U)
+#define ADC_CTU_READ_CONV_RESULT_ID                  (0x38U)
+#define ADC_CTU_READ_FIFO_DATA_ID                    (0x39U)
+#define ADC_CTU_READ_FIFO_RESULT_ID                  (0x3AU)
+#define ADC_CTU_SET_FIFO_WATERMARK_ID                (0x3BU)
+#define ADC_CTU_ENABLE_NOTIFICATION_ID               (0x3CU)
+#define ADC_CTU_DISABLE_NOTIFICATION_ID              (0x3DU)
+#define ADC_CTU_SET_LIST_POINTER_ID                  (0x3EU)
+#define ADC_CTU_SET_LIST_ID                          (0x3FU)
+#define ADC_CTU_STOP_LOOP_CONVERSION_ID              (0x40U)
+#define ADC_CTU_MASTER_RELOAD_ID                     (0x41U)
+#endif /* (ADC_ENABLE_CTU_CONTROL_MODE_API == STD_ON) */
+
+#if (ADC_ENABLE_READ_RAW_DATA_API == STD_ON)
+#define ADC_ENABLE_READ_RAW_DATA_ID                  (0x42U)
+#endif /* (ADC_ENABLE_READ_RAW_DATA_API == STD_ON) */
+
+#ifdef ADC_WDG_SUPPORTED
+#define ADC_ENABLEWDGNOTIFICATION_ID                 (0x43U)
+#define ADC_DISABLEWDGNOTIFICATION_ID                (0x44U)
+#endif /* ADC_WDG_SUPPORTED */
+
+#if (ADC_ENABLE_TEMPSENSE_API == STD_ON)
+#define ADC_TEMPSENSE_CALCULATE_TEMP_ID              (0x4AU)
+#define ADC_TEMPSENSE_GET_TEMP_ID                    (0x4BU)
+#endif /* (ADC_ENABLE_TEMPSENSE_API == STD_ON) */
+
+/**
+* @brief          Mask used to verify the DATA registers content.
+*/
+#if (ADC_ENABLE_LIMIT_CHECK == STD_ON)
+#define ADC_DATA_MASK_U16         (0xFFFFU)
+#endif /* (ADC_ENABLE_LIMIT_CHECK == STD_ON) */
+/*==================================================================================================
+*                                             ENUMS
+==================================================================================================*/
+
+/*==================================================================================================
+                                 STRUCTURES AND OTHER TYPEDEFS
+==================================================================================================*/
+
+
+/*==================================================================================================
+                                 GLOBAL VARIABLE DECLARATIONS
+==================================================================================================*/
+#define ADC_START_SEC_VAR_CLEARED_UNSPECIFIED
+#include "Adc_MemMap.h"
+/**
+* @brief          Used to point the configuration structure.
+*/
+extern const Adc_ConfigType * Adc_pCfgPtr[ADC_MAX_PARTITIONS];
+#if (ADC_DUAL_CLOCK_MODE == STD_ON)
+#if (ADC_SET_ADC_CONV_TIME_ONCE == STD_OFF)
+/**
+* @brief          Clock mode in use
+*/
+extern Adc_SelectPrescalerType Adc_eClockMode[ADC_MAX_PARTITIONS];
+#endif /*if (ADC_SET_ADC_CONV_TIME_ONCE == STD_OFF)*/
+#endif /*if (ADC_DUAL_CLOCK_MODE == STD_ON)*/
+
+extern Adc_GroupStatusType Adc_aGroupStatus[ADC_MAX_GROUPS];
+extern Adc_UnitStatusType Adc_aUnitStatus[ADC_MAX_HW_UNITS];
+#if (ADC_SETCHANNEL_API == STD_ON)
+extern Adc_RuntimeGroupChannelType Adc_aRuntimeGroupChannel[ADC_MAX_GROUPS];
+#endif /*(ADC_SETCHANNEL_API == STD_ON)*/
+#define ADC_STOP_SEC_VAR_CLEARED_UNSPECIFIED
+#include "Adc_MemMap.h"
+
+#if (ADC_PRECOMPILE_SUPPORT == STD_ON)
+    #define ADC_START_SEC_CONFIG_DATA_UNSPECIFIED
+    #include "Adc_MemMap.h"
+    extern const Adc_ConfigType * const Adc_ConfigVariantPredefined[ADC_MAX_PARTITIONS];
+    #define ADC_STOP_SEC_CONFIG_DATA_UNSPECIFIED
+    #include "Adc_MemMap.h"
+#else
+    #define ADC_START_SEC_CONST_UNSPECIFIED
+    #include "Adc_MemMap.h"
+
+    ADC_CONFIG_EXT
+
+    #define ADC_STOP_SEC_CONST_UNSPECIFIED
+    #include "Adc_MemMap.h"
+#endif /* (ADC_PRECOMPILE_SUPPORT == STD_ON) */
+
+/*==================================================================================================
+                                     FUNCTION PROTOTYPES
+==================================================================================================*/
+
+#define ADC_START_SEC_CODE
+#include "Adc_MemMap.h"
+
+/**
+* @brief          Initializes the ADC hardware unit and the driver.
+* @details        This function will initialize both the ADC HW unit and the driver structures.
+*
+* @param[in]      pConfigPtr   Pointer to configuration set in Variant PB
+*                             (Variant PC requires a NULL_PTR).
+* @return         void
+*
+* @implements  Adc_Init_Activity
+*/
+void Adc_Init
+(
+    const Adc_ConfigType * ConfigPtr
+);
+
+/**
+* @brief          Initializes the group specific ADC result buffer pointer as
+*                 configured to point to the pDataBufferPtr address which is
+*                 passed as parameter.
+* @details        Initializes ADC driver with the group specific result buffer
+*                 start address where the conversion results will be stored.
+*                 The application has to ensure that the application buffer,
+*                 where pDataBufferPtr points to, can hold all the conversion
+*                 results of the specified group. The initialization with
+*                 Adc_SetupResultBuffer is required after reset, before a group
+*                 conversion can be started.
+*
+* @param[in]      Group           Numeric ID of requested ADC channel group.
+* @param[in]      pDataBufferPtr   Pointer to result data buffer
+*
+* @return         Std_ReturnType  Standard return type.
+*                 E_OK:           Result buffer pointer initialized correctly.
+*                 E_NOT_OK:       Operation failed or development error
+*                                 occurred.
+*
+* @implements  Adc_SetupResultBuffer_Activity
+*/
+Std_ReturnType Adc_SetupResultBuffer
+(
+    Adc_GroupType Group,
+    Adc_ValueGroupType * const DataBufferPtr
+);
+
+#if (ADC_DEINIT_API == STD_ON)
+/**
+* @brief          Returns all ADC HW Units to a state comparable to their
+*                 power on reset state.
+* @details        Returns all ADC HW Units to a state comparable to their
+*                 power on reset state, and de-initialize the ADC MCAL driver.
+*
+* @return         void
+*
+* @implements  Adc_DeInit_Activity
+*/
+void Adc_DeInit(void);
+#endif /* ADC_DEINIT_API == STD_ON */
+
+#if (ADC_ENABLE_START_STOP_GROUP_API == STD_ON)
+/**
+* @brief          Starts the conversion of all channels of
+*                 the requested ADC Channel group.
+* @details        This function will start the SW conversion of all channels
+*                 of the requested ADC channel group.
+*
+* @param[in]      Group       Numeric ID of requested ADC channel group.
+* @return         void
+*
+* @implements  Adc_StartGroupConversion_Activity
+*/
+void Adc_StartGroupConversion
+(
+    Adc_GroupType Group
+);
+
+/**
+* @brief          Stops the conversion of all channels of the requested ADC
+*                 Channel group.
+* @details        This function will stop the SW conversion of all channels
+*                 of the requested ADC channel group.
+*
+* @param[in]      Group       Numeric ID of requested ADC channel group.
+* @return         void
+*
+* @implements  Adc_StopGroupConversion_Activity
+*/
+void Adc_StopGroupConversion
+(
+    Adc_GroupType Group
+);
+#endif /* ADC_ENABLE_START_STOP_GROUP_API == STD_ON */
+
+#if (ADC_READ_GROUP_API == STD_ON)
+/**
+* @brief          Reads the group conversion results.
+* @details        Reads the group conversion results of the last completed
+*                 conversion round of the requested group and stores the
+*                 channel values starting at the pDataBufferPtr address.
+*                 The group channel values are stored in ascending channel
+*                 number order (in contrast to the storage layout of the
+*                 result buffer if streaming access is configured).
+*
+* @param[in]      Group          Numeric ID of requested ADC Channel group.
+* @param[in]      pDataBufferPtr  ADC results of all channels of the selected group
+*                                are stored in the data buffer addressed with the pointer.
+* @return         Std_ReturnType Standard return type.
+*                 E_OK:          results are available and written to the
+*                                data buffer.
+*                 E_NOT_OK:      no results are available or development
+*                                error occurred.
+*
+* @implements  Adc_ReadGroup_Activity
+*/
+Std_ReturnType Adc_ReadGroup
+(
+    Adc_GroupType Group,
+    Adc_ValueGroupType * DataBufferPtr
+);
+#endif /* ADC_READ_GROUP_API == STD_ON */
+
+#if (ADC_ENABLE_READ_RAW_DATA_API == STD_ON)
+/**
+* @brief        Read the raw result data from an ADC unit.
+* @details      Read the raw result data from an ADC unit.
+*               Intended for reading ADC results directly from ADC registers 
+*               and can eliminate surplus interrupts if there are more triggered 
+*               measurements than FIFO length.
+*               Measured values remain in ADC result registers(user must ensure 
+*               that they are not overwritten).
+*
+* @param[in]    Unit           Adc unit used. Recommended to use generated define for Adc Logical Unit Id.
+* @param[in]    ChansArray     List of channels for which results to be read
+* @param[in]    NumItems       Number of results to read
+* @param[out]   DataBufferPtr  Destination pointer in which the results will be written
+*
+* @return         void
+*
+* @implements  Adc_ReadRawData_Activity
+*/
+void Adc_ReadRawData
+(
+    Adc_HwUnitType Unit,
+    const Adc_ChannelType * const ChansArray,
+    uint8 NumItems,
+    Adc_ValueGroupType * const DataBufferPtr
+);
+#endif /* (ADC_ENABLE_READ_RAW_DATA_API == STD_ON) */
+
+#if (ADC_HW_TRIGGER_API == STD_ON)
+/**
+* @brief          Enables the hardware trigger for the requested ADC Channel group.
+* @details        This function will enable the HW trigger source for the requested
+*                 ADC channel group. This function does set the CTU register for all
+*                 platform that have the CTU Hw Unit.
+*
+* @param[in]      Group       Numeric ID of requested ADC channel group.
+* @return         void
+*
+* @implements  Adc_EnableHardwareTrigger_Activity
+*/
+void Adc_EnableHardwareTrigger
+(
+    Adc_GroupType Group
+);
+
+/**
+* @brief          Disables the hardware trigger for the requested ADC Channel group.
+* @details        This function will disable the HW trigger source for the requested
+*                 ADC channel group.
+*
+* @param[in]      Group       Numeric ID of requested ADC channel group.
+* @return         void
+*
+* @implements  Adc_DisableHardwareTrigger_Activity
+*/
+void Adc_DisableHardwareTrigger
+(
+    Adc_GroupType Group
+);
+#endif /* ADC_HW_TRIGGER_API == STD_ON */
+
+#if (ADC_GRP_NOTIF_CAPABILITY == STD_ON)
+/**
+* @brief          Enables the notification mechanism for the requested ADC
+*                 channel group.
+* @details        This function will enable the notification mechanism only for
+*                 the requested ADC channel group.
+*
+* @param[in]      Group       Numeric ID of requested ADC channel group.
+* @return         void
+*
+* @implements  Adc_EnableGroupNotification_Activity
+*/
+void Adc_EnableGroupNotification
+(
+    Adc_GroupType Group
+);
+
+/**
+* @brief          Disables the notification mechanism for the requested ADC
+*                 channel group.
+* @details        This function will disable the notification mechanism only for
+*                 the requested ADC channel group.
+*
+* @param[in]      Group       Numeric ID of requested ADC channel group.
+* @return         void
+*
+* @implements  Adc_DisableGroupNotification_Activity
+*/
+void Adc_DisableGroupNotification
+(
+    Adc_GroupType Group
+);
+#endif /* ADC_GRP_NOTIF_CAPABILITY == STD_ON */
+
+/**
+* @brief          Returns the conversion status of the requested ADC Channel group.
+* @details        This function will return the conversion status of the requested
+*                 ADC channel group.
+*
+* @param[in]      Group             Numeric ID of requested ADC channel group.
+* @return         Adc_StatusType    Conversion status for the requested group.
+*                 ADC_IDLE          in case of errors.
+*                 conversion status in case of no errors.
+*
+* @implements  Adc_GetGroupStatus_Activity
+*/
+Adc_StatusType Adc_GetGroupStatus
+(
+    Adc_GroupType Group
+);
+
+/**
+* @brief          Returns the number of valid samples per channel.
+* @details        Returns the number of valid samples per channel, stored in
+*                 the result buffer. Reads a pointer, pointing to a position
+*                 in the group result buffer. With the pointer position, the
+*                 results of all group channels of the last completed conversion
+*                 round can be accessed. With the pointer and the return value,
+*                 all valid group conversion results can be accessed (the user
+*                 has to take the layout of the result buffer into account).
+*
+* @param[in]      Group              Numeric ID of requested ADC channel group.
+* @param[out]     PtrToSamplePtr     Pointer to result buffer pointer.
+*
+* @return         Adc_StreamNumSampleType Number of valid samples per channel.
+*                 0                 in case of errors.
+*                 >0                Number of valid samples per channel.
+*
+* @implements  Adc_GetStreamLastPointer_Activity
+*/
+Adc_StreamNumSampleType Adc_GetStreamLastPointer
+(
+    Adc_GroupType Group,
+    Adc_ValueGroupType ** PtrToSamplePtr
+);
+
+#if (ADC_VERSION_INFO_API == STD_ON)
+/**
+* @brief          Returns the version information of this module.
+* @details        Returns the version information of this module.
+*
+* @param[out]     pVersionInfo    Pointer to where to store the version
+*                                 information of this module.
+*                 structure       in case of no errors.
+*
+* @implements  Adc_GetVersionInfo_Activity
+*/
+void Adc_GetVersionInfo
+(
+    Std_VersionInfoType * versioninfo
+);
+#endif /* ADC_VERSION_INFO_API == STD_ON */
+
+#if (ADC_SET_HW_UNIT_POWER_MODE_API == STD_ON)
+/**
+* @brief          Set the ADC mode either to powerdown or normal.
+* @details        Set the ADC either to powerdown or normal mode.
+*
+* @param[in]      Unit            Adc unit used. Recommended to use generated define for Adc Logical Unit Id
+* @param[in]      SetPowerMode    Power mode to set: normal or powerdown.
+*
+* @return         Std_ReturnType  Standard return type.
+*                 E_OK:           Transition successful.
+*                 E_NOT_OK:       Transition unsuccessful.
+*
+* @implements  Adc_SetHwUnitPowerMode_Activity
+*/
+Std_ReturnType Adc_SetHwUnitPowerMode
+(
+    Adc_HwUnitType Unit,
+    Adc_SetPowerModeType SetPowerMode
+);
+
+#if (ADC_BCTU_AVAILABLE == STD_ON)
+/**
+* @brief   Function to set BCTU/CTU power mode.
+*
+* @details Set BCTU/CTU power mode.
+*
+* @param[in] CtuUnit   Bctu/Ctu hardware unit. Recommended to use generated define for Bctu/Ctu Logical Unit Id.
+* @param[in] State     Power state to be set
+*
+* @return         Std_ReturnType  Standard return type.
+*                 E_OK:           Transition successful.
+*                 E_NOT_OK:       Transition unsuccessful.
+*
+* @implements  Adc_CtuSetPowerMode_Activity
+*/
+Std_ReturnType Adc_CtuSetPowerMode
+(
+    Adc_HwUnitType CtuUnit,
+    Adc_PowerStateType State
+);
+#endif /* (ADC_BCTU_AVAILABLE == STD_ON) */
+#endif /* (ADC_SET_HW_UNIT_POWER_MODE_API == STD_ON) */
+
+#if (ADC_ENABLE_CTUTRIG_NONAUTO_API == STD_ON)
+/**
+* @brief          Enable the TriggerSource for group selected by Group parameter.
+* @details        This Autosar Extension API is used to enable any one of the configured
+*                 TriggerSource of the Group. When this Autosar Extension API is used to
+*                 enable the trigger source the CTU interrupt will be disabled by the driver.
+*                 So user has to call the Autosar Extension API Adc_HwResultReadGroup to read
+*                 the converted result from the ADC hardware register.
+*
+* @param[in]      Group            Index of group.
+* @param[in]      TriggerSource    Trigger source to be used for the group.
+*                                  (Configuration file should contain it for that group).
+* @return         void
+*
+* @implements  Adc_EnableCTUTrigger_Activity
+*/
+void Adc_EnableCTUTrigger
+(
+    Adc_GroupType Group,
+    Adc_HwTriggerTimerType TriggerSource
+);
+
+/**
+* @brief          Disable the TriggerSource for group selected by Group parameter.
+* @details        This Autosar Extension API is used to disable the already enabled
+*                 TriggerSource of the Group.
+*
+* @param[in]      Group            Index of group.
+* @param[in]      TriggerSource    Trigger source to be disabled for the group.
+*                                  (Configuration file should contain it for that group).
+* @return         void
+*
+* @implements  Adc_DisableCTUTrigger_Activity
+*/
+void Adc_DisableCTUTrigger
+(
+    Adc_GroupType Group,
+    Adc_HwTriggerTimerType TriggerSource
+);
+
+/**
+* @brief          Read the result of the hardware triggered groups conversion result.
+* @details        This Autosar Extension API is used to read the result of the hardware
+*                 triggered groups conversion result from the ADC hardware register
+*                 in this case the CTU interrupt will be disabled for the group.
+*                 The VALID bit CDR register will be cleared automatically when we read the results
+*                 from the channel data register. If the user calls Autosar Extension function
+*                 Adc_HwResultReadGroup() once again before the next conversion takes place, the
+*                 Adc_HwResultReadGroup() returns E_NOT_OK.
+*
+* @param[in]      Group      Index of group.
+* @param[in]      DataPtr    Pointer to a buffer which will be filled by the
+*                            conversion results.
+* @return         Std_ReturnType Standard return type.
+*                 E_OK:          results are available and written to the
+*                                data buffer.
+*                 E_NOT_OK:      no results are available or development
+*                                error occurred.
+*
+* @implements  Adc_HwResultReadGroup_Activity
+*/
+Std_ReturnType Adc_HwResultReadGroup
+(
+    Adc_GroupType Group,
+    Adc_ValueGroupType * DataPtr
+);
+#endif /* ADC_ENABLE_CTUTRIG_NONAUTO_API == STD_ON */
+
+#if (ADC_ENABLE_CH_DISABLE_CH_NONAUTO_API == STD_ON)
+/**
+ * @brief   Enable an individual channel configured in SW-triggered (non-injected) ADC Group at initialization
+ * @details Enable an individual channel configured in SW-triggered (non-injected) ADC Group at initialization
+ *          Use generated symbolic channel name defines (e.g. AdcChannel_0_0), because function assumes ChannelId to be in following format:
+ *          Logical channel id on bits until position defined by ADC_CHANNEL_SYMBOLIC_NAME_SHIFT_HW_UNIT_ID_U16, and for the rest the Logical Unit Id
+ *          The driver will not update the values in result buffers corresponding to disabled channels, keeping in the buffer the last results from when the channel was enabled.
+ *
+ * @param[in]  Adc_GroupType                Group logical ID or group symbolic name
+ * @param[in]  Adc_ChannelType              Symbolic name of channel
+ *
+ * @return         void.
+ *
+ * @implements      Adc_EnableChannel_Activity
+ */
+void Adc_EnableChannel
+(
+    Adc_GroupType Group,
+    Adc_ChannelType Channel
+);
+
+/**
+ * @brief   Disable an individual channel configured in SW-triggered (non-injected) ADC Group at initialization
+ * @details Disable an individual channel configured in SW-triggered (non-injected) ADC Group at initialization
+ *          Use generated symbolic channel name defines (e.g. AdcChannel_0_0), because function assumes ChannelId to be in following format:
+ *          Logical channel id on bits until position defined by ADC_CHANNEL_SYMBOLIC_NAME_SHIFT_HW_UNIT_ID_U16, and for the rest the Logical Unit Id
+ *          The driver will not update the values in result buffers corresponding to disabled channels, keeping in the buffer the last results from when the channel was enabled.
+ *
+ * @param[in]  Adc_GroupType                Group logical ID or group symbolic name
+ * @param[in]  Adc_ChannelType              Symbolic name of channel
+ *
+ * @return         void.
+ *
+ * @implements      Adc_DisableChannel_Activity
+ */
+void Adc_DisableChannel
+(
+    Adc_GroupType Group,
+    Adc_ChannelType Channel
+);
+#endif /* ADC_ENABLE_CH_DISABLE_CH_NONAUTO_API == STD_ON */
+
+#if (ADC_GET_INJECTED_CONVERSION_STATUS_API == STD_ON)
+/**
+* @brief          Get the injected conversions status.
+* @details        This function checks if an injected conversion (HW,SW) is ongoing
+*
+* @param[in]      Unit            Adc unit used. Recommended to use generated define for Adc Logical Unit Id
+*
+* @return         Adc_StatusType  Status of the ADC HW unit.
+*                 ADC_IDLE:       SW,HW Injection or Hardware Trigger group are idle.
+*                 ADC_BUSY:       SW,HW Injection or Hardware Trigger is in progress.
+*
+* @implements  Adc_GetInjectedConversionStatus_Activity
+*/
+Adc_StatusType Adc_GetInjectedConversionStatus
+(
+    Adc_HwUnitType Unit
+);
+#endif /* ADC_GET_INJECTED_CONVERSION_STATUS_API == STD_ON */
+
+#if (ADC_CALIBRATION == STD_ON)
+/**
+* @brief          Executes high accuracy calibration of a ADC HW unit.
+* @details        This function calibrates the ADC HW unit and updates calibration related registers
+*
+* @param[in]      Unit      Adc unit used. Recommended to use generated define for Adc Logical Unit Id
+* @param[in]      pStatus   Status of the ADC HW unit calibration and
+*                           list of failed and passed tests.
+*
+* @return         void
+*
+* @implements  Adc_Calibrate_Activity
+*/
+void Adc_Calibrate
+(
+    Adc_HwUnitType Unit,
+    Adc_CalibrationStatusType * pStatus
+);
+#endif /* (ADC_CALIBRATION == STD_ON) */
+
+#if (ADC_SELF_TEST == STD_ON)
+/**
+* @brief          Executes hardware Self Test of a ADC HW unit.
+* @details        This function checks if the ADC HW unit is functioning correctly
+*
+* @param[in]      Unit      Adc unit used. Recommended to use generated define for Adc Logical Unit Id
+*
+* @return         Std_ReturnType. Status of the ADC HW unit Self Test.
+*
+* @implements  Adc_SelfTest_Activity
+*/
+Std_ReturnType Adc_SelfTest
+(
+    Adc_HwUnitType Unit
+);
+#endif /* (ADC_SELF_TEST == STD_ON) */
+
+#if (ADC_ENABLE_CONFIGURE_THRESHOLD_NONAUTO_API == STD_ON)
+/**
+* @brief      Function to reconfigure High and Low thresholds for a given threshold control index.
+* @details    This function is used to reconfigure High and Low thresholds for a given threshold control index.
+*             Use generated symbolic name defines of threshold register (e.g. AdcThresholdControl_0_0), because function assumes ThresholdControlIndex to be in following format:
+*             Logical threshold id on bits until position defined by ADC_THRESHOLD_SYMBOLIC_NAME_SHIFT_HW_UNIT_ID_U16, and for the rest the Logical Unit Id
+*
+* @param[in]  ThresholdControlIndex       Symbolic name of threshold control
+* @param[in]  LowValue                    Low threshold value of the threshold control
+* @param[in]  HighValue                   High threshold value of the threshold control
+*
+* @return     void
+*
+* @implements      Adc_ConfigureThreshold_Activity
+*/
+void Adc_ConfigureThreshold
+(
+    Adc_ThresholdControlIndexType ThresholdControlIndex,
+    Adc_WdgThresholdValueType LowValue,
+    Adc_WdgThresholdValueType HighValue
+);
+#endif /*  ADC_ENABLE_CONFIGURE_THRESHOLD_NONAUTO_API == STD_ON */
+
+#ifdef ADC_WDG_SUPPORTED
+/**
+ * @brief   Enable notification of a channel that has watchdog functionality configured at initialization
+ * @details Enable notification of a channel that has watchdog functionality configured at initialization
+ *          Use generated symbolic channel name defines (e.g. AdcChannel_0_0), because function assumes ChannelId to be in following format:
+ *          Logical channel id on bits until position defined by ADC_CHANNEL_SYMBOLIC_NAME_SHIFT_HW_UNIT_ID_U16, and for the rest the Logical Unit Id
+ *
+ * @param[in]  Adc_ChannelType              Symbolic name of channel
+ *
+ * @return         void.
+ *
+ * @implements      Adc_EnableWdgNotification_Activity
+ */
+void Adc_EnableWdgNotification
+(
+    Adc_ChannelType ChannelId
+);
+
+/**
+ * @brief   Disable notification of a channel that has watchdog functionality configured at initialization
+ * @details Disable notification of a channel that has watchdog functionality configured at initialization
+ *          Use generated symbolic channel name defines (e.g. AdcChannel_0_0), because function assumes ChannelId to be in following format:
+ *          Logical channel id on bits until position defined by ADC_CHANNEL_SYMBOLIC_NAME_SHIFT_HW_UNIT_ID_U16, and for the rest the Logical Unit Id
+ *
+ * @param[in]  Adc_ChannelType              Symbolic name of channel
+ *
+ * @return         void.
+ *
+ * @implements      Adc_DisableWdgNotification_Activity
+ */
+void Adc_DisableWdgNotification
+(
+    Adc_ChannelType ChannelId
+);
+#endif /* ADC_WDG_SUPPORTED */
+
+#if (ADC_DUAL_CLOCK_MODE == STD_ON)
+/**
+* @brief          Set the ADC clock prescaler if available and modify the conversion timings.
+* @details        This function sets the ADC clock prescaler (Analog clock frequency selector)
+*
+* @param[in]      Prescaler      Normal or Alternate mode.
+*
+* @return         Std_ReturnType  Standard return type.
+*                 E_OK:           In case of successful settings.
+*                 E_NOT_OK:       In case of unsuccessful settings.
+*
+* @implements  Adc_SetClockMode_Activity
+*/
+Std_ReturnType Adc_SetClockMode
+(
+    Adc_SelectPrescalerType Prescaler
+);
+#endif /* (ADC_DUAL_CLOCK_MODE == STD_ON) */
+
+#if (ADC_CTU_CONTROL_MODE_EXTRA_APIS == STD_ON)
+/**
+* @brief   Function to set the trigger handler control registers of the CTU IPL.
+*
+* @details Full configurability of CTU THCR1 & THCR2 registers of the CTU IPL.
+*          This function has in input the CTU trigger (0...7) and the mask (8 bit)
+*          to enable the External Trigger and Timer output for that Trigger, without considering
+*          the ADC command output enable.
+*          See from the RM the THCR1 and THCR2 registers for the right Thcr_value to use.
+*
+* @note    The function Service ID[hex]: 0x35.
+*
+* @param[in]  Trigger      Index of the trigger: 0...7.
+* @param[in]  ThcrValue   THCRx mask value (only with bits for Ext. Trigger and Timer) for the selected input trigger.
+*
+* @return         Std_ReturnType  E_OK or E_NOT_OK.
+*                 E_OK            In case of successful settings.
+*                 E_NOT_OK        In case of unsuccessful settings.
+*
+* @implements  Adc_CtuWriteTriggerEnableMask_Activity
+*/
+Std_ReturnType Adc_CtuWriteTriggerEnableMask
+(
+    uint8 u8Trigger,
+    uint8 u8ThcrValue
+);
+
+/**
+* @brief   Function to set or clear the bit Tx_E of the trigger handler control registers of the CTU IPL.
+*
+* @details Full configurability of CTU THCR1 & THCR2 registers of the CTU IPL.
+*          This function has in input the CTU trigger (0...7) and a Boolean to set to clear the right trigger bit.
+*          See from the RM the THCR1 and THCR2 registers for the right API use.
+*
+* @param[in]  u8Trigger    Index of the trigger: 0...7.
+* @param[in]  bEnable      if True, the bit Tx_E shall be set to 1, 0 otherwise
+*
+* @note    The function Service ID[hex]: 0x36.
+*
+* @return         Std_ReturnType  E_OK or E_NOT_OK.
+*                 E_OK            In case of successful settings.
+*                 E_NOT_OK        In case of unsuccessful settings.
+*
+* @implements  Adc_CtuSetTriggerEnable_Activity
+*/
+Std_ReturnType Adc_CtuSetTriggerEnable
+(
+    uint8 u8Trigger,
+    boolean bEnable
+);
+
+/**
+* @brief   Function to set the cmd list handler control registers of the CTU IPL.
+*
+* @details Full configurability of CLCR1 & CLCR2 registers of the CTU IPL.
+*          This function has in input the CTU trigger (0...7) and  the position of the first
+*          command in the command list.
+*          See from the RM the CLCR1 and CLCR2 registers for the right API use.
+*
+* @param[in]  u8Trigger      Index of the trigger: 0...7.
+* @param[in]  u8ClcrValue   Position of the first command
+*
+* @note    The function Service ID[hex]: 0x37.
+*
+* @return         Std_ReturnType  E_OK or E_NOT_OK.
+*                 E_OK            In case of successful settings.
+*                 E_NOT_OK        In case of unsuccessful settings.
+*
+* @implements  Adc_CtuSetTriggerAdcCmdAddress_Activity
+*/
+Std_ReturnType Adc_CtuSetTriggerAdcCmdAddress
+(
+    uint8 u8Trigger,
+    uint8 u8ClcrValue
+);
+
+/**
+* @brief   Function to set the trigger compare registers of the CTU IPL.
+*
+* @details Full configurability of CTU TxCR registers of the CTU IPL.
+*          This function has in input the CTU trigger (0...7) and the comparator value
+*          See from the RM the TxCR trigger compare registers for the right compare_value to use.
+*
+* @note    The function Service ID[hex]: 0x38.
+*
+* @param[in]  u8Trigger      Index of the trigger: 0...7.
+* @param[in]  u16CompareValue  value to set in the register TxCR.
+*
+* @return         Std_ReturnType  E_OK or E_NOT_OK.
+*                 E_OK            In case of successful settings.
+*                 E_NOT_OK        In case of unsuccessful settings.
+*
+* @implements  Adc_CtuSetTriggerCompare_Activity
+*/
+Std_ReturnType Adc_CtuSetTriggerCompare
+(
+    uint8 u8Trigger,
+    uint16 u16CompareValue
+);
+#endif /* (ADC_CTU_CONTROL_MODE_EXTRA_APIS == STD_ON) */
+
+#if (ADC_SETCHANNEL_API == STD_ON)
+/**
+* @brief   Function to dynamic handling of ADC channels list for Adc channel group.
+*
+* @details Dynamic handling of ADC channels list.
+*          This function to dynamic handling of ADC channels list for Adc channel group.
+* @param[in]  Group                     Group Id.
+* @param[in]  Channel                   Pointer to array of channels to be reconfigured for the group. Channel value is logical channel ID. 
+* @param[in]  Delays                    Pointer to array of delay value associated with array of channels to be reconfigured.
+* @param[in]  ChannelUpdateMask         Bitmask selecting which channels to be reconfigured.
+* @param[in]  NumberOfChannel           Number of channels in channels array.
+*
+* @note    For platforms supporting delays:
+*          Delays:
+*           - If NULL_PTR: channel delay values are not reconfigured.
+*           - If group has configured only 1 delay: pointer to new delay value. 
+*           - If group has configured delay for each channel: array with new delay values - number of elements must be NumberOfChannel.
+
+*          ChannelUpdateMask:
+*           - Bitmask example: 0b0110 only reconfigures channels from positions 1 and 2.
+*           - This bit mask can be used only if number of group channels are not greater than number of SC1 registers
+*           - Last bit of this mask must be set for having interrupt if NumberOfChannel is different than number of configured channels.
+*
+* @implements  Adc_SetChannel_Activity
+*/
+void Adc_SetChannel
+(
+    const Adc_GroupType Group,
+    const Adc_GroupDefType * Channel,
+#if (ADC_DELAY_AVAILABLE == STD_ON)
+    const uint16 * Delays,
+    const uint32 ChannelUpdateMask,
+#endif /* (ADC_DELAY_AVAILABLE == STD_ON) */
+    const Adc_ChannelIndexType NumberOfChannel
+);
+#endif /* ADC_SETCHANNEL_API == STD_ON */
+
+#if (ADC_POWER_STATE_SUPPORTED == STD_ON)
+/**
+* @brief          Enters the already prepared power state.
+* @details        This API configures the Adc module so that it enters the already prepared power
+*                 state, chosen between a predefined set of configured ones.
+*
+* @param[out]     Result        Pointer to a variable to store the result of this function
+*
+* @return         Std_ReturnType  Standard return type.
+*                 E_OK:           Power Mode changed.
+*                 E_NOT_OK:       Request rejected.
+*
+* @implements  Adc_SetPowerState_Activity
+*/
+Std_ReturnType Adc_SetPowerState
+(
+    Adc_PowerStateRequestResultType * Result
+);
+
+/**
+* @brief          Get the current power state of the ADC HW unit.
+* @details        This API returns the current power state of the ADC HW unit.
+*
+* @param[out]     CurrentPowerState     The current power mode of the ADC HW Unit is returned in this parameter
+* @param[out]     Result                Pointer to a variable to store the result of this function
+*
+* @return         Std_ReturnType  Standard return type.
+*                 E_OK:           Mode could be read.
+*                 E_NOT_OK:       Service is rejected.
+*
+* @implements  Adc_GetCurrentPowerState_Activity
+*/
+Std_ReturnType Adc_GetCurrentPowerState
+(
+    Adc_PowerStateType * CurrentPowerState,
+    Adc_PowerStateRequestResultType * Result
+);
+
+/**
+* @brief          Get the target power state of the ADC HW unit.
+* @details        This API returns the target power state of the ADC HW unit.
+*
+* @param[out]     TargetPowerState      The Target power mode of the ADC HW Unit is returned in this parameter.
+* @param[out]     Result                Pointer to a variable to store the result of this function.
+*
+* @return         Std_ReturnType  Standard return type.
+*                 E_OK:           Mode could be read.
+*                 E_NOT_OK:       Service is rejected.
+*
+* @implements  Adc_GetTargetPowerState_Activity
+*/
+Std_ReturnType Adc_GetTargetPowerState
+(
+    Adc_PowerStateType * TargetPowerState,
+    Adc_PowerStateRequestResultType * Result
+);
+
+/**
+* @brief          Starts the needed process to allow the ADC HW module to enter the requested power state.
+* @details        This API starts the needed process to allow the ADC HW module to enter the requested power state.
+*
+* @param[in]      PowerState      The target power state intended to be attained.
+* @param[out]     Result          Pointer to a variable to store the result of this function.
+*
+* @return         Std_ReturnType  Standard return type.
+*                 E_OK:           Mode could be read.
+*                 E_NOT_OK:       Service is rejected.
+*
+* @implements  Adc_PreparePowerState_Activity
+*/
+Std_ReturnType Adc_PreparePowerState
+(
+    Adc_PowerStateType PowerState,
+    Adc_PowerStateRequestResultType * Result
+);
+
+#if (ADC_POWER_STATE_ASYNCH_MODE_SUPPORTED == STD_ON)
+/**
+* @brief          Cyclically called and supervises the power state transitions.
+* @details        This API is cyclically called and supervises the power state transitions, checking for the readiness of the module and issuing the callbacks.
+*
+* @param[in]      none
+* @param[out]     none
+*
+* @return         void
+*/
+void Adc_Main_PowerTransitionManager(void);
+#endif /* (ADC_POWER_STATE_ASYNCH_MODE_SUPPORTED == STD_ON) */
+#endif /* (ADC_POWER_STATE_SUPPORTED == STD_ON) */
+
+#if (ADC_ENABLE_CTU_CONTROL_MODE_API == STD_ON)
+/**
+* @brief   Function to enable CTU control mode for an ADC unit.
+*
+* @details Enable CTU control mode for an ADC unit.
+*          This function to enable CTU control mode for Adc. When a unit works in CTU control mode,
+*          no other conversions shall run in parallel(Adc). The only conversions occurring shall be
+*          the ones defined in the CTU configuration.
+*
+* @param[in]  Unit      Adc unit used. Recommended to use generated define for Adc Logical Unit Id
+*
+* @return         void
+*
+* @implements  Adc_EnableCtuControlMode_Activity
+*/
+void Adc_EnableCtuControlMode
+(
+    Adc_HwUnitType Unit
+);
+
+/**
+* @brief   Function to disable CTU control mode for an ADC unit.
+*
+* @details Disable CTU control mode for an ADC unit.
+*          This function to disable CTU control mode for Adc. The other Adc conversions can run in
+*          software trigger normal mode, software trigger injected mode or hardware trigger mode.
+*
+* @param[in]  Unit      Adc unit used. Recommended to use generated define for Adc Logical Unit Id
+*
+* @return         void
+*
+* @implements  Adc_DisableCtuControlMode_Activity
+*/
+void Adc_DisableCtuControlMode
+(
+    Adc_HwUnitType Unit
+);
+
+/**
+* @brief   Function to enable CTU hardware trigger.
+*
+* @details Enable CTU hardware trigger.
+*
+* @param[in]  TrigSource      Trigger source.
+*
+* @return         void
+*
+* @implements  Adc_CtuEnableHwTrigger_Activity
+*/
+void Adc_CtuEnableHwTrigger
+(
+    Adc_CtuTrigSrcType TrigSource
+);
+
+/**
+* @brief   Function to disable CTU hardware trigger.
+*
+* @details Disable CTU hardware trigger.
+*
+* @param[in]  TrigSource      Trigger source.
+*
+* @return         void
+*
+* @implements  Adc_CtuDisableHwTrigger_Activity
+*/
+void Adc_CtuDisableHwTrigger
+(
+    Adc_CtuTrigSrcType TrigSource
+);
+
+/**
+* @brief   Function to start CTU conversion.
+*
+* @details Start CTU conversion.
+*
+* @param[in]  TrigSource      Trigger source.
+*
+* @return         void
+*
+* @implements  Adc_CtuStartConversion_Activity
+*/
+void Adc_CtuStartConversion
+(
+    Adc_CtuTrigSrcType TrigSource
+);
+
+#if (ADC_CTU_AVAILABLE == STD_ON)
+/**
+* @brief   Issue a software master reload signal for CTU.
+*
+* @details Issue a software master reload signal for CTU in CTU Control Mode.
+*
+* @param[in]    CtuUnit     CTU hardware unit. Recommended to use generated define for Ctu Logical Unit Id
+*
+* @return       void
+*
+* @implements  Adc_CtuMasterReload_Activity
+*/
+void Adc_CtuMasterReload
+(
+    Adc_HwUnitType CtuUnit
+);
+#endif /* (ADC_CTU_AVAILABLE == STD_ON) */
+
+#if (ADC_BCTU_AVAILABLE == STD_ON)
+/**
+* @brief   Function to read BCTU conversion data.
+*
+* @details Read CTU conversion data.
+*
+* @param[in]    AdcUnit             Adc HW unit. Recommended to use generated define for Adc Logical Unit Id.
+*
+* @return       Adc_ValueGroupType  Conversion result.
+*
+* @implements  Adc_CtuReadConvData_Activity
+*/
+Adc_ValueGroupType Adc_CtuReadConvData
+(
+    Adc_HwUnitType AdcUnit
+);
+
+/**
+* @brief   Function to read BCTU conversion result.
+*
+* @details Read BCTU conversion result.
+*
+* @param[in]    AdcUnit      Adc HW unit. Recommended to use generated define for Adc Logical Unit Id.
+* @param[out]   pResult      Adc result structure.
+*
+* @return       void
+*
+* @implements  Adc_CtuReadConvResult_Activity
+*/
+void Adc_CtuReadConvResult
+(
+    Adc_HwUnitType AdcUnit,
+    Adc_CtuResultType * pResult
+);
+
+/**
+* @brief   Function to stop CTU loop conversion.
+*
+* @details Stop CTU loop conversions.
+*
+* @param[in] TrigSource    Trigger source of conversions to be stopped.
+*
+* @return         void
+*
+* @implements  Adc_CtuStopLoopConversions_Activity
+*/
+void Adc_CtuStopLoopConversions
+(
+    Adc_CtuTrigSrcType TrigSource
+);
+#endif /* (ADC_BCTU_AVAILABLE == STD_ON) */
+
+/**
+* @brief   Function to read CTU conversion data from FIFO.
+*
+* @details Read CTU conversion data from FIFO.
+*
+* @param[in]   FifoIdx      CTU FIFO index.
+* @param[out]  pu16Data     Pointer to pre-allocated result array.
+* @param[in]   u8DataLength Max amount of results to be read.
+*
+* @return         void
+*
+* @implements  Adc_CtuReadFifoData_Activity
+*/
+void Adc_CtuReadFifoData
+(
+    Adc_CtuFifoIdxType FifoIdx,
+    uint16 * pu16Data,
+    uint8 u8DataLength
+);
+
+/**
+* @brief   Function to read CTU conversion results from FIFO.
+*
+* @details Read CTU conversion results from FIFO.
+*
+* @param[in]   FifoIdx         CTU FIFO index.
+* @param[out]  pResult         Pointer to pre-allocated result array.
+* @param[in]   u8ResultLength  Max amount of results to be read.
+*
+* @return         void
+*
+* @implements  Adc_CtuReadFifoResult_Activity
+*/
+void Adc_CtuReadFifoResult
+(
+    Adc_CtuFifoIdxType FifoIdx,
+    Adc_CtuFifoResultType * pResult,
+    uint8 u8ResultLength
+);
+
+/**
+* @brief   Function to set CTU FIFO watermark.
+*
+* @details Set CTU FIFO watermark.
+*
+* @param[in]   FifoIdx      FIFO index.
+* @param[in]   u8Watermark  Watermark value.
+*
+* @return         void
+*
+* @implements  Adc_CtuSetFifoWatermark_Activity
+*/
+void Adc_CtuSetFifoWatermark
+(
+    Adc_CtuFifoIdxType FifoIdx,
+    uint8 u8Watermark
+);
+
+/**
+* @brief   Function to enable CTU notification.
+*
+* @details Enable CTU notification.
+*
+* @param[in] Notification  Notification to be enabled.
+*
+* @return         void
+*
+* @implements  Adc_CtuEnableNotification_Activity
+*/
+void Adc_CtuEnableNotification
+(
+    Adc_CtuNotificationType Notification
+);
+
+/**
+* @brief   Function to disable CTU notification.
+*
+* @details Disable CTU notification.
+*
+* @param[in] Notification  Notification to be disabled.
+*
+* @return         void
+*
+* @implements  Adc_CtuDisableNotification_Activity
+*/
+void Adc_CtuDisableNotification
+(
+    Adc_CtuNotificationType Notification
+);
+
+/**
+* @brief   Function to set CTU list.
+*
+* @details Reconfigure the CTU list of conversions in CTU Control Mode.
+*
+* @param[in] ListItemsArray    Pointer to list items array to be set.
+* @param[in] NumItems          Number of items in the array.
+* @param[in] ListStartPosition Start position of the list.
+*
+* @return         void
+*
+* @implements  Adc_CtuSetList_Activity
+*/
+void Adc_CtuSetList
+(
+    const Adc_CtuListItemType * const ListItemsArray,
+    const uint8 NumItems,
+    const uint8 ListStartPosition
+);
+
+/**
+* @brief   Reconfigure the list pointer of a triggered CTU source.
+*
+* @details Reconfigure the list pointer of a trigger source in CTU Control Mode.
+*
+* @param[in] TrigSource        Source trigger index.
+* @param[in] ListPtr           Position of the first channel of the command list.
+*
+* @return         void
+*
+* @implements  Adc_CtuSetListPointer_Activity
+*/
+void Adc_CtuSetListPointer
+(
+    Adc_CtuTrigSrcType TrigSource,
+    Adc_CtuListPtrType ListPtr
+);
+#endif /* ADC_ENABLE_CTU_CONTROL_MODE_API == STD_ON */
+
+#if (ADC_ENABLE_TEMPSENSE_API == STD_ON)
+/**
+* @brief   Function to calculate temperature on chip from provided data.
+*
+* @details Calculates temperature on chip from provided data.
+*
+* @param[in] Unit                 Adc unit used. Recommended to use generated define for Adc Logical Unit Id.
+* @param[in] TempSenseConvData    Data measured on the ADC internal channel for TempSense.
+* (1 bit for the sign, 11 bits for the integer part and 4 bits for the decimal part)
+*
+* @return         uint16          Temperature value on chip.in degrees C, expressed in fixed point format.
+*
+* @implements  Adc_TempSenseCalculateTemp_Activity
+*/
+uint16 Adc_TempSenseCalculateTemp
+(
+    Adc_HwUnitType Unit,
+    const uint16 TempSenseAdcConvData
+);
+
+/**
+* @brief   Function to get the temperature on chip directly.
+*
+* @details This function starts a normal software conversion with one-shot mode on tempsense
+* channel and calculates the temperature on chip from the data conversion
+* The function is synchronous: waits until the ADC conversion completes or timeout occurs
+*
+* @param[in]  Unit                Adc unit used. Recommended to use generated define for Adc Logical Unit Id.
+* @param[out] TempSenseVal        Temperature value on chip in degrees C, expressed in fixed point format.
+* (1 bit for the sign, 11 bits for the integer part and 4 bits for the decimal part)
+*
+* @return         Std_ReturnType  Standard return type.
+*                 E_OK:           temperature read successful
+*                 E_NOT_OK:       operation failed
+* @implements  Adc_TempSenseGetTemp_Activity
+*/
+Std_ReturnType Adc_TempSenseGetTemp
+(
+    Adc_HwUnitType Unit,
+    uint16 * const TempSenseVal
+);
+
+/**
+* @brief          Set the Tempsense mode either to powerdown or normal.
+* @details        Set the Tempsense mode either to powerdown or normal.
+*
+* @param[in]      SetPowerMode    Power mode to set: normal or powerdown.
+*
+* @return         Std_ReturnType  Successful/Unsuccessful transition.
+*
+* @implements  Adc_TempSenseSetPowerMode_Activity
+*/
+Std_ReturnType Adc_TempSenseSetPowerMode
+(
+    Adc_SetPowerModeType SetPowerMode
+);
+
+#endif /* (ADC_ENABLE_TEMPSENSE_API == STD_ON) */
+
+#define ADC_STOP_SEC_CODE
+#include "Adc_MemMap.h"
+
+#ifdef __cplusplus
+}
+#endif
+
+/** @} */
+
+#endif /* ADC_H */

+ 448 - 0
RTD/include/Adc_Ip.h

@@ -0,0 +1,448 @@
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : ADC
+*   Dependencies         : none
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_D2108_ASR_REL_4_4_REV_0000_20210810
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+
+#ifndef ADC_IP_H
+#define ADC_IP_H
+
+/**
+*   @file
+*
+*   @addtogroup adc_ip Adc IPL
+*   @{
+*/
+
+#include "Adc_Ip_Types.h"
+#include "Adc_Ip_Cfg.h"
+
+/*==================================================================================================
+*                              SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+#define ADC_IP_VENDOR_ID_H                      43
+#define ADC_IP_AR_RELEASE_MAJOR_VERSION_H       4
+#define ADC_IP_AR_RELEASE_MINOR_VERSION_H       4
+#define ADC_IP_AR_RELEASE_REVISION_VERSION_H    0
+#define ADC_IP_SW_MAJOR_VERSION_H               1
+#define ADC_IP_SW_MINOR_VERSION_H               0
+#define ADC_IP_SW_PATCH_VERSION_H               0
+/*==================================================================================================
+*                                     FILE VERSION CHECKS
+==================================================================================================*/
+/* Check if Adc_Ip.h file and Adc_Ip_Types.h file are of the same vendor */
+#if (ADC_IP_VENDOR_ID_H != ADC_IP_VENDOR_ID_TYPES_H)
+    #error "Adc_Ip.h and Adc_Ip_Types.h have different vendor ids"
+#endif
+
+/* Check if Adc_Ip.h file and Adc_Ip_Types.h file are of the same Autosar version */
+#if ((ADC_IP_AR_RELEASE_MAJOR_VERSION_H != ADC_IP_AR_RELEASE_MAJOR_VERSION_TYPES_H) || \
+     (ADC_IP_AR_RELEASE_MINOR_VERSION_H != ADC_IP_AR_RELEASE_MINOR_VERSION_TYPES_H) || \
+     (ADC_IP_AR_RELEASE_REVISION_VERSION_H != ADC_IP_AR_RELEASE_REVISION_VERSION_TYPES_H) \
+    )
+    #error "AutoSar Version Numbers of Adc_Ip.h and Adc_Ip_Types.h are different"
+#endif
+
+/* Check if Adc_Ip.h file and Adc_Ip_Types.h file are of the same Software version */
+#if ((ADC_IP_SW_MAJOR_VERSION_H != ADC_IP_SW_MAJOR_VERSION_TYPES_H) || \
+     (ADC_IP_SW_MINOR_VERSION_H != ADC_IP_SW_MINOR_VERSION_TYPES_H) || \
+     (ADC_IP_SW_PATCH_VERSION_H != ADC_IP_SW_PATCH_VERSION_TYPES_H) \
+    )
+  #error "Software Version Numbers of Adc_Ip.h and Adc_Ip_Types.h are different"
+#endif
+
+/* Check if Adc_Ip.h file and Adc_Ip_Cfg.h file are of the same vendor */
+#if (ADC_IP_VENDOR_ID_H != ADC_IP_VENDOR_ID_CFG_H)
+    #error "Adc_Ip.h and Adc_Ip_Cfg.h have different vendor ids"
+#endif
+
+/* Check if Adc_Ip.h file and Adc_Ip_Cfg.h file are of the same Autosar version */
+#if ((ADC_IP_AR_RELEASE_MAJOR_VERSION_H != ADC_IP_AR_RELEASE_MAJOR_VERSION_CFG_H) || \
+     (ADC_IP_AR_RELEASE_MINOR_VERSION_H != ADC_IP_AR_RELEASE_MINOR_VERSION_CFG_H) || \
+     (ADC_IP_AR_RELEASE_REVISION_VERSION_H != ADC_IP_AR_RELEASE_REVISION_VERSION_CFG_H) \
+    )
+    #error "AutoSar Version Numbers of Adc_Ip.h and Adc_Ip_Cfg.h are different"
+#endif
+
+/* Check if Adc_Ip.h file and Adc_Ip_Cfg.h file are of the same Software version */
+#if ((ADC_IP_SW_MAJOR_VERSION_H != ADC_IP_SW_MAJOR_VERSION_CFG_H) || \
+     (ADC_IP_SW_MINOR_VERSION_H != ADC_IP_SW_MINOR_VERSION_CFG_H) || \
+     (ADC_IP_SW_PATCH_VERSION_H != ADC_IP_SW_PATCH_VERSION_CFG_H) \
+    )
+  #error "Software Version Numbers of Adc_Ip.h and Adc_Ip_Cfg.h are different"
+#endif
+/*==================================================================================================
+*                                     DEFINITIONS
+==================================================================================================*/
+
+/*******************************************************************************
+ * API
+ ******************************************************************************/
+#if defined (__cplusplus)
+extern "C" {
+#endif
+
+#define ADC_START_SEC_CODE
+#include "Adc_MemMap.h"
+
+/*!
+ * @brief Initialize ADC module
+ *
+ * This function initializes the ADC module by configuring all
+ * available features.
+ *
+ * @param[in] Instance - ADC instance number
+ * @param[in] config - configuration struct pointer
+ * @return void
+ */
+void Adc_Ip_Init(const uint32 Instance, const Adc_Ip_ConfigType * const Config);
+
+/*!
+ * @brief Deinitialize ADC module
+ *
+ * This function resets the ADC internal registers to default values.
+ *
+ * @param[in] Instance - ADC instance number
+ * @return void
+ */
+void Adc_Ip_DeInit(const uint32 Instance);
+
+/*!
+ * @brief Configure averaging
+ *
+ * This function enables averaging and selects the number of conversions to average.
+ * The mask parameter should be set using the Adc_Ip_AvgSelectType enum elements
+ * that have the pattern ADC_IP_AVG_... e.g. ADC_IP_AVG_4_CONV.
+ *
+ * @param[in] Instance - ADC instance number
+ * @param[in] AvgEn - enable or disable averaging
+ * @param[in] AvgSel - selects number of conversions to average
+ * @return void
+ */
+void Adc_Ip_SetAveraging(const uint32 Instance, const boolean AvgEn, const Adc_Ip_AvgSelectType AvgSel);
+
+/*!
+ * @brief Configure sample time
+ *
+ * This function sets the sample time for selected ADC instance.
+ *
+ * @param[in] Instance - ADC instance number
+ * @param[in] SampleTime - sample time
+ * @return void
+ */
+void Adc_Ip_SetSampleTime(const uint32 Instance, const uint8 SampleTime);
+
+/*!
+ * @brief Enable DMA
+ *
+ * This function enables DMA.
+ *
+ * @param[in] Instance - ADC instance number
+ * @return void
+ */
+void Adc_Ip_EnableDma(const uint32 Instance);
+
+/*!
+ * @brief Disable DMA
+ *
+ * This function disables DMA.
+ *
+ * @param[in] Instance - ADC instance number
+ * @return void
+ */
+void Adc_Ip_DisableDma(const uint32 Instance);
+
+/*!
+ * @brief Switch between hardware and software trigger
+ *
+ * This function enables either hardware or software trigger.
+ *
+ * @param[in] Instance - ADC instance number
+ * @param[in] TriggerMode - selected trigger mode(sw/hw)
+ * @return void
+ */
+void Adc_Ip_SetTriggerMode(const uint32 Instance, const Adc_Ip_TrigType TriggerMode);
+
+/*!
+ * @brief Switch between continuous and one shot conversion mode
+ *
+ * This function switches between ADC continuous conversion mode and one shot mode.
+ *
+ * @param[in] Instance - ADC instance number
+ * @param[in] ContinuousModeEnable - mode to set: continuous(TRUE) or one shot(FALSE)
+ * @return void
+ */
+void Adc_Ip_SetContinuousMode(const uint32 Instance, const boolean ContinuousModeEnable);
+
+/*!
+ * @brief Set ADC module resolution
+ *
+ * This function sets ADC module resolution.
+ *
+ * @param[in] Instance - ADC instance number
+ * @param[in] Resolution - resolution value
+ * @return void
+ */
+void Adc_Ip_SetResolution(const uint32 Instance, const Adc_Ip_ResolutionType Resolution);
+
+/*!
+ * @brief Set the ADC clock values
+ *
+ * This function initializes the ADC clock configuration.
+ *
+ * @param[in] Instance - ADC instance number
+ * @param[in] Config - the clock configuration
+ * @return void
+ */
+void Adc_Ip_SetClockMode(const uint32 Instance, const Adc_Ip_ClockConfigType * const Config);
+
+/*!
+ * @brief Configure the selected control channel with the given
+ * configuration structure
+ *
+ * When Software Trigger mode is enabled, configuring control channel index 0,
+ * implicitly triggers a new conversion on the selected ADC input channel.
+ * Therefore, Adc_Ip_ConfigChannel can be used for sw-triggering conversions.
+ *
+ * Configuring any control channel while it is actively controlling a conversion
+ * (sw or hw triggered) will implicitly abort the on-going conversion.
+ *
+ * @param[in] Instance - ADC instance number
+ * @param[in] ChanConfig - configuration structure
+ * @return void
+ */
+void Adc_Ip_ConfigChannel(const uint32 Instance, const Adc_Ip_ChanConfigType * const ChanConfig);
+
+/*!
+ * @brief Disable selected channel
+ *
+ * This function sets the input channel of the selected control channel to
+ * ADC_IP_INPUTCHAN_DISABLED. If WithTimeout is TRUE then the function will
+ * also wait for the register to be updated.
+ * Note: the control channel index is the numeric index of SC1x
+ * (e.g. SC1A has index 0), not the input channel.
+ *
+ * @param[in] Instance - ADC instance number
+ * @param[in] ControlChanIdx - control channel index
+ * @param[in] WithTimeout - enables loop that checks if the register was updated
+ * @return Adc_Ip_StatusType
+ */
+Adc_Ip_StatusType Adc_Ip_SetDisabledChannel(const uint32 Instance, const uint8 ControlChanIdx, const boolean WithTimeout);
+
+/*!
+ * @brief Start a software triggered conversion
+ *
+ * This function starts a software conversion on the selected input channel by
+ * writing the values given to the SC1A register.
+ * Note: hardware configuration on the control channel with index 0 will be
+ * overwritten.
+ * Note: this will not work if hardware triggered mode is selected.
+ *
+ * @param[in] Instance - ADC instance number
+ * @param[in] InputChannel - channel index
+ * @param[in] InterruptEnable - enables end of conversion interrupt
+ * @return void
+ */
+void Adc_Ip_StartConversion(const uint32 Instance, Adc_Ip_InputChannelType InputChannel, const boolean InterruptEnable);
+
+/*!
+ * @brief Read and return conversion active flag status.
+ *
+ * @param[in] Instance - ADC instance number
+ * @return conversion active flag status
+ */
+boolean Adc_Ip_GetConvActiveFlag(const uint32 Instance);
+
+/*!
+ * @brief Check if selected channel has interrupt set
+ *
+ * This function checks and returns if the selected control channel has the
+ * interrupt flag set.
+ * Note: the control channel index is the numeric index of SC1x
+ * (e.g. SC1A has index 0), not the input channel.
+ *
+ * @param[in] Instance - ADC instance number
+ * @param[in] ControlChanIdx - control channel index
+ * @return TRUE if channel has interrupt set or FALSE otherwise
+ */
+boolean Adc_Ip_GetChanInterrupt(const uint32 Instance, const uint8 ControlChanIdx);
+
+/*!
+ * @brief Get the value of conversion complete flag of a channel
+ *
+ * This function returns the value of the conversion complete(COCO) flag of a
+ * given channel.
+ * Note: the control channel index is the numeric index of SC1x
+ * (e.g. SC1A has index 0), not the input channel.
+ *
+ * @param[in] Instance - ADC instance number
+ * @param[in] ControlChanIdx - control channel index
+ * @return value of conversion complete flag
+ */
+boolean Adc_Ip_GetConvCompleteFlag(const uint32 Instance, const uint8 ControlChanIdx);
+
+/*!
+ * @brief Get the last result for the selected control channel
+ *
+ * This function retrieves the last conversion result for the selected control
+ * channel. This function does no validity check on the result. In order to
+ * check if the result is valid, the user must call Adc_Ip_GetConvCompleteFlag
+ * function before this one.
+ * Note: the control channel index is the numeric index of SC1x
+ * (e.g. SC1A has index 0), not the input channel.
+ *
+ * @param[in] Instance - ADC instance number
+ * @param[in] ControlChanIdx - control channel index
+ * @return conversion result
+ */
+uint16 Adc_Ip_GetConvData(const uint32 Instance, const uint8 ControlChanIdx);
+
+/*!
+ * @brief Perform calibration of the ADC module
+ *
+ * This function performs a calibration of the ADC module. The input clock frequency
+ * for calibration must be less than or equal to half of the maximum specified
+ * frequency (50Mhz) and greater than minimum specified frequency (20Mhz).
+ * Please refer to Datasheet for more details
+ *
+ * @param[in] Instance - ADC instance number
+ * @return the calibration result
+ *  - ADC_IP_STATUS_SUCCESS: calibration successful
+ *  - ADC_IP_STATUS_TIMEOUT: calibration step timed out
+ */
+Adc_Ip_StatusType Adc_Ip_DoCalibration(const uint32 Instance);
+
+/*!
+ * @brief Clear latched triggers under processing
+ *
+ * This function clears all trigger latched flags of the ADC instance.
+ * This function must be called after the hardware trigger source for the ADC has been deactivated.
+ *
+ * @param[in] Instance - ADC instance number
+ * @return clearing status
+ *  - ADC_IP_STATUS_SUCCESS: operation successful
+ *  - ADC_IP_STATUS_TIMEOUT: operation timed out
+ */
+Adc_Ip_StatusType Adc_Ip_ClearLatchedTriggers(const uint32 Instance);
+
+/*!
+ * @brief Enable channel notification
+ *
+ * This function enables the notification for the selected channel.
+ * Note: the control channel index is the numeric index of SC1x
+ * (e.g. SC1A has index 0), not the input channel.
+ * Note: It's required to read result data in user notification in order to clear the COCO flags and avoid ISR getting invoked repeatedly
+ *
+ * @param[in] Instance - ADC instance number
+ * @param[in] ControlChanIdx - control channel index
+ * @return void
+ */
+void Adc_Ip_EnableChannelNotification(const uint32 Instance, const uint8 ControlChanIdx);
+
+/*!
+ * @brief Disable channel notification
+ *
+ * This function disables the notification for the selected channel.
+ * Note: the control channel index is the numeric index of SC1x
+ * (e.g. SC1A has index 0), not the input channel.
+ *
+ * @param[in] Instance - ADC instance number
+ * @param[in] ControlChanIdx - control channel index
+ * @return void
+ */
+void Adc_Ip_DisableChannelNotification(const uint32 Instance, const uint8 ControlChanIdx);
+
+/*!
+ * @brief Clear all trigger error flags
+ *
+ * This function clears all trigger error flags of the ADC instance.
+ *
+ * @param[in] Instance - ADC instance number
+ * @return void
+ */
+void Adc_Ip_ClearTrigErrReg(const uint32 Instance);
+
+/*!
+ * @brief Get all trigger error flags
+ *
+ * This function returns all trigger error flags of the ADC instance.
+ *
+ * @param[in] Instance - ADC instance number
+ * @return trigger error flags bit-mask
+ */
+uint32 Adc_Ip_GetTrigErrReg(const uint32 Instance);
+
+/*!
+* @brief Return the address of the specified data register
+*
+* This function returns the address of the specified data register
+*
+* @param[in] Instance - ADC instance number
+* @param[in] Index - ADC channel of the Hw unit
+* @return status:
+*  - value of the address of the data for the specified channel
+*/
+uint32 Adc_Ip_GetDataAddress(const uint32 Instance, const uint8 Index);
+
+/*!
+ * @brief Get the last result for the selected control channel
+ *
+ * This function retrieves the last conversion result for the selected input 
+ * channel, by looking which control channel was configured with it. If multiple 
+ * control channels are configured simultaneously with the same requested input 
+ * channel, the result of the first control channel found will be returned. 
+ * If no control channel is configured with the given input channel then 
+ * ADC_IP_STATUS_ERROR will be returned.
+ * This function does no validity check on the result. In order to check if 
+ * the result is valid, the user must call Adc_Ip_GetConvCompleteFlag function 
+ * before this one.
+ *
+ * @param[in] Instance - ADC instance number
+ * @param[in] Channel - input channel
+ * @param[out] Result - pointer to the buffer where the result will be written
+ * @return status
+ */
+Adc_Ip_StatusType Adc_Ip_GetChanData(const uint32 Instance, const Adc_Ip_InputChannelType Channel, uint16 * const Result);
+
+#if (ADC_IP_ENABLE_SIM_SOURCE_SELECTION == STD_ON)
+/*!
+* @brief Set software pretrigger source
+*
+* This function sets the software pretrigger source for an ADC instance.
+* Note: Pretrigger source must be set to software in order to use this.
+* Note: Software pretriggering is available only for ADC control channels 0-3(A-D).
+*
+* @param[in] Instance - ADC instance number
+* @param[in] SoftwarePretrigger - selected software pretrigger
+*/
+void Adc_Ip_SetSoftwarePretrigger(const uint32 Instance, const Adc_Ip_SoftwarePretriggerType SoftwarePretrigger);
+#endif /* (ADC_IP_ENABLE_SIM_SOURCE_SELECTION == STD_ON) */
+
+#define ADC_STOP_SEC_CODE
+#include "Adc_MemMap.h"
+
+#if defined (__cplusplus)
+}
+#endif
+
+/** @} */
+
+#endif /* ADC_IP_H */

+ 68 - 0
RTD/include/Adc_Ip_HeaderWrapper_S32K14x_Extended.h

@@ -0,0 +1,68 @@
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : ADC
+*   Dependencies         : none
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_D2108_ASR_REL_4_4_REV_0000_20210810
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+
+#ifndef ADC_IP_HEADERWRAPPER_S32K14X_EXTENDED_H
+#define ADC_IP_HEADERWRAPPER_S32K14X_EXTENDED_H
+
+/**
+*   @file
+*
+*   @addtogroup adc_ip Adc IPL
+*   @{
+*/
+
+/* Important Note: This file cannot be used independently.
+*  It depends on platform header files to be included before including it */
+
+/*==================================================================================================
+*                                SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+#define ADC_IP_VENDOR_ID_HEADERWRAPPER_S32K14X_EXTENDED_H                      43
+#define ADC_IP_AR_RELEASE_MAJOR_VERSION_HEADERWRAPPER_S32K14X_EXTENDED_H       4
+#define ADC_IP_AR_RELEASE_MINOR_VERSION_HEADERWRAPPER_S32K14X_EXTENDED_H       4
+#define ADC_IP_AR_RELEASE_REVISION_VERSION_HEADERWRAPPER_S32K14X_EXTENDED_H    0
+#define ADC_IP_SW_MAJOR_VERSION_HEADERWRAPPER_S32K14X_EXTENDED_H               1
+#define ADC_IP_SW_MINOR_VERSION_HEADERWRAPPER_S32K14X_EXTENDED_H               0
+#define ADC_IP_SW_PATCH_VERSION_HEADERWRAPPER_S32K14X_EXTENDED_H               0
+
+/*==================================================================================================
+*                                     DEFINITIONS
+==================================================================================================*/
+
+/* 
+ * ADC_SC1ZZ_COUNT is the number of extended channels, there are 16 base 
+ * channels that are available on all K14X platforms, including this one 
+ */
+#define ADC_MAX_CHAN_COUNT          (16u + ADC_SC1ZZ_COUNT)
+
+/* Register access defines */
+#define REG_ACCESS(reg, index)      (*(volatile uint32*)(&(((&(reg))[(index)]))))
+
+#define SC1(Base, RegIndex)         REG_ACCESS(Base->ASC1A, (RegIndex))
+#define R(Base, RegIndex)           REG_ACCESS(Base->ARA, (RegIndex))
+
+
+
+/** @} */
+#endif /* ADC_IP_HEADERWRAPPER_S32K14X_EXTENDED_H */

+ 62 - 0
RTD/include/Adc_Ip_HeaderWrapper_S32K1xx.h

@@ -0,0 +1,62 @@
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : ADC
+*   Dependencies         : none
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_D2108_ASR_REL_4_4_REV_0000_20210810
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+
+#ifndef ADC_IP_HEADERWRAPPER_S32K1XX_H
+#define ADC_IP_HEADERWRAPPER_S32K1XX_H
+
+/**
+*   @file
+*
+*   @addtogroup adc_ip Adc IPL
+*   @{
+*/
+
+/* Important Note: This file cannot be used independently.
+*  It depends on platform header files to be included before including it */
+
+/*==================================================================================================
+*                                SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+#define ADC_IP_VENDOR_ID_HEADERWRAPPER_S32K1XX_H                      43
+#define ADC_IP_AR_RELEASE_MAJOR_VERSION_HEADERWRAPPER_S32K1XX_H       4
+#define ADC_IP_AR_RELEASE_MINOR_VERSION_HEADERWRAPPER_S32K1XX_H       4
+#define ADC_IP_AR_RELEASE_REVISION_VERSION_HEADERWRAPPER_S32K1XX_H    0
+#define ADC_IP_SW_MAJOR_VERSION_HEADERWRAPPER_S32K1XX_H               1
+#define ADC_IP_SW_MINOR_VERSION_HEADERWRAPPER_S32K1XX_H               0
+#define ADC_IP_SW_PATCH_VERSION_HEADERWRAPPER_S32K1XX_H               0
+
+/*==================================================================================================
+*                                     DEFINITIONS
+==================================================================================================*/
+
+#define ADC_MAX_CHAN_COUNT      ADC_SC1_COUNT
+
+/* Register access defines */
+#define SC1(Base, RegIndex)     (Base->SC1[RegIndex])
+#define R(Base, RegIndex)       (Base->R[RegIndex])
+
+
+
+/** @} */
+#endif /* ADC_IP_HEADERWRAPPER_S32K1XX_H */

+ 262 - 0
RTD/include/Adc_Ip_HwAccess.h

@@ -0,0 +1,262 @@
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : ADC
+*   Dependencies         : none
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_D2108_ASR_REL_4_4_REV_0000_20210810
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+
+#ifndef ADC_IP_HW_ACCESS_H
+#define ADC_IP_HW_ACCESS_H
+
+/**
+*   @file
+*
+*   @internal
+*   @addtogroup adc_ip Adc IPL
+*   @{
+*/
+
+#include "StandardTypes.h"
+
+/*******************************************************************************
+ *   Source file version information
+ ******************************************************************************/
+#define ADC_IP_VENDOR_ID_HWACCESS_H                      43
+#define ADC_IP_AR_RELEASE_MAJOR_VERSION_HWACCESS_H       4
+#define ADC_IP_AR_RELEASE_MINOR_VERSION_HWACCESS_H       4
+#define ADC_IP_AR_RELEASE_REVISION_VERSION_HWACCESS_H    0
+#define ADC_IP_SW_MAJOR_VERSION_HWACCESS_H               1
+#define ADC_IP_SW_MINOR_VERSION_HWACCESS_H               0
+#define ADC_IP_SW_PATCH_VERSION_HWACCESS_H               0
+/*******************************************************************************
+ *   File version checks
+ ******************************************************************************/
+#ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
+/* Check if Adc_Ip_HwAccess.h file and StandardTypes.h file are of the same Autosar version */
+#if ((ADC_IP_AR_RELEASE_MAJOR_VERSION_HWACCESS_H != STD_AR_RELEASE_MAJOR_VERSION) || \
+     (ADC_IP_AR_RELEASE_MINOR_VERSION_HWACCESS_H != STD_AR_RELEASE_MINOR_VERSION)    \
+    )
+    #error "AutoSar Version Numbers of Adc_Ip_HwAccess.h and StandardTypes.h are different"
+#endif
+#endif /* DISABLE_MCAL_INTERMODULE_ASR_CHECK */
+
+#if defined (__cplusplus)
+extern "C" {
+#endif
+
+/*******************************************************************************
+ * Code
+ ******************************************************************************/
+#define ADC_START_SEC_CODE
+#include "Adc_MemMap.h"
+
+static inline void Adc_HwAcc_SetSC2Reg(ADC_Type * const Base, const uint32 ClearMask, const uint32 Value)
+{
+    /* Clear and set SC2 register based on ClearMask and Value */
+    uint32 Sc2Reg = Base->SC2;
+    Sc2Reg &= ~(ClearMask);
+    Sc2Reg |= Value;
+    Base->SC2 = Sc2Reg;
+}
+
+static inline void Adc_HwAcc_SetClock(ADC_Type * const Base, const Adc_Ip_ClockSelType ClockDivide, const Adc_Ip_ClkSourceType InputClock)
+{
+    /* Update ClockDivide and InputClock values found in CFG1 register */
+    uint32 Cfg1Reg = Base->CFG1;
+    Cfg1Reg &= ~(ADC_CFG1_ADIV_MASK | ADC_CFG1_ADICLK_MASK);
+    Cfg1Reg |= ADC_CFG1_ADIV(ClockDivide);
+    Cfg1Reg |= ADC_CFG1_ADICLK(InputClock);
+    Base->CFG1 = Cfg1Reg;
+}
+
+static inline Adc_Ip_ClockSelType Adc_HwAcc_GetClockDivide(const uint32 Reg)
+{
+    /* 
+     * Retrieve ClockDivide value found in CFG1 register
+     * Note: Reg should be the value of CFG1 register
+     */
+    Adc_Ip_ClockSelType ReturnValue = ADC_IP_CLK_FULL_BUS;
+    switch ((Reg & ADC_CFG1_ADIV_MASK) >> ADC_CFG1_ADIV_SHIFT)
+    {
+        case 1u:
+            ReturnValue = ADC_IP_CLK_HALF_BUS;
+            break;
+        case 2u:
+            ReturnValue = ADC_IP_CLK_QUARTER_BUS;
+            break;
+        case 3u:
+            ReturnValue = ADC_IP_CLK_EIGHTH_BUS;
+            break;
+        default:
+            ; /* no-op */
+            break;
+    }
+    return ReturnValue;
+}
+
+static inline Adc_Ip_ClkSourceType Adc_HwAcc_GetInputClock(const uint32 Reg)
+{
+    /* 
+     * Retrieve InputClock value found in CFG1 register
+     * Note: Reg should be the value of CFG1 register
+     */
+    Adc_Ip_ClkSourceType ReturnValue = ADC_IP_CLK_ALT_1;
+    switch ((Reg & ADC_CFG1_ADICLK_MASK) >> ADC_CFG1_ADICLK_SHIFT)
+    {
+        case 1u:
+            ReturnValue = ADC_IP_CLK_ALT_2;
+            break;
+        case 2u:
+            ReturnValue = ADC_IP_CLK_ALT_3;
+            break;
+        case 3u:
+            ReturnValue = ADC_IP_CLK_ALT_4;
+            break;
+        default:
+            ; /* no-op */
+            break;
+    }
+    return ReturnValue;
+}
+
+static inline void Adc_HwAcc_SetSampleTime(ADC_Type * const Base, const uint8 SampleTime)
+{
+    /* Clip sample time to minimum value */
+    uint8 ClippedSampleTime = (uint8)((SampleTime > 0U) ? SampleTime : 1U);
+    /* Update SampleTime values found in SC3 register */
+    uint32 Cfg2Reg = Base->CFG2;
+    Cfg2Reg &= ~(ADC_CFG2_SMPLTS_MASK);
+    Cfg2Reg |= ADC_CFG2_SMPLTS(ClippedSampleTime);
+    Base->CFG2 = Cfg2Reg;
+}
+
+static inline void Adc_HwAcc_SetAveraging(ADC_Type * const Base, const boolean AvgEn, const Adc_Ip_AvgSelectType AvgSel)
+{
+    /* Update AvgEn and AvgSel values found in SC3 register */
+    uint32 Sc3Reg = Base->SC3;
+    Sc3Reg &= ~(ADC_SC3_AVGE_MASK | ADC_SC3_AVGS_MASK);
+    Sc3Reg |= ADC_SC3_AVGE(AvgEn ? 1u : 0u);
+    Sc3Reg |= ADC_SC3_AVGS(AvgSel);
+    Base->SC3 = Sc3Reg;
+}
+
+static inline Adc_Ip_AvgSelectType Adc_HwAcc_GetAverageSelect(const uint32 Reg)
+{
+    /* 
+     * Retrieve AvgSelect value found in SC3 register
+     * Note: Reg should be the value of SC3 register
+     */
+    Adc_Ip_AvgSelectType ReturnValue = ADC_IP_AVG_4_CONV;
+    switch ((Reg & ADC_SC3_AVGS_MASK) >> ADC_SC3_AVGS_SHIFT)
+    {
+        case 1u:
+            ReturnValue = ADC_IP_AVG_8_CONV;
+            break;
+        case 2u:
+            ReturnValue = ADC_IP_AVG_16_CONV;
+            break;
+        case 3u:
+            ReturnValue = ADC_IP_AVG_32_CONV;
+            break;
+        default:
+            ; /* no-op */
+            break;
+    }
+    return ReturnValue;
+}
+
+static inline void Adc_HwAcc_SetTriggerMode(ADC_Type * const Base, const Adc_Ip_TrigType TriggerMode)
+{
+    /* Update TriggerMode value found in SC2 register */
+    uint32 Sc2Reg = Base->SC2;
+    Sc2Reg &= ~(ADC_SC2_ADTRG_MASK);
+    Sc2Reg |= ADC_SC2_ADTRG(TriggerMode);
+    Base->SC2 = Sc2Reg;
+}
+
+static inline Adc_Ip_TrigType Adc_HwAcc_GetTriggerMode(const uint32 Reg)
+{
+    /* Retrieve TriggerMode value found in SC2 register */
+    Adc_Ip_TrigType ReturnValue = ADC_IP_TRIGGER_SOFTWARE;
+    if (((Reg & ADC_SC2_ADTRG_MASK) >> ADC_SC2_ADTRG_SHIFT) == 1u)
+    {
+        ReturnValue = ADC_IP_TRIGGER_HARDWARE;
+    }
+    return ReturnValue;
+}
+
+static inline void Adc_HwAcc_SetChannel(ADC_Type * const Base, const uint8 ChnIdx, const Adc_Ip_InputChannelType InputChannel, const boolean InterruptEnable)
+{
+    /* Configure channel by writing all SC1n register fields */
+    uint32 Sc1Reg = SC1(Base, ChnIdx);
+    Sc1Reg &= ~(ADC_SC1_ADCH_MASK | ADC_SC1_AIEN_MASK);
+    Sc1Reg |= ADC_SC1_ADCH(InputChannel);
+    Sc1Reg |= ADC_SC1_AIEN(InterruptEnable ? 1u : 0u);
+    SC1(Base, ChnIdx) = Sc1Reg;
+}
+
+static inline void Adc_HwAcc_SetUserGainAndOffset(ADC_Type * const Base, const uint16 UsrGain, const uint16 UsrOffset)
+{
+    /* 
+     * Currently, user gain and user offset values are set at config time.
+     * If user gain is to be changed at runtime (e.g. after a calibration was 
+     * already executed) then the G register should also be updated.
+     * To calculate the new value of this register, it is necessary execute 
+     * the following algorithm:
+     * 1. Sum <- UsrGain + Clp0 + Clp1 + Clp2 + Clp3 + ClpS
+     * 2. RegVal <- Sum & 0xF800U
+     * 3. if RegVal != 0x0000U then RegVal <- 0xFFFFU
+     * 4. Base->G <- RegVal
+     */
+
+    Base->USR_OFS = ADC_USR_OFS_USR_OFS(UsrOffset);
+    Base->UG = ADC_UG_UG(UsrGain);
+}
+
+static inline boolean Adc_HwAcc_GetAIEN(const uint32 Reg)
+{
+    /* Retrive AIEN flag from given SC1 register */
+    return (((Reg & ADC_SC1_AIEN_MASK) >> ADC_SC1_AIEN_SHIFT) != 0u) ? TRUE : FALSE;
+}
+
+static inline boolean Adc_HwAcc_GetCOCO(const uint32 Reg)
+{
+    /* Retrive COCO flag from given SC1 register */
+    return (((Reg & ADC_SC1_COCO_MASK) >> ADC_SC1_COCO_SHIFT) != 0u) ? TRUE : FALSE;
+}
+
+static inline uint16 Adc_HwAcc_GetData(const ADC_Type * const Base, const uint8 ChnIdx)
+{
+    /* Retrieve the conversion result of a given channel */
+    uint16 Result = (uint16) R(Base, ChnIdx);
+    Result = (uint16) ((Result & ADC_R_D_MASK) >> ADC_R_D_SHIFT);
+    return Result;
+}
+
+#define ADC_STOP_SEC_CODE
+#include "Adc_MemMap.h"
+
+#if defined (__cplusplus)
+}
+#endif
+
+/** @} */
+
+#endif /* ADC_IP_HW_ACCESS_H */

+ 422 - 0
RTD/include/Adc_Ip_Types.h

@@ -0,0 +1,422 @@
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : ADC
+*   Dependencies         : none
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_D2108_ASR_REL_4_4_REV_0000_20210810
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+
+#ifndef ADC_IP_TYPES_H
+#define ADC_IP_TYPES_H
+
+/**
+*   @file
+*
+*   @addtogroup adc_ip Adc IPL
+*   @{
+*/
+
+#include "StandardTypes.h"
+#include "Adc_Ip_CfgDefines.h"
+
+/*==================================================================================================
+*                                SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+#define ADC_IP_VENDOR_ID_TYPES_H                      43
+#define ADC_IP_AR_RELEASE_MAJOR_VERSION_TYPES_H       4
+#define ADC_IP_AR_RELEASE_MINOR_VERSION_TYPES_H       4
+#define ADC_IP_AR_RELEASE_REVISION_VERSION_TYPES_H    0
+#define ADC_IP_SW_MAJOR_VERSION_TYPES_H               1
+#define ADC_IP_SW_MINOR_VERSION_TYPES_H               0
+#define ADC_IP_SW_PATCH_VERSION_TYPES_H               0
+/*==================================================================================================
+*                                      FILE VERSION CHECKS
+==================================================================================================*/
+
+/* Check if Adc_Ip_Types.h file and Adc_Ip_CfgDefines.h file are of the same vendor */
+#if (ADC_IP_VENDOR_ID_TYPES_H != ADC_IP_VENDOR_ID_CFGDEFINES_H)
+    #error "Adc_Ip_Types.h and Adc_Ip_CfgDefines.h have different vendor ids"
+#endif
+
+/* Check if Adc_Ip_Types.h file and Adc_Ip_CfgDefines.h file are of the same Autosar version */
+#if ((ADC_IP_AR_RELEASE_MAJOR_VERSION_TYPES_H != ADC_IP_AR_RELEASE_MAJOR_VERSION_CFGDEFINES_H) || \
+     (ADC_IP_AR_RELEASE_MINOR_VERSION_TYPES_H != ADC_IP_AR_RELEASE_MINOR_VERSION_CFGDEFINES_H) || \
+     (ADC_IP_AR_RELEASE_REVISION_VERSION_TYPES_H != ADC_IP_AR_RELEASE_REVISION_VERSION_CFGDEFINES_H) \
+    )
+    #error "AutoSar Version Numbers of Adc_Ip_Types.h and Adc_Ip_CfgDefines.h are different"
+#endif
+
+/* Check if Adc_Ip_Types.h file and Adc_Ip_CfgDefines.h file are of the same Software version */
+#if ((ADC_IP_SW_MAJOR_VERSION_TYPES_H != ADC_IP_SW_MAJOR_VERSION_CFGDEFINES_H) || \
+     (ADC_IP_SW_MINOR_VERSION_TYPES_H != ADC_IP_SW_MINOR_VERSION_CFGDEFINES_H) || \
+     (ADC_IP_SW_PATCH_VERSION_TYPES_H != ADC_IP_SW_PATCH_VERSION_CFGDEFINES_H) \
+    )
+  #error "Software Version Numbers of Adc_Ip_Types.h and Adc_Ip_CfgDefines.h are different"
+#endif
+
+#ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
+/* Check if Adc_Ip_Types.h file and StandardTypes.h file are of the same Autosar version */
+#if ((ADC_IP_AR_RELEASE_MAJOR_VERSION_TYPES_H != STD_AR_RELEASE_MAJOR_VERSION) || \
+     (ADC_IP_AR_RELEASE_MINOR_VERSION_TYPES_H != STD_AR_RELEASE_MINOR_VERSION)    \
+    )
+    #error "AutoSar Version Numbers of Adc_Ip_Types.h and StandardTypes.h are different"
+#endif
+#endif /* DISABLE_MCAL_INTERMODULE_ASR_CHECK */
+
+/*==================================================================================================
+*                              STRUCTURES AND OTHER TYPEDEFS
+==================================================================================================*/
+
+/*!
+ * @brief ADC IP status return type
+ *
+ * This structure is used as return type
+ *
+ * Implements : Adc_Ip_StatusType_Class
+ */
+typedef enum
+{
+    ADC_IP_STATUS_SUCCESS = 0x00U,      /*!< Function completed successfully */
+    ADC_IP_STATUS_ERROR   = 0x01U,      /*!< Function didn't complete successfully */
+    ADC_IP_STATUS_TIMEOUT = 0x02U       /*!< Function operation timed out */
+} Adc_Ip_StatusType;
+
+/*!
+ * @brief Clock divider selection
+ *
+ * This structure is used to configure the converter input clock
+ *
+ * Implements : Adc_Ip_ClockSelType_Class
+ */
+typedef enum
+{
+    ADC_IP_CLK_FULL_BUS    = 0x00U,     /*!< Input clock divided by 1. */
+    ADC_IP_CLK_HALF_BUS    = 0x01U,     /*!< Input clock divided by 2. */
+    ADC_IP_CLK_QUARTER_BUS = 0x02U,     /*!< Input clock divided by 4. */
+    ADC_IP_CLK_EIGHTH_BUS  = 0x03U,     /*!< Input clock divided by 8. */
+} Adc_Ip_ClockSelType;
+
+/*!
+ * @brief Conversion resolution selection
+ *
+ * Implements : Adc_Ip_ResolutionType_Class
+ */
+typedef enum
+{
+    ADC_IP_RESOLUTION_8BIT  = 0x00U,    /*!< 8-bit resolution mode */
+    ADC_IP_RESOLUTION_12BIT = 0x01U,    /*!< 12-bit resolution mode */
+    ADC_IP_RESOLUTION_10BIT = 0x02U     /*!< 10-bit resolution mode */
+} Adc_Ip_ResolutionType;
+
+/*!
+ * @brief Input clock source selection
+ *
+ * This structure is used to select the input clock source
+ *
+ * Implements : Adc_Ip_ClkSourceType_Class
+ */
+typedef enum
+{
+    ADC_IP_CLK_ALT_1 = 0x00U,       /*!< Input clock alternative 1. */
+    ADC_IP_CLK_ALT_2 = 0x01U,       /*!< Input clock alternative 2. */
+    ADC_IP_CLK_ALT_3 = 0x02U,       /*!< Input clock alternative 3. */
+    ADC_IP_CLK_ALT_4 = 0x03U        /*!< Input clock alternative 4. */
+} Adc_Ip_ClkSourceType;
+
+/*!
+ * @brief Hardware average selection
+ *
+ * This structure is used to select the number of conversions to average
+ * in order to get the conversion data.
+ *
+ * Implements : Adc_Ip_AvgSelectType_Class
+ */
+typedef enum {
+    ADC_IP_AVG_4_CONV  = 0x00U,       /*!< 4 conversions per conversion data */
+    ADC_IP_AVG_8_CONV  = 0x01U,       /*!< 8 conversions per conversion data */
+    ADC_IP_AVG_16_CONV = 0x02U,       /*!< 16 conversions per conversion data */
+    ADC_IP_AVG_32_CONV = 0x03U,       /*!< 32 conversions per conversion data */
+} Adc_Ip_AvgSelectType;
+
+/*!
+ * @brief Trigger type selection
+ *
+ * Implements : Adc_Ip_TrigType_Class
+ */
+typedef enum
+{
+    ADC_IP_TRIGGER_SOFTWARE = 0x00U,        /*!< Software trigger. */
+    ADC_IP_TRIGGER_HARDWARE = 0x01U         /*!< Hardware trigger. */
+} Adc_Ip_TrigType;
+
+#if (ADC_IP_ENABLE_SIM_SOURCE_SELECTION == STD_ON)
+/*!
+ * @brief Pretrigger source selection
+ * 
+ * This structure provides the pretrigger source options for the ADCxPRETRGSEL
+ * field found in SIM[ADCOPT] register
+ *
+ * Implements : Adc_Ip_PretriggerSelType_Class
+ */
+typedef enum
+{
+    ADC_IP_PRETRIGGER_SEL_PDB     = 0x00U,      /*!< PDB pretrigger selected. */
+    ADC_IP_PRETRIGGER_SEL_TRGMUX  = 0x01U,      /*!< TRGMUX pretrigger selected. */
+    ADC_IP_PRETRIGGER_SEL_SW      = 0x02U       /*!< Software pretrigger selected. */
+} Adc_Ip_PretriggerSelType;
+
+/*!
+ * @brief Software pretrigger type
+ * 
+ * This structure provides the software pretrigger options for the ADCxSWPRETRG
+ * field found in SIM[ADCOPT] register
+ *
+ * Implements : Adc_Ip_PretriggerSelType_Class
+ */
+typedef enum
+{
+    ADC_IP_SOFTWARE_PRETRIGGER_DISABLED = 0x00U,
+    ADC_IP_SOFTWARE_PRETRIGGER_0        = 0x04U,
+    ADC_IP_SOFTWARE_PRETRIGGER_1        = 0x05U,
+    ADC_IP_SOFTWARE_PRETRIGGER_2        = 0x06U,
+    ADC_IP_SOFTWARE_PRETRIGGER_3        = 0x07U
+} Adc_Ip_SoftwarePretriggerType;
+
+/*!
+ * @brief Trigger source selection
+ * 
+ * This structure provides the trigger source options for the ADCxTRGSEL
+ * field found in SIM[ADCOPT] register
+ *
+ * Implements : Adc_Ip_TrigSelType_Class
+ */
+typedef enum
+{
+    ADC_IP_TRIGGER_SEL_PDB        = 0x00U,      /*!< PDB trigger selected. */
+    ADC_IP_TRIGGER_SEL_TRGMUX     = 0x01U       /*!< TRGMUX trigger selected. */
+} Adc_Ip_TrigSelType;
+#endif /* (ADC_IP_ENABLE_SIM_SOURCE_SELECTION == STD_ON) */
+
+/*!
+ * @brief Voltage reference selection
+ *
+ * Implements : Adc_Ip_VoltageReferenceType_Class
+ */
+typedef enum
+{
+    ADC_IP_VOLTAGEREF_VREF = 0x00U,        /*!< VrefH and VrefL as Voltage reference. */
+    ADC_IP_VOLTAGEREF_VALT = 0x01U         /*!< ValtH and ValtL as Voltage reference. */
+} Adc_Ip_VoltageReferenceType;
+
+/*!
+ * @brief Enumeration of input channels assignable to a control channel.
+ * \n <b>Note 0</b>: entries in this enum are affected by ::FEATURE_ADC_NUM_EXT_CHANS, which is device dependent
+ * and controlled from <i>"device_name"_features.h</i> file.
+ *
+ * \n <b>Note 1</b>: the actual number of external channels may differ between device packages
+ * and ADC instances. Reading a channel that is not connected externally, will return a random value within the range.
+ * Please refer to the Reference Manual for the maximum number of external channels for each device variant and ADC instance.
+ *
+ * \n <b>Note 2</b>: ADC_IP_INPUTCHAN_SUPPLY_ select which internal supply channel to be measured.
+ * They are only available for ADC0 and measured internally via internal input channel 0.
+ * Please note that supply monitoring needs to be enabled separately via dedicated flag in adc_converter_config_t.
+ *
+ * Implements : Adc_Ip_InputChannelType_Class
+ */
+typedef enum
+{
+    ADC_IP_INPUTCHAN_EXT0      = 0x00U,                 /*!< External input channel 0 */
+    ADC_IP_INPUTCHAN_EXT1      = 0x01U,                 /*!< External input channel 1 */
+#if (FEATURE_ADC_HAS_CHANNEL_2)
+    ADC_IP_INPUTCHAN_EXT2      = 0x02U,                 /*!< External input channel 2 */
+#endif /* (FEATURE_ADC_HAS_CHANNEL_2) */
+    ADC_IP_INPUTCHAN_EXT3      = 0x03U,                 /*!< External input channel 3 */
+    ADC_IP_INPUTCHAN_EXT4      = 0x04U,                 /*!< External input channel 4 */
+    ADC_IP_INPUTCHAN_EXT5      = 0x05U,                 /*!< External input channel 5 */
+    ADC_IP_INPUTCHAN_EXT6      = 0x06U,                 /*!< External input channel 6 */
+    ADC_IP_INPUTCHAN_EXT7      = 0x07U,                 /*!< External input channel 7 */
+#if (FEATURE_ADC_HAS_CHANNEL_8)
+    ADC_IP_INPUTCHAN_EXT8      = 0x08U,                 /*!< External input channel 8 */
+#endif /* (FEATURE_ADC_HAS_CHANNEL_8) */
+#if (FEATURE_ADC_HAS_CHANNEL_9)
+    ADC_IP_INPUTCHAN_EXT9      = 0x09U,                 /*!< External input channel 9 */
+#endif /* (FEATURE_ADC_HAS_CHANNEL_9) */
+    ADC_IP_INPUTCHAN_EXT10     = 0x0AU,                 /*!< External input channel 10 */
+    ADC_IP_INPUTCHAN_EXT11     = 0x0BU,                 /*!< External input channel 11 */
+#if (FEATURE_ADC_MAX_EXT_CHAN_ID > 11u)
+    ADC_IP_INPUTCHAN_EXT12     = 0x0CU,                 /*!< External input channel 12 */
+    ADC_IP_INPUTCHAN_EXT13     = 0x0DU,                 /*!< External input channel 13 */
+    ADC_IP_INPUTCHAN_EXT14     = 0x0EU,                 /*!< External input channel 14 */
+#if (FEATURE_ADC_MAX_EXT_CHAN_ID > 14u)
+    ADC_IP_INPUTCHAN_EXT15     = 0x0FU,                 /*!< External input channel 15 */
+#if (FEATURE_ADC_MAX_EXT_CHAN_ID > 15u)
+    ADC_IP_INPUTCHAN_EXT16     = 0x20U,                 /*!< External input channel 16 */
+    ADC_IP_INPUTCHAN_EXT17     = 0x21U,                 /*!< External input channel 17 */
+    ADC_IP_INPUTCHAN_EXT18     = 0x22U,                 /*!< External input channel 18 */
+    ADC_IP_INPUTCHAN_EXT19     = 0x23U,                 /*!< External input channel 19 */
+    ADC_IP_INPUTCHAN_EXT20     = 0x24U,                 /*!< External input channel 20 */
+    ADC_IP_INPUTCHAN_EXT21     = 0x25U,                 /*!< External input channel 21 */
+    ADC_IP_INPUTCHAN_EXT22     = 0x26U,                 /*!< External input channel 22 */
+    ADC_IP_INPUTCHAN_EXT23     = 0x27U,                 /*!< External input channel 23 */
+#if (FEATURE_ADC_MAX_EXT_CHAN_ID > 23u)
+    ADC_IP_INPUTCHAN_EXT24     = 0x28U,                 /*!< External input channel 24 */
+    ADC_IP_INPUTCHAN_EXT25     = 0x29U,                 /*!< External input channel 25 */
+    ADC_IP_INPUTCHAN_EXT26     = 0x2AU,                 /*!< External input channel 26 */
+    ADC_IP_INPUTCHAN_EXT27     = 0x2BU,                 /*!< External input channel 27 */
+    ADC_IP_INPUTCHAN_EXT28     = 0x2CU,                 /*!< External input channel 28 */
+    ADC_IP_INPUTCHAN_EXT29     = 0x2DU,                 /*!< External input channel 29 */
+    ADC_IP_INPUTCHAN_EXT30     = 0x2EU,                 /*!< External input channel 30 */
+    ADC_IP_INPUTCHAN_EXT31     = 0x2FU,                 /*!< External input channel 31 */
+#endif /* (FEATURE_ADC_MAX_EXT_CHAN_ID > 23u) */
+#endif /* (FEATURE_ADC_MAX_EXT_CHAN_ID > 15u) */
+#endif /* (FEATURE_ADC_MAX_EXT_CHAN_ID > 14u) */
+#endif /* (FEATURE_ADC_MAX_EXT_CHAN_ID > 11u) */
+
+    ADC_IP_INPUTCHAN_DISABLED  = ADC_SC1_ADCH_MASK,     /*!< Channel disabled          */
+
+    ADC_IP_INPUTCHAN_INT0      = 0x15,                  /*!< Internal input channel 0  */
+    ADC_IP_INPUTCHAN_INT1      = 0x16,                  /*!< Internal input channel 1  */
+    ADC_IP_INPUTCHAN_INT2      = 0x17,                  /*!< Internal input channel 2  */
+    ADC_IP_INPUTCHAN_INT3      = 0x1C,                  /*!< Internal input channel 3  */
+
+    ADC_IP_INPUTCHAN_TEMP      = 0x1A,                  /*!< Temperature Sensor            */
+    ADC_IP_INPUTCHAN_BANDGAP   = 0x1B,                  /*!< Band Gap                      */
+    ADC_IP_INPUTCHAN_VREFH     = 0x1D,                  /*!< Voltage Reference Select High */
+    ADC_IP_INPUTCHAN_VREFL     = 0x1E,                  /*!< Voltage Reference Select Low  */
+
+#if (ADC_IP_SUPPLY_MONITORING_ENABLED == STD_ON)
+                                                        /*!< The following channels are measured via internal input channel 0 */
+    ADC_IP_INPUTCHAN_SUPPLY_VDD            = 0xF00U,    /*!< Monitor internal supply 5 V input VDD supply.              */
+    ADC_IP_INPUTCHAN_SUPPLY_VDDA           = 0xF01U,    /*!< Monitor internal supply 5 V input analog supply.           */
+    ADC_IP_INPUTCHAN_SUPPLY_VREFH          = 0xF02U,    /*!< Monitor internal supply ADC reference supply.              */
+    ADC_IP_INPUTCHAN_SUPPLY_VDD_3V         = 0xF03U,    /*!< Monitor internal supply 3.3 V oscillator regulator output. */
+    ADC_IP_INPUTCHAN_SUPPLY_VDD_FLASH_3V   = 0xF04U,    /*!< Monitor internal supply 3.3 V flash regulator output.      */
+    ADC_IP_INPUTCHAN_SUPPLY_VDD_LV         = 0xF05U     /*!< Monitor internal supply 1.2 V core regulator output.       */
+#endif /* (ADC_IP_SUPPLY_MONITORING_ENABLED == STD_ON) */
+} Adc_Ip_InputChannelType;
+
+/*!
+ * @brief Defines the channel notification header
+ *
+ * This header is used for channel notification callbacks.
+ * Note: the return paramter is the index of the control channel(numeric index
+ * of SC1x e.g. SC1A has index 0), not the input channel.
+ *
+ * Implements : Adc_Ip_ChanNotificationType_Class
+ */
+typedef void Adc_Ip_ChanNotificationType(const uint8 ControlChanIdx);
+
+/*!
+ * @brief Defines the channel configuration
+ *
+ * This structure is used to configure channels
+ *
+ * Implements : Adc_Ip_ChanConfigType_Class
+ */
+typedef struct
+{
+    uint8 ChnIdx;                           /*!< Control channel 0 */
+    Adc_Ip_InputChannelType Channel;        /*!< Selection of input channel for measurement */
+    boolean InterruptEnable;                /*!< Enable interrupts for this channel */
+} Adc_Ip_ChanConfigType;
+
+/*!
+ * @brief Defines the ADC clock configuration
+ *
+ * This structure is used to configure ADC clock
+ *
+ * Implements : Adc_Ip_ClockConfigType_Class
+ */
+typedef struct
+{
+    Adc_Ip_ClockSelType ClockDivide;    /*!< Selected clock */
+    Adc_Ip_ClkSourceType InputClock;    /*!< Input clock source */
+    uint8 SampleTime;                   /*!< Sample time in AD Clocks */
+    boolean AvgEn;                      /*!< Enable averaging functionality */
+    Adc_Ip_AvgSelectType AvgSel;        /*!< Selection for number of samples used for averaging */
+} Adc_Ip_ClockConfigType;
+
+/*!
+ * @brief Defines the module configuration
+ *
+ * This structure is used to configure the ADC module
+ *
+ * Implements : Adc_Ip_ConfigType_Class
+ */
+typedef struct
+{
+    Adc_Ip_ClockSelType ClockDivide;            /*!< Divider of the input clock for the ADC */
+    Adc_Ip_ClockSelType CalibrationClockDivide; /*!< Divider of the input clock for Calibration */
+    Adc_Ip_ClkSourceType InputClock;            /*!< Input clock source */
+    uint8 SampleTime;                           /*!< Sample time in AD Clocks */
+    boolean AvgEn;                              /*!< Enable averaging functionality */
+    Adc_Ip_AvgSelectType AvgSel;                /*!< Selection for number of samples used for averaging */
+    Adc_Ip_ResolutionType Resolution;           /*!< ADC resolution (8,10,12 bit) */
+    Adc_Ip_TrigType TriggerMode;                /*!< ADC trigger mode (software, hardware) - affects only the first control channel */
+#if (ADC_IP_ENABLE_SIM_SOURCE_SELECTION == STD_ON)
+    Adc_Ip_PretriggerSelType PretriggerSel;     /*!< Pretrigger source selected for Trigger Latching and Arbitration Unit - affects only the first 4 control channels */
+    Adc_Ip_TrigSelType TriggerSel;              /*!< Trigger source selected for Trigger Latching and Arbitration Unit */
+#endif /* (ADC_IP_ENABLE_SIM_SOURCE_SELECTION == STD_ON) */
+    boolean DmaEnable;                          /*!< Enable DMA for the ADC */
+    Adc_Ip_VoltageReferenceType VoltageRef;     /*!< Voltage reference used */
+    boolean ContinuousConvEnable;               /*!< Enable Continuous conversions */
+#if (ADC_IP_SUPPLY_MONITORING_ENABLED == STD_ON)
+    boolean SupplyMonitoringEnable;             /*!< Only available for ADC 0. Enable internal supply monitoring - enables measurement of ADC_IP_INPUTCHAN_SUPPLY_ sources. */
+#endif /* (ADC_IP_SUPPLY_MONITORING_ENABLED == STD_ON) */
+
+    boolean CompareEnable;                      /*!< Enable the compare feature */
+    boolean CompareGreaterThanEnable;           /*!< Enable Greater-Than functionality */
+    boolean CompareRangeFuncEnable;             /*!< Enable Range functionality */
+    uint16 CompVal1;                            /*!< First Compare Value */
+    uint16 CompVal2;                            /*!< Second Compare Value */
+
+    uint16 UsrGain;                             /*!< User-configurable gain */
+    uint16 UsrOffset;                           /*!< User-configurable Offset (2's complement, subtracted from result) */
+
+    uint8 NumChannels;                          /*!< User-configurable Number of Channels */
+    const Adc_Ip_ChanConfigType * ChannelConfigs;                   /*!< User-configurable channel configuration */
+
+    Adc_Ip_ChanNotificationType * ConversionCompleteNotification;   /*!< Individual channel notification */
+} Adc_Ip_ConfigType;
+
+/*!
+ * @brief Structure used to store runtime info
+ *
+ * This structure is used to store ADC runtime info
+ *
+ * Implements : Adc_Ip_StateStructType_Class
+ */
+typedef struct
+{
+    boolean Init;                               /*!< Check if the driver was initialized. */
+    Adc_Ip_ClockSelType CalibrationClockDivide; /*!< Divider of the input clock for Calibration */
+#if (ADC_IP_ENABLE_SIM_SOURCE_SELECTION == STD_ON)
+    Adc_Ip_PretriggerSelType PretriggerSel;     /*!< Pretrigger source selected for Trigger Latching and Arbitration Unit - affects only the first 4 control channels */
+#endif /* (ADC_IP_ENABLE_SIM_SOURCE_SELECTION == STD_ON) */
+
+    /* Individual channel notification */
+    Adc_Ip_ChanNotificationType * ConversionCompleteNotification;   /*!< Individual channel notification */
+
+    /* Current hardware channel config */
+    Adc_Ip_InputChannelType ChannelConfig[ADC_MAX_CHAN_COUNT];      /*!< Current hardware channel config */
+} Adc_Ip_StateStructType;
+
+/** @} */
+
+#endif /* ADC_IP_TYPES_H */

+ 356 - 0
RTD/include/Adc_Ipw.h

@@ -0,0 +1,356 @@
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : ADC
+*   Dependencies         : none
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_D2108_ASR_REL_4_4_REV_0000_20210810
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+
+#ifndef ADC_IPW_H
+#define ADC_IPW_H
+
+/**
+*   @file
+*
+*   @internal
+*   @addtogroup adc_ipw Adc Ipw
+*   @{
+*/
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+/*==================================================================================================
+*                                        INCLUDE FILES
+* 1) system and project includes
+* 2) needed interfaces from external units
+* 3) internal and external interfaces from this unit
+==================================================================================================*/
+#include "Adc_Ipw_Types.h"
+#include "Adc_Ipw_Cfg.h"
+
+#include "Adc_Ip.h"
+#ifdef ADC_DMA_SUPPORTED
+#include "Dma_Ip.h"
+#endif
+#include "Pdb_Adc_Ip.h"
+
+/*==================================================================================================
+*                              SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+#define ADC_VENDOR_ID_IPW_H                       43
+#define ADC_AR_RELEASE_MAJOR_VERSION_IPW_H        4
+#define ADC_AR_RELEASE_MINOR_VERSION_IPW_H        4
+#define ADC_AR_RELEASE_REVISION_VERSION_IPW_H     0
+#define ADC_SW_MAJOR_VERSION_IPW_H                1
+#define ADC_SW_MINOR_VERSION_IPW_H                0
+#define ADC_SW_PATCH_VERSION_IPW_H                0
+
+/*==================================================================================================
+*                                     FILE VERSION CHECKS
+==================================================================================================*/
+/* Check if Adc_Ipw.h file and Adc_Ipw_Types.h file are of the same vendor */
+#if (ADC_VENDOR_ID_IPW_H != ADC_VENDOR_ID_IPW_TYPES_H)
+    #error "Adc_Ipw.h and Adc_Ipw_Types.h have different vendor ids"
+#endif
+
+/* Check if Adc_Ipw.h file and Adc_Ipw_Types.h file are of the same Autosar version */
+#if ((ADC_AR_RELEASE_MAJOR_VERSION_IPW_H != ADC_AR_RELEASE_MAJOR_VERSION_IPW_TYPES_H) || \
+     (ADC_AR_RELEASE_MINOR_VERSION_IPW_H != ADC_AR_RELEASE_MINOR_VERSION_IPW_TYPES_H) || \
+     (ADC_AR_RELEASE_REVISION_VERSION_IPW_H != ADC_AR_RELEASE_REVISION_VERSION_IPW_TYPES_H) \
+    )
+    #error "AutoSar Version Numbers of Adc_Ipw.h and Adc_Ipw_Types.h are different"
+#endif
+
+/* Check if Adc_Ipw.h file and Adc_Ipw_Types.h file are of the same Software version */
+#if ((ADC_SW_MAJOR_VERSION_IPW_H != ADC_SW_MAJOR_VERSION_IPW_TYPES_H) || \
+     (ADC_SW_MINOR_VERSION_IPW_H != ADC_SW_MINOR_VERSION_IPW_TYPES_H) || \
+     (ADC_SW_PATCH_VERSION_IPW_H != ADC_SW_PATCH_VERSION_IPW_TYPES_H) \
+    )
+  #error "Software Version Numbers of Adc_Ipw.h and Adc_Ipw_Types.h are different"
+#endif
+
+/* Check if Adc_Ipw.h file and Adc_Ipw_Cfg.h file are of the same vendor */
+#if (ADC_VENDOR_ID_IPW_H != ADC_VENDOR_ID_IPW_CFG_H)
+    #error "Adc_Ipw.h and Adc_Ipw_Cfg.h have different vendor ids"
+#endif
+
+/* Check if Adc_Ipw.h file and Adc_Ipw_Cfg.h file are of the same Autosar version */
+#if ((ADC_AR_RELEASE_MAJOR_VERSION_IPW_H != ADC_AR_RELEASE_MAJOR_VERSION_IPW_CFG_H) || \
+     (ADC_AR_RELEASE_MINOR_VERSION_IPW_H != ADC_AR_RELEASE_MINOR_VERSION_IPW_CFG_H) || \
+     (ADC_AR_RELEASE_REVISION_VERSION_IPW_H != ADC_AR_RELEASE_REVISION_VERSION_IPW_CFG_H) \
+    )
+    #error "AutoSar Version Numbers of Adc_Ipw.h and Adc_Ipw_Cfg.h are different"
+#endif
+
+/* Check if Adc_Ipw.h file and Adc_Ipw_Cfg.h file are of the same Software version */
+#if ((ADC_SW_MAJOR_VERSION_IPW_H != ADC_SW_MAJOR_VERSION_IPW_CFG_H) || \
+     (ADC_SW_MINOR_VERSION_IPW_H != ADC_SW_MINOR_VERSION_IPW_CFG_H) || \
+     (ADC_SW_PATCH_VERSION_IPW_H != ADC_SW_PATCH_VERSION_IPW_CFG_H) \
+    )
+  #error "Software Version Numbers of Adc_Ipw.h and Adc_Ipw_Cfg.h are different"
+#endif
+
+/* Check if Adc_Ipw.h file and Adc_Ip.h file are of the same vendor */
+#if (ADC_VENDOR_ID_IPW_H != ADC_IP_VENDOR_ID_H)
+    #error "Adc_Ipw.h and Adc_Ip.h have different vendor ids"
+#endif
+
+/* Check if Adc_Ipw.h file and Adc_Ip.h file are of the same Autosar version */
+#if ((ADC_AR_RELEASE_MAJOR_VERSION_IPW_H != ADC_IP_AR_RELEASE_MAJOR_VERSION_H) || \
+     (ADC_AR_RELEASE_MINOR_VERSION_IPW_H != ADC_IP_AR_RELEASE_MINOR_VERSION_H) || \
+     (ADC_AR_RELEASE_REVISION_VERSION_IPW_H != ADC_IP_AR_RELEASE_REVISION_VERSION_H) \
+    )
+    #error "AutoSar Version Numbers of Adc_Ipw.h and Adc_Ip.h are different"
+#endif
+
+/* Check if Adc_Ipw.h file and Adc_Ip.h file are of the same Software version */
+#if ((ADC_SW_MAJOR_VERSION_IPW_H != ADC_IP_SW_MAJOR_VERSION_H) || \
+     (ADC_SW_MINOR_VERSION_IPW_H != ADC_IP_SW_MINOR_VERSION_H) || \
+     (ADC_SW_PATCH_VERSION_IPW_H != ADC_IP_SW_PATCH_VERSION_H) \
+    )
+  #error "Software Version Numbers of Adc_Ipw.h and Adc_Ip.h are different"
+#endif
+
+/* Check if Adc_Ipw.h file and Pdb_Adc_Ip.h file are of the same vendor */
+#if (ADC_VENDOR_ID_IPW_H != PDB_ADC_IP_VENDOR_ID_H)
+    #error "Adc_Ipw.h and Pdb_Adc_Ip.h have different vendor ids"
+#endif
+
+/* Check if Adc_Ipw.h file and Pdb_Adc_Ip.h file are of the same Autosar version */
+#if ((ADC_AR_RELEASE_MAJOR_VERSION_IPW_H != PDB_ADC_IP_AR_RELEASE_MAJOR_VERSION_H) || \
+     (ADC_AR_RELEASE_MINOR_VERSION_IPW_H != PDB_ADC_IP_AR_RELEASE_MINOR_VERSION_H) || \
+     (ADC_AR_RELEASE_REVISION_VERSION_IPW_H != PDB_ADC_IP_AR_RELEASE_REVISION_VERSION_H) \
+    )
+    #error "AutoSar Version Numbers of Adc_Ipw.h and Pdb_Adc_Ip.h are different"
+#endif
+
+/* Check if Adc_Ipw.h file and Pdb_Adc_Ip.h file are of the same Software version */
+#if ((ADC_SW_MAJOR_VERSION_IPW_H != PDB_ADC_IP_SW_MAJOR_VERSION_H) || \
+     (ADC_SW_MINOR_VERSION_IPW_H != PDB_ADC_IP_SW_MINOR_VERSION_H) || \
+     (ADC_SW_PATCH_VERSION_IPW_H != PDB_ADC_IP_SW_PATCH_VERSION_H) \
+    )
+  #error "Software Version Numbers of Adc_Ipw.h and Pdb_Adc_Ip.h are different"
+#endif
+
+#ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
+#ifdef ADC_DMA_SUPPORTED
+/* Check if Adc_Ipw.h file and Dma_Ip.h file are of the same Autosar version */
+#if ((ADC_AR_RELEASE_MAJOR_VERSION_IPW_H != DMA_IP_AR_RELEASE_MAJOR_VERSION_H) || \
+     (ADC_AR_RELEASE_MINOR_VERSION_IPW_H != DMA_IP_AR_RELEASE_MINOR_VERSION_H) \
+    )
+    #error "AutoSar Version Numbers of Adc_Ipw.h and Dma_Ip.h are different"
+#endif
+#endif /* ADC_DMA_SUPPORTED */
+#endif /* DISABLE_MCAL_INTERMODULE_ASR_CHECK */
+/*==================================================================================================
+*                                          CONSTANTS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                      DEFINES AND MACROS
+==================================================================================================*/
+/* The macro to calculate the number of channels for each configuration */
+#define ADC_IPW_CALCULATE_CHAN_NUMBER(x) (((x) >= ADC_MAX_CHAN_COUNT) ? ADC_MAX_CHAN_COUNT : ((x)%ADC_MAX_CHAN_COUNT))
+#ifdef ADC_DMA_SUPPORTED
+#define ADC_IPW_INVALID_DATA_RESULT_DMA     (0xFFFFU)
+#define ADC_IPW_GET_COMPLEMENT_OF_2(x)      ((uint32)(~((uint32)(x)) + 1U))
+#endif /* ADC_DMA_SUPPORTED */
+/*==================================================================================================
+*                                             ENUMS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                STRUCTURES AND OTHER TYPEDEFS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                GLOBAL VARIABLE DECLARATIONS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                    FUNCTION PROTOTYPES
+==================================================================================================*/
+#define ADC_START_SEC_CODE
+#include "Adc_MemMap.h"
+
+#if ((defined(ADC_UNIT_0_ISR_USED)) || (defined(ADC_UNIT_1_ISR_USED)) || \
+     (defined(ADC_DMA_SUPPORTED)) || (ADC_READ_GROUP_API == STD_ON) \
+    )
+uint8 Adc_Ipw_CalculateNumsBitShift
+(
+    Adc_Ip_ResolutionType Resolution
+);
+#endif  /* (defined(ADC_UNIT_0_ISR_USED) || ... */
+
+#ifdef ADC_DMA_SUPPORTED
+void Adc_Ipw_StartDmaOperation
+(
+    Adc_HwUnitType Unit,
+    Adc_GroupType Group,
+    uint8 u8NumChannel,
+    uint32 u32CoreId
+);
+#endif /* ADC_DMA_SUPPORTED */
+
+/**
+* @brief          Functions mapping.
+* @details        Middle layer versus Low layer functions mapping
+*
+*/
+Std_ReturnType Adc_Ipw_Init(const Adc_Ipw_Config * pIpwCfg, const uint32 u32CoreId);
+
+#if (ADC_DEINIT_API == STD_ON)
+Std_ReturnType Adc_Ipw_DeInit(uint32 u32CoreId);
+#endif /* ADC_DEINIT_API == STD_ON */
+
+#if (ADC_ENABLE_START_STOP_GROUP_API == STD_ON)
+void Adc_Ipw_StartNormalConversion
+(
+    Adc_HwUnitType Unit,
+    uint32 u32CoreId
+);
+
+Std_ReturnType Adc_Ipw_StopCurrentConversion
+(
+    Adc_HwUnitType Unit,
+    Adc_GroupType Group,
+    uint32 u32CoreId
+);
+#endif /* ADC_ENABLE_START_STOP_GROUP_API == STD_ON */
+
+#if (ADC_HW_TRIGGER_API == STD_ON)
+Std_ReturnType Adc_Ipw_EnableHardwareTrigger
+(
+    Adc_GroupType Group,
+    Adc_HwUnitType Unit,
+    uint32 u32CoreId
+);
+
+void Adc_Ipw_DisableHardwareTrigger
+(
+    Adc_GroupType Group,
+    Adc_HwUnitType Unit,
+    uint32 u32CoreId
+);
+#endif /* ADC_HW_TRIGGER_API == STD_ON */
+
+boolean Adc_Ipw_CheckValidConversion
+(
+    Adc_HwUnitType PhysicalHwUnitId,
+    Adc_ChannelIndexType StartIndex,
+    Adc_ChannelIndexType EndIndex
+);
+
+#if (ADC_READ_GROUP_API == STD_ON)
+Std_ReturnType Adc_Ipw_ReadGroup
+(
+    const Adc_GroupType Group,
+    Adc_ValueGroupType * pDataPtr,
+    boolean * pFlag,
+    uint32 u32CoreId
+);
+#endif /* ADC_READ_GROUP_API == STD_ON */
+
+#if (ADC_ENABLE_READ_RAW_DATA_API == STD_ON)
+Std_ReturnType Adc_Ipw_GetConvData
+(
+    Adc_HwUnitType Unit,
+    Adc_ChannelType Channel,
+    uint32 u32CoreId,
+    uint16 * Result
+);
+#endif /* (ADC_ENABLE_READ_RAW_DATA_API == STD_ON) */
+
+#if (ADC_CALIBRATION == STD_ON)
+void Adc_Ipw_Calibrate
+(
+    Adc_HwUnitType Unit,
+    Adc_CalibrationStatusType * Status,
+    uint32 u32CoreId
+);
+#endif /* ADC_CALIBRATION == STD_ON */
+
+void Adc_Ipw_ConfigureConversion
+(
+    Adc_HwUnitType Unit,
+    Adc_GroupType Group,
+    Adc_HwTriggerTimerType Trigger,
+    uint8 NumChannel,
+    uint32 u32CoreId
+);
+
+#ifdef ADC_DMA_SUPPORTED
+void Adc_Ipw_ConfigureDmaConversion
+(
+    Adc_HwUnitType Unit,
+    Adc_GroupType Group,
+    Adc_HwTriggerTimerType Trigger,
+    uint8 NumChannel
+);
+#endif /* ADC_DMA_SUPPORTED */
+
+#if (ADC_HW_TRIGGER_API == STD_ON)
+void Adc_Ipw_StartHwTrigConversion
+(
+    Adc_HwUnitType Unit,
+    Adc_GroupType Group,
+    uint32 u32CoreId
+);
+#endif /* (ADC_HW_TRIGGER_API == STD_ON) */
+
+#if (ADC_DUAL_CLOCK_MODE == STD_ON)
+  Std_ReturnType Adc_Ipw_SetClockMode
+(
+   Adc_SelectPrescalerType Prescaler,
+   uint32 u32CoreId
+);
+#endif /* (ADC_DUAL_CLOCK_MODE == STD_ON) */
+
+#if (ADC_ENABLE_LIMIT_CHECK == STD_ON)
+boolean Adc_Ipw_CheckConversionValuesInRange
+(
+    Adc_ValueGroupType Value,
+    Adc_HwUnitType LogicalHwUnitId,
+    Adc_ChannelType ChannelIndex,
+    uint32 u32CoreId
+);
+#endif /* (ADC_ENABLE_LIMIT_CHECK == STD_ON) */
+
+#if (ADC_ENABLE_QUEUING == STD_ON)
+void Adc_RemoveFromQueue
+(
+    const Adc_HwUnitType Unit,
+    const Adc_QueueIndexType CurQueueIndex
+);
+#endif /* (ADC_ENABLE_QUEUING == STD_ON) */
+
+uint32 Adc_GetCoreID(void);
+
+#define ADC_STOP_SEC_CODE
+#include "Adc_MemMap.h"
+
+#ifdef __cplusplus
+}
+#endif
+
+/** @} */
+
+#endif /* ADC_IPW_H */

+ 111 - 0
RTD/include/Adc_Ipw_Irq.h

@@ -0,0 +1,111 @@
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : ADC
+*   Dependencies         : none
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_D2108_ASR_REL_4_4_REV_0000_20210810
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+
+#ifndef ADC_IPW_IRQ_H
+#define ADC_IPW_IRQ_H
+
+/**
+*   @file
+*
+*   @internal
+*   @addtogroup adc_ipw Adc Ipw
+*   @{
+*/
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+/*==================================================================================================
+*                                        INCLUDE FILES
+* 1) system and project includes
+* 2) needed interfaces from external units
+* 3) internal and external interfaces from this unit
+==================================================================================================*/
+#include "Adc_Ipw_Types.h"
+
+/*==================================================================================================
+*                              SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+#define ADC_VENDOR_ID_IPW_IRQ_H                      43
+#define ADC_AR_RELEASE_MAJOR_VERSION_IPW_IRQ_H       4
+#define ADC_AR_RELEASE_MINOR_VERSION_IPW_IRQ_H       4
+#define ADC_AR_RELEASE_REVISION_VERSION_IPW_IRQ_H    0
+#define ADC_SW_MAJOR_VERSION_IPW_IRQ_H               1
+#define ADC_SW_MINOR_VERSION_IPW_IRQ_H               0
+#define ADC_SW_PATCH_VERSION_IPW_IRQ_H               0
+/*==================================================================================================
+*                                     FILE VERSION CHECKS
+==================================================================================================*/
+/* Check if Adc_Ipw_Irq.h file and Adc_Ipw_Types.h file are of the same vendor */
+#if (ADC_VENDOR_ID_IPW_IRQ_H != ADC_VENDOR_ID_IPW_TYPES_H)
+    #error "Adc_Ipw_Irq.h and Adc_Ipw_Types.h have different vendor ids"
+#endif
+
+/* Check if Adc_Ipw_Irq.h file and Adc_Ipw_Types.h file are of the same Autosar version */
+#if ((ADC_AR_RELEASE_MAJOR_VERSION_IPW_IRQ_H != ADC_AR_RELEASE_MAJOR_VERSION_IPW_TYPES_H) || \
+     (ADC_AR_RELEASE_MINOR_VERSION_IPW_IRQ_H != ADC_AR_RELEASE_MINOR_VERSION_IPW_TYPES_H) || \
+     (ADC_AR_RELEASE_REVISION_VERSION_IPW_IRQ_H != ADC_AR_RELEASE_REVISION_VERSION_IPW_TYPES_H) \
+    )
+    #error "AutoSar Version Numbers of Adc_Ipw_Irq.h and Adc_Ipw_Types.h are different"
+#endif
+
+/* Check if Adc_Ipw_Irq.h file and Adc_Ipw_Types.h file are of the same Software version */
+#if ((ADC_SW_MAJOR_VERSION_IPW_IRQ_H != ADC_SW_MAJOR_VERSION_IPW_TYPES_H) || \
+     (ADC_SW_MINOR_VERSION_IPW_IRQ_H != ADC_SW_MINOR_VERSION_IPW_TYPES_H) || \
+     (ADC_SW_PATCH_VERSION_IPW_IRQ_H != ADC_SW_PATCH_VERSION_IPW_TYPES_H) \
+    )
+  #error "Software Version Numbers of Adc_Ipw_Irq.h and Adc_Ipw_Types.h are different"
+#endif
+/*==================================================================================================
+*                                          CONSTANTS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                      DEFINES AND MACROS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                             ENUMS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                STRUCTURES AND OTHER TYPEDEFS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                GLOBAL VARIABLE DECLARATIONS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                    FUNCTION PROTOTYPES
+==================================================================================================*/
+
+#ifdef __cplusplus
+}
+#endif
+
+/** @} */
+
+#endif /* ADC_IPW_IRQ_H */

+ 340 - 0
RTD/include/Adc_Ipw_Types.h

@@ -0,0 +1,340 @@
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : ADC
+*   Dependencies         : none
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_D2108_ASR_REL_4_4_REV_0000_20210810
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+
+#ifndef ADC_IPW_TYPES_H
+#define ADC_IPW_TYPES_H
+
+/**
+*   @file
+*
+*   @internal
+*   @addtogroup adc_ipw Adc Ipw
+*   @{
+*/
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+/*==================================================================================================
+*                                        INCLUDE FILES
+* 1) system and project includes
+* 2) needed interfaces from external units
+* 3) internal and external interfaces from this unit
+==================================================================================================*/
+
+#include "Adc_Ipw_CfgDefines.h"
+#include "Adc_Ip_Types.h"
+#include "Pdb_Adc_Ip_Types.h"
+
+/* TODO: consider removing, or moving defines also in Ipw_CfgDefines */
+#include "Adc_CfgDefines.h"
+
+/*==================================================================================================
+*                              SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+#define ADC_VENDOR_ID_IPW_TYPES_H                       43
+#define ADC_AR_RELEASE_MAJOR_VERSION_IPW_TYPES_H        4
+#define ADC_AR_RELEASE_MINOR_VERSION_IPW_TYPES_H        4
+#define ADC_AR_RELEASE_REVISION_VERSION_IPW_TYPES_H     0
+#define ADC_SW_MAJOR_VERSION_IPW_TYPES_H                1
+#define ADC_SW_MINOR_VERSION_IPW_TYPES_H                0
+#define ADC_SW_PATCH_VERSION_IPW_TYPES_H                0
+/*==================================================================================================
+*                                     FILE VERSION CHECKS
+==================================================================================================*/
+/* Check if Adc_Ipw_Types.h file and Adc_Ipw_CfgDefines.h file are of the same vendor */
+#if (ADC_VENDOR_ID_IPW_TYPES_H != ADC_VENDOR_ID_IPW_CFGDEFINES_H)
+    #error "Adc_Ipw_Types.h and Adc_Ipw_CfgDefines.h have different vendor ids"
+#endif
+
+/* Check if Adc_Ipw_Types.h file and Adc_Ipw_CfgDefines.h file are of the same Autosar version */
+#if ((ADC_AR_RELEASE_MAJOR_VERSION_IPW_TYPES_H != ADC_AR_RELEASE_MAJOR_VERSION_IPW_CFGDEFINES_H) || \
+     (ADC_AR_RELEASE_MINOR_VERSION_IPW_TYPES_H != ADC_AR_RELEASE_MINOR_VERSION_IPW_CFGDEFINES_H) || \
+     (ADC_AR_RELEASE_REVISION_VERSION_IPW_TYPES_H != ADC_AR_RELEASE_REVISION_VERSION_IPW_CFGDEFINES_H) \
+    )
+    #error "AutoSar Version Numbers of Adc_Ipw_Types.h and Adc_Ipw_CfgDefines.h are different"
+#endif
+
+/* Check if Adc_Ipw_Types.h file and Adc_Ipw_CfgDefines.h file are of the same Software version */
+#if ((ADC_SW_MAJOR_VERSION_IPW_TYPES_H != ADC_SW_MAJOR_VERSION_IPW_CFGDEFINES_H) || \
+     (ADC_SW_MINOR_VERSION_IPW_TYPES_H != ADC_SW_MINOR_VERSION_IPW_CFGDEFINES_H) || \
+     (ADC_SW_PATCH_VERSION_IPW_TYPES_H != ADC_SW_PATCH_VERSION_IPW_CFGDEFINES_H) \
+    )
+  #error "Software Version Numbers of Adc_Ipw_Types.h and Adc_Ipw_CfgDefines.h are different"
+#endif
+
+/* Check if Adc_Ipw_Types.h file and Adc_Ip_Types.h file are of the same vendor */
+#if (ADC_VENDOR_ID_IPW_TYPES_H != ADC_IP_VENDOR_ID_TYPES_H)
+    #error "Adc_Ipw_Types.h and Adc_Ip_Types.h have different vendor ids"
+#endif
+
+/* Check if Adc_Ipw_Types.h file and Adc_Ip_Types.h file are of the same Autosar version */
+#if ((ADC_AR_RELEASE_MAJOR_VERSION_IPW_TYPES_H != ADC_IP_AR_RELEASE_MAJOR_VERSION_TYPES_H) || \
+     (ADC_AR_RELEASE_MINOR_VERSION_IPW_TYPES_H != ADC_IP_AR_RELEASE_MINOR_VERSION_TYPES_H) || \
+     (ADC_AR_RELEASE_REVISION_VERSION_IPW_TYPES_H != ADC_IP_AR_RELEASE_REVISION_VERSION_TYPES_H) \
+    )
+    #error "AutoSar Version Numbers of Adc_Ipw_Types.h and Adc_Ip_Types.h are different"
+#endif
+
+/* Check if Adc_Ipw_Types.h file and Adc_Ip_Types.h file are of the same Software version */
+#if ((ADC_SW_MAJOR_VERSION_IPW_TYPES_H != ADC_IP_SW_MAJOR_VERSION_TYPES_H) || \
+     (ADC_SW_MINOR_VERSION_IPW_TYPES_H != ADC_IP_SW_MINOR_VERSION_TYPES_H) || \
+     (ADC_SW_PATCH_VERSION_IPW_TYPES_H != ADC_IP_SW_PATCH_VERSION_TYPES_H) \
+    )
+  #error "Software Version Numbers of Adc_Ipw_Types.h and Adc_Ip_Types.h are different"
+#endif
+
+/* Check if Adc_Ipw_Types.h file and Pdb_Adc_Ip_Types.h file are of the same vendor */
+#if (ADC_VENDOR_ID_IPW_TYPES_H != PDB_ADC_IP_VENDOR_ID_TYPES_H)
+    #error "Adc_Ipw_Types.h and Pdb_Adc_Ip_Types.h have different vendor ids"
+#endif
+
+/* Check if Adc_Ipw_Types.h file and Pdb_Adc_Ip_Types.h file are of the same Autosar version */
+#if ((ADC_AR_RELEASE_MAJOR_VERSION_IPW_TYPES_H != PDB_ADC_IP_AR_RELEASE_MAJOR_VERSION_TYPES_H) || \
+     (ADC_AR_RELEASE_MINOR_VERSION_IPW_TYPES_H != PDB_ADC_IP_AR_RELEASE_MINOR_VERSION_TYPES_H) || \
+     (ADC_AR_RELEASE_REVISION_VERSION_IPW_TYPES_H != PDB_ADC_IP_AR_RELEASE_REVISION_VERSION_TYPES_H) \
+    )
+    #error "AutoSar Version Numbers of Adc_Ipw_Types.h and Pdb_Adc_Ip_Types.h are different"
+#endif
+
+/* Check if Adc_Ipw_Types.h file and Pdb_Adc_Ip_Types.h file are of the same Software version */
+#if ((ADC_SW_MAJOR_VERSION_IPW_TYPES_H != PDB_ADC_IP_SW_MAJOR_VERSION_TYPES_H) || \
+     (ADC_SW_MINOR_VERSION_IPW_TYPES_H != PDB_ADC_IP_SW_MINOR_VERSION_TYPES_H) || \
+     (ADC_SW_PATCH_VERSION_IPW_TYPES_H != PDB_ADC_IP_SW_PATCH_VERSION_TYPES_H) \
+    )
+  #error "Software Version Numbers of Adc_Ipw_Types.h and Pdb_Adc_Ip_Types.h are different"
+#endif
+
+/* TODO: consider removing, or moving defines also in Ipw_CfgDefines */
+/* Check if Adc_Ipw_Types.h file and Adc_CfgDefines.h file are of the same vendor */
+#if (ADC_VENDOR_ID_IPW_TYPES_H != ADC_VENDOR_ID_CFGDEFINES_H)
+    #error "Adc_Ipw_Types.h and Adc_CfgDefines.h have different vendor ids"
+#endif
+
+/* Check if Adc_Ipw_Types.h file and Adc_CfgDefines.h file are of the same Autosar version */
+#if ((ADC_AR_RELEASE_MAJOR_VERSION_IPW_TYPES_H != ADC_AR_RELEASE_MAJOR_VERSION_CFGDEFINES_H) || \
+     (ADC_AR_RELEASE_MINOR_VERSION_IPW_TYPES_H != ADC_AR_RELEASE_MINOR_VERSION_CFGDEFINES_H) || \
+     (ADC_AR_RELEASE_REVISION_VERSION_IPW_TYPES_H != ADC_AR_RELEASE_REVISION_VERSION_CFGDEFINES_H) \
+    )
+    #error "AutoSar Version Numbers of Adc_Ipw_Types.h and Adc_CfgDefines.h are different"
+#endif
+
+/* Check if Adc_Ipw_Types.h file and Adc_CfgDefines.h file are of the same Software version */
+#if ((ADC_SW_MAJOR_VERSION_IPW_TYPES_H != ADC_SW_MAJOR_VERSION_CFGDEFINES_H) || \
+     (ADC_SW_MINOR_VERSION_IPW_TYPES_H != ADC_SW_MINOR_VERSION_CFGDEFINES_H) || \
+     (ADC_SW_PATCH_VERSION_IPW_TYPES_H != ADC_SW_PATCH_VERSION_CFGDEFINES_H) \
+    )
+  #error "Software Version Numbers of Adc_Ipw_Types.h and Adc_CfgDefines.h are different"
+#endif
+/*==================================================================================================
+*                              STRUCTURES AND OTHER TYPEDEFS
+==================================================================================================*/
+
+typedef uint8 Adc_HwUnitType;             /**< @brief Numeric ID of an ADC Hw Unit */
+
+/* SWS_Adc_00506 */
+/** @implements     Adc_ChannelType_uint */
+typedef uint16 Adc_ChannelType;           /**< @brief Numeric ID of an ADC channel */
+
+/* SWS_Adc_00507 */
+/** @implements     Adc_GroupType_uint */
+typedef uint16 Adc_GroupType;             /**< @brief Numeric ID of an ADC channel group. No uC dependent */
+typedef uint16 Adc_QueueIndexType;        /**< @brief Index for the queue of groups */
+
+/* SWS_Adc_00510 */
+/** @implements     Adc_ConversionTimeType_uint */
+typedef uint8 Adc_ConversionTimeType;     /**< @brief conversion time */
+
+/* SWS_Adc_00508 */
+/** @implements     Adc_ValueGroupType_int */
+typedef uint16 Adc_ValueGroupType;        /**< @brief type for ADC result of one channel */
+
+/** @implements     Adc_HwTriggerTimerType_uint */
+typedef Pdb_Adc_Ip_TriggerSrcType Adc_HwTriggerTimerType;    /**< @brief Type for the reload value of the ADC embedded timer */
+typedef uint8 Adc_ChannelIndexType;                   /**< @brief Number of channels */
+
+/**
+* @brief          Adc group conversion.
+* @details        Used for value received by Tressos interface configuration.
+*
+*/
+typedef enum
+{
+    ADC_CONV_TYPE_NORMAL   = 0U,    /**< @brief Normal conversion mode */
+    ADC_CONV_TYPE_INJECTED = 1U     /**< @brief Injected conversion mode */
+} Adc_GroupConvType;
+
+#if (ADC_CALIBRATION == STD_ON)
+/**
+* @brief          Structure for calibration status
+*/
+typedef struct
+{
+    /** @brief Unit calibration result status */
+    Std_ReturnType Adc_UnitSelfTestStatus;
+#if (ADC_CALSTAT_AVAILABLE == STD_ON)
+    /** @brief List of failed tests */
+    uint8 Adc_au8Calibrate_Failed_Steps[ADC_MAX_CALIBRATION_STEPS];
+#endif /* (ADC_CALSTAT_AVAILABLE == STD_ON) */
+} Adc_CalibrationStatusType;
+#endif /* ADC_CALIBRATION == STD_ON */
+
+
+#if (ADC_DUAL_CLOCK_MODE == STD_ON)
+/**
+* @brief          Group Access Mode type.
+* @details        Used for value received by Tressos interface configuration.
+*/
+typedef enum
+{
+    ADC_NORMAL = 0U, /**< @brief Normal mode */
+    ADC_ALTERNATE    /**< @brief Alternate mode */
+} Adc_SelectPrescalerType;
+#endif /* (ADC_DUAL_CLOCK_MODE == STD_ON) */
+
+/**
+* @brief          Adc Group conversion mode.
+* @details        Used for value received by Tressos interface configuration.
+*
+* SWS_Adc_00515, SWS_Adc_00380, SWS_Adc_00381
+* @implements     Adc_GroupConvModeType_enum
+*/
+typedef enum
+{
+    ADC_CONV_MODE_ONESHOT    = 0U,  /*!< One-shot conversion mode */
+    ADC_CONV_MODE_CONTINUOUS = 1U   /*!< Scan conversion mode */
+} Adc_GroupConvModeType;
+
+
+#if (ADC_ENABLE_LIMIT_CHECK == STD_ON)
+/**
+* @brief          Range select values.
+* @details        Indicates which range select is used.
+*
+* @implements  Adc_ChannelRangeSelectType_enum
+* SWS_Adc_00524
+*/
+typedef enum
+{
+    ADC_RANGE_ALWAYS = 0U,   /**< @brief Complete range - independent from channel limit settings */
+    ADC_RANGE_BETWEEN,       /**< @brief Range between low limit and high limit - high limit value included */
+    ADC_RANGE_NOT_BETWEEN,   /**< @brief Range above high limit or below low limit - low limit value included */
+    ADC_RANGE_NOT_OVER_HIGH, /**< @brief Range below high limit - high limit value included */
+    ADC_RANGE_NOT_UNDER_LOW, /**< @brief Range above low limit */
+    ADC_RANGE_OVER_HIGH,     /**< @brief Range above high limit */
+    ADC_RANGE_UNDER_LOW      /**< @briefRange below low limit - low limit value included */
+} Adc_ChannelRangeSelectType;
+
+typedef struct
+{
+    const boolean bChannelLimitCheckEnabled;        /**< @brief Channel limit checking enabled */
+    const Adc_ChannelRangeSelectType eChannelRange; /**< @brief Range conversion */
+    const uint16 ChannelHighLimit;                  /**< @brief High limit channel conversion value */
+    const uint16 ChannelLowLimit;                   /**< @brief Low limit channel conversion value */
+} Adc_ChannelLimitCheckingType;
+#endif /* (ADC_ENABLE_LIMIT_CHECK == STD_ON) */
+
+typedef struct
+{
+#if (ADC_SET_ADC_CONV_TIME_ONCE == STD_OFF)
+    /**< @brief Main Average enable status of group */
+    const uint8 u8GroupAvgEnable;
+    /**< @brief Main Average selection of group */
+    const Adc_Ip_AvgSelectType GroupAvgSelect;
+    Adc_ConversionTimeType ConvTime;
+#if (ADC_DUAL_CLOCK_MODE == STD_ON)
+    /**< @brief Alternate Average enable status of group */
+    const uint8 u8GroupAvgEnableAlternate;
+    /**< @brief Alternate Average selection of group */
+    const Adc_Ip_AvgSelectType GroupAvgSelectAlternate;
+    Adc_ConversionTimeType AlternateConvTime;
+#endif /* (ADC_DUAL_CLOCK_MODE == STD_ON) */
+#endif /* (ADC_SET_ADC_CONV_TIME_ONCE == STD_OFF) */
+    /**< @brief The period PDB for continuous mode */
+    const uint16 PdbPeriod;
+    /**< @brief The delay for next PDB */
+    const uint16 PdbDelay;
+    /**< @brief Enables or Disables the ADC Back to Back configuration for Group Channels */
+    const boolean AdcGroupEnableBackToBack;
+    /**< @brief Enables or Disables the ADC pre-trigger delay configuration for each Group Channel */
+    const boolean AdcGroupEnableChannelDelays;
+    /**< @brief Channel delays */
+    const uint16 * pDelay;
+} Adc_Ipw_GroupConfig;
+
+typedef struct
+{
+    const uint8 u8Adc_DmaInterruptSoftware[ADC_MAX_HW_UNITS];              /**< @brief DMA or Interrupt driven */
+    const Adc_GroupType aAdc_Groups[ADC_MAX_HW_UNITS];                     /**< @brief Number of groups configured for each unit */
+    const Adc_ChannelType aAdc_Channels[ADC_MAX_HW_UNITS];                 /**< @brief Number of channels of the hw unit x */
+    const uint8 au8Adc_DmaChannel[ADC_MAX_HW_UNITS];                       /**< @brief If dma driven then indicates the dma channel number for HW UNITS */
+#if (STD_ON == ADC_OPTIMIZE_DMA_STREAMING_GROUPS) || (ADC_ENABLE_GROUP_STREAMING_RESULTS_REORDER == STD_ON)
+    const uint8 au8Adc_CountingDmaChannel[ADC_MAX_HW_UNITS];               /**< @brief If dma driven then indicates the dma linked channel number for HW UNITS in optimize DMA streaming groups multiple channels feature*/
+#endif /* (STD_ON == ADC_OPTIMIZE_DMA_STREAMING_GROUPS) || (ADC_ENABLE_GROUP_STREAMING_RESULTS_REORDER == STD_ON) */
+    const uint8 au8Adc_HwUnit[ADC_MAX_HW_UNITS];                           /**< @brief If unit x is active STD_ON/STD_OFF on current partition. Indexed by Physical Hw Index */
+    const Adc_HwUnitType aHwLogicalId[ADC_MAX_HW_UNITS];                   /**< Mapping between Physical Id and Logical Id */
+} Adc_Ipw_MultiConfigType;
+
+typedef struct
+{
+    const Adc_Ip_ConfigType * apAdcConfig[ADC_MAX_HW_UNITS];
+    const Pdb_Adc_Ip_ConfigType * apPdbConfig[ADC_MAX_HW_UNITS];
+    Adc_HwUnitType aAdcPhysicalId[ADC_MAX_HW_UNITS];
+#if (ADC_DUAL_CLOCK_MODE == STD_ON)
+    const Adc_Ip_ClockConfigType * apAdcAltClockConfig[ADC_MAX_HW_UNITS];
+#endif /* (ADC_DUAL_CLOCK_MODE == STD_ON) */
+#if (ADC_ENABLE_LIMIT_CHECK == STD_ON)
+    const Adc_ChannelLimitCheckingType * ChannelLimitCheckingConfigs[ADC_MAX_HW_UNITS];
+#endif /* (ADC_ENABLE_LIMIT_CHECK == STD_ON) */
+    /** @brief Miscellaneous configuration parameters */
+    const Adc_Ipw_MultiConfigType Mapping;
+} Adc_Ipw_Config;
+
+#if (ADC_ENABLE_READ_RAW_DATA_API == STD_ON)
+/**
+* @brief           Number of ADC result registers
+*/
+#define ADC_IPW_RES_REG_NUM     (ADC_MAX_CHAN_COUNT)
+/**
+* @brief           Max channel index
+*/
+#if (ADC_IP_SUPPLY_MONITORING_ENABLED == STD_ON)
+    #define ADC_IPW_MAX_CHN_ID      (ADC_IP_INPUTCHAN_SUPPLY_VDD_LV)
+#elif (FEATURE_ADC_MAX_EXT_CHAN_ID <= 15u)
+    #define ADC_IPW_MAX_CHN_ID      (ADC_IP_INPUTCHAN_VREFL)
+#elif (FEATURE_ADC_MAX_EXT_CHAN_ID <= 23u)
+    #define ADC_IPW_MAX_CHN_ID      (ADC_IP_INPUTCHAN_EXT23)
+#else
+    #define ADC_IPW_MAX_CHN_ID      (ADC_IP_INPUTCHAN_EXT31)
+#endif /* (ADC_IP_SUPPLY_MONITORING_ENABLED == STD_ON) */
+#endif /* (ADC_ENABLE_READ_RAW_DATA_API == STD_ON) */
+
+#ifdef __cplusplus
+}
+#endif
+
+/** @} */
+
+#endif /* ADC_IPW_TYPES_H */

+ 475 - 0
RTD/include/Adc_Types.h

@@ -0,0 +1,475 @@
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : ADC
+*   Dependencies         : none
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_D2108_ASR_REL_4_4_REV_0000_20210810
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+
+#ifndef ADC_TYPES_H
+#define ADC_TYPES_H
+
+/**
+*   @file
+*
+*   @addtogroup adc_driver
+*   @{
+*/
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+/*==================================================================================================
+*                                        INCLUDE FILES
+* 1) system and project includes
+* 2) needed interfaces from external units
+* 3) internal and external interfaces from this unit
+==================================================================================================*/
+#include "Adc_Ipw_Types.h"
+#include "Adc_CfgDefines.h"
+
+/*==================================================================================================
+*                              SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+#define ADC_VENDOR_ID_TYPES_H                         43
+#define ADC_AR_RELEASE_MAJOR_VERSION_TYPES_H          4
+#define ADC_AR_RELEASE_MINOR_VERSION_TYPES_H          4
+#define ADC_AR_RELEASE_REVISION_VERSION_TYPES_H       0
+#define ADC_SW_MAJOR_VERSION_TYPES_H                  1
+#define ADC_SW_MINOR_VERSION_TYPES_H                  0
+#define ADC_SW_PATCH_VERSION_TYPES_H                  0
+
+/*==================================================================================================
+*                                     FILE VERSION CHECKS
+==================================================================================================*/
+/* Check if Adc_Types.h file and Adc_Ipw_Types.h file are of the same vendor */
+#if (ADC_VENDOR_ID_TYPES_H != ADC_VENDOR_ID_IPW_TYPES_H)
+    #error "Adc_Types.h and Adc_Ipw_Types.h have different vendor ids"
+#endif
+
+/* Check if Adc_Types.h file and Adc_Ipw_Types.h file are of the same Autosar version */
+#if ((ADC_AR_RELEASE_MAJOR_VERSION_TYPES_H != ADC_AR_RELEASE_MAJOR_VERSION_IPW_TYPES_H) || \
+     (ADC_AR_RELEASE_MINOR_VERSION_TYPES_H != ADC_AR_RELEASE_MINOR_VERSION_IPW_TYPES_H) || \
+     (ADC_AR_RELEASE_REVISION_VERSION_TYPES_H != ADC_AR_RELEASE_REVISION_VERSION_IPW_TYPES_H) \
+    )
+    #error "AutoSar Version Numbers of Adc_Types.h and Adc_Ipw_Types.h are different"
+#endif
+
+/* Check if Adc_Types.h file and Adc_Ipw_Types.h file are of the same Software version */
+#if ((ADC_SW_MAJOR_VERSION_TYPES_H != ADC_SW_MAJOR_VERSION_IPW_TYPES_H) || \
+     (ADC_SW_MINOR_VERSION_TYPES_H != ADC_SW_MINOR_VERSION_IPW_TYPES_H) || \
+     (ADC_SW_PATCH_VERSION_TYPES_H != ADC_SW_PATCH_VERSION_IPW_TYPES_H) \
+    )
+  #error "Software Version Numbers of Adc_Types.h and Adc_Ipw_Types.h are different"
+#endif
+
+/* Check if Adc_Types.h file and Adc_CfgDefines.h file are of the same vendor */
+#if (ADC_VENDOR_ID_TYPES_H != ADC_VENDOR_ID_CFGDEFINES_H)
+    #error "Adc_Types.h and Adc_CfgDefines.h have different vendor ids"
+#endif
+
+/* Check if Adc_Types.h file and Adc_CfgDefines.h file are of the same Autosar version */
+#if ((ADC_AR_RELEASE_MAJOR_VERSION_TYPES_H != ADC_AR_RELEASE_MAJOR_VERSION_CFGDEFINES_H) || \
+     (ADC_AR_RELEASE_MINOR_VERSION_TYPES_H != ADC_AR_RELEASE_MINOR_VERSION_CFGDEFINES_H) || \
+     (ADC_AR_RELEASE_REVISION_VERSION_TYPES_H != ADC_AR_RELEASE_REVISION_VERSION_CFGDEFINES_H) \
+    )
+    #error "AutoSar Version Numbers of Adc_Types.h and Adc_CfgDefines.h are different"
+#endif
+
+/* Check if Adc_Types.h file and Adc_CfgDefines.h file are of the same Software version */
+#if ((ADC_SW_MAJOR_VERSION_TYPES_H != ADC_SW_MAJOR_VERSION_CFGDEFINES_H) || \
+     (ADC_SW_MINOR_VERSION_TYPES_H != ADC_SW_MINOR_VERSION_CFGDEFINES_H) || \
+     (ADC_SW_PATCH_VERSION_TYPES_H != ADC_SW_PATCH_VERSION_CFGDEFINES_H) \
+    )
+  #error "Software Version Numbers of Adc_Types.h and Adc_CfgDefines.h are different"
+#endif
+/*==================================================================================================
+*                                          CONSTANTS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                      DEFINES AND MACROS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                             ENUMS
+==================================================================================================*/
+/**
+* @brief          ADC driver status
+* @details        Used to differentiate if ADC driver is already uninit, during init or already
+*                 initialized or not.
+*
+*/
+typedef enum
+{
+    ADC_STATE_UNINIT = 0U,  /**< @brief Adc driver uninitialized */
+    ADC_STATE_BUSY,         /**< @brief Adc driver busy */
+    ADC_STATE_IDLE          /**< @brief Adc driver idle */
+} Adc_GlobalStateType;
+
+
+/**
+* @brief          ADC group already converted type.
+* @details        Used to differentiate if group is already converted or not.
+*
+*/
+typedef enum
+{
+    ADC_NOT_YET_CONVERTED = 0U, /**< @brief Group not yet converted */
+    ADC_ALREADY_CONVERTED       /**< @brief Group is already converted */
+} Adc_GroupConversionStateType;
+
+/**
+* @brief          Adc group access Mode.
+* @details        Used for value received by Tressos interface configuration.
+*
+* @implements     Adc_GroupAccessModeType_enum
+* SWS_Adc_00528
+*/
+typedef enum
+{
+    ADC_ACCESS_MODE_SINGLE = 0U, /**< @brief Single access mode */
+    ADC_ACCESS_MODE_STREAMING    /**< @brief Streaming access mode */
+} Adc_GroupAccessModeType;
+
+/**
+* @brief          Adc group replacement.
+* @details        Used for value received by Tressos interface configuration.
+*
+* @implements     Adc_GroupReplacementType_enum
+* SWS_Adc_00523
+*/
+typedef enum
+{
+    ADC_GROUP_REPL_ABORT_RESTART, /**< @brief Abort and restart of group*/
+    ADC_GROUP_REPL_SUSPEND_RESUME /**< @brief Suspend and resuming of group*/
+}Adc_GroupReplacementType;
+
+/**
+* @brief          Adc group streaming buffer mode.
+* @details        Used for value received by Tressos interface configuration.
+*
+* @implements     Adc_StreamBufferModeType_enum
+* SWS_Adc_00519
+*/
+typedef enum
+{
+    ADC_STREAM_BUFFER_LINEAR = 0U, /**< @brief Linear streaming*/
+    ADC_STREAM_BUFFER_CIRCULAR     /**< @brief Circular streaming*/
+} Adc_StreamBufferModeType;
+
+/**
+* @brief          ADC group status.
+* @details        ADC group enumeration type.
+*
+* @implements     Adc_StatusType_enum
+* SWS_Adc_00513
+*/
+typedef enum
+{
+    ADC_IDLE = 0U,       /**< @brief Group is in IDLE state*/
+    ADC_BUSY,            /**< @brief Group is in BUSY state */
+    ADC_COMPLETED,       /**< @brief Group is in COMPLETED state*/
+    ADC_STREAM_COMPLETED /**< @brief Group is in STREAM_COMPLETED state*/
+} Adc_StatusType;
+
+/**
+* @brief          ADC group notification.
+* @details        Indicates if notification is enabled for the group.
+*
+*/
+typedef enum
+{
+    ADC_NOTIFICATION_DISABLED = 0U, /**< @brief Notification is disabled */
+    ADC_NOTIFICATION_ENABLED        /**< @brief Notification is enabled */
+} Adc_NotificationType;
+
+/**
+* @brief          Adc hardware trigger edge.
+* @details        Used for value received by Tressos interface configuration.
+*
+* @implements     Adc_HwTriggerSignalType_enum
+* SWS_Adc_00520
+*/
+
+typedef enum
+{
+    ADC_HW_TRIG_RISING_EDGE = 0U, /**< @brief Rising edge */
+    ADC_HW_TRIG_FALLING_EDGE,     /**< @brief Falling edge */
+    ADC_HW_TRIG_BOTH_EDGES        /**< @brief falling and rising edge */
+} Adc_HwTriggerSignalType;
+
+/**
+* @brief          Adc hardware trigger source.
+* @details        Used for value received by Tressos interface configuration.
+*
+* @implements     Adc_TriggerSourceType_enum
+* SWS_Adc_00514
+*/
+typedef enum
+{
+    ADC_TRIGG_SRC_SW = 0U /**< @brief Software triggered */
+#if (ADC_HW_TRIGGER_API == STD_ON)
+,
+    ADC_TRIGG_SRC_HW      /**< @brief Hardware triggered */
+#endif /* (ADC_HW_TRIGGER_API == STD_ON) */
+} Adc_TriggerSourceType;
+
+#if (STD_ON == ADC_HW_TRIGGER_API)
+/**
+* @brief          Adc Hardware trigger.
+* @details        Indicates if hardware trigger is enabled for group.
+*
+*/
+typedef enum
+{
+    ADC_HWTRIGGER_DISABLED = 0U, /**< @brief Hardware trigger is disabled */
+    ADC_HWTRIGGER_ENABLED        /**< @brief Hardware trigger is enabled */
+} Adc_HwTriggeringType;
+
+#endif /* (STD_ON==ADC_HW_TRIGGER_API) */
+
+
+/*==================================================================================================
+                                 STRUCTURES AND OTHER TYPEDEFS
+==================================================================================================*/
+typedef void (*Adc_NotifyType)(void);     /**< @brief Notification function pointer definition */
+
+/* SWS_Adc_00512 */
+/** @implements     Adc_ResolutionType_uint */
+typedef uint8 Adc_ResolutionType;         /**< @brief channel resolution in number of bits */
+
+#if (ADC_PRIORITY_IMPLEMENTATION != ADC_PRIORITY_NONE)
+/* SWS_Adc_00516 */
+/** @implements     Adc_GroupPriorityType_uint */
+typedef uint8 Adc_GroupPriorityType;      /**< @brief ADC Channel group priority */
+#endif /* (ADC_PRIORITY_IMPLEMENTATION != ADC_PRIORITY_NONE) */
+
+/* SWS_Adc_00517 */
+/** @implements     Adc_GroupDefType_uint */
+typedef Adc_ChannelType Adc_GroupDefType; /**< @brief definition of channels in a group */
+
+/* SWS_Adc_00509 */
+/** @implements     Adc_PrescaleType_uint */
+typedef uint8 Adc_PrescaleType;           /**< @brief clock prescaler factor */
+
+/* SWS_Adc_00511 */
+/** @implements     Adc_SamplingTimeType_uint */
+typedef uint8 Adc_SamplingTimeType;       /**< @brief sampling time */
+
+/* SWS_Adc_00518 */
+/** @implements     Adc_StreamNumSampleType_uint */
+typedef uint16 Adc_StreamNumSampleType;   /**< @brief Number of samples of a streaming conversion buffer */
+
+/**
+* @brief          Structure for validation results
+* @details        This structure contains the validation information
+*
+*/
+typedef struct
+{
+    boolean bEndValidations; /**< @brief Signal if validation ended */
+    Std_ReturnType ValidParams; /**< @brief Return status */
+} Adc_ValidationResultType;
+
+/**
+* @brief          Structure for group status.
+* @details        This structure contains the group status information.
+*
+*/
+typedef struct
+{
+    volatile Adc_StatusType eConversion;   /**< @brief Group status */
+    volatile Adc_GroupConversionStateType eAlreadyConverted;     /**< @brief Group was previously converted or not */
+#if (ADC_HW_TRIGGER_API == STD_ON)
+    Adc_HwTriggeringType eHwTriggering;   /**< @brief hw trigger enabled/disabled */
+#endif /* ADC_HW_TRIGGER_API == STD_ON */
+#if (ADC_GRP_NOTIF_CAPABILITY == STD_ON)
+    Adc_NotificationType eNotification;   /**< @brief notification enabled/disabled */
+#endif /* ADC_GRP_NOTIF_CAPABILITY == STD_ON */
+    volatile Adc_StreamNumSampleType ResultIndex;  /**< @brief index into streaming buffer that is currently being filled */
+#ifdef ADC_CURRENT_CHANNEL_USED
+    Adc_ChannelIndexType CurrentChannel;  /**< @brief Current channel in use */
+#endif /* ADC_CURRENT_CHANNEL_USED */
+#if (ADC_ENABLE_LIMIT_CHECK == STD_ON)
+    volatile boolean bLimitCheckFailed;   /**< @brief check limit check fail */
+#endif /* ADC_ENABLE_LIMIT_CHECK == STD_ON */
+} Adc_GroupStatusType;
+
+/**
+* @brief          Structure for hardware unit status.
+* @details        This structure contains the HW unit status information.
+*
+*/
+typedef struct
+{
+    /** @brief Filled slots in the queue */
+    volatile Adc_QueueIndexType SwNormalQueueIndex;
+    /** @brief Queued groups indexes, always executing Queue[0] */
+    volatile Adc_GroupType SwNormalQueue[ADC_QUEUE_MAX_DEPTH_MAX];
+#if (ADC_HW_TRIGGER_API == STD_ON)
+    /** @brief Ongoing hardware group ID */
+    volatile Adc_GroupType OngoingHwGroup;
+#endif /* ADC_HW_TRIGGER_API == STD_ON */
+#if (ADC_SOFTWARE_INJECTED_CONVERSIONS_USED == STD_ON)
+    /** @brief The depth of the software injected queue */
+    volatile Adc_GroupType SwInjectedQueue[1U];
+    /** @brief Filled slots in the Sw injected queue */
+    volatile Adc_QueueIndexType SwInjectedQueueIndex;
+#endif /* (ADC_SOFTWARE_INJECTED_CONVERSIONS_USED == STD_ON) */
+#if (ADC_ENABLE_CTU_CONTROL_MODE_API == STD_ON)
+    /** @brief Indicates Ctu control mode is ongoing */
+    boolean bCtuControlOngoing;
+#endif /* ADC_ENABLE_CTU_CONTROL_MODE_API == STD_ON */
+#if (ADC_PDB_AVAILABLE == STD_ON)
+    uint8 u8Sc1Used;
+#endif /* (ADC_PDB_AVAILABLE == STD_ON) */
+} Adc_UnitStatusType;
+
+#if (ADC_SETCHANNEL_API == STD_ON)
+typedef struct
+{
+    /** @brief Run time assigned channels to group */
+    const Adc_GroupDefType * pChannel;
+    /** @brief Run time number of channels */
+    Adc_ChannelIndexType ChannelCount;
+    /** @brief Indicates whether the configuration has been updated or not */
+    boolean bRuntimeUpdated;
+#if (ADC_ENABLE_LIMIT_CHECK == STD_ON)
+    /* @brief Indicates whether pChannel has channel with limit checking enabled */
+    boolean bAdcRuntimeGroupLimitcheck;
+#endif /* (ADC_ENABLE_LIMIT_CHECK == STD_ON) */
+#if (ADC_PDB_AVAILABLE == STD_ON)
+    /** @brief Run time assigned delay of channels group */
+    const uint16 * pu16Delays;
+    /** @brief Mask per channel - to be updated or not */
+    uint32 u32Mask;
+#endif /* (ADC_PDB_AVAILABLE == STD_ON) */
+} Adc_RuntimeGroupChannelType;
+#endif /* (ADC_SETCHANNEL_API == STD_ON) */
+
+typedef struct
+{
+    const Adc_GroupType GroupId;                                /**< @brief Index of group */
+    const Adc_HwUnitType AdcLogicalUnitId;                      /**< @brief The ADC Logical Unit Id that the group belongs to */
+    const Adc_GroupAccessModeType eAccessMode;                  /**< @brief Access Mode */
+    const Adc_GroupConvModeType eMode;                          /**< @brief Conversion Mode (OneShot/Continuous) */
+    const Adc_GroupConvType eType;                              /**< @brief Conversion type (Normal/Injected) */
+#if (ADC_PRIORITY_IMPLEMENTATION != ADC_PRIORITY_NONE)
+    const Adc_GroupPriorityType Priority;                      /**< @brief Priority of group */
+#endif /* (ADC_PRIORITY_IMPLEMENTATION != ADC_PRIORITY_NONE) */
+    const Adc_GroupReplacementType eReplacementMode;           /**< @brief Replacement Mode */
+    const Adc_TriggerSourceType eTriggerSource;                /**< @brief Hw/Sw trigger */
+#if (STD_ON == ADC_HW_TRIGGER_API)
+    const Adc_HwTriggerTimerType HwTriggerSource;               /**< @brief Hardware trigger source for the group */
+    const Adc_HwTriggerSignalType eTriggerEdge;                 /**< @brief Hardware trigger edge */
+    #if (ADC_CTU_AVAILABLE == STD_ON)
+    const Adc_HwTriggerTimerType HwTriggerCompareValue;         /**< @brief Counter Compare Value to reload CTU Trigger */
+    #endif /* (ADC_CTU_AVAILABLE == STD_ON) */
+#endif /* (STD_ON == ADC_HW_TRIGGER_API) */
+#if (STD_ON == ADC_GRP_NOTIF_CAPABILITY)
+    /* SWS_Adc_00104 */
+    const Adc_NotifyType Notification;                         /**< @brief Pointer to notification function */
+#endif /* (STD_ON==ADC_GRP_NOTIF_CAPABILITY) */
+#if (ADC_ENABLE_INITIAL_NOTIFICATION == STD_ON)
+    /* CPR-MCAL-797.adc */
+    const Adc_NotifyType ExtraNotification;                    /**< @brief Pointer to extra notification function */
+#endif /* (ADC_ENABLE_INITIAL_NOTIFICATION == STD_ON) */
+
+    /* SWS_Adc_00319, SWS_Adc_00318 */
+    Adc_ValueGroupType ** pResultsBufferPtr; /**< @brief pointer to user result buffer array */
+    const Adc_StreamBufferModeType eBufferMode;                /**< @brief Buffer Mode */
+#if (ADC_ENABLE_CH_DISABLE_CH_NONAUTO_API == STD_ON)
+    const Adc_GroupType EnableChDisableChGroupIndex;            /**< @brief Group's index if it has the support to enable/disable channel */
+#endif /* (ADC_ENABLE_CH_DISABLE_CH_NONAUTO_API == STD_ON) */
+    const Adc_StreamNumSampleType NumSamples;                  /**< @brief  Number of samples */
+#if (ADC_ENABLE_GROUP_STREAMING_RESULTS_REORDER == STD_ON)
+    const boolean bStreamResultGroupMultiSets;                 /**< @brief Arrange the results as multiple sets of group result buffer */
+#endif /* (ADC_ENABLE_GROUP_STREAMING_RESULTS_REORDER == STD_ON) */
+    const Adc_GroupDefType * pAssignment;                      /**< @brief Assigned channels to group */
+    const Adc_ChannelIndexType AssignedChannelCount;           /**< @brief Number of channels */
+
+    const Adc_ChannelType LastCh;                              /**< @brief Last channel configured */
+    const Adc_ChannelType FirstCh;                             /**< @brief First channel configured */
+    /* PR-MCAL-3229.adc */
+    const uint8 u8AdcWithoutInterrupt;                         /**< @brief Enables or Disables the ADC and DMA interrupts */
+    const uint8 u8AdcExtDMAChanEnable;                         /**< @brief Enables or Disables configuring external DMA channel in the group */
+    const boolean u8AdcWithoutDma;                             /**< @brief When true, disables completely DMA configuration done by ADC driver for the group */
+#if (STD_ON == ADC_OPTIMIZE_DMA_STREAMING_GROUPS)
+    const boolean bAdcOptimizeDmaStream;                         /**< @brief Enables or Disables the ADC optimize DMA streaming groups feature */
+    const boolean bHalfInterrupt;                              /**< @brief Enable half interrupt for optimize DMA streaming groups feature */
+#endif
+#if (ADC_ENABLE_LIMIT_CHECK == STD_ON)
+    const boolean bAdcGroupLimitcheck;                          /**< @brief Enables or disables the usage of limit checking for an ADC group. */
+#endif /* (ADC_ENABLE_LIMIT_CHECK == STD_ON) */
+#ifndef ADC_CMR_REGISTER_NOT_SUPPORTED
+    Adc_ChansIdxMaskType AssignedChannelMask;
+#endif /* ADC_CMR_REGISTER_NOT_SUPPORTED */
+#if (ADC_CTU_HW_TRIGGER_OPTIMIZATION == STD_ON)
+    const uint8 u8CtuTrigListPos;                               /**< @brief First position of channel in BCTU channel list or CTU command list. */
+#endif /* (ADC_CTU_HW_TRIGGER_OPTIMIZATION == STD_ON) */
+#if ((ADC_SET_ADC_CONV_TIME_ONCE == STD_OFF) || (ADC_PDB_AVAILABLE == STD_ON))
+    Adc_Ipw_GroupConfig const * pAdcIpwGroupConfig;
+#endif /* ((ADC_SET_ADC_CONV_TIME_ONCE == STD_OFF) || (ADC_PDB_AVAILABLE == STD_ON)) */
+} Adc_GroupConfigurationType;
+
+
+/**
+* @brief          Structure for ADC configuration.
+* @details        Data structure containing the set of configuration parameters required
+*                 for initializing the ADC Driver.
+* @api
+* @implements     Adc_ConfigType_struct
+* SWS_Adc_00505
+*/
+typedef struct
+{
+    Adc_Ipw_Config const * pAdcIpwConfig;
+
+    /** @brief Group configurations */
+    const Adc_GroupConfigurationType * pGroups;
+    /** @brief Total number of groups */
+    Adc_GroupType GroupCount;
+    /** @brief Miscellaneous configuration parameters */
+    const uint16 * pGroupIdToIndexMap;
+    /** @brief Configuration CoreID */
+    uint32 u32CoreId;
+    /**< @brief Assigned Partition*/
+    const uint8 * pAssignmentPartition; /* generated from ECUC partition reference. TODO: check can be moved in configurator (check that core from AdcHwUnitEcucPartitionRef is among AdcEcucPartitionRef). TBD */
+    /**< @brief Number of Partition */
+    const uint8 AssignedPartitionCount; /* remove if pAssignmentPartition is removed */
+} Adc_ConfigType;
+
+/*==================================================================================================
+                                 GLOBAL VARIABLE DECLARATIONS
+==================================================================================================*/
+
+
+/*==================================================================================================
+                                     FUNCTION PROTOTYPES
+==================================================================================================*/
+
+#ifdef __cplusplus
+}
+#endif
+
+/** @} */
+
+#endif /* ADC_TYPES_H */

+ 167 - 167
RTD/include/Det.h

@@ -1,167 +1,167 @@
-/*==================================================================================================
-*   Project              : RTD AUTOSAR 4.4
-*   Platform             : CORTEXM
-*   Peripheral           : 
-*   Dependencies         : none
-*
-*   Autosar Version      : 4.4.0
-*   Autosar Revision     : ASR_REL_4_4_REV_0000
-*   Autosar Conf.Variant :
-*   SW Version           : 1.0.0
-*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
-*
-*   (c) Copyright 2020-2021 NXP Semiconductors
-*   All Rights Reserved.
-*
-*   NXP Confidential. This software is owned or controlled by NXP and may only be
-*   used strictly in accordance with the applicable license terms. By expressly
-*   accepting such terms or by downloading, installing, activating and/or otherwise
-*   using the software, you are agreeing that you have read, and that you agree to
-*   comply with and are bound by, such license terms. If you do not agree to be
-*   bound by the applicable license terms, then you may not retain, install,
-*   activate or otherwise use the software.
-==================================================================================================*/
-
-#ifndef DET_H
-#define DET_H
-
-/**
-*   @file Det.h
-*
-*   @addtogroup DET_MODULE
-*   @{
-*/
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-/*
-* @page misra_violations MISRA-C:2012 violations
-*
-* @section Det_h_REF_1
-* Violates MISRA 2012 Required Directive 4.10, Precautions shall be taken in order to prevent the contents of a header file being included more than once.
-* This violation is not fixed since the inclusion of <MA>_MemMap.h is as per AUTOSAR requirement [SWS_MemMap_00003].
-*
-* @section Det_h_REF_2
-* Violates MISRA 2012 Advisory Rule 20.1, #Include directives should only be preceded by preprocessor directives or comments.
-* <MA>_MemMap.h is included after each section define in order to set the current memory section as defined by AUTOSAR.
-*/
-
-/*==================================================================================================
-*                                         INCLUDE FILES
-* 1) system and project includes
-* 2) needed interfaces from external units
-* 3) internal and external interfaces from this unit
-==================================================================================================*/
-#include "Std_Types.h"
-
-/*==================================================================================================
-*                               SOURCE FILE VERSION INFORMATION
-==================================================================================================*/
-/**
-* @file           Det.h
-* @requirements   DET001_PI
-*/
-
-#define DET_VENDOR_ID                       43
-#define DET_MODULE_ID                       15
-#define DET_AR_RELEASE_MAJOR_VERSION        4
-#define DET_AR_RELEASE_MINOR_VERSION        4
-#define DET_AR_RELEASE_REVISION_VERSION     0
-#define DET_SW_MAJOR_VERSION                1
-#define DET_SW_MINOR_VERSION                0
-#define DET_SW_PATCH_VERSION                0
-
-/*==================================================================================================
-*                                     FILE VERSION CHECKS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                           CONSTANTS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                       DEFINES AND MACROS
-==================================================================================================*/
-/* Max numbers of ECU cores supported */
-#define DET_NO_ECU_CORES                        (uint8)(10U)
-
-/*==================================================================================================
-*                                             ENUMS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                 STRUCTURES AND OTHER TYPEDEFS
-==================================================================================================*/
-
-
-/*==================================================================================================
-*                                 GLOBAL VARIABLE DECLARATIONS
-==================================================================================================*/
-#define DET_START_SEC_VAR_CLEARED_8_NO_CACHEABLE
-/*
- * @violates @ref Det_h_REF_1 Precautions shall be taken in order to prevent the contents of a header file being included more than once
- * @violates @ref Det_h_REF_2 #Include directives should only be preceded by preprocessor directives or comments
- */
-#include "Det_MemMap.h"
-/* Variables to store last DET error */
-extern uint8 Det_InstanceId[DET_NO_ECU_CORES];                /**< @brief DET instance ID*/
-extern uint8 Det_ApiId[DET_NO_ECU_CORES];                     /**< @brief DET API ID*/
-extern uint8 Det_ErrorId[DET_NO_ECU_CORES];                   /**< @brief DET Error ID*/
-/* Variables to store last DET runtime error */
-extern uint8 Det_RuntimeInstanceId[DET_NO_ECU_CORES];         /**< @brief DET instance ID*/
-extern uint8 Det_RuntimeApiId[DET_NO_ECU_CORES];              /**< @brief DET API ID*/
-extern uint8 Det_RuntimeErrorId[DET_NO_ECU_CORES];            /**< @brief DET Error ID*/
-/* Variables to store last DET transient error */
-extern uint8 Det_TransientInstanceId[DET_NO_ECU_CORES];       /**< @brief DET instance ID*/
-extern uint8 Det_TransientApiId[DET_NO_ECU_CORES];            /**< @brief DET API ID*/
-extern uint8 Det_TransientFaultId[DET_NO_ECU_CORES];          /**< @brief DET Error ID*/
-#define DET_STOP_SEC_VAR_CLEARED_8_NO_CACHEABLE
-/*
- * @violates @ref Det_h_REF_1 Precautions shall be taken in order to prevent the contents of a header file being included more than once
- * @violates @ref Det_h_REF_2 #Include directives should only be preceded by preprocessor directives or comments
- */
-#include "Det_MemMap.h"
-
-#define DET_START_SEC_VAR_CLEARED_16_NO_CACHEABLE
-/*
- * @violates @ref Det_h_REF_1 Precautions shall be taken in order to prevent the contents of a header file being included more than once
- * @violates @ref Det_h_REF_2 #Include directives should only be preceded by preprocessor directives or comments
- */
-#include "Det_MemMap.h"
-extern uint16 Det_TransientModuleId[DET_NO_ECU_CORES];       /**< @brief DET module ID*/
-extern uint16 Det_ModuleId[DET_NO_ECU_CORES];       /**< @brief DET module ID*/
-extern uint16 Det_RuntimeModuleId[DET_NO_ECU_CORES];       /**< @brief DET module ID*/
-#define DET_STOP_SEC_VAR_CLEARED_16_NO_CACHEABLE
-/*
- * @violates @ref Det_h_REF_1 Precautions shall be taken in order to prevent the contents of a header file being included more than once
- * @violates @ref Det_h_REF_2 #Include directives should only be preceded by preprocessor directives or comments
- */
-#include "Det_MemMap.h"
-
-/*==================================================================================================
-*                                     FUNCTION PROTOTYPES
-==================================================================================================*/
-#define DET_START_SEC_CODE
-#include "Det_MemMap.h"
-
-void Det_Init(void);
-Std_ReturnType Det_ReportError(uint16 ModuleId, uint8 InstanceId, uint8 ApiId, uint8 ErrorId);
-#if defined(ASR_REL_4_0_REV_0003)
-#else
-Std_ReturnType Det_ReportRuntimeError(uint16 ModuleId, uint8 InstanceId, uint8 ApiId, uint8 ErrorId);
-Std_ReturnType Det_ReportTransientFault(uint16 ModuleId, uint8 InstanceId, uint8 ApiId, uint8 FaultId);
-#endif /*if defined(ASR_REL_4_0_REV_0003)*/
-void Det_Start(void);
-
-#define DET_STOP_SEC_CODE
-#include "Det_MemMap.h"
-
-#ifdef __cplusplus
-}
-#endif
-
-/** @} */
-
-#endif /* DET_H */
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : 
+*   Dependencies         : none
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_D2108_ASR_REL_4_4_REV_0000_20210810
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+
+#ifndef DET_H
+#define DET_H
+
+/**
+*   @file Det.h
+*
+*   @addtogroup DET_MODULE
+*   @{
+*/
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+/*
+* @page misra_violations MISRA-C:2012 violations
+*
+* @section Det_h_REF_1
+* Violates MISRA 2012 Required Directive 4.10, Precautions shall be taken in order to prevent the contents of a header file being included more than once.
+* This violation is not fixed since the inclusion of <MA>_MemMap.h is as per AUTOSAR requirement [SWS_MemMap_00003].
+*
+* @section Det_h_REF_2
+* Violates MISRA 2012 Advisory Rule 20.1, #Include directives should only be preceded by preprocessor directives or comments.
+* <MA>_MemMap.h is included after each section define in order to set the current memory section as defined by AUTOSAR.
+*/
+
+/*==================================================================================================
+*                                         INCLUDE FILES
+* 1) system and project includes
+* 2) needed interfaces from external units
+* 3) internal and external interfaces from this unit
+==================================================================================================*/
+#include "Std_Types.h"
+
+/*==================================================================================================
+*                               SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+/**
+* @file           Det.h
+* @requirements   DET001_PI
+*/
+
+#define DET_VENDOR_ID                       43
+#define DET_MODULE_ID                       15
+#define DET_AR_RELEASE_MAJOR_VERSION        4
+#define DET_AR_RELEASE_MINOR_VERSION        4
+#define DET_AR_RELEASE_REVISION_VERSION     0
+#define DET_SW_MAJOR_VERSION                1
+#define DET_SW_MINOR_VERSION                0
+#define DET_SW_PATCH_VERSION                0
+
+/*==================================================================================================
+*                                     FILE VERSION CHECKS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                           CONSTANTS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                       DEFINES AND MACROS
+==================================================================================================*/
+/* Max numbers of ECU cores supported */
+#define DET_NO_ECU_CORES                        (uint8)(10U)
+
+/*==================================================================================================
+*                                             ENUMS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                 STRUCTURES AND OTHER TYPEDEFS
+==================================================================================================*/
+
+
+/*==================================================================================================
+*                                 GLOBAL VARIABLE DECLARATIONS
+==================================================================================================*/
+#define DET_START_SEC_VAR_CLEARED_8_NO_CACHEABLE
+/*
+ * @violates @ref Det_h_REF_1 Precautions shall be taken in order to prevent the contents of a header file being included more than once
+ * @violates @ref Det_h_REF_2 #Include directives should only be preceded by preprocessor directives or comments
+ */
+#include "Det_MemMap.h"
+/* Variables to store last DET error */
+extern uint8 Det_InstanceId[DET_NO_ECU_CORES];                /**< @brief DET instance ID*/
+extern uint8 Det_ApiId[DET_NO_ECU_CORES];                     /**< @brief DET API ID*/
+extern uint8 Det_ErrorId[DET_NO_ECU_CORES];                   /**< @brief DET Error ID*/
+/* Variables to store last DET runtime error */
+extern uint8 Det_RuntimeInstanceId[DET_NO_ECU_CORES];         /**< @brief DET instance ID*/
+extern uint8 Det_RuntimeApiId[DET_NO_ECU_CORES];              /**< @brief DET API ID*/
+extern uint8 Det_RuntimeErrorId[DET_NO_ECU_CORES];            /**< @brief DET Error ID*/
+/* Variables to store last DET transient error */
+extern uint8 Det_TransientInstanceId[DET_NO_ECU_CORES];       /**< @brief DET instance ID*/
+extern uint8 Det_TransientApiId[DET_NO_ECU_CORES];            /**< @brief DET API ID*/
+extern uint8 Det_TransientFaultId[DET_NO_ECU_CORES];          /**< @brief DET Error ID*/
+#define DET_STOP_SEC_VAR_CLEARED_8_NO_CACHEABLE
+/*
+ * @violates @ref Det_h_REF_1 Precautions shall be taken in order to prevent the contents of a header file being included more than once
+ * @violates @ref Det_h_REF_2 #Include directives should only be preceded by preprocessor directives or comments
+ */
+#include "Det_MemMap.h"
+
+#define DET_START_SEC_VAR_CLEARED_16_NO_CACHEABLE
+/*
+ * @violates @ref Det_h_REF_1 Precautions shall be taken in order to prevent the contents of a header file being included more than once
+ * @violates @ref Det_h_REF_2 #Include directives should only be preceded by preprocessor directives or comments
+ */
+#include "Det_MemMap.h"
+extern uint16 Det_TransientModuleId[DET_NO_ECU_CORES];       /**< @brief DET module ID*/
+extern uint16 Det_ModuleId[DET_NO_ECU_CORES];       /**< @brief DET module ID*/
+extern uint16 Det_RuntimeModuleId[DET_NO_ECU_CORES];       /**< @brief DET module ID*/
+#define DET_STOP_SEC_VAR_CLEARED_16_NO_CACHEABLE
+/*
+ * @violates @ref Det_h_REF_1 Precautions shall be taken in order to prevent the contents of a header file being included more than once
+ * @violates @ref Det_h_REF_2 #Include directives should only be preceded by preprocessor directives or comments
+ */
+#include "Det_MemMap.h"
+
+/*==================================================================================================
+*                                     FUNCTION PROTOTYPES
+==================================================================================================*/
+#define DET_START_SEC_CODE
+#include "Det_MemMap.h"
+
+void Det_Init(void);
+Std_ReturnType Det_ReportError(uint16 ModuleId, uint8 InstanceId, uint8 ApiId, uint8 ErrorId);
+#if defined(ASR_REL_4_0_REV_0003)
+#else
+Std_ReturnType Det_ReportRuntimeError(uint16 ModuleId, uint8 InstanceId, uint8 ApiId, uint8 ErrorId);
+Std_ReturnType Det_ReportTransientFault(uint16 ModuleId, uint8 InstanceId, uint8 ApiId, uint8 FaultId);
+#endif /*if defined(ASR_REL_4_0_REV_0003)*/
+void Det_Start(void);
+
+#define DET_STOP_SEC_CODE
+#include "Det_MemMap.h"
+
+#ifdef __cplusplus
+}
+#endif
+
+/** @} */
+
+#endif /* DET_H */

+ 100 - 100
RTD/include/Det_stub.h

@@ -1,100 +1,100 @@
-/*==================================================================================================
-*   Project              : RTD AUTOSAR 4.4
-*   Platform             : CORTEXM
-*   Peripheral           : 
-*   Dependencies         : none
-*
-*   Autosar Version      : 4.4.0
-*   Autosar Revision     : ASR_REL_4_4_REV_0000
-*   Autosar Conf.Variant :
-*   SW Version           : 1.0.0
-*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
-*
-*   (c) Copyright 2020-2021 NXP Semiconductors
-*   All Rights Reserved.
-*
-*   NXP Confidential. This software is owned or controlled by NXP and may only be
-*   used strictly in accordance with the applicable license terms. By expressly
-*   accepting such terms or by downloading, installing, activating and/or otherwise
-*   using the software, you are agreeing that you have read, and that you agree to
-*   comply with and are bound by, such license terms. If you do not agree to be
-*   bound by the applicable license terms, then you may not retain, install,
-*   activate or otherwise use the software.
-==================================================================================================*/
-
-#ifndef DET_STUB_H
-#define DET_STUB_H
-
-/**
-*   @file Det_stub.h
-*
-*   @addtogroup DET_MODULE
-*   @{
-*/
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-
-/*===============================================================================================
-*                                         INCLUDE FILES
-* 1) system and project includes
-* 2) needed interfaces from external units
-* 3) internal and external interfaces from this unit
-===============================================================================================*/
-#include "Det.h"
-
-/*===============================================================================================
-*                               SOURCE FILE VERSION INFORMATION
-===============================================================================================*/
-
-
-/*===============================================================================================
-*                                      FILE VERSION CHECKS
-===============================================================================================*/
-
-/*===============================================================================================
-*                                           CONSTANTS
-===============================================================================================*/
-
-/*===============================================================================================
-*                                       DEFINES AND MACROS
-===============================================================================================*/
-
-/*===============================================================================================
-*                                             ENUMS
-===============================================================================================*/
-
-/*===============================================================================================
-*                            STRUCTURES AND OTHER TYPEDEFS
-===============================================================================================*/
-
-/*===============================================================================================
-*                                 GLOBAL VARIABLE DECLARATIONS
-===============================================================================================*/
-
-/*===============================================================================================
-                                     FUNCTION PROTOTYPES
-===============================================================================================*/
-#define DET_START_SEC_CODE
-#include "Det_MemMap.h"
-
-extern boolean Det_TestLastReportError(uint16 ModuleId, uint8 InstanceId, uint8 ApiId, uint8 ErrorId);
-extern boolean Det_TestLastReportRuntimeError(uint16 ModuleId, uint8 InstanceId, uint8 ApiId, uint8 ErrorId);
-extern boolean Det_TestLastReportTransientFault(uint16 ModuleId, uint8 InstanceId, uint8 ApiId, uint8 FaultId);
-extern boolean Det_TestNoError(void);
-extern boolean Det_TestNoRuntimeError(void);
-extern boolean Det_TestNoTransientFault(void);
-
-#define DET_STOP_SEC_CODE
-#include "Det_MemMap.h"
-
-#ifdef __cplusplus
-}
-#endif
-
-/** @} */
-
-#endif /* DET_STUB_H */
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : 
+*   Dependencies         : none
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_D2108_ASR_REL_4_4_REV_0000_20210810
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+
+#ifndef DET_STUB_H
+#define DET_STUB_H
+
+/**
+*   @file Det_stub.h
+*
+*   @addtogroup DET_MODULE
+*   @{
+*/
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+
+/*===============================================================================================
+*                                         INCLUDE FILES
+* 1) system and project includes
+* 2) needed interfaces from external units
+* 3) internal and external interfaces from this unit
+===============================================================================================*/
+#include "Det.h"
+
+/*===============================================================================================
+*                               SOURCE FILE VERSION INFORMATION
+===============================================================================================*/
+
+
+/*===============================================================================================
+*                                      FILE VERSION CHECKS
+===============================================================================================*/
+
+/*===============================================================================================
+*                                           CONSTANTS
+===============================================================================================*/
+
+/*===============================================================================================
+*                                       DEFINES AND MACROS
+===============================================================================================*/
+
+/*===============================================================================================
+*                                             ENUMS
+===============================================================================================*/
+
+/*===============================================================================================
+*                            STRUCTURES AND OTHER TYPEDEFS
+===============================================================================================*/
+
+/*===============================================================================================
+*                                 GLOBAL VARIABLE DECLARATIONS
+===============================================================================================*/
+
+/*===============================================================================================
+                                     FUNCTION PROTOTYPES
+===============================================================================================*/
+#define DET_START_SEC_CODE
+#include "Det_MemMap.h"
+
+extern boolean Det_TestLastReportError(uint16 ModuleId, uint8 InstanceId, uint8 ApiId, uint8 ErrorId);
+extern boolean Det_TestLastReportRuntimeError(uint16 ModuleId, uint8 InstanceId, uint8 ApiId, uint8 ErrorId);
+extern boolean Det_TestLastReportTransientFault(uint16 ModuleId, uint8 InstanceId, uint8 ApiId, uint8 FaultId);
+extern boolean Det_TestNoError(void);
+extern boolean Det_TestNoRuntimeError(void);
+extern boolean Det_TestNoTransientFault(void);
+
+#define DET_STOP_SEC_CODE
+#include "Det_MemMap.h"
+
+#ifdef __cplusplus
+}
+#endif
+
+/** @} */
+
+#endif /* DET_STUB_H */

+ 196 - 196
RTD/include/OsIf.h

@@ -1,196 +1,196 @@
-/*==================================================================================================
-* Project : RTD AUTOSAR 4.4
-* Platform : CORTEXM
-* Peripheral : S32K14X
-* Dependencies : none
-*
-* Autosar Version : 4.4.0
-* Autosar Revision : ASR_REL_4_4_REV_0000
-* Autosar Conf.Variant :
-* SW Version : 1.0.0
-* Build Version : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
-*
-* (c) Copyright 2020-2021 NXP Semiconductors
-* All Rights Reserved.
-*
-* NXP Confidential. This software is owned or controlled by NXP and may only be
-* used strictly in accordance with the applicable license terms. By expressly
-* accepting such terms or by downloading, installing, activating and/or otherwise
-* using the software, you are agreeing that you have read, and that you agree to
-* comply with and are bound by, such license terms. If you do not agree to be
-* bound by the applicable license terms, then you may not retain, install,
-* activate or otherwise use the software.
-==================================================================================================*/
-#ifndef OSIF_H
-#define OSIF_H
-
-/**
-*   @file
-*
-*   @addtogroup osif_drv
-*   @{
-*/
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-
-/*==================================================================================================
-*                                          INCLUDE FILES
-* 1) system and project includes
-* 2) needed interfaces from external units
-* 3) internal and external interfaces from this unit
-==================================================================================================*/
-#include "OsIf_Internal.h"
-#include "OsIf_Cfg.h"
-
-/*==================================================================================================
-*                                 SOURCE FILE VERSION INFORMATION
-==================================================================================================*/
-#define OSIF_VENDOR_ID                    43
-#define OSIF_AR_RELEASE_MAJOR_VERSION     4
-#define OSIF_AR_RELEASE_MINOR_VERSION     4
-#define OSIF_AR_RELEASE_REVISION_VERSION  0
-#define OSIF_SW_MAJOR_VERSION             1
-#define OSIF_SW_MINOR_VERSION             0
-#define OSIF_SW_PATCH_VERSION             0
-
-/*==================================================================================================
-*                                       FILE VERSION CHECKS
-==================================================================================================*/
-/* Checks against OsIf_Internal.h */
-#if (OSIF_VENDOR_ID != OSIF_INTERNAL_VENDOR_ID)
-    #error "OsIf.h and OsIf_Internal.h have different vendor ids"
-#endif
-#if ((OSIF_AR_RELEASE_MAJOR_VERSION    != OSIF_INTERNAL_AR_RELEASE_MAJOR_VERSION) || \
-     (OSIF_AR_RELEASE_MINOR_VERSION    != OSIF_INTERNAL_AR_RELEASE_MINOR_VERSION) || \
-     (OSIF_AR_RELEASE_REVISION_VERSION != OSIF_INTERNAL_AR_RELEASE_REVISION_VERSION))
-    #error "AUTOSAR Version Numbers of OsIf.h and OsIf_Internal.h are different"
-#endif
-#if ((OSIF_SW_MAJOR_VERSION != OSIF_INTERNAL_SW_MAJOR_VERSION) || \
-     (OSIF_SW_MINOR_VERSION != OSIF_INTERNAL_SW_MINOR_VERSION) || \
-     (OSIF_SW_PATCH_VERSION != OSIF_INTERNAL_SW_PATCH_VERSION) \
-    )
-    #error "Software Version Numbers of OsIf.h and OsIf_Internal.h are different"
-#endif
-
-/* Checks against OsIf_Cfg.h */
-#if (OSIF_VENDOR_ID != OSIF_CFG_VENDOR_ID)
-    #error "OsIf.h and OsIf_Cfg.h have different vendor ids"
-#endif
-#if ((OSIF_AR_RELEASE_MAJOR_VERSION    != OSIF_CFG_AR_RELEASE_MAJOR_VERSION) || \
-     (OSIF_AR_RELEASE_MINOR_VERSION    != OSIF_CFG_AR_RELEASE_MINOR_VERSION) || \
-     (OSIF_AR_RELEASE_REVISION_VERSION != OSIF_CFG_AR_RELEASE_REVISION_VERSION))
-    #error "AUTOSAR Version Numbers of OsIf.h and OsIf_Cfg.h are different"
-#endif
-#if ((OSIF_SW_MAJOR_VERSION != OSIF_CFG_SW_MAJOR_VERSION) || \
-     (OSIF_SW_MINOR_VERSION != OSIF_CFG_SW_MINOR_VERSION) || \
-     (OSIF_SW_PATCH_VERSION != OSIF_CFG_SW_PATCH_VERSION) \
-    )
-    #error "Software Version Numbers of OsIf.h and OsIf_Cfg.h are different"
-#endif
-
-/*==================================================================================================
-*                                            CONSTANTS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                       DEFINES AND MACROS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                              ENUMS
-==================================================================================================*/
-/*!
- * @brief OsIf Counter type
- *
- * Counter type.
- *
- */
-typedef enum
-{
-    OSIF_COUNTER_DUMMY, /**< dummy counter */
-#if (OSIF_USE_SYSTEM_TIMER == STD_ON)
-    OSIF_COUNTER_SYSTEM, /**< system counter */
-#endif /* (OSIF_USE_SYSTEM_TIMER == STD_ON) */
-#if (OSIF_USE_CUSTOM_TIMER == STD_ON)
-    OSIF_COUNTER_CUSTOM /**< custom counter */
-#endif /* (OSIF_USE_CUSTOM_TIMER == STD_ON) */
-} OsIf_CounterType;
-
-/*==================================================================================================
-*                                  STRUCTURES AND OTHER TYPEDEFS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                  GLOBAL VARIABLE DECLARATIONS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                       FUNCTION PROTOTYPES
-==================================================================================================*/
-#define BASE_START_SEC_CODE
-#include "Base_MemMap.h"
-
-/*!
- * @brief Initialize OsIf
- *
- * This function initializes the OsIf module and should be called during startup, before every
- * other intialization other than Mcu.
- *
- */
-void OsIf_Init(const void* Config);
-
-/*!
- * @brief Get the current value counter
- *
- * This function returns the current value of the counter.
- *
- * @param[in] SelectedCounter the type of counter to use
- * @return the current value of the counter
- */
-uint32 OsIf_GetCounter(OsIf_CounterType SelectedCounter);
-
-/*!
- * @brief Get the elapsed value from a reference point
- *
- * This function returns the delta time in ticks compared to a reference, and updates the reference.
- *
- * @param[inout] CurrentRef reference counter value, updated to current counter value
- * @param[in] SelectedCounter the type of counter to use
- * @return the elapsed time
- */
-uint32 OsIf_GetElapsed(uint32 * const CurrentRef, OsIf_CounterType SelectedCounter);
-
-/*!
- * @brief Set a new frequency used for time conversion (microseconds to ticks)
- *
- * This function stores a new timer frequency used for time conversion computations
- *
- * @param[in] Freq the new frequency
- * @param[in] SelectedCounter the type of counter to use
- */
-void OsIf_SetTimerFrequency(uint32 Freq, OsIf_CounterType SelectedCounter);
-
-/*!
- * @brief Convert microseconds to ticks
- *
- * This function converts a value from microsecond units to ticks units.
- *
- * @param[in] Micros microseconds value
- * @param[in] SelectedCounter the type of counter to use
- * @return the equivalent value in ticks
- */
-uint32 OsIf_MicrosToTicks(uint32 Micros, OsIf_CounterType SelectedCounter);
-
-#define BASE_STOP_SEC_CODE
-#include "Base_MemMap.h"
-
-#ifdef __cplusplus
-}
-#endif
-
-/** @} */
-
-#endif /* OSIF_H */
+/*==================================================================================================
+* Project : RTD AUTOSAR 4.4
+* Platform : CORTEXM
+* Peripheral : S32K14X
+* Dependencies : none
+*
+* Autosar Version : 4.4.0
+* Autosar Revision : ASR_REL_4_4_REV_0000
+* Autosar Conf.Variant :
+* SW Version : 1.0.0
+* Build Version : S32K1_RTD_1_0_0_D2108_ASR_REL_4_4_REV_0000_20210810
+*
+* (c) Copyright 2020-2021 NXP Semiconductors
+* All Rights Reserved.
+*
+* NXP Confidential. This software is owned or controlled by NXP and may only be
+* used strictly in accordance with the applicable license terms. By expressly
+* accepting such terms or by downloading, installing, activating and/or otherwise
+* using the software, you are agreeing that you have read, and that you agree to
+* comply with and are bound by, such license terms. If you do not agree to be
+* bound by the applicable license terms, then you may not retain, install,
+* activate or otherwise use the software.
+==================================================================================================*/
+#ifndef OSIF_H
+#define OSIF_H
+
+/**
+*   @file
+*
+*   @addtogroup osif_drv
+*   @{
+*/
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+/*==================================================================================================
+*                                          INCLUDE FILES
+* 1) system and project includes
+* 2) needed interfaces from external units
+* 3) internal and external interfaces from this unit
+==================================================================================================*/
+#include "OsIf_Internal.h"
+#include "OsIf_Cfg.h"
+
+/*==================================================================================================
+*                                 SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+#define OSIF_VENDOR_ID                    43
+#define OSIF_AR_RELEASE_MAJOR_VERSION     4
+#define OSIF_AR_RELEASE_MINOR_VERSION     4
+#define OSIF_AR_RELEASE_REVISION_VERSION  0
+#define OSIF_SW_MAJOR_VERSION             1
+#define OSIF_SW_MINOR_VERSION             0
+#define OSIF_SW_PATCH_VERSION             0
+
+/*==================================================================================================
+*                                       FILE VERSION CHECKS
+==================================================================================================*/
+/* Checks against OsIf_Internal.h */
+#if (OSIF_VENDOR_ID != OSIF_INTERNAL_VENDOR_ID)
+    #error "OsIf.h and OsIf_Internal.h have different vendor ids"
+#endif
+#if ((OSIF_AR_RELEASE_MAJOR_VERSION    != OSIF_INTERNAL_AR_RELEASE_MAJOR_VERSION) || \
+     (OSIF_AR_RELEASE_MINOR_VERSION    != OSIF_INTERNAL_AR_RELEASE_MINOR_VERSION) || \
+     (OSIF_AR_RELEASE_REVISION_VERSION != OSIF_INTERNAL_AR_RELEASE_REVISION_VERSION))
+    #error "AUTOSAR Version Numbers of OsIf.h and OsIf_Internal.h are different"
+#endif
+#if ((OSIF_SW_MAJOR_VERSION != OSIF_INTERNAL_SW_MAJOR_VERSION) || \
+     (OSIF_SW_MINOR_VERSION != OSIF_INTERNAL_SW_MINOR_VERSION) || \
+     (OSIF_SW_PATCH_VERSION != OSIF_INTERNAL_SW_PATCH_VERSION) \
+    )
+    #error "Software Version Numbers of OsIf.h and OsIf_Internal.h are different"
+#endif
+
+/* Checks against OsIf_Cfg.h */
+#if (OSIF_VENDOR_ID != OSIF_CFG_VENDOR_ID)
+    #error "OsIf.h and OsIf_Cfg.h have different vendor ids"
+#endif
+#if ((OSIF_AR_RELEASE_MAJOR_VERSION    != OSIF_CFG_AR_RELEASE_MAJOR_VERSION) || \
+     (OSIF_AR_RELEASE_MINOR_VERSION    != OSIF_CFG_AR_RELEASE_MINOR_VERSION) || \
+     (OSIF_AR_RELEASE_REVISION_VERSION != OSIF_CFG_AR_RELEASE_REVISION_VERSION))
+    #error "AUTOSAR Version Numbers of OsIf.h and OsIf_Cfg.h are different"
+#endif
+#if ((OSIF_SW_MAJOR_VERSION != OSIF_CFG_SW_MAJOR_VERSION) || \
+     (OSIF_SW_MINOR_VERSION != OSIF_CFG_SW_MINOR_VERSION) || \
+     (OSIF_SW_PATCH_VERSION != OSIF_CFG_SW_PATCH_VERSION) \
+    )
+    #error "Software Version Numbers of OsIf.h and OsIf_Cfg.h are different"
+#endif
+
+/*==================================================================================================
+*                                            CONSTANTS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                       DEFINES AND MACROS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                              ENUMS
+==================================================================================================*/
+/*!
+ * @brief OsIf Counter type
+ *
+ * Counter type.
+ *
+ */
+typedef enum
+{
+    OSIF_COUNTER_DUMMY, /**< dummy counter */
+#if (OSIF_USE_SYSTEM_TIMER == STD_ON)
+    OSIF_COUNTER_SYSTEM, /**< system counter */
+#endif /* (OSIF_USE_SYSTEM_TIMER == STD_ON) */
+#if (OSIF_USE_CUSTOM_TIMER == STD_ON)
+    OSIF_COUNTER_CUSTOM /**< custom counter */
+#endif /* (OSIF_USE_CUSTOM_TIMER == STD_ON) */
+} OsIf_CounterType;
+
+/*==================================================================================================
+*                                  STRUCTURES AND OTHER TYPEDEFS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                  GLOBAL VARIABLE DECLARATIONS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                       FUNCTION PROTOTYPES
+==================================================================================================*/
+#define BASE_START_SEC_CODE
+#include "Base_MemMap.h"
+
+/*!
+ * @brief Initialize OsIf
+ *
+ * This function initializes the OsIf module and should be called during startup, before every
+ * other intialization other than Mcu.
+ *
+ */
+void OsIf_Init(const void* Config);
+
+/*!
+ * @brief Get the current value counter
+ *
+ * This function returns the current value of the counter.
+ *
+ * @param[in] SelectedCounter the type of counter to use
+ * @return the current value of the counter
+ */
+uint32 OsIf_GetCounter(OsIf_CounterType SelectedCounter);
+
+/*!
+ * @brief Get the elapsed value from a reference point
+ *
+ * This function returns the delta time in ticks compared to a reference, and updates the reference.
+ *
+ * @param[inout] CurrentRef reference counter value, updated to current counter value
+ * @param[in] SelectedCounter the type of counter to use
+ * @return the elapsed time
+ */
+uint32 OsIf_GetElapsed(uint32 * const CurrentRef, OsIf_CounterType SelectedCounter);
+
+/*!
+ * @brief Set a new frequency used for time conversion (microseconds to ticks)
+ *
+ * This function stores a new timer frequency used for time conversion computations
+ *
+ * @param[in] Freq the new frequency
+ * @param[in] SelectedCounter the type of counter to use
+ */
+void OsIf_SetTimerFrequency(uint32 Freq, OsIf_CounterType SelectedCounter);
+
+/*!
+ * @brief Convert microseconds to ticks
+ *
+ * This function converts a value from microsecond units to ticks units.
+ *
+ * @param[in] Micros microseconds value
+ * @param[in] SelectedCounter the type of counter to use
+ * @return the equivalent value in ticks
+ */
+uint32 OsIf_MicrosToTicks(uint32 Micros, OsIf_CounterType SelectedCounter);
+
+#define BASE_STOP_SEC_CODE
+#include "Base_MemMap.h"
+
+#ifdef __cplusplus
+}
+#endif
+
+/** @} */
+
+#endif /* OSIF_H */

+ 165 - 165
RTD/include/OsIf_Cfg_TypesDef.h

@@ -1,165 +1,165 @@
-/*==================================================================================================
-* Project : RTD AUTOSAR 4.4
-* Platform : CORTEXM
-* Peripheral : S32K14X
-* Dependencies : none
-*
-* Autosar Version : 4.4.0
-* Autosar Revision : ASR_REL_4_4_REV_0000
-* Autosar Conf.Variant :
-* SW Version : 1.0.0
-* Build Version : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
-*
-* (c) Copyright 2020-2021 NXP Semiconductors
-* All Rights Reserved.
-*
-* NXP Confidential. This software is owned or controlled by NXP and may only be
-* used strictly in accordance with the applicable license terms. By expressly
-* accepting such terms or by downloading, installing, activating and/or otherwise
-* using the software, you are agreeing that you have read, and that you agree to
-* comply with and are bound by, such license terms. If you do not agree to be
-* bound by the applicable license terms, then you may not retain, install,
-* activate or otherwise use the software.
-==================================================================================================*/
-#ifndef OSIF_CFG_TYPESDEF_H
-#define OSIF_CFG_TYPESDEF_H
-
-/**
-*   @file       OsIf_Cfg_TypesDef.h
-*   @version 1.0.0
-*
-*
-*   @addtogroup osif_drv
-*   @{
-*/
-
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-/*==================================================================================================
-*                                          INCLUDE FILES
-* 1) system and project includes
-* 2) needed interfaces from external units
-* 3) internal and external interfaces from this unit
-==================================================================================================*/
-#include "StandardTypes.h"
-#include "OsIf_Cfg.h"
-
-#if STD_ON == OSIF_DEV_ERROR_DETECT
-#if defined(USING_OS_AUTOSAROS)
-#include "Det.h"
-#endif /* defined(USING_OS_AUTOSAROS) */
-#include "Devassert.h"
-#define OSIF_DEV_ASSERT(x) DevAssert(x)
-#else
-#define OSIF_DEV_ASSERT(x) (void)(x)
-#endif /* STD_ON == OSIF_DEV_ERROR_DETECT */
-
-/*==================================================================================================
-*                                 SOURCE FILE VERSION INFORMATION
-==================================================================================================*/
-#define OSIF_CFG_TYPESDEF_VENDOR_ID                    43
-#define OSIF_CFG_TYPESDEF_AR_RELEASE_MAJOR_VERSION     4
-#define OSIF_CFG_TYPESDEF_AR_RELEASE_MINOR_VERSION     4
-#define OSIF_CFG_TYPESDEF_AR_RELEASE_REVISION_VERSION  0
-#define OSIF_CFG_TYPESDEF_SW_MAJOR_VERSION             1
-#define OSIF_CFG_TYPESDEF_SW_MINOR_VERSION             0
-#define OSIF_CFG_TYPESDEF_SW_PATCH_VERSION             0
-
-/*==================================================================================================
-*                                       FILE VERSION CHECKS
-==================================================================================================*/
-/* Checks against OsIf_Cfg.h */
-#if (OSIF_CFG_TYPESDEF_VENDOR_ID != OSIF_CFG_VENDOR_ID)
-    #error "OsIf_Cfg_TypesDef.h and OsIf_Cfg.h have different vendor ids"
-#endif
-#if ((OSIF_CFG_TYPESDEF_AR_RELEASE_MAJOR_VERSION    != OSIF_CFG_AR_RELEASE_MAJOR_VERSION) || \
-     (OSIF_CFG_TYPESDEF_AR_RELEASE_MINOR_VERSION    != OSIF_CFG_AR_RELEASE_MINOR_VERSION) || \
-     (OSIF_CFG_TYPESDEF_AR_RELEASE_REVISION_VERSION != OSIF_CFG_AR_RELEASE_REVISION_VERSION))
-    #error "AUTOSAR Version Numbers of OsIf_Cfg_TypesDef.h and OsIf_Cfg.h are different"
-#endif
-#if ((OSIF_CFG_TYPESDEF_SW_MAJOR_VERSION != OSIF_CFG_SW_MAJOR_VERSION) || \
-     (OSIF_CFG_TYPESDEF_SW_MINOR_VERSION != OSIF_CFG_SW_MINOR_VERSION) || \
-     (OSIF_CFG_TYPESDEF_SW_PATCH_VERSION != OSIF_CFG_SW_PATCH_VERSION) \
-    )
-    #error "Software Version Numbers of OsIf_Cfg_TypesDef.h and OsIf_Cfg.h are different"
-#endif
-
-/* Checks against StandardTypes.h */
-#ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
-    #if ((OSIF_CFG_TYPESDEF_AR_RELEASE_MAJOR_VERSION != STD_AR_RELEASE_MAJOR_VERSION) || \
-         (OSIF_CFG_TYPESDEF_AR_RELEASE_MINOR_VERSION != STD_AR_RELEASE_MINOR_VERSION))
-        #error "AutoSar Version Numbers of OsIf_Cfg_TypesDef.h and StandardTypes.h are different"
-    #endif
-#endif
-
-#if STD_ON == OSIF_DEV_ERROR_DETECT
-#if defined(USING_OS_AUTOSAROS)
-/* Checks against Det.h */
-#ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
-    #if ((OSIF_CFG_TYPESDEF_AR_RELEASE_MAJOR_VERSION != DET_AR_RELEASE_MAJOR_VERSION) || \
-         (OSIF_CFG_TYPESDEF_AR_RELEASE_MINOR_VERSION != DET_AR_RELEASE_MINOR_VERSION))
-        #error "AutoSar Version Numbers of OsIf_Cfg_TypesDef.h and Det.h are different"
-    #endif
-#endif
-#endif /* defined(USING_OS_AUTOSAROS) */
-
-/* Checks against Devassert.h */
-#ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
-    #if ((OSIF_CFG_TYPESDEF_AR_RELEASE_MAJOR_VERSION != DEVASSERT_AR_RELEASE_MAJOR_VERSION) || \
-         (OSIF_CFG_TYPESDEF_AR_RELEASE_MINOR_VERSION != DEVASSERT_AR_RELEASE_MINOR_VERSION))
-        #error "AutoSar Version Numbers of OsIf_Cfg_TypesDef.h and Devassert.h are different"
-    #endif
-#endif
-#endif /* STD_ON == OSIF_DEV_ERROR_DETECT */
-
-/*==================================================================================================
-*                                            CONSTANTS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                       DEFINES AND MACROS
-==================================================================================================*/
-/* OSIF Service IDs */
-#define OSIF_SID_INIT                    (0x01U)
-#define OSIF_SID_GETCOUNTER              (0x02U)
-#define OSIF_SID_GETELAPSED              (0x03U)
-#define OSIF_SID_SETTIMERFREQ            (0x04U)
-#define OSIF_SID_US2TICKS                (0x05U)
-
-/* OSIF DET Error Codes */                    
-#define OSIF_E_UNINIT                    (0x01U)
-#define OSIF_E_INV_API                   (0x02U)
-#define OSIF_E_INV_CORE_IDX              (0x03U)
-#define OSIF_E_INIT_FAILED               (0x04U)
-
-/*==================================================================================================
-*                                              ENUMS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                  STRUCTURES AND OTHER TYPEDEFS
-==================================================================================================*/
-typedef struct 
-{
-    uint32 counterId;
-    uint32 counterFrequency;
-} OsIf_ConfigType;
-
-/*==================================================================================================
-*                                  GLOBAL VARIABLE DECLARATIONS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                       FUNCTION PROTOTYPES
-==================================================================================================*/
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-  
-/** @} */
-
-#endif /* OSIF_CFG_TYPESDEF_H */
+/*==================================================================================================
+* Project : RTD AUTOSAR 4.4
+* Platform : CORTEXM
+* Peripheral : S32K14X
+* Dependencies : none
+*
+* Autosar Version : 4.4.0
+* Autosar Revision : ASR_REL_4_4_REV_0000
+* Autosar Conf.Variant :
+* SW Version : 1.0.0
+* Build Version : S32K1_RTD_1_0_0_D2108_ASR_REL_4_4_REV_0000_20210810
+*
+* (c) Copyright 2020-2021 NXP Semiconductors
+* All Rights Reserved.
+*
+* NXP Confidential. This software is owned or controlled by NXP and may only be
+* used strictly in accordance with the applicable license terms. By expressly
+* accepting such terms or by downloading, installing, activating and/or otherwise
+* using the software, you are agreeing that you have read, and that you agree to
+* comply with and are bound by, such license terms. If you do not agree to be
+* bound by the applicable license terms, then you may not retain, install,
+* activate or otherwise use the software.
+==================================================================================================*/
+#ifndef OSIF_CFG_TYPESDEF_H
+#define OSIF_CFG_TYPESDEF_H
+
+/**
+*   @file       OsIf_Cfg_TypesDef.h
+*   @version 1.0.0
+*
+*
+*   @addtogroup osif_drv
+*   @{
+*/
+
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+/*==================================================================================================
+*                                          INCLUDE FILES
+* 1) system and project includes
+* 2) needed interfaces from external units
+* 3) internal and external interfaces from this unit
+==================================================================================================*/
+#include "StandardTypes.h"
+#include "OsIf_Cfg.h"
+
+#if STD_ON == OSIF_DEV_ERROR_DETECT
+#if defined(USING_OS_AUTOSAROS)
+#include "Det.h"
+#endif /* defined(USING_OS_AUTOSAROS) */
+#include "Devassert.h"
+#define OSIF_DEV_ASSERT(x) DevAssert(x)
+#else
+#define OSIF_DEV_ASSERT(x) (void)(x)
+#endif /* STD_ON == OSIF_DEV_ERROR_DETECT */
+
+/*==================================================================================================
+*                                 SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+#define OSIF_CFG_TYPESDEF_VENDOR_ID                    43
+#define OSIF_CFG_TYPESDEF_AR_RELEASE_MAJOR_VERSION     4
+#define OSIF_CFG_TYPESDEF_AR_RELEASE_MINOR_VERSION     4
+#define OSIF_CFG_TYPESDEF_AR_RELEASE_REVISION_VERSION  0
+#define OSIF_CFG_TYPESDEF_SW_MAJOR_VERSION             1
+#define OSIF_CFG_TYPESDEF_SW_MINOR_VERSION             0
+#define OSIF_CFG_TYPESDEF_SW_PATCH_VERSION             0
+
+/*==================================================================================================
+*                                       FILE VERSION CHECKS
+==================================================================================================*/
+/* Checks against OsIf_Cfg.h */
+#if (OSIF_CFG_TYPESDEF_VENDOR_ID != OSIF_CFG_VENDOR_ID)
+    #error "OsIf_Cfg_TypesDef.h and OsIf_Cfg.h have different vendor ids"
+#endif
+#if ((OSIF_CFG_TYPESDEF_AR_RELEASE_MAJOR_VERSION    != OSIF_CFG_AR_RELEASE_MAJOR_VERSION) || \
+     (OSIF_CFG_TYPESDEF_AR_RELEASE_MINOR_VERSION    != OSIF_CFG_AR_RELEASE_MINOR_VERSION) || \
+     (OSIF_CFG_TYPESDEF_AR_RELEASE_REVISION_VERSION != OSIF_CFG_AR_RELEASE_REVISION_VERSION))
+    #error "AUTOSAR Version Numbers of OsIf_Cfg_TypesDef.h and OsIf_Cfg.h are different"
+#endif
+#if ((OSIF_CFG_TYPESDEF_SW_MAJOR_VERSION != OSIF_CFG_SW_MAJOR_VERSION) || \
+     (OSIF_CFG_TYPESDEF_SW_MINOR_VERSION != OSIF_CFG_SW_MINOR_VERSION) || \
+     (OSIF_CFG_TYPESDEF_SW_PATCH_VERSION != OSIF_CFG_SW_PATCH_VERSION) \
+    )
+    #error "Software Version Numbers of OsIf_Cfg_TypesDef.h and OsIf_Cfg.h are different"
+#endif
+
+/* Checks against StandardTypes.h */
+#ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
+    #if ((OSIF_CFG_TYPESDEF_AR_RELEASE_MAJOR_VERSION != STD_AR_RELEASE_MAJOR_VERSION) || \
+         (OSIF_CFG_TYPESDEF_AR_RELEASE_MINOR_VERSION != STD_AR_RELEASE_MINOR_VERSION))
+        #error "AutoSar Version Numbers of OsIf_Cfg_TypesDef.h and StandardTypes.h are different"
+    #endif
+#endif
+
+#if STD_ON == OSIF_DEV_ERROR_DETECT
+#if defined(USING_OS_AUTOSAROS)
+/* Checks against Det.h */
+#ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
+    #if ((OSIF_CFG_TYPESDEF_AR_RELEASE_MAJOR_VERSION != DET_AR_RELEASE_MAJOR_VERSION) || \
+         (OSIF_CFG_TYPESDEF_AR_RELEASE_MINOR_VERSION != DET_AR_RELEASE_MINOR_VERSION))
+        #error "AutoSar Version Numbers of OsIf_Cfg_TypesDef.h and Det.h are different"
+    #endif
+#endif
+#endif /* defined(USING_OS_AUTOSAROS) */
+
+/* Checks against Devassert.h */
+#ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
+    #if ((OSIF_CFG_TYPESDEF_AR_RELEASE_MAJOR_VERSION != DEVASSERT_AR_RELEASE_MAJOR_VERSION) || \
+         (OSIF_CFG_TYPESDEF_AR_RELEASE_MINOR_VERSION != DEVASSERT_AR_RELEASE_MINOR_VERSION))
+        #error "AutoSar Version Numbers of OsIf_Cfg_TypesDef.h and Devassert.h are different"
+    #endif
+#endif
+#endif /* STD_ON == OSIF_DEV_ERROR_DETECT */
+
+/*==================================================================================================
+*                                            CONSTANTS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                       DEFINES AND MACROS
+==================================================================================================*/
+/* OSIF Service IDs */
+#define OSIF_SID_INIT                    (0x01U)
+#define OSIF_SID_GETCOUNTER              (0x02U)
+#define OSIF_SID_GETELAPSED              (0x03U)
+#define OSIF_SID_SETTIMERFREQ            (0x04U)
+#define OSIF_SID_US2TICKS                (0x05U)
+
+/* OSIF DET Error Codes */                    
+#define OSIF_E_UNINIT                    (0x01U)
+#define OSIF_E_INV_API                   (0x02U)
+#define OSIF_E_INV_CORE_IDX              (0x03U)
+#define OSIF_E_INIT_FAILED               (0x04U)
+
+/*==================================================================================================
+*                                              ENUMS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                  STRUCTURES AND OTHER TYPEDEFS
+==================================================================================================*/
+typedef struct 
+{
+    uint32 counterId;
+    uint32 counterFrequency;
+} OsIf_ConfigType;
+
+/*==================================================================================================
+*                                  GLOBAL VARIABLE DECLARATIONS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                       FUNCTION PROTOTYPES
+==================================================================================================*/
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+  
+/** @} */
+
+#endif /* OSIF_CFG_TYPESDEF_H */

+ 74 - 74
RTD/include/OsIf_DeviceRegisters.h

@@ -1,74 +1,74 @@
-/*==================================================================================================
-* Project : RTD AUTOSAR 4.4
-* Platform : CORTEXM
-* Peripheral : S32K14X
-* Dependencies : none
-*
-* Autosar Version : 4.4.0
-* Autosar Revision : ASR_REL_4_4_REV_0000
-* Autosar Conf.Variant :
-* SW Version : 1.0.0
-* Build Version : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
-*
-* (c) Copyright 2020-2021 NXP Semiconductors
-* All Rights Reserved.
-*
-* NXP Confidential. This software is owned or controlled by NXP and may only be
-* used strictly in accordance with the applicable license terms. By expressly
-* accepting such terms or by downloading, installing, activating and/or otherwise
-* using the software, you are agreeing that you have read, and that you agree to
-* comply with and are bound by, such license terms. If you do not agree to be
-* bound by the applicable license terms, then you may not retain, install,
-* activate or otherwise use the software.
-==================================================================================================*/
-#ifndef OSIF_DEVICE_REGISTERS_H
-#define OSIF_DEVICE_REGISTERS_H
-
-/*==================================================================================================
-*                                          INCLUDE FILES
-* 1) system and project includes
-* 2) needed interfaces from external units
-* 3) internal and external interfaces from this unit
-==================================================================================================*/
-
-
-/*==================================================================================================
-*                                 SOURCE FILE VERSION INFORMATION
-==================================================================================================*/
-#define OSIF_DEVICE_REGISTERS_VENDOR_ID                    43
-#define OSIF_DEVICE_REGISTERS_AR_RELEASE_MAJOR_VERSION     4
-#define OSIF_DEVICE_REGISTERS_AR_RELEASE_MINOR_VERSION     4
-#define OSIF_DEVICE_REGISTERS_AR_RELEASE_REVISION_VERSION  0
-#define OSIF_DEVICE_REGISTERS_SW_MAJOR_VERSION             1
-#define OSIF_DEVICE_REGISTERS_SW_MINOR_VERSION             0
-#define OSIF_DEVICE_REGISTERS_SW_PATCH_VERSION             0
-
-/*==================================================================================================
-*                                       FILE VERSION CHECKS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                            CONSTANTS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                       DEFINES AND MACROS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                              ENUMS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                  STRUCTURES AND OTHER TYPEDEFS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                  GLOBAL VARIABLE DECLARATIONS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                       FUNCTION PROTOTYPES
-==================================================================================================*/
-
-#endif /* OSIF_DEVICE_REGISTERS_H */
+/*==================================================================================================
+* Project : RTD AUTOSAR 4.4
+* Platform : CORTEXM
+* Peripheral : S32K14X
+* Dependencies : none
+*
+* Autosar Version : 4.4.0
+* Autosar Revision : ASR_REL_4_4_REV_0000
+* Autosar Conf.Variant :
+* SW Version : 1.0.0
+* Build Version : S32K1_RTD_1_0_0_D2108_ASR_REL_4_4_REV_0000_20210810
+*
+* (c) Copyright 2020-2021 NXP Semiconductors
+* All Rights Reserved.
+*
+* NXP Confidential. This software is owned or controlled by NXP and may only be
+* used strictly in accordance with the applicable license terms. By expressly
+* accepting such terms or by downloading, installing, activating and/or otherwise
+* using the software, you are agreeing that you have read, and that you agree to
+* comply with and are bound by, such license terms. If you do not agree to be
+* bound by the applicable license terms, then you may not retain, install,
+* activate or otherwise use the software.
+==================================================================================================*/
+#ifndef OSIF_DEVICE_REGISTERS_H
+#define OSIF_DEVICE_REGISTERS_H
+
+/*==================================================================================================
+*                                          INCLUDE FILES
+* 1) system and project includes
+* 2) needed interfaces from external units
+* 3) internal and external interfaces from this unit
+==================================================================================================*/
+
+
+/*==================================================================================================
+*                                 SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+#define OSIF_DEVICE_REGISTERS_VENDOR_ID                    43
+#define OSIF_DEVICE_REGISTERS_AR_RELEASE_MAJOR_VERSION     4
+#define OSIF_DEVICE_REGISTERS_AR_RELEASE_MINOR_VERSION     4
+#define OSIF_DEVICE_REGISTERS_AR_RELEASE_REVISION_VERSION  0
+#define OSIF_DEVICE_REGISTERS_SW_MAJOR_VERSION             1
+#define OSIF_DEVICE_REGISTERS_SW_MINOR_VERSION             0
+#define OSIF_DEVICE_REGISTERS_SW_PATCH_VERSION             0
+
+/*==================================================================================================
+*                                       FILE VERSION CHECKS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                            CONSTANTS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                       DEFINES AND MACROS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                              ENUMS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                  STRUCTURES AND OTHER TYPEDEFS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                  GLOBAL VARIABLE DECLARATIONS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                       FUNCTION PROTOTYPES
+==================================================================================================*/
+
+#endif /* OSIF_DEVICE_REGISTERS_H */

+ 255 - 255
RTD/include/OsIf_Internal.h

@@ -1,255 +1,255 @@
-/*==================================================================================================
-* Project : RTD AUTOSAR 4.4
-* Platform : CORTEXM
-* Peripheral : S32K14X
-* Dependencies : none
-*
-* Autosar Version : 4.4.0
-* Autosar Revision : ASR_REL_4_4_REV_0000
-* Autosar Conf.Variant :
-* SW Version : 1.0.0
-* Build Version : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
-*
-* (c) Copyright 2020-2021 NXP Semiconductors
-* All Rights Reserved.
-*
-* NXP Confidential. This software is owned or controlled by NXP and may only be
-* used strictly in accordance with the applicable license terms. By expressly
-* accepting such terms or by downloading, installing, activating and/or otherwise
-* using the software, you are agreeing that you have read, and that you agree to
-* comply with and are bound by, such license terms. If you do not agree to be
-* bound by the applicable license terms, then you may not retain, install,
-* activate or otherwise use the software.
-==================================================================================================*/
-#ifndef OSIF_INTERNAL_H
-#define OSIF_INTERNAL_H
-
-/**
-*   @file
-*   @implements OsIf_Internal.h_Artifact
-*   @addtogroup osif_drv
-*   @{
-*/
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-/*==================================================================================================
-*                                          INCLUDE FILES
-* 1) system and project includes
-* 2) needed interfaces from external units
-* 3) internal and external interfaces from this unit
-==================================================================================================*/
-#include "StandardTypes.h"
-#include "Soc_Ips.h"
-#include "OsIf_Cfg.h"
-
-#if defined(USING_OS_AUTOSAROS)
-#include "Os.h"
-#endif /* defined(USING_OS_AUTOSAROS) */
-
-#if !defined(USING_OS_AUTOSAROS)
-#ifdef MCAL_ENABLE_USER_MODE_SUPPORT
-/* prototypes defined in system.h*/
-uint32 Sys_GoToUser_Return(uint32 u32SwitchToSupervisor, uint32 u32returnValue);
-uint32 Sys_GoToSupervisor(void);
-uint32 Sys_GoToUser(void);
-void Sys_SuspendInterrupts(void);
-void Sys_ResumeInterrupts(void);
-#endif /* def MCAL_ENABLE_USER_MODE_SUPPORT */
-uint8 Sys_GetCoreID(void);
-#endif /* !defined(USING_OS_AUTOSAROS) */
-
-/*==================================================================================================
-*                                 SOURCE FILE VERSION INFORMATION
-==================================================================================================*/
-#define OSIF_INTERNAL_VENDOR_ID                    43
-#define OSIF_INTERNAL_AR_RELEASE_MAJOR_VERSION     4
-#define OSIF_INTERNAL_AR_RELEASE_MINOR_VERSION     4
-#define OSIF_INTERNAL_AR_RELEASE_REVISION_VERSION  0
-#define OSIF_INTERNAL_SW_MAJOR_VERSION             1
-#define OSIF_INTERNAL_SW_MINOR_VERSION             0
-#define OSIF_INTERNAL_SW_PATCH_VERSION             0
-
-/*==================================================================================================
-*                                       FILE VERSION CHECKS
-==================================================================================================*/
-/* Checks against StandardTypes.h */
-#ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
-    #if ((OSIF_INTERNAL_AR_RELEASE_MAJOR_VERSION != STD_AR_RELEASE_MAJOR_VERSION) || \
-         (OSIF_INTERNAL_AR_RELEASE_MINOR_VERSION != STD_AR_RELEASE_MINOR_VERSION))
-        #error "AutoSar Version Numbers of OsIf_Internal.h and StandardTypes.h are different"
-    #endif
-#endif
-
-/* Checks against Soc_Ips.h */
-#ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
-    #if ((OSIF_INTERNAL_AR_RELEASE_MAJOR_VERSION != SOC_IPS_AR_RELEASE_MAJOR_VERSION) || \
-         (OSIF_INTERNAL_AR_RELEASE_MINOR_VERSION != SOC_IPS_AR_RELEASE_MINOR_VERSION))
-        #error "AutoSar Version Numbers of OsIf_Internal.h and Soc_Ips.h are different"
-    #endif
-#endif
-
-#if defined(USING_OS_AUTOSAROS)
-/* Checks against Os.h */
-#ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
-    #if ((OSIF_INTERNAL_AR_RELEASE_MAJOR_VERSION != OS_AR_RELEASE_MAJOR_VERSION) || \
-         (OSIF_INTERNAL_AR_RELEASE_MINOR_VERSION != OS_AR_RELEASE_MINOR_VERSION))
-        #error "AutoSar Version Numbers of OsIf_Internal.h and Os.h are different"
-    #endif
-#endif
-#endif /* defined(USING_OS_AUTOSAROS) */
-
-/*==================================================================================================
-*                                            CONSTANTS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                       DEFINES AND MACROS
-==================================================================================================*/
-
-/*
- * OsIf_Trusted_Call*
- */
-#ifdef MCAL_ENABLE_USER_MODE_SUPPORT
-#ifdef USING_OS_AUTOSAROS
-#define OsIf_Trusted_Call(name)                                                  Call_##name##_TRUSTED()
-#define OsIf_Trusted_Call1param(name,param)                                      Call_##name##_TRUSTED(param)
-#define OsIf_Trusted_Call2params(name,param1,param2)                             Call_##name##_TRUSTED(param1,param2)
-#define OsIf_Trusted_Call3params(name,param1,param2,param3)                      Call_##name##_TRUSTED(param1,param2,param3)
-#define OsIf_Trusted_Call4params(name,param1,param2,param3,param4)               Call_##name##_TRUSTED(param1,param2,param3,param4)
-#define OsIf_Trusted_Call5params(name,param1,param2,param3,param4,param5)        Call_##name##_TRUSTED(param1,param2,param3,param4,param5)
-#define OsIf_Trusted_Call6params(name,param1,param2,param3,param4,param5,param6) Call_##name##_TRUSTED(param1,param2,param3,param4,param5,param6)
-
-#define OsIf_Trusted_Call_Return(name)                                                 Call_##name##_TRUSTED()
-#define OsIf_Trusted_Call_Return1param(name,param1)                                    Call_##name##_TRUSTED(param1)
-#define OsIf_Trusted_Call_Return2param(name,param1,param2)                             Call_##name##_TRUSTED(param1,param2)
-#define OsIf_Trusted_Call_Return3param(name,param1,param2,param3)                      Call_##name##_TRUSTED(param1,param2,param3)
-#define OsIf_Trusted_Call_Return4param(name,param1,param2,param3,param4)               Call_##name##_TRUSTED(param1,param2,param3,param4)
-#define OsIf_Trusted_Call_Return5param(name,param1,param2,param3,param4,param5)        Call_##name##_TRUSTED(param1,param2,param3,param4,param5)
-#define OsIf_Trusted_Call_Return6param(name,param1,param2,param3,param4,param5,param6) Call_##name##_TRUSTED(param1,param2,param3,param4,param5,param6)
-
-#else /* USING_OS_AUTOSAROS */
-/* Baremetal and FreeRTOS */
-#define OsIf_Trusted_Call(name)  \
-    ((1UL == Sys_GoToSupervisor()) ? (name(), (void)Sys_GoToUser()) : (name(),(void)0U))
-#define OsIf_Trusted_Call1param(name,param)  \
-    ((1UL == Sys_GoToSupervisor()) ? (name(param), (void)Sys_GoToUser()) : (name(param),(void)0U))
-#define OsIf_Trusted_Call2params(name,param1,param2)  \
-    ((1UL == Sys_GoToSupervisor()) ? (name(param1,param2), (void)Sys_GoToUser()) : (name(param1,param2),(void)0U))
-#define OsIf_Trusted_Call3params(name,param1,param2,param3)  \
-    ((1UL == Sys_GoToSupervisor()) ? (name(param1,param2,param3), (void)Sys_GoToUser()) : (name(param1,param2,param3),(void)0U))
-#define OsIf_Trusted_Call4params(name,param1,param2,param3,param4)  \
-    ((1UL == Sys_GoToSupervisor()) ? (name(param1,param2,param3,param4), (void)Sys_GoToUser()) : (name(param1,param2,param3,param4),(void)0U))
-#define OsIf_Trusted_Call5params(name,param1,param2,param3,param4,param5)  \
-    ((1UL == Sys_GoToSupervisor()) ? (name(param1,param2,param3,param4,param5), (void)Sys_GoToUser()) : (name(param1,param2,param3,param4,param5),(void)0U))
-#define OsIf_Trusted_Call6params(name,param1,param2,param3,param4,param5,param6)  \
-    ((1UL == Sys_GoToSupervisor()) ? (name(param1,param2,param3,param4,param5,param6), (void)Sys_GoToUser()) : (name(param1,param2,param3,param4,param5,param6),(void)0U))
-
-#define OsIf_Trusted_Call_Return(name)  \
-    ((1UL == Sys_GoToSupervisor()) ?  Sys_GoToUser_Return(1U, name()) :  Sys_GoToUser_Return(0U, name()))
-#define OsIf_Trusted_Call_Return1param(name,param)  \
-    ((1UL == Sys_GoToSupervisor()) ?  Sys_GoToUser_Return(1U, name(param)) :  Sys_GoToUser_Return(0U, name(param)))
-#define OsIf_Trusted_Call_Return2param(name,param1,param2)  \
-    ((1UL == Sys_GoToSupervisor()) ?  Sys_GoToUser_Return(1U, name(param1,param2)) : Sys_GoToUser_Return(0U, name(param1,param2)))
-#define OsIf_Trusted_Call_Return3param(name,param1,param2,param3)  \
-    ((1UL == Sys_GoToSupervisor()) ?  Sys_GoToUser_Return(1U, name(param1,param2,param3)) :  Sys_GoToUser_Return(0U, name(param1,param2,param3)))
-#define OsIf_Trusted_Call_Return4param(name,param1,param2,param3,param4)  \
-    ((1UL == Sys_GoToSupervisor()) ?  Sys_GoToUser_Return(1U, name(param1,param2,param3,param4)) :  Sys_GoToUser_Return(0U, name(param1,param2,param3,param4)))
-#define OsIf_Trusted_Call_Return5param(name,param1,param2,param3,param4,param5)  \
-    ((1UL == Sys_GoToSupervisor()) ?  Sys_GoToUser_Return(1U, name(param1,param2,param3,param4,param5)) :  Sys_GoToUser_Return(0U, name(param1,param2,param3,param4,param5)))
-#define OsIf_Trusted_Call_Return6param(name,param1,param2,param3,param4,param5,param6)  \
-    ((1UL == Sys_GoToSupervisor()) ?  Sys_GoToUser_Return(1U, name(param1,param2,param3,param4,param5,param6)) :  Sys_GoToUser_Return(0U, name(param1,param2,param3,param4,param5,param6)))
-#endif /* USING_OS_AUTOSAROS */
-#endif /* MCAL_ENABLE_USER_MODE_SUPPORT */
-
-/*
- * OsIf_GetCoreID
- */
-#ifdef USING_OS_AUTOSAROS
-    #if STD_ON == OSIF_ENABLE_MULTICORE_SUPPORT
-        #ifdef MCAL_ENABLE_USER_MODE_SUPPORT
-            #define OsIf_GetCoreID()    OsIf_Trusted_Call_Return(GetCoreID)
-        #else
-            #define OsIf_GetCoreID()    GetCoreID()
-        #endif
-    #else
-        #define OsIf_GetCoreID()        (0U)
-    #endif
-#else /* USING_OS_AUTOSAROS */
-    /* Baremetal and FreeRTOS */
-    #if STD_ON == OSIF_ENABLE_MULTICORE_SUPPORT
-        #ifdef MCAL_ENABLE_USER_MODE_SUPPORT
-            #define OsIf_GetCoreID()    OsIf_Trusted_Call_Return(Sys_GetCoreID)
-        #else
-            /* @implements OsIf_GetCoreID_define */
-            #define OsIf_GetCoreID()    Sys_GetCoreID()
-        #endif
-    #else
-        #define OsIf_GetCoreID()        (0U)
-    #endif
-#endif
-
-/*
- * OsIf_SuspendAllInterrupts
- * OsIf_ResumeAllInterrupts
- */
-#if !defined(USING_OS_AUTOSAROS)
-/* Baremetal or FreeRTOS case */
-#if (MCAL_PLATFORM_ARM  == MCAL_ARM_AARCH64)
-    #define ResumeAllInterrupts()       ASM_KEYWORD(" msr DAIFClr,#0xf")
-    #define SuspendAllInterrupts()      ASM_KEYWORD(" msr DAIFSet,#0xf")
-#else
-#ifdef MCAL_ENABLE_USER_MODE_SUPPORT
-    #define ResumeAllInterrupts()   Sys_ResumeInterrupts()  /* BASEPRI will be set to 0x0 from SVC handler */
-    #define SuspendAllInterrupts()  Sys_SuspendInterrupts() /* BASEPRI will be set to 0x10 from SVC handler */
-#else
-    #define ResumeAllInterrupts()       ASM_KEYWORD(" cpsie i")
-    #define SuspendAllInterrupts()      ASM_KEYWORD(" cpsid i")
-#endif /* MCAL_ENABLE_USER_MODE_SUPPORT */
-#endif /* MCAL_PLATFORM_ARM  == MCAL_ARM_AARCH64 */
-#endif /* !defined(USING_OS_AUTOSAROS) */
-
-/* @implements OsIf_SuspendAllInterrupts_define */
-#define OsIf_SuspendAllInterrupts()     SuspendAllInterrupts()
-/* @implements OsIf_ResumeAllInterrupts_define */
-#define OsIf_ResumeAllInterrupts()      ResumeAllInterrupts()
-
-/*
- * ISR macro definition
- */
-#ifdef USING_OS_AUTOSAROS
-/* ISR() macro defined by Autosar OS*/
-#else
-/* Baremetal or FreeRTOS case */
-#if defined (USE_SW_VECTOR_MODE)
-    #define ISR(IsrName)       void IsrName(void)
-#else
-    #define ISR(IsrName)       INTERRUPT_FUNC void IsrName(void)
-#endif /* defined (USE_SW_VECTOR_MODE) */
-#endif /* USING_OS_AUTOSAROS */
-
-/*==================================================================================================
-*                                              ENUMS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                  STRUCTURES AND OTHER TYPEDEFS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                  GLOBAL VARIABLE DECLARATIONS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                       FUNCTION PROTOTYPES
-==================================================================================================*/
-
-#ifdef __cplusplus
-}
-#endif
-
-/** @} */
-
-#endif /* OSIF_INTERNAL_H */
+/*==================================================================================================
+* Project : RTD AUTOSAR 4.4
+* Platform : CORTEXM
+* Peripheral : S32K14X
+* Dependencies : none
+*
+* Autosar Version : 4.4.0
+* Autosar Revision : ASR_REL_4_4_REV_0000
+* Autosar Conf.Variant :
+* SW Version : 1.0.0
+* Build Version : S32K1_RTD_1_0_0_D2108_ASR_REL_4_4_REV_0000_20210810
+*
+* (c) Copyright 2020-2021 NXP Semiconductors
+* All Rights Reserved.
+*
+* NXP Confidential. This software is owned or controlled by NXP and may only be
+* used strictly in accordance with the applicable license terms. By expressly
+* accepting such terms or by downloading, installing, activating and/or otherwise
+* using the software, you are agreeing that you have read, and that you agree to
+* comply with and are bound by, such license terms. If you do not agree to be
+* bound by the applicable license terms, then you may not retain, install,
+* activate or otherwise use the software.
+==================================================================================================*/
+#ifndef OSIF_INTERNAL_H
+#define OSIF_INTERNAL_H
+
+/**
+*   @file
+*   @implements OsIf_Internal.h_Artifact
+*   @addtogroup osif_drv
+*   @{
+*/
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+/*==================================================================================================
+*                                          INCLUDE FILES
+* 1) system and project includes
+* 2) needed interfaces from external units
+* 3) internal and external interfaces from this unit
+==================================================================================================*/
+#include "StandardTypes.h"
+#include "Soc_Ips.h"
+#include "OsIf_Cfg.h"
+
+#if defined(USING_OS_AUTOSAROS)
+#include "Os.h"
+#endif /* defined(USING_OS_AUTOSAROS) */
+
+#if !defined(USING_OS_AUTOSAROS)
+#ifdef MCAL_ENABLE_USER_MODE_SUPPORT
+/* prototypes defined in system.h*/
+uint32 Sys_GoToUser_Return(uint32 u32SwitchToSupervisor, uint32 u32returnValue);
+uint32 Sys_GoToSupervisor(void);
+uint32 Sys_GoToUser(void);
+void Sys_SuspendInterrupts(void);
+void Sys_ResumeInterrupts(void);
+#endif /* def MCAL_ENABLE_USER_MODE_SUPPORT */
+uint8 Sys_GetCoreID(void);
+#endif /* !defined(USING_OS_AUTOSAROS) */
+
+/*==================================================================================================
+*                                 SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+#define OSIF_INTERNAL_VENDOR_ID                    43
+#define OSIF_INTERNAL_AR_RELEASE_MAJOR_VERSION     4
+#define OSIF_INTERNAL_AR_RELEASE_MINOR_VERSION     4
+#define OSIF_INTERNAL_AR_RELEASE_REVISION_VERSION  0
+#define OSIF_INTERNAL_SW_MAJOR_VERSION             1
+#define OSIF_INTERNAL_SW_MINOR_VERSION             0
+#define OSIF_INTERNAL_SW_PATCH_VERSION             0
+
+/*==================================================================================================
+*                                       FILE VERSION CHECKS
+==================================================================================================*/
+/* Checks against StandardTypes.h */
+#ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
+    #if ((OSIF_INTERNAL_AR_RELEASE_MAJOR_VERSION != STD_AR_RELEASE_MAJOR_VERSION) || \
+         (OSIF_INTERNAL_AR_RELEASE_MINOR_VERSION != STD_AR_RELEASE_MINOR_VERSION))
+        #error "AutoSar Version Numbers of OsIf_Internal.h and StandardTypes.h are different"
+    #endif
+#endif
+
+/* Checks against Soc_Ips.h */
+#ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
+    #if ((OSIF_INTERNAL_AR_RELEASE_MAJOR_VERSION != SOC_IPS_AR_RELEASE_MAJOR_VERSION) || \
+         (OSIF_INTERNAL_AR_RELEASE_MINOR_VERSION != SOC_IPS_AR_RELEASE_MINOR_VERSION))
+        #error "AutoSar Version Numbers of OsIf_Internal.h and Soc_Ips.h are different"
+    #endif
+#endif
+
+#if defined(USING_OS_AUTOSAROS)
+/* Checks against Os.h */
+#ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
+    #if ((OSIF_INTERNAL_AR_RELEASE_MAJOR_VERSION != OS_AR_RELEASE_MAJOR_VERSION) || \
+         (OSIF_INTERNAL_AR_RELEASE_MINOR_VERSION != OS_AR_RELEASE_MINOR_VERSION))
+        #error "AutoSar Version Numbers of OsIf_Internal.h and Os.h are different"
+    #endif
+#endif
+#endif /* defined(USING_OS_AUTOSAROS) */
+
+/*==================================================================================================
+*                                            CONSTANTS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                       DEFINES AND MACROS
+==================================================================================================*/
+
+/*
+ * OsIf_Trusted_Call*
+ */
+#ifdef MCAL_ENABLE_USER_MODE_SUPPORT
+#ifdef USING_OS_AUTOSAROS
+#define OsIf_Trusted_Call(name)                                                  Call_##name##_TRUSTED()
+#define OsIf_Trusted_Call1param(name,param)                                      Call_##name##_TRUSTED(param)
+#define OsIf_Trusted_Call2params(name,param1,param2)                             Call_##name##_TRUSTED(param1,param2)
+#define OsIf_Trusted_Call3params(name,param1,param2,param3)                      Call_##name##_TRUSTED(param1,param2,param3)
+#define OsIf_Trusted_Call4params(name,param1,param2,param3,param4)               Call_##name##_TRUSTED(param1,param2,param3,param4)
+#define OsIf_Trusted_Call5params(name,param1,param2,param3,param4,param5)        Call_##name##_TRUSTED(param1,param2,param3,param4,param5)
+#define OsIf_Trusted_Call6params(name,param1,param2,param3,param4,param5,param6) Call_##name##_TRUSTED(param1,param2,param3,param4,param5,param6)
+
+#define OsIf_Trusted_Call_Return(name)                                                 Call_##name##_TRUSTED()
+#define OsIf_Trusted_Call_Return1param(name,param1)                                    Call_##name##_TRUSTED(param1)
+#define OsIf_Trusted_Call_Return2param(name,param1,param2)                             Call_##name##_TRUSTED(param1,param2)
+#define OsIf_Trusted_Call_Return3param(name,param1,param2,param3)                      Call_##name##_TRUSTED(param1,param2,param3)
+#define OsIf_Trusted_Call_Return4param(name,param1,param2,param3,param4)               Call_##name##_TRUSTED(param1,param2,param3,param4)
+#define OsIf_Trusted_Call_Return5param(name,param1,param2,param3,param4,param5)        Call_##name##_TRUSTED(param1,param2,param3,param4,param5)
+#define OsIf_Trusted_Call_Return6param(name,param1,param2,param3,param4,param5,param6) Call_##name##_TRUSTED(param1,param2,param3,param4,param5,param6)
+
+#else /* USING_OS_AUTOSAROS */
+/* Baremetal and FreeRTOS */
+#define OsIf_Trusted_Call(name)  \
+    ((1UL == Sys_GoToSupervisor()) ? (name(), (void)Sys_GoToUser()) : (name(),(void)0U))
+#define OsIf_Trusted_Call1param(name,param)  \
+    ((1UL == Sys_GoToSupervisor()) ? (name(param), (void)Sys_GoToUser()) : (name(param),(void)0U))
+#define OsIf_Trusted_Call2params(name,param1,param2)  \
+    ((1UL == Sys_GoToSupervisor()) ? (name(param1,param2), (void)Sys_GoToUser()) : (name(param1,param2),(void)0U))
+#define OsIf_Trusted_Call3params(name,param1,param2,param3)  \
+    ((1UL == Sys_GoToSupervisor()) ? (name(param1,param2,param3), (void)Sys_GoToUser()) : (name(param1,param2,param3),(void)0U))
+#define OsIf_Trusted_Call4params(name,param1,param2,param3,param4)  \
+    ((1UL == Sys_GoToSupervisor()) ? (name(param1,param2,param3,param4), (void)Sys_GoToUser()) : (name(param1,param2,param3,param4),(void)0U))
+#define OsIf_Trusted_Call5params(name,param1,param2,param3,param4,param5)  \
+    ((1UL == Sys_GoToSupervisor()) ? (name(param1,param2,param3,param4,param5), (void)Sys_GoToUser()) : (name(param1,param2,param3,param4,param5),(void)0U))
+#define OsIf_Trusted_Call6params(name,param1,param2,param3,param4,param5,param6)  \
+    ((1UL == Sys_GoToSupervisor()) ? (name(param1,param2,param3,param4,param5,param6), (void)Sys_GoToUser()) : (name(param1,param2,param3,param4,param5,param6),(void)0U))
+
+#define OsIf_Trusted_Call_Return(name)  \
+    ((1UL == Sys_GoToSupervisor()) ?  Sys_GoToUser_Return(1U, name()) :  Sys_GoToUser_Return(0U, name()))
+#define OsIf_Trusted_Call_Return1param(name,param)  \
+    ((1UL == Sys_GoToSupervisor()) ?  Sys_GoToUser_Return(1U, name(param)) :  Sys_GoToUser_Return(0U, name(param)))
+#define OsIf_Trusted_Call_Return2param(name,param1,param2)  \
+    ((1UL == Sys_GoToSupervisor()) ?  Sys_GoToUser_Return(1U, name(param1,param2)) : Sys_GoToUser_Return(0U, name(param1,param2)))
+#define OsIf_Trusted_Call_Return3param(name,param1,param2,param3)  \
+    ((1UL == Sys_GoToSupervisor()) ?  Sys_GoToUser_Return(1U, name(param1,param2,param3)) :  Sys_GoToUser_Return(0U, name(param1,param2,param3)))
+#define OsIf_Trusted_Call_Return4param(name,param1,param2,param3,param4)  \
+    ((1UL == Sys_GoToSupervisor()) ?  Sys_GoToUser_Return(1U, name(param1,param2,param3,param4)) :  Sys_GoToUser_Return(0U, name(param1,param2,param3,param4)))
+#define OsIf_Trusted_Call_Return5param(name,param1,param2,param3,param4,param5)  \
+    ((1UL == Sys_GoToSupervisor()) ?  Sys_GoToUser_Return(1U, name(param1,param2,param3,param4,param5)) :  Sys_GoToUser_Return(0U, name(param1,param2,param3,param4,param5)))
+#define OsIf_Trusted_Call_Return6param(name,param1,param2,param3,param4,param5,param6)  \
+    ((1UL == Sys_GoToSupervisor()) ?  Sys_GoToUser_Return(1U, name(param1,param2,param3,param4,param5,param6)) :  Sys_GoToUser_Return(0U, name(param1,param2,param3,param4,param5,param6)))
+#endif /* USING_OS_AUTOSAROS */
+#endif /* MCAL_ENABLE_USER_MODE_SUPPORT */
+
+/*
+ * OsIf_GetCoreID
+ */
+#ifdef USING_OS_AUTOSAROS
+    #if STD_ON == OSIF_ENABLE_MULTICORE_SUPPORT
+        #ifdef MCAL_ENABLE_USER_MODE_SUPPORT
+            #define OsIf_GetCoreID()    OsIf_Trusted_Call_Return(GetCoreID)
+        #else
+            #define OsIf_GetCoreID()    GetCoreID()
+        #endif
+    #else
+        #define OsIf_GetCoreID()        (0U)
+    #endif
+#else /* USING_OS_AUTOSAROS */
+    /* Baremetal and FreeRTOS */
+    #if STD_ON == OSIF_ENABLE_MULTICORE_SUPPORT
+        #ifdef MCAL_ENABLE_USER_MODE_SUPPORT
+            #define OsIf_GetCoreID()    OsIf_Trusted_Call_Return(Sys_GetCoreID)
+        #else
+            /* @implements OsIf_GetCoreID_define */
+            #define OsIf_GetCoreID()    Sys_GetCoreID()
+        #endif
+    #else
+        #define OsIf_GetCoreID()        (0U)
+    #endif
+#endif
+
+/*
+ * OsIf_SuspendAllInterrupts
+ * OsIf_ResumeAllInterrupts
+ */
+#if !defined(USING_OS_AUTOSAROS)
+/* Baremetal or FreeRTOS case */
+#if (MCAL_PLATFORM_ARM  == MCAL_ARM_AARCH64)
+    #define ResumeAllInterrupts()       ASM_KEYWORD(" msr DAIFClr,#0xf")
+    #define SuspendAllInterrupts()      ASM_KEYWORD(" msr DAIFSet,#0xf")
+#else
+#ifdef MCAL_ENABLE_USER_MODE_SUPPORT
+    #define ResumeAllInterrupts()   Sys_ResumeInterrupts()  /* BASEPRI will be set to 0x0 from SVC handler */
+    #define SuspendAllInterrupts()  Sys_SuspendInterrupts() /* BASEPRI will be set to 0x10 from SVC handler */
+#else
+    #define ResumeAllInterrupts()       ASM_KEYWORD(" cpsie i")
+    #define SuspendAllInterrupts()      ASM_KEYWORD(" cpsid i")
+#endif /* MCAL_ENABLE_USER_MODE_SUPPORT */
+#endif /* MCAL_PLATFORM_ARM  == MCAL_ARM_AARCH64 */
+#endif /* !defined(USING_OS_AUTOSAROS) */
+
+/* @implements OsIf_SuspendAllInterrupts_define */
+#define OsIf_SuspendAllInterrupts()     SuspendAllInterrupts()
+/* @implements OsIf_ResumeAllInterrupts_define */
+#define OsIf_ResumeAllInterrupts()      ResumeAllInterrupts()
+
+/*
+ * ISR macro definition
+ */
+#ifdef USING_OS_AUTOSAROS
+/* ISR() macro defined by Autosar OS*/
+#else
+/* Baremetal or FreeRTOS case */
+#if defined (USE_SW_VECTOR_MODE)
+    #define ISR(IsrName)       void IsrName(void)
+#else
+    #define ISR(IsrName)       INTERRUPT_FUNC void IsrName(void)
+#endif /* defined (USE_SW_VECTOR_MODE) */
+#endif /* USING_OS_AUTOSAROS */
+
+/*==================================================================================================
+*                                              ENUMS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                  STRUCTURES AND OTHER TYPEDEFS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                  GLOBAL VARIABLE DECLARATIONS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                       FUNCTION PROTOTYPES
+==================================================================================================*/
+
+#ifdef __cplusplus
+}
+#endif
+
+/** @} */
+
+#endif /* OSIF_INTERNAL_H */

+ 109 - 109
RTD/include/OsIf_Timer_Custom.h

@@ -1,109 +1,109 @@
-/*==================================================================================================
-* Project : RTD AUTOSAR 4.4
-* Platform : CORTEXM
-* Peripheral : S32K14X
-* Dependencies : none
-*
-* Autosar Version : 4.4.0
-* Autosar Revision : ASR_REL_4_4_REV_0000
-* Autosar Conf.Variant :
-* SW Version : 1.0.0
-* Build Version : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
-*
-* (c) Copyright 2020-2021 NXP Semiconductors
-* All Rights Reserved.
-*
-* NXP Confidential. This software is owned or controlled by NXP and may only be
-* used strictly in accordance with the applicable license terms. By expressly
-* accepting such terms or by downloading, installing, activating and/or otherwise
-* using the software, you are agreeing that you have read, and that you agree to
-* comply with and are bound by, such license terms. If you do not agree to be
-* bound by the applicable license terms, then you may not retain, install,
-* activate or otherwise use the software.
-==================================================================================================*/
-#ifndef OSIF_TIMER_CUSTOM_H
-#define OSIF_TIMER_CUSTOM_H
-
-/**
-*   @file
-*
-*   @addtogroup osif_drv
-*   @{
-*/
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-/*==================================================================================================
-*                                          INCLUDE FILES
-* 1) system and project includes
-* 2) needed interfaces from external units
-* 3) internal and external interfaces from this unit
-==================================================================================================*/
-#include "StandardTypes.h"
-
-/*==================================================================================================
-*                                 SOURCE FILE VERSION INFORMATION
-==================================================================================================*/
-#define OSIF_TIMER_CUSTOM_VENDOR_ID                    43
-#define OSIF_TIMER_CUSTOM_AR_RELEASE_MAJOR_VERSION     4
-#define OSIF_TIMER_CUSTOM_AR_RELEASE_MINOR_VERSION     4
-#define OSIF_TIMER_CUSTOM_AR_RELEASE_REVISION_VERSION  0
-#define OSIF_TIMER_CUSTOM_SW_MAJOR_VERSION             1
-#define OSIF_TIMER_CUSTOM_SW_MINOR_VERSION             0
-#define OSIF_TIMER_CUSTOM_SW_PATCH_VERSION             0
-
-/*==================================================================================================
-*                                       FILE VERSION CHECKS
-==================================================================================================*/
-/* Checks against StandardTypes.h */
-#ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
-    #if ((OSIF_TIMER_CUSTOM_AR_RELEASE_MAJOR_VERSION != STD_AR_RELEASE_MAJOR_VERSION) || \
-         (OSIF_TIMER_CUSTOM_AR_RELEASE_MINOR_VERSION != STD_AR_RELEASE_MINOR_VERSION))
-        #error "AutoSar Version Numbers of OsIf_Timer_Custom.h and StandardTypes.h are different"
-    #endif
-#endif
-
-/*==================================================================================================
-*                                            CONSTANTS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                       DEFINES AND MACROS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                              ENUMS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                  STRUCTURES AND OTHER TYPEDEFS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                  GLOBAL VARIABLE DECLARATIONS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                       FUNCTION PROTOTYPES
-==================================================================================================*/
-#define BASE_START_SEC_CODE
-#include "Base_MemMap.h"
-
-void OsIf_Timer_Custom_Init(void);
-uint32 OsIf_Timer_Custom_GetCounter(void);
-uint32 OsIf_Timer_Custom_GetElapsed(uint32 * const CurrentRef);
-void OsIf_Timer_Custom_SetTimerFrequency(uint32 Freq);
-uint32 OsIf_Timer_Custom_MicrosToTicks(uint32 Micros);
-
-#define BASE_STOP_SEC_CODE
-#include "Base_MemMap.h"
-
-#ifdef __cplusplus
-}
-#endif
-
-/** @} */
-
-#endif /* OSIF_TIMER_CUSTOM_H */
+/*==================================================================================================
+* Project : RTD AUTOSAR 4.4
+* Platform : CORTEXM
+* Peripheral : S32K14X
+* Dependencies : none
+*
+* Autosar Version : 4.4.0
+* Autosar Revision : ASR_REL_4_4_REV_0000
+* Autosar Conf.Variant :
+* SW Version : 1.0.0
+* Build Version : S32K1_RTD_1_0_0_D2108_ASR_REL_4_4_REV_0000_20210810
+*
+* (c) Copyright 2020-2021 NXP Semiconductors
+* All Rights Reserved.
+*
+* NXP Confidential. This software is owned or controlled by NXP and may only be
+* used strictly in accordance with the applicable license terms. By expressly
+* accepting such terms or by downloading, installing, activating and/or otherwise
+* using the software, you are agreeing that you have read, and that you agree to
+* comply with and are bound by, such license terms. If you do not agree to be
+* bound by the applicable license terms, then you may not retain, install,
+* activate or otherwise use the software.
+==================================================================================================*/
+#ifndef OSIF_TIMER_CUSTOM_H
+#define OSIF_TIMER_CUSTOM_H
+
+/**
+*   @file
+*
+*   @addtogroup osif_drv
+*   @{
+*/
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+/*==================================================================================================
+*                                          INCLUDE FILES
+* 1) system and project includes
+* 2) needed interfaces from external units
+* 3) internal and external interfaces from this unit
+==================================================================================================*/
+#include "StandardTypes.h"
+
+/*==================================================================================================
+*                                 SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+#define OSIF_TIMER_CUSTOM_VENDOR_ID                    43
+#define OSIF_TIMER_CUSTOM_AR_RELEASE_MAJOR_VERSION     4
+#define OSIF_TIMER_CUSTOM_AR_RELEASE_MINOR_VERSION     4
+#define OSIF_TIMER_CUSTOM_AR_RELEASE_REVISION_VERSION  0
+#define OSIF_TIMER_CUSTOM_SW_MAJOR_VERSION             1
+#define OSIF_TIMER_CUSTOM_SW_MINOR_VERSION             0
+#define OSIF_TIMER_CUSTOM_SW_PATCH_VERSION             0
+
+/*==================================================================================================
+*                                       FILE VERSION CHECKS
+==================================================================================================*/
+/* Checks against StandardTypes.h */
+#ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
+    #if ((OSIF_TIMER_CUSTOM_AR_RELEASE_MAJOR_VERSION != STD_AR_RELEASE_MAJOR_VERSION) || \
+         (OSIF_TIMER_CUSTOM_AR_RELEASE_MINOR_VERSION != STD_AR_RELEASE_MINOR_VERSION))
+        #error "AutoSar Version Numbers of OsIf_Timer_Custom.h and StandardTypes.h are different"
+    #endif
+#endif
+
+/*==================================================================================================
+*                                            CONSTANTS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                       DEFINES AND MACROS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                              ENUMS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                  STRUCTURES AND OTHER TYPEDEFS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                  GLOBAL VARIABLE DECLARATIONS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                       FUNCTION PROTOTYPES
+==================================================================================================*/
+#define BASE_START_SEC_CODE
+#include "Base_MemMap.h"
+
+void OsIf_Timer_Custom_Init(void);
+uint32 OsIf_Timer_Custom_GetCounter(void);
+uint32 OsIf_Timer_Custom_GetElapsed(uint32 * const CurrentRef);
+void OsIf_Timer_Custom_SetTimerFrequency(uint32 Freq);
+uint32 OsIf_Timer_Custom_MicrosToTicks(uint32 Micros);
+
+#define BASE_STOP_SEC_CODE
+#include "Base_MemMap.h"
+
+#ifdef __cplusplus
+}
+#endif
+
+/** @} */
+
+#endif /* OSIF_TIMER_CUSTOM_H */

+ 109 - 109
RTD/include/OsIf_Timer_System.h

@@ -1,109 +1,109 @@
-/*==================================================================================================
-* Project : RTD AUTOSAR 4.4
-* Platform : CORTEXM
-* Peripheral : S32K14X
-* Dependencies : none
-*
-* Autosar Version : 4.4.0
-* Autosar Revision : ASR_REL_4_4_REV_0000
-* Autosar Conf.Variant :
-* SW Version : 1.0.0
-* Build Version : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
-*
-* (c) Copyright 2020-2021 NXP Semiconductors
-* All Rights Reserved.
-*
-* NXP Confidential. This software is owned or controlled by NXP and may only be
-* used strictly in accordance with the applicable license terms. By expressly
-* accepting such terms or by downloading, installing, activating and/or otherwise
-* using the software, you are agreeing that you have read, and that you agree to
-* comply with and are bound by, such license terms. If you do not agree to be
-* bound by the applicable license terms, then you may not retain, install,
-* activate or otherwise use the software.
-==================================================================================================*/
-#ifndef OSIF_TIMER_SYSTEM_H
-#define OSIF_TIMER_SYSTEM_H
-
-/**
-*   @file
-*
-*   @addtogroup osif_drv
-*   @{
-*/
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-/*==================================================================================================
-*                                          INCLUDE FILES
-* 1) system and project includes
-* 2) needed interfaces from external units
-* 3) internal and external interfaces from this unit
-==================================================================================================*/
-#include "StandardTypes.h"
-
-/*==================================================================================================
-*                                 SOURCE FILE VERSION INFORMATION
-==================================================================================================*/
-#define OSIF_TIMER_SYSTEM_VENDOR_ID                    43
-#define OSIF_TIMER_SYSTEM_AR_RELEASE_MAJOR_VERSION     4
-#define OSIF_TIMER_SYSTEM_AR_RELEASE_MINOR_VERSION     4
-#define OSIF_TIMER_SYSTEM_AR_RELEASE_REVISION_VERSION  0
-#define OSIF_TIMER_SYSTEM_SW_MAJOR_VERSION             1
-#define OSIF_TIMER_SYSTEM_SW_MINOR_VERSION             0
-#define OSIF_TIMER_SYSTEM_SW_PATCH_VERSION             0
-
-/*==================================================================================================
-*                                       FILE VERSION CHECKS
-==================================================================================================*/
-/* Checks against StandardTypes.h */
-#ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
-    #if ((OSIF_TIMER_SYSTEM_AR_RELEASE_MAJOR_VERSION != STD_AR_RELEASE_MAJOR_VERSION) || \
-         (OSIF_TIMER_SYSTEM_AR_RELEASE_MINOR_VERSION != STD_AR_RELEASE_MINOR_VERSION))
-        #error "AutoSar Version Numbers of OsIf_Timer_System.h and StandardTypes.h are different"
-    #endif
-#endif
-
-/*==================================================================================================
-*                                            CONSTANTS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                       DEFINES AND MACROS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                              ENUMS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                  STRUCTURES AND OTHER TYPEDEFS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                  GLOBAL VARIABLE DECLARATIONS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                       FUNCTION PROTOTYPES
-==================================================================================================*/
-#define BASE_START_SEC_CODE
-#include "Base_MemMap.h"
-
-void OsIf_Timer_System_Init(void);
-uint32 OsIf_Timer_System_GetCounter(void);
-uint32 OsIf_Timer_System_GetElapsed(uint32 * const CurrentRef);
-void OsIf_Timer_System_SetTimerFrequency(uint32 Freq);
-uint32 OsIf_Timer_System_MicrosToTicks(uint32 Micros);
-
-#define BASE_STOP_SEC_CODE
-#include "Base_MemMap.h"
-
-#ifdef __cplusplus
-}
-#endif
-
-/** @} */
-
-#endif /* OSIF_TIMER_SYSTEM_H */
+/*==================================================================================================
+* Project : RTD AUTOSAR 4.4
+* Platform : CORTEXM
+* Peripheral : S32K14X
+* Dependencies : none
+*
+* Autosar Version : 4.4.0
+* Autosar Revision : ASR_REL_4_4_REV_0000
+* Autosar Conf.Variant :
+* SW Version : 1.0.0
+* Build Version : S32K1_RTD_1_0_0_D2108_ASR_REL_4_4_REV_0000_20210810
+*
+* (c) Copyright 2020-2021 NXP Semiconductors
+* All Rights Reserved.
+*
+* NXP Confidential. This software is owned or controlled by NXP and may only be
+* used strictly in accordance with the applicable license terms. By expressly
+* accepting such terms or by downloading, installing, activating and/or otherwise
+* using the software, you are agreeing that you have read, and that you agree to
+* comply with and are bound by, such license terms. If you do not agree to be
+* bound by the applicable license terms, then you may not retain, install,
+* activate or otherwise use the software.
+==================================================================================================*/
+#ifndef OSIF_TIMER_SYSTEM_H
+#define OSIF_TIMER_SYSTEM_H
+
+/**
+*   @file
+*
+*   @addtogroup osif_drv
+*   @{
+*/
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+/*==================================================================================================
+*                                          INCLUDE FILES
+* 1) system and project includes
+* 2) needed interfaces from external units
+* 3) internal and external interfaces from this unit
+==================================================================================================*/
+#include "StandardTypes.h"
+
+/*==================================================================================================
+*                                 SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+#define OSIF_TIMER_SYSTEM_VENDOR_ID                    43
+#define OSIF_TIMER_SYSTEM_AR_RELEASE_MAJOR_VERSION     4
+#define OSIF_TIMER_SYSTEM_AR_RELEASE_MINOR_VERSION     4
+#define OSIF_TIMER_SYSTEM_AR_RELEASE_REVISION_VERSION  0
+#define OSIF_TIMER_SYSTEM_SW_MAJOR_VERSION             1
+#define OSIF_TIMER_SYSTEM_SW_MINOR_VERSION             0
+#define OSIF_TIMER_SYSTEM_SW_PATCH_VERSION             0
+
+/*==================================================================================================
+*                                       FILE VERSION CHECKS
+==================================================================================================*/
+/* Checks against StandardTypes.h */
+#ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
+    #if ((OSIF_TIMER_SYSTEM_AR_RELEASE_MAJOR_VERSION != STD_AR_RELEASE_MAJOR_VERSION) || \
+         (OSIF_TIMER_SYSTEM_AR_RELEASE_MINOR_VERSION != STD_AR_RELEASE_MINOR_VERSION))
+        #error "AutoSar Version Numbers of OsIf_Timer_System.h and StandardTypes.h are different"
+    #endif
+#endif
+
+/*==================================================================================================
+*                                            CONSTANTS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                       DEFINES AND MACROS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                              ENUMS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                  STRUCTURES AND OTHER TYPEDEFS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                  GLOBAL VARIABLE DECLARATIONS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                       FUNCTION PROTOTYPES
+==================================================================================================*/
+#define BASE_START_SEC_CODE
+#include "Base_MemMap.h"
+
+void OsIf_Timer_System_Init(void);
+uint32 OsIf_Timer_System_GetCounter(void);
+uint32 OsIf_Timer_System_GetElapsed(uint32 * const CurrentRef);
+void OsIf_Timer_System_SetTimerFrequency(uint32 Freq);
+uint32 OsIf_Timer_System_MicrosToTicks(uint32 Micros);
+
+#define BASE_STOP_SEC_CODE
+#include "Base_MemMap.h"
+
+#ifdef __cplusplus
+}
+#endif
+
+/** @} */
+
+#endif /* OSIF_TIMER_SYSTEM_H */

+ 163 - 163
RTD/include/OsIf_Timer_System_Internal_Systick.h

@@ -1,163 +1,163 @@
-/*==================================================================================================
-* Project : RTD AUTOSAR 4.4
-* Platform : CORTEXM
-* Peripheral : S32K14X
-* Dependencies : none
-*
-* Autosar Version : 4.4.0
-* Autosar Revision : ASR_REL_4_4_REV_0000
-* Autosar Conf.Variant :
-* SW Version : 1.0.0
-* Build Version : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
-*
-* (c) Copyright 2020-2021 NXP Semiconductors
-* All Rights Reserved.
-*
-* NXP Confidential. This software is owned or controlled by NXP and may only be
-* used strictly in accordance with the applicable license terms. By expressly
-* accepting such terms or by downloading, installing, activating and/or otherwise
-* using the software, you are agreeing that you have read, and that you agree to
-* comply with and are bound by, such license terms. If you do not agree to be
-* bound by the applicable license terms, then you may not retain, install,
-* activate or otherwise use the software.
-==================================================================================================*/
-#ifndef OSIF_TIMER_SYSTEM_INTERNAL_SYSTICK
-#define OSIF_TIMER_SYSTEM_INTERNAL_SYSTICK
-
-/**
-*   @file
-*
-*   @addtogroup osif_drv
-*   @{
-*/
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-/*==================================================================================================
-*                                          INCLUDE FILES
-* 1) system and project includes
-* 2) needed interfaces from external units
-* 3) internal and external interfaces from this unit
-==================================================================================================*/
-#include "OsIf_DeviceRegisters.h"
-
-/*==================================================================================================
-*                                 SOURCE FILE VERSION INFORMATION
-==================================================================================================*/
-#define OSIF_TIMER_SYSTEM_INTERNAL_SYSTICK_VENDOR_ID                    43
-#define OSIF_TIMER_SYSTEM_INTERNAL_SYSTICK_AR_RELEASE_MAJOR_VERSION     4
-#define OSIF_TIMER_SYSTEM_INTERNAL_SYSTICK_AR_RELEASE_MINOR_VERSION     4
-#define OSIF_TIMER_SYSTEM_INTERNAL_SYSTICK_AR_RELEASE_REVISION_VERSION  0
-#define OSIF_TIMER_SYSTEM_INTERNAL_SYSTICK_SW_MAJOR_VERSION             1
-#define OSIF_TIMER_SYSTEM_INTERNAL_SYSTICK_SW_MINOR_VERSION             0
-#define OSIF_TIMER_SYSTEM_INTERNAL_SYSTICK_SW_PATCH_VERSION             0
-
-/*==================================================================================================
-*                                       FILE VERSION CHECKS
-==================================================================================================*/
-/* Checks against OsIf_DeviceRegisters.h */
-#if (OSIF_TIMER_SYSTEM_INTERNAL_SYSTICK_VENDOR_ID != OSIF_DEVICE_REGISTERS_VENDOR_ID)
-    #error "OsIf_Timer_System_Internal_Systick.h and OsIf_DeviceRegisters.h have different vendor ids"
-#endif
-#if ((OSIF_TIMER_SYSTEM_INTERNAL_SYSTICK_AR_RELEASE_MAJOR_VERSION    != OSIF_DEVICE_REGISTERS_AR_RELEASE_MAJOR_VERSION) || \
-     (OSIF_TIMER_SYSTEM_INTERNAL_SYSTICK_AR_RELEASE_MINOR_VERSION    != OSIF_DEVICE_REGISTERS_AR_RELEASE_MINOR_VERSION) || \
-     (OSIF_TIMER_SYSTEM_INTERNAL_SYSTICK_AR_RELEASE_REVISION_VERSION != OSIF_DEVICE_REGISTERS_AR_RELEASE_REVISION_VERSION))
-    #error "AUTOSAR Version Numbers of OsIf_Timer_System_Internal_Systick.h and OsIf_DeviceRegisters.h are different"
-#endif
-#if ((OSIF_TIMER_SYSTEM_INTERNAL_SYSTICK_SW_MAJOR_VERSION != OSIF_DEVICE_REGISTERS_SW_MAJOR_VERSION) || \
-     (OSIF_TIMER_SYSTEM_INTERNAL_SYSTICK_SW_MINOR_VERSION != OSIF_DEVICE_REGISTERS_SW_MINOR_VERSION) || \
-     (OSIF_TIMER_SYSTEM_INTERNAL_SYSTICK_SW_PATCH_VERSION != OSIF_DEVICE_REGISTERS_SW_PATCH_VERSION) \
-    )
-    #error "Software Version Numbers of OsIf_Timer_System_Internal_Systick.h and OsIf_DeviceRegisters.h are different"
-#endif
-
-/*==================================================================================================
-*                                            CONSTANTS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                       DEFINES AND MACROS
-==================================================================================================*/
-#define SYSTICK_GET_COUNTER() ((S32_SysTick->CVR) & S32_SysTick_CVR_CURRENT_MASK)
-#define SYSTICK_DELTA_OUTER(high, low, max) ((max) - ((high) - (low)))
-#define SYSTICK_DELTA_INNER(high, low) ((high) - (low))
-#define SYSTICK_MAX (0xFFFFFFu)
-
-#define SYSTICK_OVERFLOWED(curr, ref) (curr > ref)
-
-/*==================================================================================================
-*                                              ENUMS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                  STRUCTURES AND OTHER TYPEDEFS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                  GLOBAL VARIABLE DECLARATIONS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                       FUNCTION PROTOTYPES
-==================================================================================================*/
-#define BASE_START_SEC_CODE
-#include "Base_MemMap.h"
-
-static inline void OsIf_Timer_System_Internal_Init(void);
-static inline uint32 OsIf_Timer_System_Internal_GetCounter(void);
-static inline uint32 OsIf_Timer_System_Internal_GetElapsed(uint32 * const CurrentRef);
-
-#define BASE_STOP_SEC_CODE
-#include "Base_MemMap.h"
-
-/*==================================================================================================
-*                                         LOCAL FUNCTIONS
-==================================================================================================*/
-#define BASE_START_SEC_CODE
-#include "Base_MemMap.h"
-
-static inline void OsIf_Timer_System_Internal_Init(void)
-{
-    /* For Cortex-M0 devices the systick counter is initialized with an undefined
-     value, so make sure to initialize it to 0 before starting */
-    S32_SysTick->CSRr = S32_SysTick_CSR_ENABLE(0u);
-    S32_SysTick->RVR = S32_SysTick_RVR_RELOAD(SYSTICK_MAX);
-    S32_SysTick->CVR = S32_SysTick_CVR_CURRENT(0U);
-    S32_SysTick->CSRr = S32_SysTick_CSR_ENABLE(1u) | S32_SysTick_CSR_TICKINT(0u) | S32_SysTick_CSR_CLKSOURCE(1u);
-}
-
-static inline uint32 OsIf_Timer_System_Internal_GetCounter(void)
-{
-    return SYSTICK_GET_COUNTER();
-}
-
-static inline uint32 OsIf_Timer_System_Internal_GetElapsed(uint32 * const CurrentRef)
-{
-    uint32 CurrentVal = SYSTICK_GET_COUNTER();
-    uint32 dif = 0u;
-    if (SYSTICK_OVERFLOWED((CurrentVal), (*CurrentRef)))
-    {
-        /* overflow occurred */
-        dif = SYSTICK_DELTA_OUTER(CurrentVal, *CurrentRef, S32_SysTick->RVR);
-    }
-    else
-    {
-        /* overflow did not occur */
-        dif = SYSTICK_DELTA_INNER(*CurrentRef, CurrentVal);
-    }
-    *CurrentRef = CurrentVal;
-    return dif;
-}
-
-#define BASE_STOP_SEC_CODE
-#include "Base_MemMap.h"
-
-#ifdef __cplusplus
-}
-#endif
-
-/** @} */
-
-#endif /* OSIF_TIMER_SYSTEM_INTERNAL_SYSTICK */
+/*==================================================================================================
+* Project : RTD AUTOSAR 4.4
+* Platform : CORTEXM
+* Peripheral : S32K14X
+* Dependencies : none
+*
+* Autosar Version : 4.4.0
+* Autosar Revision : ASR_REL_4_4_REV_0000
+* Autosar Conf.Variant :
+* SW Version : 1.0.0
+* Build Version : S32K1_RTD_1_0_0_D2108_ASR_REL_4_4_REV_0000_20210810
+*
+* (c) Copyright 2020-2021 NXP Semiconductors
+* All Rights Reserved.
+*
+* NXP Confidential. This software is owned or controlled by NXP and may only be
+* used strictly in accordance with the applicable license terms. By expressly
+* accepting such terms or by downloading, installing, activating and/or otherwise
+* using the software, you are agreeing that you have read, and that you agree to
+* comply with and are bound by, such license terms. If you do not agree to be
+* bound by the applicable license terms, then you may not retain, install,
+* activate or otherwise use the software.
+==================================================================================================*/
+#ifndef OSIF_TIMER_SYSTEM_INTERNAL_SYSTICK
+#define OSIF_TIMER_SYSTEM_INTERNAL_SYSTICK
+
+/**
+*   @file
+*
+*   @addtogroup osif_drv
+*   @{
+*/
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+/*==================================================================================================
+*                                          INCLUDE FILES
+* 1) system and project includes
+* 2) needed interfaces from external units
+* 3) internal and external interfaces from this unit
+==================================================================================================*/
+#include "OsIf_DeviceRegisters.h"
+
+/*==================================================================================================
+*                                 SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+#define OSIF_TIMER_SYSTEM_INTERNAL_SYSTICK_VENDOR_ID                    43
+#define OSIF_TIMER_SYSTEM_INTERNAL_SYSTICK_AR_RELEASE_MAJOR_VERSION     4
+#define OSIF_TIMER_SYSTEM_INTERNAL_SYSTICK_AR_RELEASE_MINOR_VERSION     4
+#define OSIF_TIMER_SYSTEM_INTERNAL_SYSTICK_AR_RELEASE_REVISION_VERSION  0
+#define OSIF_TIMER_SYSTEM_INTERNAL_SYSTICK_SW_MAJOR_VERSION             1
+#define OSIF_TIMER_SYSTEM_INTERNAL_SYSTICK_SW_MINOR_VERSION             0
+#define OSIF_TIMER_SYSTEM_INTERNAL_SYSTICK_SW_PATCH_VERSION             0
+
+/*==================================================================================================
+*                                       FILE VERSION CHECKS
+==================================================================================================*/
+/* Checks against OsIf_DeviceRegisters.h */
+#if (OSIF_TIMER_SYSTEM_INTERNAL_SYSTICK_VENDOR_ID != OSIF_DEVICE_REGISTERS_VENDOR_ID)
+    #error "OsIf_Timer_System_Internal_Systick.h and OsIf_DeviceRegisters.h have different vendor ids"
+#endif
+#if ((OSIF_TIMER_SYSTEM_INTERNAL_SYSTICK_AR_RELEASE_MAJOR_VERSION    != OSIF_DEVICE_REGISTERS_AR_RELEASE_MAJOR_VERSION) || \
+     (OSIF_TIMER_SYSTEM_INTERNAL_SYSTICK_AR_RELEASE_MINOR_VERSION    != OSIF_DEVICE_REGISTERS_AR_RELEASE_MINOR_VERSION) || \
+     (OSIF_TIMER_SYSTEM_INTERNAL_SYSTICK_AR_RELEASE_REVISION_VERSION != OSIF_DEVICE_REGISTERS_AR_RELEASE_REVISION_VERSION))
+    #error "AUTOSAR Version Numbers of OsIf_Timer_System_Internal_Systick.h and OsIf_DeviceRegisters.h are different"
+#endif
+#if ((OSIF_TIMER_SYSTEM_INTERNAL_SYSTICK_SW_MAJOR_VERSION != OSIF_DEVICE_REGISTERS_SW_MAJOR_VERSION) || \
+     (OSIF_TIMER_SYSTEM_INTERNAL_SYSTICK_SW_MINOR_VERSION != OSIF_DEVICE_REGISTERS_SW_MINOR_VERSION) || \
+     (OSIF_TIMER_SYSTEM_INTERNAL_SYSTICK_SW_PATCH_VERSION != OSIF_DEVICE_REGISTERS_SW_PATCH_VERSION) \
+    )
+    #error "Software Version Numbers of OsIf_Timer_System_Internal_Systick.h and OsIf_DeviceRegisters.h are different"
+#endif
+
+/*==================================================================================================
+*                                            CONSTANTS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                       DEFINES AND MACROS
+==================================================================================================*/
+#define SYSTICK_GET_COUNTER() ((S32_SysTick->CVR) & S32_SysTick_CVR_CURRENT_MASK)
+#define SYSTICK_DELTA_OUTER(high, low, max) ((max) - ((high) - (low)))
+#define SYSTICK_DELTA_INNER(high, low) ((high) - (low))
+#define SYSTICK_MAX (0xFFFFFFu)
+
+#define SYSTICK_OVERFLOWED(curr, ref) (curr > ref)
+
+/*==================================================================================================
+*                                              ENUMS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                  STRUCTURES AND OTHER TYPEDEFS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                  GLOBAL VARIABLE DECLARATIONS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                       FUNCTION PROTOTYPES
+==================================================================================================*/
+#define BASE_START_SEC_CODE
+#include "Base_MemMap.h"
+
+static inline void OsIf_Timer_System_Internal_Init(void);
+static inline uint32 OsIf_Timer_System_Internal_GetCounter(void);
+static inline uint32 OsIf_Timer_System_Internal_GetElapsed(uint32 * const CurrentRef);
+
+#define BASE_STOP_SEC_CODE
+#include "Base_MemMap.h"
+
+/*==================================================================================================
+*                                         LOCAL FUNCTIONS
+==================================================================================================*/
+#define BASE_START_SEC_CODE
+#include "Base_MemMap.h"
+
+static inline void OsIf_Timer_System_Internal_Init(void)
+{
+    /* For Cortex-M0 devices the systick counter is initialized with an undefined
+     value, so make sure to initialize it to 0 before starting */
+    S32_SysTick->CSRr = S32_SysTick_CSR_ENABLE(0u);
+    S32_SysTick->RVR = S32_SysTick_RVR_RELOAD(SYSTICK_MAX);
+    S32_SysTick->CVR = S32_SysTick_CVR_CURRENT(0U);
+    S32_SysTick->CSRr = S32_SysTick_CSR_ENABLE(1u) | S32_SysTick_CSR_TICKINT(0u) | S32_SysTick_CSR_CLKSOURCE(1u);
+}
+
+static inline uint32 OsIf_Timer_System_Internal_GetCounter(void)
+{
+    return SYSTICK_GET_COUNTER();
+}
+
+static inline uint32 OsIf_Timer_System_Internal_GetElapsed(uint32 * const CurrentRef)
+{
+    uint32 CurrentVal = SYSTICK_GET_COUNTER();
+    uint32 dif = 0u;
+    if (SYSTICK_OVERFLOWED((CurrentVal), (*CurrentRef)))
+    {
+        /* overflow occurred */
+        dif = SYSTICK_DELTA_OUTER(CurrentVal, *CurrentRef, S32_SysTick->RVR);
+    }
+    else
+    {
+        /* overflow did not occur */
+        dif = SYSTICK_DELTA_INNER(*CurrentRef, CurrentVal);
+    }
+    *CurrentRef = CurrentVal;
+    return dif;
+}
+
+#define BASE_STOP_SEC_CODE
+#include "Base_MemMap.h"
+
+#ifdef __cplusplus
+}
+#endif
+
+/** @} */
+
+#endif /* OSIF_TIMER_SYSTEM_INTERNAL_SYSTICK */

+ 349 - 0
RTD/include/Pdb_Adc_Ip.h

@@ -0,0 +1,349 @@
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : ADC
+*   Dependencies         : none
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_D2108_ASR_REL_4_4_REV_0000_20210810
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+
+#ifndef PDB_ADC_IP_H
+#define PDB_ADC_IP_H
+
+/**
+*   @file
+*
+*   @addtogroup pdb_adc_ip Pdb Adc IPL
+*   @{
+*/
+
+#include "Pdb_Adc_Ip_Types.h"
+#include "Pdb_Adc_Ip_Cfg.h"
+
+/*==================================================================================================
+*                              SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+#define PDB_ADC_IP_VENDOR_ID_H                      43
+#define PDB_ADC_IP_AR_RELEASE_MAJOR_VERSION_H       4
+#define PDB_ADC_IP_AR_RELEASE_MINOR_VERSION_H       4
+#define PDB_ADC_IP_AR_RELEASE_REVISION_VERSION_H    0
+#define PDB_ADC_IP_SW_MAJOR_VERSION_H               1
+#define PDB_ADC_IP_SW_MINOR_VERSION_H               0
+#define PDB_ADC_IP_SW_PATCH_VERSION_H               0
+/*==================================================================================================
+*                                     FILE VERSION CHECKS
+==================================================================================================*/
+/* Check if Pdb_Adc_Ip.h file and Pdb_Adc_Ip_Types.h file are of the same vendor */
+#if (PDB_ADC_IP_VENDOR_ID_H != PDB_ADC_IP_VENDOR_ID_TYPES_H)
+    #error "Pdb_Adc_Ip.h and Pdb_Adc_Ip_Types.h have different vendor ids"
+#endif
+
+/* Check if Pdb_Adc_Ip.h file and Pdb_Adc_Ip_Types.h file are of the same Autosar version */
+#if ((PDB_ADC_IP_AR_RELEASE_MAJOR_VERSION_H != PDB_ADC_IP_AR_RELEASE_MAJOR_VERSION_TYPES_H) || \
+     (PDB_ADC_IP_AR_RELEASE_MINOR_VERSION_H != PDB_ADC_IP_AR_RELEASE_MINOR_VERSION_TYPES_H) || \
+     (PDB_ADC_IP_AR_RELEASE_REVISION_VERSION_H != PDB_ADC_IP_AR_RELEASE_REVISION_VERSION_TYPES_H) \
+    )
+    #error "AutoSar Version Numbers of Pdb_Adc_Ip.h and Pdb_Adc_Ip_Types.h are different"
+#endif
+
+/* Check if Pdb_Adc_Ip.h file and Pdb_Adc_Ip_Types.h file are of the same Software version */
+#if ((PDB_ADC_IP_SW_MAJOR_VERSION_H != PDB_ADC_IP_SW_MAJOR_VERSION_TYPES_H) || \
+     (PDB_ADC_IP_SW_MINOR_VERSION_H != PDB_ADC_IP_SW_MINOR_VERSION_TYPES_H) || \
+     (PDB_ADC_IP_SW_PATCH_VERSION_H != PDB_ADC_IP_SW_PATCH_VERSION_TYPES_H) \
+    )
+  #error "Software Version Numbers of Pdb_Adc_Ip.h and Pdb_Adc_Ip_Types.h are different"
+#endif
+
+/* Check if Pdb_Adc_Ip.h file and Pdb_Adc_Ip_Cfg.h file are of the same vendor */
+#if (PDB_ADC_IP_VENDOR_ID_H != PDB_ADC_IP_VENDOR_ID_CFG_H)
+    #error "Pdb_Adc_Ip.h and Pdb_Adc_Ip_Cfg.h have different vendor ids"
+#endif
+
+/* Check if Pdb_Adc_Ip.h file and Pdb_Adc_Ip_Cfg.h file are of the same Autosar version */
+#if ((PDB_ADC_IP_AR_RELEASE_MAJOR_VERSION_H != PDB_ADC_IP_AR_RELEASE_MAJOR_VERSION_CFG_H) || \
+     (PDB_ADC_IP_AR_RELEASE_MINOR_VERSION_H != PDB_ADC_IP_AR_RELEASE_MINOR_VERSION_CFG_H) || \
+     (PDB_ADC_IP_AR_RELEASE_REVISION_VERSION_H != PDB_ADC_IP_AR_RELEASE_REVISION_VERSION_CFG_H) \
+    )
+    #error "AutoSar Version Numbers of Pdb_Adc_Ip.h and Pdb_Adc_Ip_Cfg.h are different"
+#endif
+
+/* Check if Pdb_Adc_Ip.h file and Pdb_Adc_Ip_Cfg.h file are of the same Software version */
+#if ((PDB_ADC_IP_SW_MAJOR_VERSION_H != PDB_ADC_IP_SW_MAJOR_VERSION_CFG_H) || \
+     (PDB_ADC_IP_SW_MINOR_VERSION_H != PDB_ADC_IP_SW_MINOR_VERSION_CFG_H) || \
+     (PDB_ADC_IP_SW_PATCH_VERSION_H != PDB_ADC_IP_SW_PATCH_VERSION_CFG_H) \
+    )
+  #error "Software Version Numbers of Pdb_Adc_Ip.h and Pdb_Adc_Ip_Cfg.h are different"
+#endif
+/*==================================================================================================
+*                                     DEFINITIONS
+==================================================================================================*/
+
+/*******************************************************************************
+ * API
+ ******************************************************************************/
+
+#if defined (__cplusplus)
+extern "C" {
+#endif
+
+#define ADC_START_SEC_CODE
+#include "Adc_MemMap.h"
+
+/*!
+ * @brief Initialize PDB module
+ *
+ * This function initializes the PDB counter, input triggers and general pretrigger settings.
+ * It resets PDB registers and enables the PDB clock. Therefore, it should be
+ * called before any other operation. After it is initialized, the PDB can
+ * act as a triggered timer, which enables other features in PDB module.
+ *
+ * @param[in] Instance - PDB instance number
+ * @param[in] Config - configuration struct pointer
+ * @return void
+ */
+void Pdb_Adc_Ip_Init(const uint32 Instance, const Pdb_Adc_Ip_ConfigType * const Config);
+
+/*!
+ * @brief Deinitialize PDB module
+ *
+ * This function resets the PDB internal registers to default values.
+ *
+ * When the PDB module is not used. Calling this function would shut down the
+ * PDB module and reduce the power consumption.
+ *
+ * Note: instance back to back configuration is common between PDB instances 0 and 1
+ * (configures the same register even if configured for either PDB instance)
+ * This function disables it, so affects all other instances.
+ *
+ * @param[in] Instance - PDB instance number
+ * @return void
+ */
+void Pdb_Adc_Ip_DeInit(const uint32 Instance);
+
+/*!
+ * @brief Enable the PDB module
+ *
+ * This function enables the PDB module, counter is on.
+ *
+ * @param[in] Instance - PDB instance number
+ * @return void
+ */
+void Pdb_Adc_Ip_Enable(const uint32 Instance);
+
+/*!
+ * @brief Disable the PDB module
+ *
+ * This function disables the PDB module, counter is off.
+ *
+ * @param[in] Instance - PDB instance number
+ */
+void Pdb_Adc_Ip_Disable(const uint32 Instance);
+
+/*!
+ * @brief Set PDB trigger source
+ *
+ * This function sets the PDB trigger source.
+ *
+ * @param[in] Instance - PDB instance number
+ * @param[in] TriggerSource - trigger source
+ * @return void
+ */
+void Pdb_Adc_Ip_SetTriggerInput(const uint32 Instance, const Pdb_Adc_Ip_TriggerSrcType TriggerSource);
+
+/*!
+ * @brief Set PDB mode
+ *
+ * This function sets the PDB mode to continuous or one shot.
+ *
+ * @param[in] Instance - PDB instance number
+ * @param[in] State - mode to set: continuous(true) or one shot(FALSE)
+ * @return void
+ */
+void Pdb_Adc_Ip_SetContinuousMode(const uint32 Instance, const boolean State);
+
+/*!
+ * @brief Trigger the PDB with a software trigger
+ *
+ * This function triggers the PDB with a software trigger.
+ * When the PDB is set to use the software trigger as input, calling this function
+ * triggers the PDB.
+ *
+ * @param[in] Instance - PDB instance number
+ * @return void
+ */
+void Pdb_Adc_Ip_SwTrigger(const uint32 Instance);
+
+/*!
+ * @brief Get the current value of the PDB counter
+ *
+ * This function gets the current counter value.
+ *
+ * @param[in] Instance - PDB instance number
+ * @return Current PDB counter value.
+ */
+uint32 Pdb_Adc_Ip_GetTimerValue(const uint32 Instance);
+
+/*!
+ * @brief Load buffered register values.
+ *
+ * This function sets the LDOK bit.
+ * Writing one to this bit updates the internal registers MOD, IDLY, CHnDLYm and
+ * POyDLY with the values written to their buffers. The MOD, IDLY,
+ * CHnDLYm and POyDLY take effect according to the load mode settings.
+ *
+ * After one is written to the LDOK bit, the values in the buffers of above mentioned
+ * registers are not effective and cannot be written until the values in the
+ * buffers are loaded into their internal registers. The moment when this happens
+ * depends on the value of the LDMOD register. Only when this register is in it's
+ * default state(0), the load operation will happen immediately. Please check the
+ * reference manual for more information.
+ * The LDOK can be written only when the the PDB is enabled or as alone with it. It is
+ * automatically cleared either when the values in the buffers are loaded into the
+ * internal registers or when the PDB is disabled.
+ *
+ * @param[in] Instance - PDB instance number
+ * @return void
+ */
+void Pdb_Adc_Ip_LoadRegValues(const uint32 Instance);
+
+/*!
+ * @brief Set the period of the counter
+ *
+ * This function sets the PDB Modulus value.
+ * Note: This function writes in an internal buffer. Depending on the
+ * value of the LDMOD register, it might be necessary to call
+ * Pdb_Adc_Ip_LoadRegValues in order to update the value of the register.
+ * The value of the register can be changed only when the PDB module is enabled.
+ *
+ * @param[in] Instance - PDB instance number
+ * @param[in] ModVal - modulus value
+ * @return void
+ */
+void Pdb_Adc_Ip_SetModulus(const uint32 Instance, const uint16 ModVal);
+
+/*!
+ * @brief Configure all pretriggers on the selected channel
+ *
+ * This function configures the back to back modes, delay enable and output
+ * enable settings for all pretriggers on the selected channel.
+ *
+ * @param[in] Instance - PDB instance number
+ * @param[in] ChanIdx - PDB channel
+ * @param[in] Config - pretriggers config
+ * @return void
+ */
+void Pdb_Adc_Ip_ConfigAdcPretriggers(const uint32 Instance, const uint8 ChanIdx, const Pdb_Adc_Ip_PretriggersConfigType * const Config);
+
+/*!
+ * @brief Get ADC pretrigger channel flags from the PDB module
+ *
+ * This function gets all ADC pretrigger flags from the selected channel.
+ *
+ * @param[in] Instance - PDB instance number
+ * @param[in] ChanIdx - PDB channel
+ * @return bitmask of channel flags selected by pretriggMask
+ */
+uint32 Pdb_Adc_Ip_GetAdcPretriggerFlags(const uint32 Instance, const uint8 ChanIdx);
+
+/*!
+ * @brief Clear ADC pretrigger channel flags from the PDB module
+ *
+ * This function clears the ADC pretrigger channel flags selected by pretriggMask
+ * from channel channel.
+ *
+ * @param[in] Instance - PDB instance number
+ * @param[in] ChanIdx - PDB channel
+ * @param[in] PretriggMask - ADC pretriggers mask
+ */
+void Pdb_Adc_Ip_ClearAdcPretriggerFlags(const uint32 Instance, const uint8 ChanIdx, const uint16 PretriggMask);
+
+/*!
+ * @brief Set back to back mode for the selected pretrigger
+ *
+ * This function sets back to back mode for the selected pretrigger on
+ * the given channel.
+ *
+ * @param[in] Instance - PDB instance number
+ * @param[in] ChanIdx - PDB channel
+ * @param[in] PretriggIdx - ADC pretrigger index
+ * @param[in] Value - enable(true) or disable(FALSE)
+ */
+void Pdb_Adc_Ip_SetAdcPretriggerBackToBack(const uint32 Instance, const uint8 ChanIdx, const uint8 PretriggIdx, const boolean Value);
+
+/*!
+ * @brief Enable or disable the selected pretrigger
+ *
+ * This function enables or disables the selected pretrigger on the given channel.
+ *
+ * @param[in] Instance - PDB instance number
+ * @param[in] ChanIdx - PDB channel
+ * @param[in] PretriggIdx - ADC pretrigger mask
+ * @param[in] Value - enable(true) or disable(FALSE)
+ */
+void Pdb_Adc_Ip_SetAdcPretriggerEnable(const uint32 Instance, const uint8 ChanIdx, const uint8 PretriggIdx, const boolean Value);
+
+/*!
+ * @brief Set the delay enable for the selected pretrigger
+ *
+ * This function sets the delay enable value for the selected pretrigger on
+ * the given channel.
+ *
+ * @param[in] Instance - PDB instance number
+ * @param[in] ChanIdx - PDB channel
+ * @param[in] PretriggIdx - ADC pretrigger index
+ * @param[in] Value - enable(true) or disable(FALSE)
+ */
+void Pdb_Adc_Ip_SetAdcPretriggerDelayEnable(const uint32 Instance, const uint8 ChanIdx, const uint8 PretriggIdx, const boolean Value);
+
+/*!
+ * @brief Set the pretrigger delay value.
+ *
+ * This function sets the pretrigger delay value
+ * Note: This function writes in an internal buffer. Depending on the
+ * value of the LDMOD register, it might be necessary to call
+ * Pdb_Adc_Ip_LoadRegValues in order to update the value of the register.
+ * The value of the register can be changed only when the PDB module is enabled.
+ *
+ * @param[in] Instance - PDB instance number
+ * @param[in] ChanIdx - PDB channel
+ * @param[in] PretriggIdx - ADC pretrigger index
+ * @param[in] DelayValue - pretrigger delay value
+ */
+void Pdb_Adc_Ip_SetAdcPretriggerDelayValue(const uint32 Instance, const uint8 ChanIdx, const uint8 PretriggIdx, const uint16 DelayValue);
+
+/*!
+ * @brief Disable and clear PDB module
+ *
+ * This function disables PDB module and clears all channels
+ * configuration and status registers.
+ * Note: This function does not deinitialize the module.
+ *
+ * @param[in] Instance - PDB instance number
+ */
+void Pdb_Adc_Ip_DisableAndClearPdb(const uint32 Instance);
+
+#define ADC_STOP_SEC_CODE
+#include "Adc_MemMap.h"
+
+#if defined (__cplusplus)
+}
+#endif
+
+/** @} */
+
+#endif /* PDB_ADC_IP_H */

+ 128 - 0
RTD/include/Pdb_Adc_Ip_HwAccess.h

@@ -0,0 +1,128 @@
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : ADC
+*   Dependencies         : none
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_D2108_ASR_REL_4_4_REV_0000_20210810
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+
+#ifndef PDB_PDB_ADC_IP_HW_ACCESS_H
+#define PDB_PDB_ADC_IP_HW_ACCESS_H
+
+/**
+*   @file
+*
+*   @internal
+*   @addtogroup pdb_adc_ip Pdb Adc IPL
+*   @{
+*/
+
+#include "StandardTypes.h"
+
+/*******************************************************************************
+ *   Source file version information
+ ******************************************************************************/
+#define PDB_ADC_IP_VENDOR_ID_HWACCESS_H                      43
+#define PDB_ADC_IP_AR_RELEASE_MAJOR_VERSION_HWACCESS_H       4
+#define PDB_ADC_IP_AR_RELEASE_MINOR_VERSION_HWACCESS_H       4
+#define PDB_ADC_IP_AR_RELEASE_REVISION_VERSION_HWACCESS_H    0
+#define PDB_ADC_IP_SW_MAJOR_VERSION_HWACCESS_H               1
+#define PDB_ADC_IP_SW_MINOR_VERSION_HWACCESS_H               0
+#define PDB_ADC_IP_SW_PATCH_VERSION_HWACCESS_H               0
+/*******************************************************************************
+ *   File version checks
+ ******************************************************************************/
+#ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
+/* Check if Pdb_Adc_Ip_HwAccess.h file and StandardTypes.h file are of the same Autosar version */
+#if ((PDB_ADC_IP_AR_RELEASE_MAJOR_VERSION_HWACCESS_H != STD_AR_RELEASE_MAJOR_VERSION) || \
+     (PDB_ADC_IP_AR_RELEASE_MINOR_VERSION_HWACCESS_H != STD_AR_RELEASE_MINOR_VERSION)    \
+    )
+    #error "AutoSar Version Numbers of Pdb_Adc_Ip_HwAccess.h and StandardTypes.h are different"
+#endif
+#endif /* DISABLE_MCAL_INTERMODULE_ASR_CHECK */
+
+#if defined (__cplusplus)
+extern "C" {
+#endif
+
+/*******************************************************************************
+ * Code
+ ******************************************************************************/
+#define ADC_START_SEC_CODE
+#include "Adc_MemMap.h"
+
+static inline void Pdb_Adc_HwAcc_SetAdcPretriggerMask(PDB_Type * const Base, const uint8 ChanIdx, const uint32 Mask, const boolean Value)
+{
+    /* Set C1 register of a channel based on mask */
+    if (Value == TRUE)
+    {
+        Base->CH[ChanIdx].C1 |= Mask;
+    }
+    else
+    {
+        Base->CH[ChanIdx].C1 &= ~(Mask);
+    }
+}
+
+static inline void Pdb_Adc_HwAcc_DisablePdb(PDB_Type * const Base)
+{
+    /* Disable PDB by clearing PDBEN bit of SC register */
+    Base->SC &= ~(PDB_SC_PDBEN_MASK);
+}
+
+static inline void Pdb_Adc_HwAcc_SetContinuousMode(PDB_Type * const Base, const boolean State)
+{
+    /* Update ContinuousMode value found in SC register */
+    if (State == TRUE)
+    {
+        Base->SC |= PDB_SC_CONT_MASK;
+    }
+    else
+    {
+        Base->SC &= ~(PDB_SC_CONT_MASK);
+    }
+}
+
+static inline void Pdb_Adc_HwAcc_ConfigAdcPretriggers(PDB_Type * const Base, const uint8 ChanIdx, const Pdb_Adc_Ip_PretriggersConfigType * const Config)
+{
+    /* Configure all channel's pretriggers by updating all fields of the C1 register */
+    uint32 C1Reg = Base->CH[ChanIdx].C1;
+    C1Reg &= ~(PDB_C1_EN_MASK | PDB_C1_TOS_MASK | PDB_C1_BB_MASK);
+    C1Reg |= PDB_C1_EN(Config->EnableMask);
+    C1Reg |= PDB_C1_TOS(Config->EnableDelayMask);
+    C1Reg |= PDB_C1_BB(Config->BackToBackEnableMask);
+    Base->CH[ChanIdx].C1 = C1Reg;
+}
+
+static inline void Pdb_Adc_HwAcc_ClearAdcPretriggerFlags(PDB_Type * const Base, const uint8 ChanIdx, const uint16 PretriggMask)
+{
+    /* Clear pretrigger status flags found in S register based on PretriggMask */
+    Base->CH[ChanIdx].S &= ~PDB_S_CF(PretriggMask);
+}
+
+#define ADC_STOP_SEC_CODE
+#include "Adc_MemMap.h"
+
+#if defined (__cplusplus)
+}
+#endif
+
+/** @} */
+
+#endif /* PDB_PDB_ADC_IP_HW_ACCESS_H */

+ 226 - 0
RTD/include/Pdb_Adc_Ip_Types.h

@@ -0,0 +1,226 @@
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : ADC
+*   Dependencies         : none
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_D2108_ASR_REL_4_4_REV_0000_20210810
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+
+#ifndef PDB_ADC_IP_TYPES_H
+#define PDB_ADC_IP_TYPES_H
+
+/**
+*   @file
+*
+*   @addtogroup pdb_adc_ip Pdb Adc IPL
+*   @{
+*/
+
+#include "StandardTypes.h"
+#include "Pdb_Adc_Ip_CfgDefines.h"
+
+/*==================================================================================================
+*                                SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+#define PDB_ADC_IP_VENDOR_ID_TYPES_H                      43
+#define PDB_ADC_IP_AR_RELEASE_MAJOR_VERSION_TYPES_H       4
+#define PDB_ADC_IP_AR_RELEASE_MINOR_VERSION_TYPES_H       4
+#define PDB_ADC_IP_AR_RELEASE_REVISION_VERSION_TYPES_H    0
+#define PDB_ADC_IP_SW_MAJOR_VERSION_TYPES_H               1
+#define PDB_ADC_IP_SW_MINOR_VERSION_TYPES_H               0
+#define PDB_ADC_IP_SW_PATCH_VERSION_TYPES_H               0
+/*==================================================================================================
+*                                      FILE VERSION CHECKS
+==================================================================================================*/
+
+/* Check if Pdb_Adc_Ip_Types.h file and Pdb_Adc_Ip_CfgDefines.h file are of the same vendor */
+#if (PDB_ADC_IP_VENDOR_ID_TYPES_H != PDB_ADC_IP_VENDOR_ID_CFGDEFINES_H)
+    #error "Pdb_Adc_Ip_Types.h and Pdb_Adc_Ip_CfgDefines.h have different vendor ids"
+#endif
+
+/* Check if Pdb_Adc_Ip_Types.h file and Pdb_Adc_Ip_CfgDefines.h file are of the same Autosar version */
+#if ((PDB_ADC_IP_AR_RELEASE_MAJOR_VERSION_TYPES_H != PDB_ADC_IP_AR_RELEASE_MAJOR_VERSION_CFGDEFINES_H) || \
+     (PDB_ADC_IP_AR_RELEASE_MINOR_VERSION_TYPES_H != PDB_ADC_IP_AR_RELEASE_MINOR_VERSION_CFGDEFINES_H) || \
+     (PDB_ADC_IP_AR_RELEASE_REVISION_VERSION_TYPES_H != PDB_ADC_IP_AR_RELEASE_REVISION_VERSION_CFGDEFINES_H) \
+    )
+    #error "AutoSar Version Numbers of Pdb_Adc_Ip_Types.h and Pdb_Adc_Ip_CfgDefines.h are different"
+#endif
+
+/* Check if Pdb_Adc_Ip_Types.h file and Pdb_Adc_Ip_CfgDefines.h file are of the same Software version */
+#if ((PDB_ADC_IP_SW_MAJOR_VERSION_TYPES_H != PDB_ADC_IP_SW_MAJOR_VERSION_CFGDEFINES_H) || \
+     (PDB_ADC_IP_SW_MINOR_VERSION_TYPES_H != PDB_ADC_IP_SW_MINOR_VERSION_CFGDEFINES_H) || \
+     (PDB_ADC_IP_SW_PATCH_VERSION_TYPES_H != PDB_ADC_IP_SW_PATCH_VERSION_CFGDEFINES_H) \
+    )
+  #error "Software Version Numbers of Pdb_Adc_Ip_Types.h and Pdb_Adc_Ip_CfgDefines.h are different"
+#endif
+
+#ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
+/* Check if Pdb_Adc_Ip_Types.h file and StandardTypes.h file are of the same Autosar version */
+#if ((PDB_ADC_IP_AR_RELEASE_MAJOR_VERSION_TYPES_H != STD_AR_RELEASE_MAJOR_VERSION) || \
+     (PDB_ADC_IP_AR_RELEASE_MINOR_VERSION_TYPES_H != STD_AR_RELEASE_MINOR_VERSION)    \
+    )
+    #error "AutoSar Version Numbers of Pdb_Adc_Ip_Types.h and StandardTypes.h are different"
+#endif
+#endif /* DISABLE_MCAL_INTERMODULE_ASR_CHECK */
+/*==================================================================================================
+*                              STRUCTURES AND OTHER TYPEDEFS
+==================================================================================================*/
+
+/*!
+ * @brief Defines the type of value load mode for the PDB module.
+ *
+ * Some timing related registers, such as the MOD, IDLY, CHnDLYm, INTx and POyDLY,
+ * buffer the setting values. Only the load operation is triggered.
+ * The setting value is loaded from a buffer and takes effect. There are
+ * four loading modes to fit different applications.
+ * Implements : Pdb_Adc_Ip_LoadValueModeType_Class
+ */
+typedef enum
+{
+    PDB_ADC_IP_LOAD_VAL_IMMEDIATELY                        = 0U, /*!< Loaded immediately after load operation. */
+    PDB_ADC_IP_LOAD_VAL_AT_MODULO_COUNTER                  = 1U, /*!< Loaded when counter hits the modulo after load operation. */
+    PDB_ADC_IP_LOAD_VAL_AT_NEXT_TRIGGER                    = 2U, /*!< Loaded when detecting an input trigger after load operation. */
+    PDB_ADC_IP_LOAD_VAL_AT_MODULO_COUNTER_OR_NEXT_TRIGGER  = 3U  /*!< Loaded when counter hits the modulo or detecting an input trigger after load operation. */
+} Pdb_Adc_Ip_LoadValueModeType;
+
+/*!
+ * @brief Defines the type of prescaler divider for the PDB counter clock.
+ * Implements : Pdb_Adc_Ip_ClkPrescalerDivType_Class
+ */
+typedef enum
+{
+    PDB_ADC_IP_CLK_PREDIV_BY_1   = 0U, /*!< Counting divided by 1 x prescaler multiplication factor (selected by MULT). */
+    PDB_ADC_IP_CLK_PREDIV_BY_2   = 1U, /*!< Counting divided by 2 x prescaler multiplication factor (selected by MULT). */
+    PDB_ADC_IP_CLK_PREDIV_BY_4   = 2U, /*!< Counting divided by 4 x prescaler multiplication factor (selected by MULT). */
+    PDB_ADC_IP_CLK_PREDIV_BY_8   = 3U, /*!< Counting divided by 8 x prescaler multiplication factor (selected by MULT). */
+    PDB_ADC_IP_CLK_PREDIV_BY_16  = 4U, /*!< Counting divided by 16 x prescaler multiplication factor (selected by MULT). */
+    PDB_ADC_IP_CLK_PREDIV_BY_32  = 5U, /*!< Counting divided by 32 x prescaler multiplication factor (selected by MULT). */
+    PDB_ADC_IP_CLK_PREDIV_BY_64  = 6U, /*!< Counting divided by 64 x prescaler multiplication factor (selected by MULT). */
+    PDB_ADC_IP_CLK_PREDIV_BY_128 = 7U  /*!< Counting divided by 128 x prescaler multiplication factor (selected by MULT). */
+} Pdb_Adc_Ip_ClkPrescalerDivType;
+
+/*!
+ * @brief Defines the type of the multiplication source mode for PDB.
+ *
+ * Selects the multiplication factor of the prescaler divider for the PDB counter clock.
+ * Implements : Pdb_Adc_Ip_ClkPrescalerMultFactType_Class
+ */
+typedef enum
+{
+    PDB_ADC_IP_CLK_PREMULT_FACT_AS_1  = 0U, /*!< Multiplication factor is 1. */
+    PDB_ADC_IP_CLK_PREMULT_FACT_AS_10 = 1U, /*!< Multiplication factor is 10. */
+    PDB_ADC_IP_CLK_PREMULT_FACT_AS_20 = 2U, /*!< Multiplication factor is 20. */
+    PDB_ADC_IP_CLK_PREMULT_FACT_AS_40 = 3U  /*!< Multiplication factor is 40. */
+} Pdb_Adc_Ip_ClkPrescalerMultFactType;
+
+/*!
+ * @brief Defines the type of trigger source mode for the PDB.
+ *
+ * Selects the trigger input source for the PDB. The trigger input source can
+ * be internal or the software trigger.
+ * Implements : Pdb_Adc_Ip_TriggerSrcType_Class
+ */
+typedef enum
+{
+    PDB_ADC_IP_TRIGGER_IN0         = 0U,    /*!< Source trigger comes from TRGMUX. */
+    PDB_ADC_IP_SOFTWARE_TRIGGER    = 15U    /*!< Select software trigger. */
+} Pdb_Adc_Ip_TriggerSrcType;
+
+/*!
+ * @brief Defines the sequence error notification header
+ *
+ * This header is used for sequence error notification callbacks
+ *
+ * Implements : Pdb_Adc_Ip_SeqErrNotificationType_Class
+ */
+typedef void Pdb_Adc_Ip_SeqErrNotificationType(uint8 ChanIdx, uint16 SeqErrMask);
+
+/*!
+ * @brief Defines the type of structure for configuring an ADC pretrigger.
+ * Implements : Pdb_Adc_Ip_PretriggerConfigType_Class
+ */
+typedef struct
+{
+    uint8 EnableMask;           /*!< Mask of enabled pretriggers. */
+    uint8 EnableDelayMask;      /*!< Mask of pretriggers with delays enabled. */
+    uint8 BackToBackEnableMask; /*!< Mask of pretriggers with back to back mode enabled.
+                                    If enabled, the pretrigger will be activated automatically when the ADC COCO flag corresponding to the previous pretrigger in the chain, is set.
+                                    The previous pretrigger for pretriggers with index 0, depend on features InstanceBackToBackEnable and InterChannelBackToBackEnable. */
+} Pdb_Adc_Ip_PretriggersConfigType;
+
+/*!
+ * @brief Defines the type of structure for configuring a single PDB channel.
+ * Implements : Pdb_Adc_Ip_ChanConfigType_Class
+ */
+typedef struct
+{
+    uint8 ChnIdx;                                       /*!< PDB channel index. */
+    Pdb_Adc_Ip_PretriggersConfigType PretriggersConfig; /*!< Pretriggers configuration. */
+    uint16 PretriggerDelays[PDB_DLY_COUNT];             /*!< Pretriggers delay array, positional dependent(delay for pretrigger 0 must be at index 0) */
+} Pdb_Adc_Ip_ChanConfigType;
+
+/*!
+ * @brief Defines the type of structure for basic timer in PDB.
+ *
+ * Implements : Pdb_Adc_Ip_ConfigType_Class
+ */
+typedef struct
+{
+    Pdb_Adc_Ip_LoadValueModeType LoadValueMode;           /*!< Select the load mode. */
+    Pdb_Adc_Ip_ClkPrescalerDivType PrescalerDiv;          /*!< Select the prescaler divider. */
+    Pdb_Adc_Ip_ClkPrescalerMultFactType ClkPreMultFactor; /*!< Select multiplication factor for prescaler. */
+    Pdb_Adc_Ip_TriggerSrcType TriggerSource;              /*!< Select the trigger input source. */
+    boolean ContinuousModeEnable;                         /*!< Enable the continuous mode. */
+    boolean DmaEnable;                                    /*!< Enable the dma for timer. */
+    uint16 ModValue;                                      /*!< Modulus register value. */
+#if  (STD_ON == FEATURE_PDB_HAS_INSTANCE_BACKTOBACK)
+    boolean InstanceBackToBackEnable;                     /*!< Enable the instance back to back mode between PDB0 CH0 and PDB1 CH0 pretriggers, forming a ring (PDB0_CH0_pretrigger7 -> PDB1_CH0_pretrigger0 and PDB1_CH0_pretrigger7 -> PDB0_CH0_pretrigger0).
+                                                            Note: this configuration is common between all PDB instances (configures the same register SIM_CHIPCTL[PDB_BB_SEL] even if configured for either PDB instance)
+                                                            Enabling when configuring PDB0, then disabling when configuring PDB1, will result in being disabled.
+                                                            Note: must not be enabled simultaneously with inter-channel back to back on any PDB instance. */
+#endif /* (STD_ON == FEATURE_PDB_HAS_INSTANCE_BACKTOBACK) */
+#if  (STD_ON == FEATURE_PDB_HAS_INTERCHANNEL_BACKTOBACK)
+    boolean InterChannelBackToBackEnable;   /*!< Enable the inter-channel back to back mode between PDBx CH0 and PDBx CH1 pretriggers, forming a ring (PDBx_CH0_pretrigger7 -> PDBx_CH1_pretrigger0 and PDBx_CH1_pretrigger7 -> PDBx_CH0_pretrigger0).
+                                                Note: this configuration is dedicated to each PDB instance.
+                                                Note: must not be enabled simultaneously with instance back to back on any PDB instance. */
+#endif /* (STD_ON == FEATURE_PDB_HAS_INTERCHANNEL_BACKTOBACK) */
+
+    uint8 NumChans;                                         /*!< Number of PDB Channels */
+    const Pdb_Adc_Ip_ChanConfigType * ChanConfigs;          /*!< PDB Channel configuration */
+
+    Pdb_Adc_Ip_SeqErrNotificationType * SeqErrNotification; /*!< Sequence error notification. */
+} Pdb_Adc_Ip_ConfigType;
+
+/*!
+ * @brief Structure used to store runtime info
+ *
+ * This structure is used to store PDB runtime info
+ *
+ * Implements : Pdb_Adc_Ip_StateStructType_Class
+ */
+typedef struct
+{
+    boolean Init;      /*!< Check if the driver was initialized. */
+
+    /* Sequence error notification */
+    Pdb_Adc_Ip_SeqErrNotificationType * SeqErrNotification; /*!< Sequence error notification */
+} Pdb_Adc_Ip_StateStructType;
+/** @} */
+
+#endif /* PDB_ADC_IP_TYPES_H */

+ 334 - 0
RTD/include/SchM_Adc.h

@@ -0,0 +1,334 @@
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : 
+*   Dependencies         : none
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_D2108_ASR_REL_4_4_REV_0000_20210810
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+
+#ifndef SCHM_ADC_H
+#define SCHM_ADC_H
+
+/**
+*   @file
+*
+*   @addtogroup RTE_MODULE
+*   @{
+*/
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*==================================================================================================
+*                                         INCLUDE FILES
+* 1) system and project includes
+* 2) needed interfaces from external units
+* 3) internal and external interfaces from this unit
+==================================================================================================*/
+
+/*==================================================================================================
+*                               SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+#define SCHM_ADC_AR_RELEASE_MAJOR_VERSION     4
+#define SCHM_ADC_AR_RELEASE_MINOR_VERSION     4
+#define SCHM_ADC_AR_RELEASE_REVISION_VERSION  0
+#define SCHM_ADC_SW_MAJOR_VERSION             1
+#define SCHM_ADC_SW_MINOR_VERSION             0
+#define SCHM_ADC_SW_PATCH_VERSION             0
+
+/*==================================================================================================
+*                                      FILE VERSION CHECKS
+==================================================================================================*/
+
+
+/*==================================================================================================
+*                                           CONSTANTS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                       DEFINES AND MACROS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                             ENUMS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                 STRUCTURES AND OTHER TYPEDEFS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                 GLOBAL VARIABLE DECLARATIONS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                     FUNCTION PROTOTYPES
+==================================================================================================*/
+#define RTE_START_SEC_CODE
+#include "Rte_MemMap.h"
+
+/*==================================================================================================
+*                                           CONSTANTS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                       DEFINES AND MACROS
+==================================================================================================*/
+/* Number of cores id */
+#define NUMBER_OF_CORES         (uint8)(1U)
+
+
+
+
+#ifdef MCAL_TESTING_ENVIRONMENT
+/** 
+@brief   This function checks that all entered exclusive areas were also exited. 
+@details This function checks that all entered exclusive areas were also exited. The check
+         is done by verifying that all reentry_guard_* static variables are back to the
+         zero value.
+    
+@param[in]     void       No input parameters
+@return        void       This function does not return a value. Test asserts are used instead. 
+
+@pre  None
+@post None
+
+@remarks Covers 
+@remarks Implements 
+*/
+void SchM_Check_adc(void);
+#endif /*MCAL_TESTING_ENVIRONMENT*/
+
+extern void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_00(void);
+extern void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_00(void);
+
+extern void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_01(void);
+extern void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_01(void);
+
+extern void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_02(void);
+extern void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_02(void);
+
+extern void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_03(void);
+extern void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_03(void);
+
+extern void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_04(void);
+extern void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_04(void);
+
+extern void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_05(void);
+extern void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_05(void);
+
+extern void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_06(void);
+extern void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_06(void);
+
+extern void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_10(void);
+extern void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_10(void);
+
+extern void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_11(void);
+extern void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_11(void);
+
+extern void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_12(void);
+extern void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_12(void);
+
+extern void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_13(void);
+extern void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_13(void);
+
+extern void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_14(void);
+extern void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_14(void);
+
+extern void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_15(void);
+extern void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_15(void);
+
+extern void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_16(void);
+extern void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_16(void);
+
+extern void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_17(void);
+extern void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_17(void);
+
+extern void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_18(void);
+extern void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_18(void);
+
+extern void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_19(void);
+extern void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_19(void);
+
+extern void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_20(void);
+extern void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_20(void);
+
+extern void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_21(void);
+extern void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_21(void);
+
+extern void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_22(void);
+extern void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_22(void);
+
+extern void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_23(void);
+extern void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_23(void);
+
+extern void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_24(void);
+extern void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_24(void);
+
+extern void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_25(void);
+extern void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_25(void);
+
+extern void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_26(void);
+extern void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_26(void);
+
+extern void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_27(void);
+extern void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_27(void);
+
+extern void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_28(void);
+extern void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_28(void);
+
+extern void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_29(void);
+extern void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_29(void);
+
+extern void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_30(void);
+extern void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_30(void);
+
+extern void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_31(void);
+extern void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_31(void);
+
+extern void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_32(void);
+extern void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_32(void);
+
+extern void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_33(void);
+extern void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_33(void);
+
+extern void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_34(void);
+extern void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_34(void);
+
+extern void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_35(void);
+extern void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_35(void);
+
+extern void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_36(void);
+extern void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_36(void);
+
+extern void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_37(void);
+extern void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_37(void);
+
+extern void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_38(void);
+extern void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_38(void);
+
+extern void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_39(void);
+extern void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_39(void);
+
+extern void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_40(void);
+extern void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_40(void);
+
+extern void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_41(void);
+extern void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_41(void);
+
+extern void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_42(void);
+extern void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_42(void);
+
+extern void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_43(void);
+extern void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_43(void);
+
+extern void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_44(void);
+extern void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_44(void);
+
+extern void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_45(void);
+extern void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_45(void);
+
+extern void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_46(void);
+extern void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_46(void);
+
+extern void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_47(void);
+extern void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_47(void);
+
+extern void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_48(void);
+extern void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_48(void);
+
+extern void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_49(void);
+extern void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_49(void);
+
+extern void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_50(void);
+extern void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_50(void);
+
+extern void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_54(void);
+extern void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_54(void);
+
+extern void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_55(void);
+extern void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_55(void);
+
+extern void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_56(void);
+extern void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_56(void);
+
+extern void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_57(void);
+extern void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_57(void);
+
+extern void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_58(void);
+extern void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_58(void);
+
+extern void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_59(void);
+extern void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_59(void);
+
+extern void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_60(void);
+extern void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_60(void);
+
+extern void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_61(void);
+extern void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_61(void);
+
+extern void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_62(void);
+extern void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_62(void);
+
+extern void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_63(void);
+extern void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_63(void);
+
+extern void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_64(void);
+extern void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_64(void);
+
+extern void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_65(void);
+extern void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_65(void);
+
+extern void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_66(void);
+extern void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_66(void);
+
+extern void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_67(void);
+extern void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_67(void);
+
+extern void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_68(void);
+extern void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_68(void);
+
+extern void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_69(void);
+extern void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_69(void);
+
+extern void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_70(void);
+extern void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_70(void);
+
+extern void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_71(void);
+extern void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_71(void);
+
+extern void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_72(void);
+extern void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_72(void);
+
+extern void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_73(void);
+extern void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_73(void);
+
+
+
+
+#define RTE_STOP_SEC_CODE
+#include "Rte_MemMap.h"
+
+#ifdef __cplusplus
+}
+#endif
+
+/** @} */
+
+#endif /* SCHM_ADC_H */

+ 5862 - 0
RTD/src/Adc.c

@@ -0,0 +1,5862 @@
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : ADC
+*   Dependencies         : none
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_D2108_ASR_REL_4_4_REV_0000_20210810
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+
+/**
+*   @file    Adc.c
+*   @implements      Adc.c_Artifact
+*   @addtogroup adc_driver
+*   @{
+*/
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+/*==================================================================================================
+*                                        INCLUDE FILES
+* 1) system and project includes
+* 2) needed interfaces from external units
+* 3) internal and external interfaces from this unit
+==================================================================================================*/
+#include "Adc.h"
+#include "Adc_Ipw.h"
+#include "Det.h"
+#include "SchM_Adc.h"
+
+/*==================================================================================================
+*                              SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+#define ADC_VENDOR_ID_C                         43
+#define ADC_AR_RELEASE_MAJOR_VERSION_C          4
+#define ADC_AR_RELEASE_MINOR_VERSION_C          4
+#define ADC_AR_RELEASE_REVISION_VERSION_C       0
+#define ADC_SW_MAJOR_VERSION_C                  1
+#define ADC_SW_MINOR_VERSION_C                  0
+#define ADC_SW_PATCH_VERSION_C                  0
+
+/*==================================================================================================
+*                                     FILE VERSION CHECKS
+==================================================================================================*/
+/* Check if Adc.c and Adc.h are of the same vendor */
+#if (ADC_VENDOR_ID_C != ADC_VENDOR_ID)
+#error "Adc.c and Adc.h have different vendor ids"
+#endif
+
+/* Check if Adc.c and Adc.h are of the same Autosar version */
+#if ((ADC_AR_RELEASE_MAJOR_VERSION_C != ADC_AR_RELEASE_MAJOR_VERSION) || \
+     (ADC_AR_RELEASE_MINOR_VERSION_C != ADC_AR_RELEASE_MINOR_VERSION) || \
+     (ADC_AR_RELEASE_REVISION_VERSION_C != ADC_AR_RELEASE_REVISION_VERSION) \
+    )
+#error "AutoSar Version Numbers of Adc.c and Adc.h are different"
+#endif
+
+/* Check if Adc.c and Adc.h are of the same Software version */
+#if ((ADC_SW_MAJOR_VERSION_C != ADC_SW_MAJOR_VERSION) || \
+     (ADC_SW_MINOR_VERSION_C != ADC_SW_MINOR_VERSION) || \
+     (ADC_SW_PATCH_VERSION_C != ADC_SW_PATCH_VERSION) \
+    )
+#error "Software Version Numbers of Adc.c and Adc.h are different"
+#endif
+
+/* Check if Adc.c and Adc_Ipw.h are of the same vendor */
+#if (ADC_VENDOR_ID_C != ADC_VENDOR_ID_IPW_H)
+    #error "Adc.c and Adc_Ipw.h have different vendor ids"
+#endif
+
+/* Check if Adc.c and Adc_Ipw.h are of the same Autosar version */
+#if ((ADC_AR_RELEASE_MAJOR_VERSION_C != ADC_AR_RELEASE_MAJOR_VERSION_IPW_H) || \
+     (ADC_AR_RELEASE_MINOR_VERSION_C != ADC_AR_RELEASE_MINOR_VERSION_IPW_H) || \
+     (ADC_AR_RELEASE_REVISION_VERSION_C != ADC_AR_RELEASE_REVISION_VERSION_IPW_H) \
+    )
+#error "AutoSar Version Numbers of Adc.c and Adc_Ipw.h are different"
+#endif
+
+/* Check if Adc.c and Adc_Ipw.h are of the same Software version */
+#if ((ADC_SW_MAJOR_VERSION_C != ADC_SW_MAJOR_VERSION_IPW_H) || \
+     (ADC_SW_MINOR_VERSION_C != ADC_SW_MINOR_VERSION_IPW_H) || \
+     (ADC_SW_PATCH_VERSION_C != ADC_SW_PATCH_VERSION_IPW_H) \
+    )
+#error "Software Version Numbers of Adc.c and Adc_Ipw.h are different"
+#endif
+
+#ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
+/* Check if Adc.c and SchM_Adc.h are of the same Autosar version */
+#if ((ADC_AR_RELEASE_MAJOR_VERSION_C != SCHM_ADC_AR_RELEASE_MAJOR_VERSION) || \
+     (ADC_AR_RELEASE_MINOR_VERSION_C != SCHM_ADC_AR_RELEASE_MINOR_VERSION) \
+    )
+#error "AutoSar Version Numbers of Adc.c and SchM_Adc.h are different"
+#endif
+
+/* Check if Adc.c and Det.h are of the same Autosar version */
+#if ((ADC_AR_RELEASE_MAJOR_VERSION_C != DET_AR_RELEASE_MAJOR_VERSION) || \
+     (ADC_AR_RELEASE_MINOR_VERSION_C != DET_AR_RELEASE_MINOR_VERSION) \
+    )
+#error "AutoSar Version Numbers of Adc.c and Det.h are different"
+#endif
+#endif /* DISABLE_MCAL_INTERMODULE_ASR_CHECK */
+
+/*==================================================================================================
+*                          LOCAL TYPEDEFS (STRUCTURES, UNIONS, ENUMS)
+==================================================================================================*/
+
+
+/*==================================================================================================
+*                                       LOCAL MACROS
+==================================================================================================*/
+
+
+/*==================================================================================================
+*                                      LOCAL CONSTANTS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                      LOCAL VARIABLES
+==================================================================================================*/
+
+
+/*==================================================================================================
+*                                      GLOBAL CONSTANTS
+==================================================================================================*/
+/*==================================================================================================
+*                                      GLOBAL VARIABLES
+==================================================================================================*/
+
+#define ADC_START_SEC_VAR_CLEARED_UNSPECIFIED
+#include "Adc_MemMap.h"
+
+/**
+* @brief          Global Configuration Pointer.
+* @details        Data structure containing the set of configuration parameters required for
+*                 initializing the ADC Driver and ADC HW Unit(s).
+*
+*/
+const Adc_ConfigType * Adc_pCfgPtr[ADC_MAX_PARTITIONS];
+
+#if (ADC_VALIDATE_GLOBAL_CALL == STD_ON)
+/**
+* @brief          Global Driver Status.
+* @details        Data structure containing the ADC driver status
+*                 uninit, during init or already init.
+*
+*/
+static Adc_GlobalStateType Adc_eGlobalState[ADC_MAX_PARTITIONS];
+#endif /* ADC_VALIDATE_GLOBAL_CALL == STD_ON */
+
+#if (ADC_DUAL_CLOCK_MODE == STD_ON)
+#if (ADC_SET_ADC_CONV_TIME_ONCE == STD_OFF)
+/**
+* @brief          Clock mode in use
+* @details        The current used clock mode: normal or alternate clock.
+*/
+Adc_SelectPrescalerType Adc_eClockMode[ADC_MAX_PARTITIONS];
+#endif /*if (ADC_SET_ADC_CONV_TIME_ONCE == STD_OFF)*/
+#endif /*if (ADC_DUAL_CLOCK_MODE == STD_ON)*/
+
+/**
+* @brief          Group status array structure
+* @details        Array to hold all the groups status information are indexed by group id.
+*/
+Adc_GroupStatusType Adc_aGroupStatus[ADC_MAX_GROUPS];
+
+/**
+* @brief          Unit status structure
+* @details        Structure for the units status are indexed by logical id.
+*/
+Adc_UnitStatusType Adc_aUnitStatus[ADC_MAX_HW_UNITS];
+
+/**
+* @brief          Runtime group channels array
+* @details        Hold the runtime group channels.
+*/
+#if (ADC_SETCHANNEL_API == STD_ON)
+Adc_RuntimeGroupChannelType Adc_aRuntimeGroupChannel[ADC_MAX_GROUPS];
+#endif /* (ADC_SETCHANNEL_API == STD_ON) */
+
+#if (ADC_POWER_STATE_SUPPORTED == STD_ON)
+static Adc_PowerStateType Adc_eCurrentState[ADC_MAX_PARTITIONS];
+static Adc_PowerStateType Adc_eTargetState[ADC_MAX_PARTITIONS];
+#endif /* (ADC_POWER_STATE_SUPPORTED == STD_ON) */
+
+#if (ADC_ENABLE_CH_DISABLE_CH_NONAUTO_API == STD_ON)
+/**
+* @brief          Unit status structure
+* @details        Structure for the unit status.
+*
+*/
+Adc_ChansIdxMaskType Adc_aNCMRxMask[ADC_NO_OF_ENABLE_CH_DISABLE_CH_GROUPS]; /* TODO: rename to Adc_aRuntimeChansEnMask */
+#endif /* ADC_ENABLE_CH_DISABLE_CH_NONAUTO_API == STD_ON */
+
+#define ADC_STOP_SEC_VAR_CLEARED_UNSPECIFIED
+#include "Adc_MemMap.h"
+
+#if (ADC_ENABLE_CTUTRIG_NONAUTO_API == STD_ON)
+#define ADC_START_SEC_VAR_CLEARED_8
+#include "Adc_MemMap.h"
+/**
+* @brief          Active BCTU triggers for the group in the HW queue
+* @details        This array is used in Adc_Ipw_EnableCtuTrigger. For the group currently in the HW queue,
+*                 if an element is 1 in this array, the corresponding trigger from the group's configuration structure
+*                 has been activated.
+*/
+static uint8 Adc_au8CtuGroupTriggersActive[ADC_MAX_HW_UNITS][ADC_MAX_HARDWARE_TRIGGERS];
+
+#define ADC_STOP_SEC_VAR_CLEARED_8
+#include "Adc_MemMap.h"
+#endif /* (ADC_ENABLE_CTUTRIG_NONAUTO_API == STD_ON) */
+
+#if (ADC_ENABLE_TEMPSENSE_API == STD_ON)
+#define ADC_START_SEC_VAR_CLEARED_BOOLEAN
+#include "Adc_MemMap.h"
+
+/**
+* @brief          Temperature channel is on-going conversion or not
+* @details        Temperature channel is on-going conversion or not
+*/
+static boolean bTempsenseInUsed;
+
+#define ADC_STOP_SEC_VAR_CLEARED_BOOLEAN
+#include "Adc_MemMap.h"
+#endif /* (ADC_ENABLE_TEMPSENSE_API == STD_ON) */
+
+/*==================================================================================================
+*                                   LOCAL FUNCTION PROTOTYPES
+==================================================================================================*/
+#define ADC_START_SEC_CODE
+#include "Adc_MemMap.h"
+
+#if ((ADC_VALIDATE_PARAMS == STD_ON) && \
+     ((ADC_ENABLE_START_STOP_GROUP_API == STD_ON) || \
+      (ADC_HW_TRIGGER_API == STD_ON) || \
+      (ADC_ENABLE_CTUTRIG_NONAUTO_API ==STD_ON) || \
+      (ADC_ENABLE_CH_DISABLE_CH_NONAUTO_API == STD_ON) \
+     ) \
+    )
+static inline Std_ReturnType Adc_ValidateExtraParams
+(
+    uint8 u8ServiceId,
+    uint32 u32ErrorIdList,
+    Adc_GroupType Group,
+    uint32 u32CoreId
+);
+#endif
+
+#if (ADC_VALIDATE_CALL_AND_GROUP == STD_ON)
+static inline Std_ReturnType Adc_ValidateCallAndGroup
+(
+    uint8 u8ServiceId,
+    Adc_GroupType Group,
+    uint32 u32CoreId
+);
+#endif
+
+#if (ADC_GRP_NOTIF_CAPABILITY == STD_ON)
+#if (ADC_VALIDATE_NOTIFY_CAPABILITY == STD_ON)
+static inline Std_ReturnType Adc_NotifyCapablity
+(
+    uint8 u8ServiceId,
+    Adc_GroupType Group,
+    uint32 u32CoreId
+);
+#endif
+#endif
+
+#if (ADC_DEV_ERROR_DETECT == STD_ON)
+static inline void Adc_ReportDetError
+(
+    uint8 u8ServiceId,
+    uint8 u8ErrorId
+);
+
+#endif /* (ADC_DEV_ERROR_DETECT == STD_ON) */
+static inline void Adc_ReportDetRuntimeError
+(
+    uint8 u8ServiceId,
+    uint8 u8ErrorId
+);
+
+#if ((ADC_DEV_ERROR_DETECT == STD_ON) && \
+     ((ADC_ENABLE_START_STOP_GROUP_API == STD_ON) || \
+      (ADC_HW_TRIGGER_API == STD_ON) || \
+      (ADC_ENABLE_CTUTRIG_NONAUTO_API ==STD_ON) || \
+      (ADC_ENABLE_CH_DISABLE_CH_NONAUTO_API == STD_ON) \
+     ) \
+    )
+static void Adc_ReportValidationError
+(
+    Adc_ValidationResultType * pResult,
+    uint8 u8ServiceId,
+    uint8 u8ErrorId
+);
+#endif
+
+#if (ADC_VALIDATE_GLOBAL_CALL == STD_ON)
+static inline Std_ReturnType Adc_ValidateGloballCall
+(
+    uint8 u8ServiceId,
+    uint32 u32CoreId
+);
+#endif
+
+#if (ADC_VALIDATE_PARAMS == STD_ON)
+static inline Std_ReturnType Adc_ValidatePtrInit
+(
+    const Adc_ConfigType * pConfigPtr
+);
+
+static inline Std_ReturnType Adc_ValidatePtr
+(
+    uint8 u8ServiceId,
+    const void * pPtrVal
+);
+
+#if ((ADC_ENABLE_START_STOP_GROUP_API == STD_ON) || (ADC_HW_TRIGGER_API == STD_ON))
+static inline void Adc_ValidateBufferUninit
+(
+    Adc_ValidationResultType * pReturnValue,
+    uint8 u8ServiceId,
+    Adc_GroupType Group,
+    uint32 u32CoreId
+);
+#endif
+
+#if ((ADC_ENABLE_START_STOP_GROUP_API == STD_ON) || \
+     (ADC_HW_TRIGGER_API == STD_ON) || \
+     (ADC_ENABLE_CTUTRIG_NONAUTO_API ==STD_ON) || \
+     (ADC_ENABLE_CH_DISABLE_CH_NONAUTO_API == STD_ON) \
+    )
+static inline void Adc_ValidateTriggerSrc
+(
+    Adc_ValidationResultType * pReturnValue,
+    uint8 u8ServiceId,
+    Adc_GroupType Group,
+    uint32 u32CoreId
+);
+#endif
+
+#if (ADC_ENABLE_START_STOP_GROUP_API == STD_ON)
+static inline void Adc_ValidateQueueNotFull
+(
+    Adc_ValidationResultType * pReturnValue,
+    uint8 u8ServiceId,
+    Adc_GroupType Group,
+    uint32 u32CoreId
+);
+#endif /* (ADC_ENABLE_START_STOP_GROUP_API == STD_ON) */
+
+
+#if (ADC_ENABLE_CH_DISABLE_CH_NONAUTO_API == STD_ON) || (ADC_HW_TRIGGER_API == STD_ON) || \
+    (ADC_ENABLE_CTUTRIG_NONAUTO_API == STD_ON)
+static inline void Adc_ValidateConvMode
+(
+    Adc_ValidationResultType * pReturnValue,
+    uint8 u8ServiceId,
+    Adc_GroupType Group,
+    uint32 u32CoreId
+);
+#endif
+
+#if (ADC_ENABLE_CH_DISABLE_CH_NONAUTO_API == STD_ON)
+static inline void Adc_ValidateEnableDisbleGroupList
+(
+    Adc_ValidationResultType * pReturnValue,
+    uint8 u8ServiceId,
+    Adc_GroupType Group,
+    uint32 u32CoreId
+);
+
+static inline Std_ReturnType Adc_ValidateEnableDisbleIdList
+(
+    uint8 u8ServiceId,
+    Adc_GroupType Group,
+    Adc_ChannelType Channel,
+    uint32 u32CoreId
+);
+#endif
+
+#if (ADC_CTU_CONTROL_MODE_EXTRA_APIS == STD_ON)
+static inline Std_ReturnType Adc_ValidateCallAndTrigger
+(
+    uint8 u8ServiceId,
+    uint8 u8Trigger,
+    uint32 u32CoreId
+);
+#endif
+#endif /* ADC_VALIDATE_PARAMS == STD_ON */
+
+#if (ADC_SET_HW_UNIT_POWER_MODE_API == STD_ON)
+static inline Std_ReturnType Adc_ValidateSetHwUnitPowerMode
+(
+    Adc_SetPowerModeType eSetHwUnitPowerMode,
+    uint32 u32CoreId
+);
+#endif
+
+#if (ADC_VALIDATE_GLOBAL_CALL == STD_ON)
+static inline void Adc_EndValidateGloballCall
+(
+    Std_ReturnType ValidCall,
+    uint8 u8ServiceId,
+    uint32 u32CoreId
+);
+#endif
+
+#if (ADC_DEINIT_API == STD_ON)
+static inline Std_ReturnType Adc_ValidateDeInitNotBusy
+(
+    uint32 u32CoreId
+);
+#endif /* (ADC_DEINIT_API == STD_ON) */
+
+static inline Std_ReturnType Adc_ValidateSetupBufferNotBusy
+(
+    Adc_GroupType Group
+);
+
+#if (ADC_ENABLE_START_STOP_GROUP_API == STD_ON)
+static inline Std_ReturnType Adc_ValidateStateStartGroupConvNotBusy
+(
+    Adc_GroupType Group,
+    uint32 u32CoreId
+);
+#endif /* (ADC_ENABLE_START_STOP_GROUP_API == STD_ON) */
+
+#if ((ADC_HW_TRIGGER_API == STD_ON))
+static inline Std_ReturnType Adc_ValidateStateEnableHwTriggNotBusy
+(
+    Adc_GroupType Group,
+    uint32 u32CoreId
+);
+#endif /* ((ADC_HW_TRIGGER_API == STD_ON)) */
+
+static inline Std_ReturnType Adc_ValidateStateNotIdle
+(
+    uint8 u8ServiceId,
+    Adc_GroupType Group,
+    uint32 u32CoreId
+);
+
+#if ((ADC_PRIORITY_IMPLEMENTATION != ADC_PRIORITY_NONE) && ((ADC_ENABLE_START_STOP_GROUP_API == STD_ON)))
+static inline Std_ReturnType Adc_ValidateNotBusyWithPrio
+(
+    Adc_GroupType Group,
+    boolean bImplicitly,
+    uint32 u32CoreId
+);
+#endif /* ((ADC_PRIORITY_IMPLEMENTATION != ADC_PRIORITY_NONE) && ((ADC_ENABLE_START_STOP_GROUP_API == STD_ON))) */
+
+#if ((ADC_HW_TRIGGER_API == STD_ON) || (ADC_ENABLE_CTUTRIG_NONAUTO_API == STD_ON))
+static inline Std_ReturnType Adc_ValidateNotBusyEnableHwTrig
+(
+    uint8 u8ServiceId,
+    Adc_GroupType Group,
+    uint32 u32CoreId
+);
+#endif /* (ADC_HW_TRIGGER_API == STD_ON) */
+
+#if ((ADC_PRIORITY_IMPLEMENTATION == ADC_PRIORITY_NONE) && (ADC_ENABLE_START_STOP_GROUP_API == STD_ON))
+static inline Std_ReturnType Adc_ValidateNotBusyNoPrio
+(
+    Adc_GroupType Group,
+    boolean bImplicitly,
+    uint32 u32CoreId
+);
+#endif /* ((ADC_PRIORITY_IMPLEMENTATION == ADC_PRIORITY_NONE) && (ADC_ENABLE_START_STOP_GROUP_API == STD_ON)) */
+
+#if (((ADC_HW_TRIGGER_API == STD_ON) && (ADC_ENABLE_QUEUING == STD_OFF)) \
+      || ((ADC_DEINIT_API == STD_ON))        \
+      ||  (ADC_CALIBRATION == STD_ON) || (ADC_DUAL_CLOCK_MODE == STD_ON) \
+      || (ADC_SET_HW_UNIT_POWER_MODE_API == STD_ON) || (ADC_POWER_STATE_SUPPORTED == STD_ON) \
+      || ((ADC_PRIORITY_IMPLEMENTATION == ADC_PRIORITY_NONE) && (ADC_ENABLE_START_STOP_GROUP_API == STD_ON) && (ADC_ENABLE_QUEUING == STD_OFF)) \
+      || (ADC_ENABLE_CTU_CONTROL_MODE_API == STD_ON) || (ADC_POWER_STATE_SUPPORTED == STD_ON) \
+      || (ADC_ENABLE_TEMPSENSE_API == STD_ON) || ((ADC_ENABLE_CTUTRIG_NONAUTO_API == STD_ON) && (ADC_ENABLE_QUEUING == STD_OFF)) \
+    )
+static inline Std_ReturnType Adc_ValidateNotBusyNoQueue
+(
+    Adc_HwUnitType Unit,
+    uint8 u8ServiceId
+);
+#endif /* (((ADC_HW_TRIGGER_API == STD_ON) && ...  */
+
+#if (((ADC_DEINIT_API == STD_ON)) \
+      || (ADC_CALIBRATION == STD_ON) || (ADC_DUAL_CLOCK_MODE == STD_ON) || (ADC_SET_HW_UNIT_POWER_MODE_API == STD_ON) \
+      || (ADC_ENABLE_TEMPSENSE_API == STD_ON) \
+    )
+static inline Std_ReturnType Adc_ValidateCheckGroupNotConversion
+(
+    uint8 u8ServiceId,
+    uint32 u32CoreId
+);
+#endif /* (((ADC_DEINIT_API == STD_ON) ... */
+
+#if (((ADC_ENABLE_READ_RAW_DATA_API == STD_ON) || (ADC_CALIBRATION == STD_ON) \
+   || (ADC_GET_INJECTED_CONVERSION_STATUS_API == STD_ON) || defined(__DOXYGEN__) \
+   || (ADC_ENABLE_CONFIGURE_THRESHOLD_NONAUTO_API == STD_ON) || (ADC_SELF_TEST == STD_ON) \
+   || (ADC_ENABLE_CTU_CONTROL_MODE_API == STD_ON) || defined(ADC_WDG_SUPPORTED) \
+   || (ADC_ENABLE_TEMPSENSE_API == STD_ON)) && (ADC_VALIDATE_CALL_AND_UNIT == STD_ON))
+static inline Std_ReturnType Adc_ValidateCallAndUnit
+(
+    uint8 u8ServiceId,
+    Adc_HwUnitType Unit,
+    uint32 u32CoreId
+);
+#endif /* (ADC_VALIDATE_CALL_AND_UNIT == STD_ON) ... */
+
+static inline void Adc_InitGroupsStatus
+(
+    uint32 u32CoreId
+);
+
+static inline void Adc_InitUnitStatus
+(
+    uint32 u32CoreId
+);
+
+#if ((ADC_ENABLE_START_STOP_GROUP_API == STD_ON) && (ADC_PRIORITY_IMPLEMENTATION != ADC_PRIORITY_NONE))
+static inline Std_ReturnType Adc_InsertIntoQueue
+(
+    const Adc_HwUnitType Unit,
+    Adc_GroupType Group,
+    uint32 u32CoreId
+);
+#endif
+
+#if (ADC_ENABLE_START_STOP_GROUP_API == STD_ON)
+static inline void Adc_UpdateStatusStartConversion
+(
+    const Adc_GroupType Group,
+    const Adc_HwUnitType Unit,
+    uint32 u32CoreId
+);
+
+static inline Std_ReturnType Adc_StopSwGroupConversion
+(
+#if (ADC_ENABLE_QUEUING == STD_ON)
+    Adc_QueueIndexType * RemovedPos,
+#endif /* (ADC_ENABLE_QUEUING == STD_ON) */
+    Adc_GroupType Group,
+    Adc_HwUnitType Unit,
+    uint32 u32CoreId
+);
+
+static inline void Adc_UpdateStatusStopConversion
+(
+    Adc_GroupType Group,
+    Adc_HwUnitType Unit,
+    uint32 u32CoreId
+);
+#endif
+
+#if (ADC_READ_GROUP_API == STD_ON)
+static inline void Adc_UpdateStatusReadGroup
+(
+    const Adc_GroupType Group,
+    const boolean bFlag,
+    uint32 u32CoreId
+);
+
+static inline void Adc_UpdateStatusReadGroupNoInt
+(
+    const Adc_GroupType Group,
+    const boolean bFlag,
+    uint32 u32CoreId
+);
+
+static inline void Adc_UpdateSwQueueIndexNoInt
+(
+    const Adc_GroupType Group,
+    uint32 u32CoreId
+);
+
+static inline void Adc_UpdateStatusReadGroupInt
+(
+    const Adc_GroupType Group,
+    uint32 u32CoreId
+);
+#endif
+
+#if (ADC_HW_TRIGGER_API == STD_ON)
+static inline void Adc_UpdateStatusEnableHardware
+(
+    Adc_GroupType Group,
+    Adc_HwUnitType Unit
+);
+
+static inline void Adc_UpdateStatusDisableHardware
+(
+    Adc_GroupType Group,
+    Adc_HwUnitType Unit
+);
+#endif
+
+static inline void Adc_UpdateStatusAfterGetStream
+(
+    Adc_GroupType Group,
+    uint32 u32CoreId
+);
+
+#if (ADC_ENABLE_CTU_CONTROL_MODE_API == STD_ON)
+#if (ADC_DEV_ERROR_DETECT == STD_ON)
+static inline Std_ReturnType Adc_ValidateUnitActive
+(
+    uint8 u8ServiceId,
+    Adc_HwUnitType Unit,
+    uint32 u32CoreId
+);
+#endif /* (ADC_DEV_ERROR_DETECT == STD_ON) */
+static inline Std_ReturnType Adc_ValidateStateCtuControlMode
+(
+    uint8 u8ServiceId,
+    Adc_HwUnitType Unit
+);
+#endif /* (ADC_ENABLE_CTU_CONTROL_MODE_API == STD_ON) */
+
+#if (ADC_POWER_STATE_SUPPORTED == STD_ON)
+static inline Std_ReturnType Adc_ValidateStateAndPtr
+(
+    uint8 u8ServiceId,
+    Adc_PowerStateRequestResultType * pResult,
+    uint32 u32CoreId
+);
+static inline Std_ReturnType Adc_ValidateIdleState
+(
+    uint8 u8ServiceId,
+    Adc_PowerStateRequestResultType * pResult,
+    uint32 u32CoreId
+);
+static inline Std_ReturnType Adc_ValidatePowerStateSupport
+(
+    uint8 u8ServiceId,
+    Adc_PowerStateType ePowerState,
+    Adc_PowerStateRequestResultType * pResult
+);
+static inline Std_ReturnType Adc_ValidatePowerStatePrepare
+(
+    uint8 u8ServiceId,
+    Adc_PowerStateRequestResultType * pResult,
+    uint32 u32CoreId
+);
+#endif /* (ADC_POWER_STATE_SUPPORTED == STD_ON) */
+
+static inline Std_ReturnType Adc_CheckCurrentCoreId
+(
+    const Adc_ConfigType * pCfgPtr,
+    uint32 u32CoreId
+);
+
+#if (ADC_ENABLE_CTUTRIG_NONAUTO_API == STD_ON) || defined(__DOXYGEN__)
+#if (ADC_DEV_ERROR_DETECT == STD_ON)
+static inline Std_ReturnType Adc_CheckTriggerSourceRange
+(
+    uint8 u8ServiceId,
+    Adc_HwTriggerTimerType TriggerSource,
+    boolean bTriggFound
+);
+#endif /* (ADC_DEV_ERROR_DETECT == STD_ON) */
+#endif /* (ADC_ENABLE_CTUTRIG_NONAUTO_API == STD_ON) || defined(__DOXYGEN__) */
+
+#if (ADC_SETCHANNEL_API == STD_ON)
+#if (ADC_DEV_ERROR_DETECT == STD_ON)
+static inline Std_ReturnType Adc_CheckSetChannelParams
+(
+    const Adc_GroupType Group,
+#if (ADC_DELAY_AVAILABLE == STD_ON)
+    const uint16 * Delays,
+    const uint32 ChannelUpdateMask,
+#endif /* (ADC_DELAY_AVAILABLE == STD_ON) */
+    const Adc_ChannelIndexType NumberOfChannel
+);
+#endif /* (ADC_DEV_ERROR_DETECT == STD_ON) */
+#if ((ADC_HW_TRIGGER_API == STD_ON) && (ADC_CTU_TRIGGER_MODE_SUPPORTED == STD_ON))
+static inline Std_ReturnType Adc_CheckSetChannelCtuTriggers
+(
+    const Adc_GroupType GroupIndex,
+    const Adc_HwUnitType LogicalHwUnitId,
+    const Adc_ChannelIndexType NumberOfChannel,
+    const uint32 u32CoreId
+);
+#endif /* ((ADC_HW_TRIGGER_API == STD_ON) && (ADC_CTU_TRIGGER_MODE_SUPPORTED == STD_ON)) */
+#endif /* (ADC_SETCHANNEL_API == STD_ON) */
+
+#if ((ADC_DUAL_CLOCK_MODE == STD_ON) && (ADC_DEV_ERROR_DETECT == STD_ON))
+static inline boolean Adc_CheckSetClockModeCoreAndParam
+(
+    const Adc_SelectPrescalerType Prescaler,
+    const uint32 u32CoreId
+);
+#endif /* ((ADC_DUAL_CLOCK_MODE == STD_ON) && (ADC_DEV_ERROR_DETECT == STD_ON)) */
+
+/*==================================================================================================
+*                                       LOCAL FUNCTIONS
+==================================================================================================*/
+#if (ADC_DEV_ERROR_DETECT == STD_ON)
+/**
+* @brief      This function reports an development error to the Det module and records the failure in the local structure.
+* @details    This function reports an development error to the Det module and records the failure in the local structure.
+*
+* @param[in]  u8ServiceId       The service id of the caller function
+* @param[in]  u8ErrorId         The error id to be reported
+*
+* @return     void
+* SWS_Adc_00377
+*/
+static inline void Adc_ReportDetError
+(
+    uint8 u8ServiceId,
+    uint8 u8ErrorId
+)
+{
+    (void)Det_ReportError((uint16)ADC_MODULE_ID, (uint8)0U, u8ServiceId, u8ErrorId);
+}
+
+#endif /* (ADC_DEV_ERROR_DETECT == STD_ON) */
+
+/**
+* @brief      This function reports an runtime error to the Det module and records the failure in the local structure.
+* @details    This function reports an runtime error to the Det module and records the failure in the local structure.
+*
+* @param[in]  u8ServiceId       The service id of the caller function
+* @param[in]  u8ErrorId         The error id to be reported
+*
+* @return     void
+* SWS_Adc_00530
+*/
+static inline void Adc_ReportDetRuntimeError
+(
+    uint8 u8ServiceId,
+    uint8 u8ErrorId
+)
+{
+    (void)Det_ReportRuntimeError((uint16)ADC_MODULE_ID, (uint8)0U, u8ServiceId, u8ErrorId);
+}
+
+#if ((ADC_DEV_ERROR_DETECT == STD_ON) && \
+     ((ADC_ENABLE_START_STOP_GROUP_API == STD_ON) || \
+      (ADC_HW_TRIGGER_API == STD_ON) || \
+      (ADC_ENABLE_CTUTRIG_NONAUTO_API ==STD_ON) || \
+      (ADC_ENABLE_CH_DISABLE_CH_NONAUTO_API == STD_ON) \
+     ) \
+    )
+/**
+* @brief      This function reports an error to the Det module and records the failure in the local structure.
+* @details    This function reports an error to the Det module and records the failure in the local structure.
+*
+* @param[in]  u8ServiceId       The service id of the caller function
+* @param[in]  u8ErrorId         The error id to be reported
+* @param[in]  pResult           Pointer to the structure where the failure must be recorded
+*
+* @return     void
+*/
+static void Adc_ReportValidationError
+(
+    Adc_ValidationResultType * pResult,
+    uint8 u8ServiceId,
+    uint8 u8ErrorId
+)
+{
+    pResult->bEndValidations = TRUE;
+    pResult->ValidParams = (Std_ReturnType)E_NOT_OK;
+
+    Adc_ReportDetError(u8ServiceId, u8ErrorId);
+}
+#endif
+
+#if (ADC_VALIDATE_GLOBAL_CALL == STD_ON)
+/**
+* @brief      This function validates the global call parameters.
+* @details    This service is a non reentrant function used for validating the calls for functions
+*               like Adc_Init, Adc_DeInit.
+*
+* @param[in]  u8ServiceId       The service id of the caller function
+* @param[in]  u32CoreId         Current CoreID
+*
+* @return     Std_ReturnType  Standard return type.
+* @retval     E_OK:           Valid call
+* @retval     E_NOT_OK:       Invalid call
+*
+* @api
+*
+* @note       Non Re-entrant function.
+* @implements  Adc_ValidateGlobalCall_Activity
+*
+*/
+static inline Std_ReturnType Adc_ValidateGloballCall
+(
+    uint8 u8ServiceId,
+    uint32 u32CoreId
+)
+{
+    Std_ReturnType ValidState = (Std_ReturnType)E_NOT_OK;
+
+    if (ADC_STATE_UNINIT == Adc_eGlobalState[u32CoreId])
+    {
+        if (ADC_INIT_ID == u8ServiceId)
+        {
+            ValidState = (Std_ReturnType)E_OK;
+        }
+        else
+        {
+            /* SWS_Adc_00154 */
+            Adc_ReportDetError(u8ServiceId, (uint8)ADC_E_UNINIT);
+        }
+    }
+    else
+    {
+        if (ADC_INIT_ID == u8ServiceId)
+        {
+            /* Error: ADC already initialized */
+            /* SWS_Adc_00107 */
+            Adc_ReportDetError(u8ServiceId, (uint8)ADC_E_ALREADY_INITIALIZED);
+        }
+        else
+        {
+            ValidState = (Std_ReturnType)E_OK;
+        }
+    }
+
+    return ValidState;
+}
+#endif /* ADC_VALIDATE_GLOBAL_CALL == STD_ON */
+
+#if (ADC_VALIDATE_PARAMS == STD_ON)
+/**
+* @brief      This function validates the global call parameters.
+* @details    This service is a non reentrant function used for validating parameters
+*               for Adc_Init.
+*
+* @param[in]  pConfigPtr   Pointer to configuration set in Variant PB
+*                         (Variant PC requires a NULL_PTR).
+*
+* @return     Std_ReturnType  Standard return type.
+* @retval     E_OK:           Valid parameter
+* @retval     E_NOT_OK:       Invalid parameter
+*
+* @api
+*
+* @note       Non Reentrant function.
+*
+*/
+static inline Std_ReturnType Adc_ValidatePtrInit
+(
+    const Adc_ConfigType * pConfigPtr
+)
+{
+    Std_ReturnType ValidPtr = (Std_ReturnType)E_OK;
+
+#if (ADC_PRECOMPILE_SUPPORT == STD_ON)
+    /* ADC344 */
+    if (NULL_PTR != pConfigPtr)
+#else
+    /* ADC343 */
+    if (NULL_PTR == pConfigPtr)
+#endif /* (ADC_PRECOMPILE_SUPPORT == STD_ON) */
+    {
+        ValidPtr = (Std_ReturnType)E_NOT_OK;
+        Adc_ReportDetError((uint8)ADC_INIT_ID, (uint8) ADC_E_PARAM_POINTER);
+    }
+    return ValidPtr;
+}
+
+/**
+* @brief      This function validates the pointer is NULL or not
+* @details    This service is a reentrant function used for validating parameters
+*
+* @param[in]  PtrVal          Pointer to validate
+* @param[in]  u8ServiceId     The service id of the caller function
+*
+* @return     Std_ReturnType  Standard return type.
+* @retval     E_OK:           Valid parameter
+* @retval     E_NOT_OK:       Invalid parameter
+*
+* @api
+*
+* @note       ...
+* ADC_VALUEREADGROUP_ID
+*/
+static inline Std_ReturnType Adc_ValidatePtr
+(
+    uint8 u8ServiceId,
+    const void * pPtrVal
+)
+{
+    Std_ReturnType ValidPtr = (Std_ReturnType)E_OK;
+
+    /* SWS_Adc_00458, SWS_Adc_00457, CPR_RTD_00264.adc */
+    if (NULL_PTR == pPtrVal)
+    {
+        ValidPtr = (Std_ReturnType)E_NOT_OK;
+        Adc_ReportDetError(u8ServiceId, (uint8)ADC_E_PARAM_POINTER);
+    }
+
+    return ValidPtr;
+}
+
+#if ((ADC_ENABLE_START_STOP_GROUP_API == STD_ON) || (ADC_HW_TRIGGER_API == STD_ON))
+static inline void Adc_ValidateBufferUninit
+(
+    Adc_ValidationResultType * pReturnValue,
+    uint8 u8ServiceId,
+    Adc_GroupType Group,
+    uint32 u32CoreId
+)
+{
+    Adc_GroupType GroupIndex = Adc_pCfgPtr[u32CoreId]->pGroupIdToIndexMap[Group];
+
+    switch (u8ServiceId)
+    {
+        case ADC_STARTGROUPCONVERSION_ID:
+#if (ADC_HW_TRIGGER_API == STD_ON)
+        case ADC_ENABLEHARDWARETRIGGER_ID:
+#endif /* ADC_HW_TRIGGER_API == STD_ON */
+        {
+            if (NULL_PTR == Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].pResultsBufferPtr[Group])
+            {
+                /* SWS_Adc_00425, SWS_Adc_00424 */
+                Adc_ReportValidationError(pReturnValue, u8ServiceId, (uint8)ADC_E_BUFFER_UNINIT);
+            }
+            break;
+        }
+        default:
+        {
+            ; /* no-op */
+            break;
+        }
+    }
+}
+#endif
+
+#if ((ADC_ENABLE_START_STOP_GROUP_API == STD_ON) || \
+     (ADC_HW_TRIGGER_API == STD_ON) || \
+     (ADC_ENABLE_CTUTRIG_NONAUTO_API ==STD_ON) || \
+     (ADC_ENABLE_CH_DISABLE_CH_NONAUTO_API == STD_ON) \
+    )
+static inline void Adc_ValidateTriggerSrc
+(
+    Adc_ValidationResultType * pReturnValue,
+    uint8 u8ServiceId,
+    Adc_GroupType Group,
+    uint32 u32CoreId
+)
+{
+    /* Get the mapping index of group in the current partition */
+    Adc_GroupType GroupIndex = Adc_pCfgPtr[u32CoreId]->pGroupIdToIndexMap[Group];
+
+    switch (u8ServiceId)
+    {
+        case ADC_STARTGROUPCONVERSION_ID:
+        case ADC_STOPGROUPCONVERSION_ID:
+#if (ADC_ENABLE_CH_DISABLE_CH_NONAUTO_API == STD_ON)
+        case ADC_ENABLE_CHANNEL_ID:
+        case ADC_DISABLE_CHANNEL_ID:
+#endif /* ADC_ENABLE_CH_DISABLE_CH_NONAUTO_API == STD_ON */
+        {
+            if (ADC_TRIGG_SRC_SW != Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].eTriggerSource)
+            {
+                /* SWS_Adc_00164, SWS_Adc_00133 */
+                Adc_ReportValidationError(pReturnValue, u8ServiceId, (uint8)ADC_E_WRONG_TRIGG_SRC);
+            }
+            break;
+        }
+#if (ADC_HW_TRIGGER_API == STD_ON)
+        case ADC_ENABLEHARDWARETRIGGER_ID:
+        case ADC_DISABLEHARDWARETRIGGER_ID:
+#if (ADC_ENABLE_CTUTRIG_NONAUTO_API == STD_ON)
+        case ADC_ENABLECTUTRIGGER_ID:
+        case ADC_DISABLECTUTRIGGER_ID:
+#endif /* ADC_ENABLE_CTUTRIG_NONAUTO_API == STD_ON */
+        {
+            if (ADC_TRIGG_SRC_SW == (Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].eTriggerSource))
+            {
+                /* SWS_Adc_00136, SWS_Adc_00137 */
+                Adc_ReportValidationError(pReturnValue, u8ServiceId, (uint8)ADC_E_WRONG_TRIGG_SRC);
+            }
+            break;
+        }
+#endif /* ADC_HW_TRIGGER_API == STD_ON */
+        default:
+        {
+            ; /* no-op */
+            break;
+        }
+    }
+}
+#endif
+
+#if (ADC_ENABLE_START_STOP_GROUP_API == STD_ON)
+static inline void Adc_ValidateQueueNotFull
+(
+    Adc_ValidationResultType * pReturnValue,
+    uint8 u8ServiceId,
+    Adc_GroupType Group,
+    uint32 u32CoreId
+)
+{
+    Adc_GroupType GroupIndex;
+    Adc_HwUnitType LogicalHwUnitId = 0U;
+
+    /* Get the mapping index of group in the current partition */
+    GroupIndex = Adc_pCfgPtr[u32CoreId]->pGroupIdToIndexMap[Group];
+    LogicalHwUnitId = Adc_pCfgPtr[u32CoreId]->pGroups[(GroupIndex)].AdcLogicalUnitId;
+
+    switch (u8ServiceId)
+    {
+        case ADC_STARTGROUPCONVERSION_ID:
+        {
+            if (ADC_CONV_TYPE_NORMAL == Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].eType)
+            {
+                if (Adc_aUnitStatus[LogicalHwUnitId].SwNormalQueueIndex >= ADC_QUEUE_MAX_DEPTH_MAX)
+                {
+                    Adc_ReportValidationError(pReturnValue, u8ServiceId, (uint8)ADC_E_QUEUE_FULL);
+                }
+            }
+            break;
+        }
+
+        default:
+        {
+            ; /* no-op */
+            break;
+        }
+    }
+}
+#endif /* (ADC_ENABLE_START_STOP_GROUP_API == STD_ON) */
+
+#if (ADC_ENABLE_CH_DISABLE_CH_NONAUTO_API == STD_ON) || (ADC_HW_TRIGGER_API == STD_ON) || \
+    (ADC_ENABLE_CTUTRIG_NONAUTO_API == STD_ON)
+static inline void Adc_ValidateConvMode
+(
+    Adc_ValidationResultType * pReturnValue,
+    uint8 u8ServiceId,
+    Adc_GroupType Group,
+    uint32 u32CoreId
+)
+{
+    Adc_GroupType GroupIndex = Adc_pCfgPtr[u32CoreId]->pGroupIdToIndexMap[Group];
+
+    switch (u8ServiceId)
+    {
+#if (ADC_HW_TRIGGER_API == STD_ON)
+        case ADC_ENABLEHARDWARETRIGGER_ID:
+        case ADC_DISABLEHARDWARETRIGGER_ID:
+#if (ADC_ENABLE_CTUTRIG_NONAUTO_API == STD_ON)
+        case ADC_ENABLECTUTRIGGER_ID:
+        case ADC_DISABLECTUTRIGGER_ID:
+#endif /* ADC_ENABLE_CTUTRIG_NONAUTO_API == STD_ON */
+        {
+            if (ADC_CONV_MODE_CONTINUOUS == (Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].eMode))
+            {
+                /* SWS_Adc_00282, SWS_Adc_00281 */
+                Adc_ReportValidationError(pReturnValue, u8ServiceId, (uint8)ADC_E_WRONG_CONV_MODE);
+            }
+            break;
+        }
+#endif /* ADC_HW_TRIGGER_API == STD_ON */
+#if (ADC_ENABLE_CH_DISABLE_CH_NONAUTO_API == STD_ON)
+        case ADC_ENABLE_CHANNEL_ID:
+        case ADC_DISABLE_CHANNEL_ID:
+        {
+            if(ADC_CONV_TYPE_INJECTED == Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].eType)
+            {
+                Adc_ReportValidationError(pReturnValue, u8ServiceId, (uint8)ADC_E_WRONG_CONV_MODE);
+            }
+            break;
+        }
+#endif /* ADC_ENABLE_CH_DISABLE_CH_NONAUTO_API == STD_ON */
+
+        default:
+        {
+            ; /* no-op */
+            break;
+        }
+    }
+}
+#endif
+
+#if (ADC_ENABLE_CH_DISABLE_CH_NONAUTO_API == STD_ON)
+/** @brief @implements Adc_ValidateEnableDisbleGroupList_Activity */
+static inline void Adc_ValidateEnableDisbleGroupList
+(
+    Adc_ValidationResultType * pReturnValue,
+    uint8 u8ServiceId,
+    Adc_GroupType Group,
+    uint32 u32CoreId
+)
+{
+    Adc_GroupType GroupIndex = Adc_pCfgPtr[u32CoreId]->pGroupIdToIndexMap[Group];
+
+    switch (u8ServiceId)
+    {
+        case ADC_ENABLE_CHANNEL_ID:
+        case ADC_DISABLE_CHANNEL_ID:
+        {
+            if((Adc_GroupType)ADC_ENABLE_CH_DISABLE_CH_INVALID_GROUP_INDEX == \
+               Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].EnableChDisableChGroupIndex
+              )
+            {
+                Adc_ReportValidationError(pReturnValue, u8ServiceId, (uint8)ADC_E_WRONG_ENABLE_CH_DISABLE_CH_GROUP);
+            }
+            break;
+        }
+        default:
+        {
+            ; /* no-op */
+            break;
+        }
+    }
+}
+#endif /* ADC_ENABLE_CH_DISABLE_CH_NONAUTO_API == STD_ON */
+
+#if (ADC_ENABLE_CH_DISABLE_CH_NONAUTO_API == STD_ON)
+/** @brief @implements Adc_ValidateEnableDisbleIdList_Activity */
+static inline Std_ReturnType Adc_ValidateEnableDisbleIdList
+(
+    uint8 u8ServiceId,
+    Adc_GroupType Group,
+    Adc_ChannelType Channel,
+    uint32 u32CoreId
+)
+{
+    Adc_GroupType GroupIndex = Adc_pCfgPtr[u32CoreId]->pGroupIdToIndexMap[Group];
+    const Adc_GroupDefType * pGroupChIndexPtr;
+    Adc_ChannelIndexType Index = 0U;
+    boolean bChannelFound = FALSE;
+    Std_ReturnType ReturnValue = (Std_ReturnType)E_NOT_OK;
+
+    switch (u8ServiceId)
+    {
+        case ADC_ENABLE_CHANNEL_ID:
+        case ADC_DISABLE_CHANNEL_ID:
+        {
+            pGroupChIndexPtr = Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].pAssignment;
+            /* Check if ChannelId is valid: assigned to that group */
+            for (Index = 0U; Index < Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].AssignedChannelCount; Index++)
+            {
+                if ((Adc_ChannelType)Channel == (Adc_ChannelType)pGroupChIndexPtr[Index])
+                {
+                    bChannelFound = TRUE;
+                    break;
+                }
+            }
+            if (TRUE == bChannelFound)
+            {
+                ReturnValue = (Std_ReturnType)E_OK;
+            }
+            else
+            {
+                Adc_ReportDetError(u8ServiceId, (uint8)ADC_E_WRONG_ENABLE_CH_DISABLE_CH_ID);
+            }
+            break;
+        }
+
+        default:
+        {
+            ; /* no-op */
+            break;
+        }
+    }
+    return ReturnValue;
+}
+#endif /* ADC_ENABLE_CH_DISABLE_CH_NONAUTO_API == STD_ON */
+
+#if ((ADC_ENABLE_START_STOP_GROUP_API == STD_ON) || \
+     (ADC_HW_TRIGGER_API == STD_ON) || \
+     (ADC_ENABLE_CTUTRIG_NONAUTO_API ==STD_ON) || \
+     (ADC_ENABLE_CH_DISABLE_CH_NONAUTO_API == STD_ON) \
+    )
+static inline Std_ReturnType Adc_ValidateExtraParams
+(
+    uint8 u8ServiceId,
+    uint32 u32ErrorIdList,
+    Adc_GroupType Group,
+    uint32 u32CoreId
+)
+{
+    Adc_ValidationResultType ValidationStatus;
+
+    ValidationStatus.bEndValidations = FALSE;
+    ValidationStatus.ValidParams = (Std_ReturnType)E_OK;
+
+#if ((ADC_ENABLE_START_STOP_GROUP_API == STD_ON) || (ADC_HW_TRIGGER_API == STD_ON))
+    if ((0U != (u32ErrorIdList&ADC_E_BUFFER_UNINIT_LIST)) && (FALSE == ValidationStatus.bEndValidations))
+    {
+        Adc_ValidateBufferUninit(&ValidationStatus, u8ServiceId, Group, u32CoreId);
+    }
+#endif
+    if ((0U != (u32ErrorIdList&ADC_E_WRONG_TRIGG_SRC_LIST)) && (FALSE == ValidationStatus.bEndValidations))
+    {
+       Adc_ValidateTriggerSrc(&ValidationStatus, u8ServiceId, Group, u32CoreId);
+    }
+#if (ADC_ENABLE_START_STOP_GROUP_API == STD_ON)
+    if ((0U != (u32ErrorIdList&ADC_E_QUEUE_FULL_LIST)) && (FALSE == ValidationStatus.bEndValidations))
+    {
+        Adc_ValidateQueueNotFull(&ValidationStatus, u8ServiceId, Group, u32CoreId);
+    }
+#endif
+#if ((ADC_ENABLE_CH_DISABLE_CH_NONAUTO_API == STD_ON) || (ADC_HW_TRIGGER_API == STD_ON) || (ADC_ENABLE_CTUTRIG_NONAUTO_API == STD_ON))
+    if ((0U != (u32ErrorIdList&ADC_E_WRONG_CONV_MODE_LIST)) && (FALSE == ValidationStatus.bEndValidations))
+    {
+        Adc_ValidateConvMode(&ValidationStatus, u8ServiceId, Group, u32CoreId);
+    }
+#endif
+
+#if (ADC_ENABLE_CH_DISABLE_CH_NONAUTO_API == STD_ON)
+    if ((0U != (u32ErrorIdList&ADC_E_WRONG_ENABLE_CH_DISABLE_CH_GROUP_LIST)) && (FALSE == ValidationStatus.bEndValidations))
+    {
+        Adc_ValidateEnableDisbleGroupList(&ValidationStatus, u8ServiceId, Group, u32CoreId);
+    }
+#endif /* ADC_ENABLE_CH_DISABLE_CH_NONAUTO_API == STD_ON */
+
+    return ValidationStatus.ValidParams;
+}
+#endif
+
+#if (ADC_CTU_CONTROL_MODE_EXTRA_APIS == STD_ON)
+/** @brief @implements Adc_ValidateCallAndTrigger_Activity */
+static inline Std_ReturnType Adc_ValidateCallAndTrigger
+(
+    uint8 u8ServiceId,
+    uint8 u8Trigger,
+    uint32 u32CoreId
+)
+{
+    Std_ReturnType ReturnValue = (Std_ReturnType)E_OK;
+    Std_ReturnType ValidCoreId = (Std_ReturnType)E_NOT_OK;
+
+    if (NULL_PTR == Adc_pCfgPtr[u32CoreId])
+    {
+        Adc_ReportDetError(u8ServiceId, (uint8)ADC_E_UNINIT);
+        ReturnValue = (Std_ReturnType)E_NOT_OK;
+        (void)ValidCoreId;
+    }
+    else
+    {
+        ValidCoreId = Adc_CheckCurrentCoreId(Adc_pCfgPtr[u32CoreId], u32CoreId);
+        if((Std_ReturnType)E_OK == ValidCoreId)
+        {
+            if ((uint8)ADC_IPW_MAX_CTU_TRIG_SOURCE_ID < u8Trigger)
+            {
+                Adc_ReportDetError(u8ServiceId, (uint8)ADC_E_WRONG_CTU_TRIGGER);
+                ReturnValue = (Std_ReturnType)E_NOT_OK;
+            }
+            else
+            {
+                /* no-op*/
+            }
+        }
+        else
+        {
+            /* CPR_RTD_00420.adc */
+            Adc_ReportDetError(u8ServiceId, (uint8)ADC_E_PARAM_CONFIG);
+            ReturnValue = (Std_ReturnType)E_NOT_OK;
+        }
+    }
+    return ReturnValue;
+}
+#endif /* ADC_CTU_CONTROL_MODE_EXTRA_APIS == STD_ON */
+#endif /* ADC_VALIDATE_PARAMS == STD_ON */
+
+#if (ADC_SET_HW_UNIT_POWER_MODE_API == STD_ON)
+/**
+* @brief      This function validates the Adc_SetHwUnitPowerMode call.
+* @details    This function validates the Adc_SetHwUnitPowerMode call.
+*
+* @param[in]  u8ServiceId   The service id of the caller function
+* @param[in]  u32CoreId     Current CoreID
+*
+* @return     Std_ReturnType  Standard return type.
+* @retval     E_OK:           The Adc_SetHwUnitPowerMode call is valid
+* @retval     E_NOT_OK:       The Adc_SetHwUnitPowerMode call is not valid
+*/
+static inline Std_ReturnType Adc_ValidateSetHwUnitPowerMode
+(
+    Adc_SetPowerModeType eSetHwUnitPowerMode,
+    uint32 u32CoreId
+)
+{
+    Std_ReturnType SleepModeStatus = (Std_ReturnType)E_OK;
+    Std_ReturnType ValidCoreId;
+
+    if(NULL_PTR == Adc_pCfgPtr[u32CoreId])
+    {
+#if (ADC_DEV_ERROR_DETECT == STD_ON)
+        /* Report error to DET */
+        Adc_ReportDetError((uint8)ADC_SET_HW_UNIT_POWER_MODE_ID, (uint8)ADC_E_UNINIT);
+#endif /* (ADC_DEV_ERROR_DETECT == STD_ON) */
+        SleepModeStatus = (Std_ReturnType)E_NOT_OK;
+    }
+    else
+    {
+        ValidCoreId = Adc_CheckCurrentCoreId(Adc_pCfgPtr[u32CoreId], u32CoreId);
+        if((Std_ReturnType)E_OK == ValidCoreId)
+        {
+            if ((ADC_NORMAL_MODE != eSetHwUnitPowerMode) && (ADC_POWER_DOWN_MODE != eSetHwUnitPowerMode))
+            {
+                SleepModeStatus = (Std_ReturnType)E_NOT_OK;
+                #if (ADC_DEV_ERROR_DETECT == STD_ON)
+                Adc_ReportDetError((uint8)ADC_SET_HW_UNIT_POWER_MODE_ID, (uint8)ADC_E_SET_HW_UNIT_POWER_MODE);
+                #endif
+            }
+        }
+        else
+        {
+#if (ADC_DEV_ERROR_DETECT == STD_ON)
+            /* CPR_RTD_00420.adc */
+            Adc_ReportDetError((uint8)ADC_SET_HW_UNIT_POWER_MODE_ID, (uint8)ADC_E_PARAM_CONFIG);
+#endif /* (ADC_DEV_ERROR_DETECT == STD_ON) */
+            SleepModeStatus = (Std_ReturnType)E_NOT_OK;
+        }
+    }
+    return SleepModeStatus;
+}
+#endif /* ADC_SET_HW_UNIT_POWER_MODE_API == STD_ON */
+
+
+#if (ADC_VALIDATE_GLOBAL_CALL == STD_ON)
+/**
+* @brief        This function ends the validation of the global call parameters.
+* @details      This service is a non reentrant function used for end the validation the calls
+*               for functions like Adc_Init, Adc_DeInit.
+*
+* @param[in]    ValidCall validity of the call
+* @param[in]    u8ServiceId The service id of the caller function
+* @param[in]    u32CoreId    Current CoreID
+*
+* @return void
+*/
+static inline void Adc_EndValidateGloballCall
+(
+    Std_ReturnType ValidCall,
+    uint8 u8ServiceId,
+    uint32 u32CoreId
+)
+{
+    if ((Std_ReturnType)E_OK == ValidCall)
+    {
+        if (ADC_DEINIT_ID == u8ServiceId)
+        {
+            Adc_eGlobalState[u32CoreId] = ADC_STATE_UNINIT;
+        }
+        else
+        {
+            Adc_eGlobalState[u32CoreId] = ADC_STATE_IDLE;
+        }
+    }
+}
+#endif /* ADC_VALIDATE_GLOBAL_CALL == STD_ON */
+
+#if ((ADC_PRIORITY_IMPLEMENTATION != ADC_PRIORITY_NONE) && ((ADC_ENABLE_START_STOP_GROUP_API == STD_ON)))
+/**
+* @brief        This function validates the state of a group when priorities are used.
+* @details      This service is a non reentrant function used for validating the state of a group
+*                when priorities are used
+*
+* @param[in]    Group         The group id
+* @param[in]    bImplicitly    Indicates if the group can be implicitly stopped
+* @param[in]    u32CoreId    Current CoreID
+*
+* @return     Std_ReturnType  Standard return type.
+* @retval     E_OK:           The call is valid
+* @retval     E_NOT_OK:       The call is not valid
+*/
+static inline Std_ReturnType Adc_ValidateNotBusyWithPrio
+(
+    Adc_GroupType Group,
+    boolean bImplicitly,
+    uint32 u32CoreId
+)
+{
+    boolean bFlag = FALSE;
+    Adc_QueueIndexType Index = 0U;
+    Std_ReturnType ValidState = (Std_ReturnType)E_NOT_OK;
+    Adc_GroupType GroupIndex = Adc_pCfgPtr[u32CoreId]->pGroupIdToIndexMap[Group];
+    Adc_HwUnitType LogicalHwUnitId = Adc_pCfgPtr[u32CoreId]->pGroups[(GroupIndex)].AdcLogicalUnitId;
+    Adc_QueueIndexType SwNormalQueueIndex;
+    Adc_StatusType eConversion;
+
+    if (Adc_aUnitStatus[LogicalHwUnitId].SwNormalQueueIndex > (Adc_QueueIndexType)0U)
+    {
+        for (Index = 0U; Index < Adc_aUnitStatus[LogicalHwUnitId].SwNormalQueueIndex; Index++)
+        {
+            if (Group == Adc_aUnitStatus[LogicalHwUnitId].SwNormalQueue[Index])
+            {
+                bFlag = TRUE;
+                break;
+            }
+        }
+    }
+    SwNormalQueueIndex = Adc_aUnitStatus[LogicalHwUnitId].SwNormalQueueIndex;
+    eConversion = Adc_aGroupStatus[Group].eConversion;
+    /* SWS_Adc_00348 */
+    if ((((Group == Adc_aUnitStatus[LogicalHwUnitId].SwNormalQueue[0U]) && (SwNormalQueueIndex > (Adc_QueueIndexType)0U)) || (TRUE == bFlag)) && \
+        (FALSE == bImplicitly) \
+       )
+    {
+        Adc_ReportDetRuntimeError((uint8)ADC_STARTGROUPCONVERSION_ID, (uint8)ADC_E_BUSY);
+    }
+    /* SWS_Adc_00427 */
+    else if (((eConversion != ADC_IDLE) && (eConversion != ADC_STREAM_COMPLETED)) && \
+             (TRUE == bImplicitly) \
+            )
+    {
+        Adc_ReportDetRuntimeError((uint8)ADC_STARTGROUPCONVERSION_ID, (uint8)ADC_E_BUSY);
+    }
+    else
+    {
+        ValidState = (Std_ReturnType)E_OK;
+    }
+    return ValidState;
+}
+#endif /*(ADC_PRIORITY_IMPLEMENTATION != ADC_PRIORITY_NONE) && ((ADC_ENABLE_START_STOP_GROUP_API == STD_ON)) */
+
+#if (((ADC_HW_TRIGGER_API == STD_ON) && (ADC_ENABLE_QUEUING == STD_OFF)) \
+      || ((ADC_DEINIT_API == STD_ON))        \
+      ||  (ADC_CALIBRATION == STD_ON) || (ADC_DUAL_CLOCK_MODE == STD_ON) \
+      || (ADC_SET_HW_UNIT_POWER_MODE_API == STD_ON) || (ADC_POWER_STATE_SUPPORTED == STD_ON) \
+      || ((ADC_PRIORITY_IMPLEMENTATION == ADC_PRIORITY_NONE) && (ADC_ENABLE_START_STOP_GROUP_API == STD_ON) && (ADC_ENABLE_QUEUING == STD_OFF)) \
+      || (ADC_ENABLE_CTU_CONTROL_MODE_API == STD_ON) || (ADC_POWER_STATE_SUPPORTED == STD_ON) \
+      || (ADC_ENABLE_TEMPSENSE_API == STD_ON) || ((ADC_ENABLE_CTUTRIG_NONAUTO_API == STD_ON) && (ADC_ENABLE_QUEUING == STD_OFF)) \
+    )
+/**
+* @brief        This function validates the state of a group when the queue is not used.
+* @details      This service is a non reentrant function used for validating the state of a group
+*                when the queue is not used
+*
+* @param[in]    Unit          The Logical Unit Id
+* @param[in]    Group         The group id
+*
+* @return     Std_ReturnType  Standard return type.
+* @retval     E_OK:           The call means that unit is not busy
+* @retval     E_NOT_OK:       The call means that unit is busy
+*/
+static inline Std_ReturnType Adc_ValidateNotBusyNoQueue
+(
+    Adc_HwUnitType Unit,
+    uint8 u8ServiceId
+)
+{
+    Std_ReturnType ErrorFound = (Std_ReturnType)E_OK;
+#if (ADC_HW_TRIGGER_API == STD_ON)
+    Adc_GroupType OngoingHwGroupId;
+#endif /* (ADC_HW_TRIGGER_API == STD_ON) */
+    Adc_GroupType NoGroupsInSwNormalQueue;
+#if (ADC_SOFTWARE_INJECTED_CONVERSIONS_USED == STD_ON)
+    Adc_GroupType NoGroupsInSwInjectedQueue;
+
+    NoGroupsInSwInjectedQueue = Adc_aUnitStatus[Unit].SwInjectedQueueIndex;
+#endif /* (ADC_SOFTWARE_INJECTED_CONVERSIONS_USED == STD_ON) */
+    /* Get HW and SW queue sizes */
+    NoGroupsInSwNormalQueue = Adc_aUnitStatus[Unit].SwNormalQueueIndex;
+#if (ADC_HW_TRIGGER_API == STD_ON)
+    OngoingHwGroupId = Adc_aUnitStatus[Unit].OngoingHwGroup;
+#endif /* (ADC_HW_TRIGGER_API == STD_ON) */
+    /* CPR_RTD_00035.adc, CPR_RTD_00325.adc, CPR_RTD_00326.adc, CPR_RTD_00327.adc */
+    /* Check for ongoing conversions */
+    if ((NoGroupsInSwNormalQueue > (Adc_QueueIndexType)0U)
+#if (ADC_SOFTWARE_INJECTED_CONVERSIONS_USED == STD_ON)
+        || (NoGroupsInSwInjectedQueue > (Adc_QueueIndexType)0U)
+#endif /* (ADC_SOFTWARE_INJECTED_CONVERSIONS_USED == STD_ON) */
+#if (ADC_HW_TRIGGER_API == STD_ON)
+        || (OngoingHwGroupId != ADC_INVALID_HW_GROUP_ID)
+#endif /* (ADC_HW_TRIGGER_API == STD_ON) */
+       )
+    {
+        /* SWS_Adc_00321, SWS_Adc_00346, SWS_Adc_00426 */
+        Adc_ReportDetRuntimeError(u8ServiceId, (uint8)ADC_E_BUSY);
+        ErrorFound = (Std_ReturnType)E_NOT_OK;
+    }
+    return ErrorFound;
+}
+#endif
+
+#if ((ADC_HW_TRIGGER_API == STD_ON) || (ADC_ENABLE_CTUTRIG_NONAUTO_API == STD_ON))
+/**
+* @brief        This function validates the state of a group when the hardware trigger is enabled.
+* @details      This service is a non reentrant function used for validating the state of a group
+*                when the hardware trigger is enabled.
+*
+* @param[in]    Group         The group id
+* @param[in]    u32CoreId     Current CoreID
+*
+* @return     Std_ReturnType  Standard return type.
+* @retval     E_OK:           The call is valid
+* @retval     E_NOT_OK:       The call is not valid
+*/
+static inline Std_ReturnType Adc_ValidateNotBusyEnableHwTrig
+(
+    uint8 u8ServiceId,
+    Adc_GroupType Group,
+    uint32 u32CoreId
+)
+{
+    Adc_GroupType GroupIndex = Adc_pCfgPtr[u32CoreId]->pGroupIdToIndexMap[Group];
+    Std_ReturnType ValidState = (Std_ReturnType)E_NOT_OK;
+    Adc_HwUnitType LogicalHwUnitId = Adc_pCfgPtr[u32CoreId]->pGroups[(GroupIndex)].AdcLogicalUnitId;
+#if (ADC_ENABLE_QUEUING == STD_ON)
+    Adc_QueueIndexType NoGroupsInSwNormalQueue;
+    Adc_GroupConvType eGroupType;
+    Adc_GroupType OngoingHwGroupId;
+#if (ADC_SOFTWARE_INJECTED_CONVERSIONS_USED == STD_ON)
+    Adc_QueueIndexType NoGroupsInSwInjectedQueue;
+
+    NoGroupsInSwInjectedQueue = Adc_aUnitStatus[LogicalHwUnitId].SwInjectedQueueIndex;
+#endif /* (ADC_SOFTWARE_INJECTED_CONVERSIONS_USED == STD_ON) */
+    /* Get HW and SW queue sizes */
+    NoGroupsInSwNormalQueue = Adc_aUnitStatus[LogicalHwUnitId].SwNormalQueueIndex;
+    eGroupType = Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].eType;
+    OngoingHwGroupId = Adc_aUnitStatus[LogicalHwUnitId].OngoingHwGroup;
+#endif /* ADC_ENABLE_QUEUING == STD_ON  */
+
+#if (ADC_ENABLE_QUEUING == STD_OFF)
+    ValidState = Adc_ValidateNotBusyNoQueue(LogicalHwUnitId, u8ServiceId);
+#else
+    switch (u8ServiceId)
+    {
+        case ADC_ENABLEHARDWARETRIGGER_ID:
+        {
+            /* It's possible to run (normal HW - injected SW) or (injected HW - normal SW) combination */
+            if ((ADC_INVALID_HW_GROUP_ID == OngoingHwGroupId) &&
+                (
+#if (ADC_SOFTWARE_INJECTED_CONVERSIONS_USED == STD_ON)
+                    ((ADC_CONV_TYPE_INJECTED == eGroupType) && (0U == NoGroupsInSwInjectedQueue)) ||
+#endif /* (ADC_SOFTWARE_INJECTED_CONVERSIONS_USED == STD_ON) */
+                    ((ADC_CONV_TYPE_NORMAL == eGroupType) && (0U == NoGroupsInSwNormalQueue)) \
+                ) \
+            )
+            {
+                ValidState = (Std_ReturnType)E_OK;
+            }
+            break;
+        }
+#if (ADC_ENABLE_CTUTRIG_NONAUTO_API == STD_ON)
+        case ADC_ENABLECTUTRIGGER_ID:
+        {
+            /* CTU trigger is injected conversion so can be run with normal SW groups */
+            /* It allows to have multiple BCTU trigger source enabled for one group */
+#if (ADC_SOFTWARE_INJECTED_CONVERSIONS_USED == STD_ON)
+            if (0U == NoGroupsInSwInjectedQueue)
+            {
+#endif /* (ADC_SOFTWARE_INJECTED_CONVERSIONS_USED == STD_ON) */
+                if (ADC_INVALID_HW_GROUP_ID == OngoingHwGroupId)
+                {
+                    ValidState = (Std_ReturnType)E_OK;
+                }
+                else if ((Group == OngoingHwGroupId) && (ADC_HWTRIGGER_ENABLED != Adc_aGroupStatus[OngoingHwGroupId].eHwTriggering))
+                {
+                    ValidState = (Std_ReturnType)E_OK;
+                }
+                else
+                {
+                    ; /* Empty else branch to avoid MISRA */
+                }
+#if (ADC_SOFTWARE_INJECTED_CONVERSIONS_USED == STD_ON)
+            }
+#endif /* (ADC_SOFTWARE_INJECTED_CONVERSIONS_USED == STD_ON) */
+            break;
+        }
+#endif /* ADC_ENABLE_CTUTRIG_NONAUTO_API == STD_ON */
+        default:
+        {
+            ; /* no-op */
+            break;
+        }
+    }
+
+    if ((Std_ReturnType) E_NOT_OK == ValidState)
+    {
+        /* SWS_Adc_00353 */
+        Adc_ReportDetRuntimeError((uint8)u8ServiceId, (uint8)ADC_E_BUSY);
+    }
+#endif /* ADC_ENABLE_QUEUING == STD_OFF  */
+
+    return ValidState;
+}
+#endif /* (ADC_HW_TRIGGER_API == STD_ON)*/
+
+#if ((ADC_PRIORITY_IMPLEMENTATION == ADC_PRIORITY_NONE) && (ADC_ENABLE_START_STOP_GROUP_API == STD_ON))
+/**
+* @brief        This function validates the state of a group when priorities are not used.
+* @details      This service is a non reentrant function used for validating the state of a group
+*                when priorities are not used
+*
+* @param[in]    Unit          The hardware unit
+* @param[in]    Group         The group id
+* @param[in]    bImplicitly   Indicates if the group can be implicitly stopped
+* @param[in]    u32CoreId     Current CoreID
+*
+* @return     Std_ReturnType  Standard return type.
+* @retval     E_OK:           The call is valid
+* @retval     E_NOT_OK:       The call is not valid
+*/
+static inline Std_ReturnType Adc_ValidateNotBusyNoPrio
+(
+    Adc_GroupType Group,
+    boolean bImplicitly,
+    uint32 u32CoreId
+)
+{
+    Std_ReturnType ValidState = (Std_ReturnType)E_NOT_OK;
+#if (ADC_ENABLE_QUEUING == STD_OFF)
+    Adc_GroupType GroupIndex = Adc_pCfgPtr[u32CoreId]->pGroupIdToIndexMap[Group];
+    Adc_HwUnitType LogicalHwUnitId = Adc_pCfgPtr[u32CoreId]->pGroups[(GroupIndex)].AdcLogicalUnitId;
+#else /* ADC_ENABLE_QUEUING == STD_ON */
+    Adc_StatusType eConversion;
+#endif
+
+#if (ADC_ENABLE_QUEUING == STD_OFF)
+    /* All queue need to be empty */
+    ValidState =  Adc_ValidateNotBusyNoQueue(LogicalHwUnitId, ADC_STARTGROUPCONVERSION_ID);
+
+    (void)bImplicitly;
+    (void)Group;
+#else /* ADC_ENABLE_QUEUING == STD_ON */
+    eConversion = Adc_aGroupStatus[Group].eConversion;
+    /* SWS_Adc_00351 */
+    if ((FALSE == bImplicitly) && (ADC_IDLE != eConversion))
+    {
+        Adc_ReportDetRuntimeError((uint8)ADC_STARTGROUPCONVERSION_ID, (uint8)ADC_E_BUSY);
+    }
+    /* SWS_Adc_00428 */
+    else if ((TRUE == bImplicitly) && (ADC_IDLE != eConversion) && \
+             (ADC_STREAM_COMPLETED != eConversion) \
+            )
+    {
+        Adc_ReportDetRuntimeError((uint8)ADC_STARTGROUPCONVERSION_ID, (uint8)ADC_E_BUSY);
+    }
+    else
+    {
+        ValidState = (Std_ReturnType)E_OK;
+    }
+    (void)u32CoreId;
+#endif /* ADC_ENABLE_QUEUING */
+
+    return ValidState;
+}
+#endif /* (ADC_PRIORITY_IMPLEMENTATION == ADC_PRIORITY_NONE) */
+
+#if (((ADC_DEINIT_API == STD_ON)) \
+      || (ADC_CALIBRATION == STD_ON) || (ADC_DUAL_CLOCK_MODE == STD_ON) || (ADC_SET_HW_UNIT_POWER_MODE_API == STD_ON) \
+      || (ADC_ENABLE_TEMPSENSE_API == STD_ON) \
+    )
+/**
+* @brief        This function validates the state of all group.
+* @details      This service is a non reentrant function used for validating the state of all group
+*
+* @param[in]    u8ServiceId     The service id of the caller function
+* @param[in]    u32CoreId       Current CoreID
+*
+* @return       Std_ReturnType  Standard return type.
+* @retval       E_OK:           The call means that at least one group is not busy
+* @retval       E_NOT_OK:       The call means that at least one group is busy
+*/
+static inline Std_ReturnType Adc_ValidateCheckGroupNotConversion
+(
+    uint8 u8ServiceId,
+    uint32 u32CoreId
+)
+{
+    Adc_StatusType eConversion;
+    Adc_GroupType GroupIter;
+    Adc_GroupType GroupId;
+    Std_ReturnType ErrorFound = (Std_ReturnType)E_OK;
+
+    for (GroupIter = 0U; GroupIter < (Adc_GroupType)Adc_pCfgPtr[u32CoreId]->GroupCount; GroupIter++)
+    {
+        GroupId = Adc_pCfgPtr[u32CoreId]->pGroups[GroupIter].GroupId;
+        eConversion = Adc_aGroupStatus[GroupId].eConversion;
+        /*  Check if ADC is still converting */
+        /* SWS_Adc_00112 */
+        if((ADC_IDLE != eConversion) && (ADC_STREAM_COMPLETED != eConversion))
+        {
+            Adc_ReportDetRuntimeError(u8ServiceId, (uint8)ADC_E_BUSY);
+            ErrorFound = (Std_ReturnType)E_NOT_OK;
+        }
+    }
+    return ErrorFound;
+}
+#endif /* (((ADC_DEINIT_API == STD_ON)) ... */
+
+#if (ADC_DEINIT_API == STD_ON)
+/**
+* @brief        This function validates the state of a group when De-init (should not be busy).
+* @details      This service is a non reentrant function used for validating the state of a group
+*
+* @param[in]    void
+*
+* @return     Std_ReturnType  Standard return type.
+* @retval     E_OK:           The call is valid
+* @retval     E_NOT_OK:       The call is not valid
+*/
+static inline Std_ReturnType Adc_ValidateDeInitNotBusy
+(
+    uint32 u32CoreId
+)
+{
+    Std_ReturnType ErrorFound = (Std_ReturnType)E_OK;
+    Std_ReturnType ValidState = (Std_ReturnType)E_NOT_OK;
+    Adc_HwUnitType LogicalHwUnitId = 0U;
+
+    for(LogicalHwUnitId = 0U; LogicalHwUnitId < ADC_MAX_HW_UNITS; LogicalHwUnitId++)
+    {
+        if(Adc_pCfgPtr[u32CoreId]->pAdcIpwConfig->Mapping.au8Adc_HwUnit[LogicalHwUnitId] == (uint8)STD_ON) /* HW unit enabled on current partition */
+        {
+            ErrorFound = Adc_ValidateNotBusyNoQueue(LogicalHwUnitId, ADC_DEINIT_ID);
+            if ((Std_ReturnType)E_NOT_OK == ErrorFound)
+            {
+                break;
+            }
+        }
+    }
+    if ((Std_ReturnType)E_OK == ErrorFound)
+    {
+        if ((Std_ReturnType)E_OK == Adc_ValidateCheckGroupNotConversion(ADC_DEINIT_ID, u32CoreId))
+        {
+            ValidState = (Std_ReturnType)E_OK;
+        }
+    }
+
+    return ValidState;
+}
+
+#endif /* (ADC_DEINIT_API == STD_ON) */
+/**
+* @brief        This function validates the state of a group when Setup result buffer (should not be busy).
+* @details      This service is a non reentrant function used for validating the state of a group
+*
+* @param[in]    Group         The group id
+*
+* @return     Std_ReturnType  Standard return type.
+* @retval     E_OK:           The call is valid
+* @retval     E_NOT_OK:       The call is not valid
+*/
+static inline Std_ReturnType Adc_ValidateSetupBufferNotBusy
+(
+    Adc_GroupType Group
+)
+{
+    Std_ReturnType ValidState = (Std_ReturnType)E_NOT_OK;
+
+    if (ADC_IDLE != Adc_aGroupStatus[Group].eConversion)
+    {
+        /* SWS_Adc_00433 */
+        Adc_ReportDetRuntimeError(ADC_SETUPRESULTBUFFER_ID, (uint8)ADC_E_BUSY);
+    }
+    else
+    {
+        ValidState = (Std_ReturnType)E_OK;
+    }
+    return ValidState;
+}
+
+#if (ADC_ENABLE_START_STOP_GROUP_API == STD_ON)
+/**
+* @brief        This function validates the state of a group when start group conversion (should not be busy).
+* @details      This service is a non reentrant function used for validating the state of a group
+*
+* @param[in]    Group         The group id
+* @param[in]    u32CoreId       Current CoreID
+*
+* @return     Std_ReturnType  Standard return type.
+* @retval     E_OK:           The call is valid
+* @retval     E_NOT_OK:       The call is not valid
+*/
+static inline Std_ReturnType Adc_ValidateStateStartGroupConvNotBusy
+(
+    Adc_GroupType Group,
+    uint32 u32CoreId
+)
+{
+    Adc_GroupType GroupIndex;
+    Std_ReturnType ValidState = (Std_ReturnType)E_OK;
+    boolean bImplicitly = FALSE;
+#if ((STD_ON == ADC_HW_TRIGGER_API) || (ADC_SOFTWARE_INJECTED_CONVERSIONS_USED == STD_ON) || \
+    (ADC_ENABLE_CTU_CONTROL_MODE_API == STD_ON))
+    Adc_HwUnitType LogicalHwUnitId = 0U;
+#endif /* ((STD_ON == ADC_HW_TRIGGER_API) || ... */
+#if (STD_ON == ADC_HW_TRIGGER_API)
+    Adc_GroupConvType eTypeSwGroup;
+    Adc_GroupType OngoingHwGroupId;
+    Adc_GroupType HwGroupId;
+    Adc_GroupConvType eTypeHwGroup;
+#endif /* (STD_ON == ADC_HW_TRIGGER_API) */
+
+    /* Get the mapping index of group in the current partition */
+    GroupIndex = Adc_pCfgPtr[u32CoreId]->pGroupIdToIndexMap[Group];
+    if ((ADC_CONV_MODE_ONESHOT == Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].eMode) || \
+        ((ADC_CONV_MODE_CONTINUOUS == Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].eMode) && \
+        (ADC_ACCESS_MODE_STREAMING == Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].eAccessMode) && \
+        (ADC_STREAM_BUFFER_LINEAR == Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].eBufferMode)
+        )
+       )
+    {
+        /* The current group can be implicitly stopped */
+        bImplicitly = TRUE;
+    }
+
+#if ((STD_ON == ADC_HW_TRIGGER_API) || (ADC_SOFTWARE_INJECTED_CONVERSIONS_USED == STD_ON) || \
+    (ADC_ENABLE_CTU_CONTROL_MODE_API == STD_ON))
+    /* Get the unit to which the group belongs to */
+    LogicalHwUnitId = Adc_pCfgPtr[u32CoreId]->pGroups[(GroupIndex)].AdcLogicalUnitId;
+#endif /* ((STD_ON == ADC_HW_TRIGGER_API) || ... */
+
+#if (STD_ON == ADC_HW_TRIGGER_API)
+    OngoingHwGroupId = Adc_aUnitStatus[LogicalHwUnitId].OngoingHwGroup;
+#endif /* (STD_ON==ADC_HW_TRIGGER_API) */
+
+#if (ADC_SOFTWARE_INJECTED_CONVERSIONS_USED == STD_ON)
+    /* Check for ongoing injected conversion */
+    if (Adc_aUnitStatus[LogicalHwUnitId].SwInjectedQueueIndex != (Adc_QueueIndexType)0U)
+    {
+        ValidState = (Std_ReturnType)E_NOT_OK;
+    }
+#endif /* (ADC_SOFTWARE_INJECTED_CONVERSIONS_USED == STD_ON) */
+#if (STD_ON == ADC_HW_TRIGGER_API)
+    if (ADC_INVALID_HW_GROUP_ID != OngoingHwGroupId)
+    {
+        eTypeSwGroup = Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].eType;
+        HwGroupId = Adc_pCfgPtr[u32CoreId]->pGroupIdToIndexMap[OngoingHwGroupId];
+        eTypeHwGroup = Adc_pCfgPtr[u32CoreId]->pGroups[HwGroupId].eType;
+        /* SW Injected conversions should be entertained only if there are no other HW or CTU injected chains enabled, same as Sw normal conversions */
+        if (((ADC_CONV_TYPE_INJECTED == eTypeSwGroup) && (ADC_CONV_TYPE_INJECTED == eTypeHwGroup)) || \
+            ((ADC_CONV_TYPE_NORMAL == eTypeSwGroup) && (ADC_CONV_TYPE_NORMAL == eTypeHwGroup)) \
+           )
+        {
+            ValidState = (Std_ReturnType)E_NOT_OK;
+        }
+    }
+#endif /* (STD_ON==ADC_HW_TRIGGER_API) */
+#if (ADC_ENABLE_CTU_CONTROL_MODE_API == STD_ON)
+    if (TRUE == Adc_aUnitStatus[LogicalHwUnitId].bCtuControlOngoing)
+    {
+        ValidState = (Std_ReturnType)E_NOT_OK;
+    }
+#endif /* (ADC_ENABLE_CTU_CONTROL_MODE_API == STD_ON) */
+
+    if ((Std_ReturnType)E_NOT_OK == ValidState)
+    {
+        Adc_ReportDetRuntimeError(ADC_STARTGROUPCONVERSION_ID, (uint8)ADC_E_BUSY);
+    }
+    else
+    {
+#if (ADC_PRIORITY_IMPLEMENTATION == ADC_PRIORITY_NONE)
+        ValidState = Adc_ValidateNotBusyNoPrio(Group, bImplicitly, u32CoreId);
+#else /* ADC_PRIORITY_IMPLEMENTATION != ADC_PRIORITY_NONE */
+        ValidState = Adc_ValidateNotBusyWithPrio(Group, bImplicitly, u32CoreId);
+#endif  /* ADC_PRIORITY_IMPLEMENTATION != ADC_PRIORITY_NONE */
+    }
+    return ValidState;
+}
+#endif /* (ADC_ENABLE_START_STOP_GROUP_API == STD_ON) */
+
+#if ((ADC_HW_TRIGGER_API == STD_ON))
+/**
+* @brief        This function validates the state of a group when enable hw trigger (should not be busy).
+* @details      This service is a non reentrant function used for validating the state of a group
+*
+* @param[in]    Group         The group id
+* @param[in]    u32CoreId       Current CoreID
+*
+* @return     Std_ReturnType  Standard return type.
+* @retval     E_OK:           The call is valid
+* @retval     E_NOT_OK:       The call is not valid
+*/
+static inline Std_ReturnType Adc_ValidateStateEnableHwTriggNotBusy
+(
+    Adc_GroupType Group,
+    uint32 u32CoreId
+)
+{
+    Std_ReturnType ValidState = (Std_ReturnType)E_NOT_OK;
+#if (ADC_ENABLE_CTU_CONTROL_MODE_API == STD_ON)
+    Adc_GroupType GroupIndex = Adc_pCfgPtr[u32CoreId]->pGroupIdToIndexMap[Group];
+    Adc_HwUnitType LogicalHwUnitId = 0U;
+#endif /* (ADC_ENABLE_CTU_CONTROL_MODE_API == STD_ON) */
+
+#if (ADC_ENABLE_CTU_CONTROL_MODE_API == STD_ON)
+    LogicalHwUnitId = Adc_pCfgPtr[u32CoreId]->pGroups[(GroupIndex)].AdcLogicalUnitId;
+    /* SWS_Adc_00349 */
+    if (TRUE == Adc_aUnitStatus[LogicalHwUnitId].bCtuControlOngoing)
+    {
+        Adc_ReportDetRuntimeError(ADC_ENABLEHARDWARETRIGGER_ID, (uint8)ADC_E_BUSY);
+    }
+    else
+#endif /* (ADC_ENABLE_CTU_CONTROL_MODE_API == STD_ON) */
+#if (ADC_HW_TRIGGER_API == STD_ON)
+    {
+        ValidState = Adc_ValidateNotBusyEnableHwTrig(ADC_ENABLEHARDWARETRIGGER_ID, Group, u32CoreId);
+    }
+#endif /* (ADC_HW_TRIGGER_API == STD_ON) */
+    return ValidState;
+}
+#endif /* (ADC_HW_TRIGGER_API == STD_ON) */
+
+
+/**
+* @brief        This function validates the state of a group (should not be idle).
+* @details      This service is a non reentrant function used for validating the state of a group
+*
+* @param[in]    u8ServiceId     The service id of the caller function
+* @param[in]    Group         The group id
+* @param[in]    u32CoreId       Current CoreID
+*
+* @return     Std_ReturnType  Standard return type.
+* @retval     E_OK:           The call is valid
+* @retval     E_NOT_OK:       The call is not valid
+*/
+static inline Std_ReturnType Adc_ValidateStateNotIdle
+(
+    uint8 u8ServiceId,
+    Adc_GroupType Group,
+    uint32 u32CoreId
+)
+{
+    Std_ReturnType ValidState = (Std_ReturnType)E_OK;
+#if (ADC_SOFTWARE_INJECTED_CONVERSIONS_USED == STD_ON)
+    Adc_HwUnitType LogicalHwUnitId = 0U;
+    Adc_QueueIndexType SwNormalQueueIndex;
+    Adc_QueueIndexType SwInjectedQueueIndex;
+    Adc_GroupType GroupIndex = Adc_pCfgPtr[u32CoreId]->pGroupIdToIndexMap[Group];
+
+    LogicalHwUnitId = Adc_pCfgPtr[u32CoreId]->pGroups[(GroupIndex)].AdcLogicalUnitId;
+    SwNormalQueueIndex = Adc_aUnitStatus[LogicalHwUnitId].SwNormalQueueIndex;
+    SwInjectedQueueIndex = Adc_aUnitStatus[LogicalHwUnitId].SwInjectedQueueIndex;
+#else
+    (void)u32CoreId;
+#endif /* (ADC_SOFTWARE_INJECTED_CONVERSIONS_USED == STD_ON) */
+
+    switch (u8ServiceId)
+    {
+#if (ADC_READ_GROUP_API == STD_ON)
+        case ADC_VALUEREADGROUP_ID:
+        {
+            if (ADC_IDLE == Adc_aGroupStatus[Group].eConversion)
+            {
+                if(ADC_NOT_YET_CONVERTED == Adc_aGroupStatus[Group].eAlreadyConverted)
+                {
+                    /* SWS_Adc_00388 */
+                    Adc_ReportDetRuntimeError(u8ServiceId, (uint8)ADC_E_IDLE);
+                    ValidState = (Std_ReturnType)E_NOT_OK;
+                }
+            }
+            break;
+        }
+#endif /* ADC_READ_GROUP_API == STD_ON */
+        case ADC_STOPGROUPCONVERSION_ID:
+        {
+            if (ADC_IDLE == Adc_aGroupStatus[Group].eConversion)
+            {
+                /* SWS_Adc_00241 */
+                Adc_ReportDetRuntimeError(u8ServiceId, (uint8)ADC_E_IDLE);
+                ValidState = (Std_ReturnType)E_NOT_OK;
+            }
+            else
+            {
+#if (ADC_SOFTWARE_INJECTED_CONVERSIONS_USED == STD_ON)
+                /* This condition happens when injected SW is available */
+                if ((Group == Adc_aUnitStatus[LogicalHwUnitId].SwNormalQueue[0U])
+                    && (SwNormalQueueIndex > 0U)
+                    && (SwInjectedQueueIndex > 0U)
+                   )
+                {
+                    Adc_ReportDetRuntimeError(u8ServiceId, (uint8)ADC_E_BUSY);
+                    ValidState = (Std_ReturnType)E_NOT_OK;
+                }
+#endif /* (ADC_SOFTWARE_INJECTED_CONVERSIONS_USED == STD_ON) */
+            }
+            break;
+        }
+#if (ADC_HW_TRIGGER_API == STD_ON)
+        case ADC_DISABLEHARDWARETRIGGER_ID:
+        {
+            /* SWS_Adc_00304 */
+            /* HW trigger streaming linear group will be removed in OngoingHwGroup when all conversion samples finished,
+            so eHwTriggering remains the status of the group was previously enabled by Adc_EnableHardwareTrigger. */
+            if (ADC_HWTRIGGER_DISABLED == Adc_aGroupStatus[Group].eHwTriggering)
+            {
+                Adc_ReportDetRuntimeError(u8ServiceId, (uint8)ADC_E_IDLE);
+                ValidState = (Std_ReturnType)E_NOT_OK;
+            }
+            break;
+        }
+#endif /* ADC_HW_TRIGGER_API == STD_ON */
+        case ADC_GETSTREAMLASTPOINTER_ID:
+        {
+             if (ADC_IDLE == Adc_aGroupStatus[Group].eConversion)
+             {
+                 /* SWS_Adc_00215 */
+                 Adc_ReportDetRuntimeError(u8ServiceId, (uint8)ADC_E_IDLE);
+                 ValidState = (Std_ReturnType)E_NOT_OK;
+             }
+            break;
+        }
+        default:
+        {
+            ; /* no-op */
+            break;
+        }
+    }
+
+    return ValidState;
+}
+
+#if (ADC_VALIDATE_CALL_AND_GROUP == STD_ON)
+/**
+* @brief        This function validates the call for a specific group
+* @details      This function checks for Uninit, valid CoreID, and that Group is in range.
+*
+* @param[in]    u8ServiceId     The service id of the caller function
+* @param[in]    Group         The group id
+* @param[in]    u32CoreId       Current CoreID
+*
+* @return     Std_ReturnType  Standard return type.
+* @retval     E_OK:           Valid call and group
+* @retval     E_NOT_OK:       Invalid call or group
+*
+* @api
+* @implements     Adc_ValidateCallAndGroup_Activity
+*/
+static inline Std_ReturnType Adc_ValidateCallAndGroup
+(
+    uint8 u8ServiceId,
+    Adc_GroupType Group,
+    uint32 u32CoreId
+)
+{
+    Std_ReturnType ValidCallAndGroup = (Std_ReturnType)E_NOT_OK;
+    Std_ReturnType ValidCoreId = (Std_ReturnType)E_NOT_OK;
+    Adc_GroupType GroupIndex = 0U;
+
+    if (NULL_PTR == Adc_pCfgPtr[u32CoreId])
+    {
+        /* SWS_Adc_00300, SWS_Adc_00301, SWS_Adc_00302, SWS_Adc_00299, SWS_Adc_00298, SWS_Adc_00297, SWS_Adc_00296, SWS_Adc_00295, SWS_Adc_00294, SWS_Adc_00434 */
+        Adc_ReportDetError(u8ServiceId, (uint8)ADC_E_UNINIT);
+        (void)GroupIndex;
+        (void)ValidCoreId;
+    }
+    else
+    {
+        ValidCoreId = Adc_CheckCurrentCoreId(Adc_pCfgPtr[u32CoreId], u32CoreId);
+        if((Std_ReturnType)E_OK == ValidCoreId)
+        {
+            if (Group >= ADC_MAX_GROUPS)
+            {
+                /* SWS_Adc_00218, SWS_Adc_00225, SWS_Adc_00131, SWS_Adc_00130, SWS_Adc_00129, SWS_Adc_00128, SWS_Adc_00152, SWS_Adc_00126, SWS_Adc_00125, SWS_Adc_00423 */
+                Adc_ReportDetError(u8ServiceId, (uint8)ADC_E_PARAM_GROUP);
+                (void)GroupIndex;
+            }
+            else
+            {
+                /* Get the mapping index of group in the current partition */
+                GroupIndex = Adc_pCfgPtr[u32CoreId]->pGroupIdToIndexMap[Group];
+                if (Group != Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].GroupId)
+                {
+                    /* Group doesn't belong to current core */
+                    Adc_ReportDetError(u8ServiceId, (uint8)ADC_E_PARAM_CONFIG);
+                }
+                else
+                {
+                    ValidCallAndGroup = (Std_ReturnType)E_OK;
+                }
+            }
+        }
+        else
+        {
+            /* CPR_RTD_00420.adc */
+            Adc_ReportDetError(u8ServiceId, (uint8)ADC_E_PARAM_CONFIG);
+        }
+    }
+
+    return ValidCallAndGroup;
+}
+#endif /* ADC_VALIDATE_CALL_AND_GROUP == STD_ON */
+
+#if (((ADC_ENABLE_READ_RAW_DATA_API == STD_ON) || (ADC_CALIBRATION == STD_ON) \
+   || (ADC_GET_INJECTED_CONVERSION_STATUS_API == STD_ON) || defined(__DOXYGEN__) \
+   || (ADC_ENABLE_CONFIGURE_THRESHOLD_NONAUTO_API == STD_ON) || (ADC_SELF_TEST == STD_ON) \
+   || (ADC_ENABLE_CTU_CONTROL_MODE_API == STD_ON) || defined(ADC_WDG_SUPPORTED) \
+   || (ADC_ENABLE_TEMPSENSE_API == STD_ON)) && (ADC_VALIDATE_CALL_AND_UNIT == STD_ON))
+/**
+* @brief        This function validates the call for a specific unit
+* @details      This service is non reentrant function on channel used for validating the calls
+*               for functions that use a unit
+*
+* @param[in]    u8ServiceId   The service id of the caller function
+* @param[in]    Unit          The Logical Unit id
+* @param[in]    u32CoreId     Current CoreID
+*
+* @return     Std_ReturnType  Standard return type.
+* @retval     E_OK:           Valid call and group
+* @retval     E_NOT_OK:       Invalid call or group
+*
+* @api
+* @implements     Adc_ValidateCallAndUnit_Activity
+*/
+static inline Std_ReturnType Adc_ValidateCallAndUnit
+(
+    uint8 u8ServiceId,
+    Adc_HwUnitType Unit,
+    uint32 u32CoreId
+)
+{
+    Std_ReturnType ValidCallAndUnit = (Std_ReturnType)E_NOT_OK;
+    Std_ReturnType ValidCoreId;
+
+    if (NULL_PTR == Adc_pCfgPtr[u32CoreId])
+    {
+        /* CPR_RTD_00272.adc, CPR_RTD_00273.adc */
+        Adc_ReportDetError(u8ServiceId, (uint8)ADC_E_UNINIT);
+    }
+    else if (Unit >= ADC_MAX_HW_UNITS_CFG)
+    {
+        Adc_ReportDetError(u8ServiceId, (uint8)ADC_E_PARAM_UNIT);
+    }
+    else
+    {
+        ValidCoreId = Adc_CheckCurrentCoreId(Adc_pCfgPtr[u32CoreId], u32CoreId);
+        if((Std_ReturnType)E_OK == ValidCoreId)
+        {
+            if(Adc_pCfgPtr[u32CoreId]->pAdcIpwConfig->Mapping.au8Adc_HwUnit[Unit] == (uint8)STD_ON) /* HW unit enabled on current partition */
+            {
+                ValidCallAndUnit = (Std_ReturnType)E_OK;
+            }
+            else
+            {
+                Adc_ReportDetError(u8ServiceId, (uint8)ADC_E_PARAM_CONFIG);
+            }
+        }
+        else
+        {
+            /* CPR_RTD_00420.adc */
+            Adc_ReportDetError(u8ServiceId, (uint8)ADC_E_PARAM_CONFIG);
+        }
+    }
+
+    return ValidCallAndUnit;
+}
+#endif /* (ADC_VALIDATE_CALL_AND_UNIT == STD_ON) ... */
+
+#if (ADC_GRP_NOTIF_CAPABILITY == STD_ON)
+#if (ADC_VALIDATE_NOTIFY_CAPABILITY == STD_ON)
+/**
+* @brief        This function checks the notification capability of a group.
+* @details      This service is non reentrant function on channel used for validating the
+*               notification capability of a group.
+*
+* @param[in]    u8ServiceId     The service id of the caller function
+* @param[in]    Group         The group id
+* @param[in]    u32CoreId       Current CoreID
+*
+* @return     Std_ReturnType  Standard return type.
+* @retval     E_OK:           Valid notification capability
+* @retval     E_NOT_OK:       Invalid notification capability
+*/
+static inline Std_ReturnType Adc_NotifyCapablity
+(
+    uint8 u8ServiceId,
+    Adc_GroupType Group,
+    uint32 u32CoreId
+)
+{
+    Adc_GroupType GroupIndex = Adc_pCfgPtr[u32CoreId]->pGroupIdToIndexMap[Group];
+    Std_ReturnType ValidCapability = (Std_ReturnType)E_OK;
+
+    switch (u8ServiceId)
+    {
+        case ADC_ENABLEGROUPNOTIFICATION_ID:
+        case ADC_DISABLEGROUPNOTIFICATION_ID:
+        {
+            if (NULL_PTR == Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].Notification)
+            {
+                ValidCapability = (Std_ReturnType)E_NOT_OK;
+                /* SWS_Adc_00166, SWS_Adc_00165 */
+                Adc_ReportDetError(u8ServiceId, (uint8)ADC_E_NOTIF_CAPABILITY);
+            }
+            break;
+        }
+        default:
+        {
+            ; /* no-op */
+            break;
+        }
+    }
+    return ValidCapability;
+}
+#endif /* ADC_VALIDATE_NOTIFY_CAPABILITY == STD_ON */
+#endif /* ADC_GRP_NOTIF_CAPABILITY == STD_ON */
+
+/**
+* @brief          Initializes the group status structures.
+* @details        Initializes the group status structures with the default values.
+*
+* @param[in]      u32CoreId       Current CoreID
+*
+* @return         void
+*
+* @pre            Driver must be initialized.
+*/
+static inline void Adc_InitGroupsStatus
+(
+    uint32 u32CoreId
+)
+{
+    Adc_GroupType u16GroupCnt = 0U;
+    Adc_GroupType GroupId = 0U;
+
+    /* Initialize Group Status structures to beginning values */
+    for (u16GroupCnt = 0U; u16GroupCnt < Adc_pCfgPtr[u32CoreId]->GroupCount; u16GroupCnt++)
+    {
+        GroupId = Adc_pCfgPtr[u32CoreId]->pGroups[u16GroupCnt].GroupId;
+        /* SWS_Adc_00221, SWS_Adc_00307 */
+        Adc_aGroupStatus[GroupId].eConversion = ADC_IDLE;
+        /* this group was not converted yet */
+        Adc_aGroupStatus[GroupId].eAlreadyConverted = ADC_NOT_YET_CONVERTED;
+
+        Adc_aGroupStatus[GroupId].ResultIndex = 0U;
+#ifdef ADC_CURRENT_CHANNEL_USED
+        Adc_aGroupStatus[GroupId].CurrentChannel = 0U;
+#endif /* ADC_CURRENT_CHANNEL_USED */
+#if (ADC_ENABLE_LIMIT_CHECK == STD_ON)
+        Adc_aGroupStatus[GroupId].bLimitCheckFailed = FALSE;
+#endif /* ADC_ENABLE_LIMIT_CHECK == STD_ON */
+
+        /* SWS_Adc_00077 */
+#if (ADC_HW_TRIGGER_API == STD_ON)
+        Adc_aGroupStatus[GroupId].eHwTriggering = ADC_HWTRIGGER_DISABLED;
+#endif /* (ADC_HW_TRIGGER_API == STD_ON) */
+#if (ADC_GRP_NOTIF_CAPABILITY == STD_ON)
+        Adc_aGroupStatus[GroupId].eNotification = ADC_NOTIFICATION_DISABLED;
+#endif /* (ADC_GRP_NOTIF_CAPABILITY == STD_ON) */
+
+#if (ADC_SETCHANNEL_API == STD_ON)
+        Adc_aRuntimeGroupChannel[GroupId].pChannel = Adc_pCfgPtr[u32CoreId]->pGroups[u16GroupCnt].pAssignment;
+        Adc_aRuntimeGroupChannel[GroupId].ChannelCount = Adc_pCfgPtr[u32CoreId]->pGroups[u16GroupCnt].AssignedChannelCount;
+        Adc_aRuntimeGroupChannel[GroupId].bRuntimeUpdated = FALSE;
+#if (ADC_ENABLE_LIMIT_CHECK == STD_ON)
+        Adc_aRuntimeGroupChannel[GroupId].bAdcRuntimeGroupLimitcheck = FALSE;
+#endif /* (ADC_ENABLE_LIMIT_CHECK == STD_ON) */
+#if (ADC_PDB_AVAILABLE == STD_ON)
+        Adc_aRuntimeGroupChannel[GroupId].pu16Delays = Adc_pCfgPtr[u32CoreId]->pGroups[u16GroupCnt].pAdcIpwGroupConfig->pDelay;
+        Adc_aRuntimeGroupChannel[GroupId].u32Mask = 0xFFFFFFFFUL;
+#endif /* (ADC_PDB_AVAILABLE == STD_ON) */
+#endif /* (ADC_SETCHANNEL_API == STD_ON) */
+
+    }
+}
+
+/**
+* @brief          Initializes the Unit status structures.
+* @details        Initializes the Unit status structures with the default values.
+*
+* @param[in]      u32CoreId       Current CoreID
+*
+* @return         void
+*
+* @pre            Driver must be initialized.
+*/
+static inline void Adc_InitUnitStatus
+(
+    uint32 u32CoreId
+)
+{
+    Adc_HwUnitType LogicalHwUnitId = 0U;
+    Adc_QueueIndexType QueueIdx = 0U;
+
+    /* Loop for all configured hardware units in current partition */
+    for (LogicalHwUnitId = 0U; LogicalHwUnitId < ADC_MAX_HW_UNITS; LogicalHwUnitId++)
+    {
+        if(Adc_pCfgPtr[u32CoreId]->pAdcIpwConfig->Mapping.au8Adc_HwUnit[LogicalHwUnitId] == (uint8)STD_ON) /* HW unit enabled on current partition */
+        {
+            /* Filled slots in the queue */
+            Adc_aUnitStatus[LogicalHwUnitId].SwNormalQueueIndex = 0U;
+            /* Mark all the queue slots as "empty" */
+            for(QueueIdx = 0U; QueueIdx < ADC_QUEUE_MAX_DEPTH_MAX; QueueIdx++)
+            {
+                Adc_aUnitStatus[LogicalHwUnitId].SwNormalQueue[QueueIdx] = 0U;
+            }
+
+#if (ADC_SOFTWARE_INJECTED_CONVERSIONS_USED == STD_ON)
+            /* SW Injected queue initialization */
+            Adc_aUnitStatus[LogicalHwUnitId].SwInjectedQueue[0U] = 0U;
+            /* Filled slots in the sw injected queue */
+            Adc_aUnitStatus[LogicalHwUnitId].SwInjectedQueueIndex = 0U;
+#endif /* (ADC_SOFTWARE_INJECTED_CONVERSIONS_USED == STD_ON) */
+
+#if (ADC_HW_TRIGGER_API == STD_ON)
+            /* SWS_Adc_00077 */
+            /* If there is no ongoing HW group then HW trigger capability is disabled */
+            Adc_aUnitStatus[LogicalHwUnitId].OngoingHwGroup = ADC_INVALID_HW_GROUP_ID;
+#endif /* (ADC_HW_TRIGGER_API == STD_ON) */
+
+#if (ADC_PDB_AVAILABLE == STD_ON)
+            Adc_aUnitStatus[LogicalHwUnitId].u8Sc1Used = 0U;
+#endif /* (ADC_PDB_AVAILABLE == STD_ON) */
+        }
+    }
+#if (ADC_POWER_STATE_SUPPORTED == STD_ON)
+    Adc_eCurrentState[u32CoreId] = ADC_FULL_POWER;
+    Adc_eTargetState[u32CoreId] = ADC_NODEFINE_POWER;
+#endif /* (ADC_POWER_STATE_SUPPORTED == STD_ON) */
+
+#if (ADC_DUAL_CLOCK_MODE == STD_ON)
+#if (ADC_SET_ADC_CONV_TIME_ONCE == STD_OFF)
+    Adc_eClockMode[u32CoreId] = ADC_NORMAL;
+#endif /* (ADC_SET_ADC_CONV_TIME_ONCE == STD_OFF) */
+#endif /* (ADC_DUAL_CLOCK_MODE == STD_ON) */
+}
+
+/**
+* @brief        This function check CoreId is used.
+* @details      This function check CoreId is used.
+*
+* @param[in]      pCfgPtr           Configuration data pointer.
+* @param[in]      u32CoreId         Current CoreID
+*
+* @return       Std_ReturnType  Standard return type.
+* @retval       E_OK:           CoreId is valid
+* @retval       E_NOT_OK:       CoreId is not valid
+*/
+static inline Std_ReturnType Adc_CheckCurrentCoreId
+(
+    const Adc_ConfigType * pCfgPtr,
+    uint32 u32CoreId
+)
+{
+    uint8 Index = 0U;
+    Std_ReturnType ValidCoreId = (Std_ReturnType)E_NOT_OK;
+
+    if(u32CoreId == pCfgPtr->u32CoreId)
+    {
+        for(Index = 0U; Index < pCfgPtr->AssignedPartitionCount; Index++)
+        {
+            if(u32CoreId == pCfgPtr->pAssignmentPartition[Index])
+            {
+                ValidCoreId = (Std_ReturnType)E_OK;
+                break;
+            }
+        }
+    }
+
+    return ValidCoreId;
+}
+
+#if (ADC_ENABLE_QUEUING == STD_ON)
+/**
+* @brief          This function performs the dequeue operation on the internal ADC queue.
+* @details        This function performs the dequeue operation on the internal ADC queue.
+*
+* @param[in]      Unit            Adc unit used. Recommended to use generated define for Adc Logical Unit Id.
+* @param[in]      CurQueueIndex   The current queue index.
+*
+* @return         void
+*
+* @pre This function must be called from a critical region. It is not protecting itself against interruptions.
+*/
+void Adc_RemoveFromQueue
+(
+    const Adc_HwUnitType Unit,
+    const Adc_QueueIndexType CurQueueIndex
+)
+{
+    Adc_QueueIndexType PositionIndex = 0U;
+    Adc_QueueIndexType CurrentIndex = 0U;
+
+    SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_00();
+    CurrentIndex = Adc_aUnitStatus[Unit].SwNormalQueueIndex;
+    if((Adc_QueueIndexType)1U >= CurrentIndex)
+    {
+        /* Zero or one element present in the queue */
+        Adc_aUnitStatus[Unit].SwNormalQueueIndex = 0U;
+    }
+    else
+    {
+        /* More than one element in the queue */
+        /* Move all elements after the one to remove (from CurQueueIndex position) one place to the left */
+        for(PositionIndex = (CurQueueIndex + 1U); PositionIndex < CurrentIndex; PositionIndex++)
+        {
+            Adc_aUnitStatus[Unit].SwNormalQueue[PositionIndex - 1U] = (Adc_GroupType)Adc_aUnitStatus[Unit].SwNormalQueue[PositionIndex];
+        }
+        Adc_aUnitStatus[Unit].SwNormalQueueIndex--;
+    }
+    SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_00();
+}
+#endif /* (ADC_ENABLE_QUEUING == STD_ON) */
+
+#if ((ADC_ENABLE_START_STOP_GROUP_API == STD_ON) && (ADC_PRIORITY_IMPLEMENTATION != ADC_PRIORITY_NONE))
+/**
+* @brief          This function inserts a group into the queue.
+* @details        This function inserts a group into the queue.
+*
+* @param[in]      Unit      The hardware Unit.
+* @param[in]      Group     The group id.
+* @param[in]      u32CoreId       Current CoreID
+*
+* @return         void
+* SWS_Adc_00311, SWS_Adc_00310
+*/
+static inline Std_ReturnType Adc_InsertIntoQueue
+(
+    const Adc_HwUnitType Unit,
+    Adc_GroupType Group,
+    uint32 u32CoreId
+)
+{
+    Adc_GroupType GroupIndex = Adc_pCfgPtr[u32CoreId]->pGroupIdToIndexMap[Group];
+#if (ADC_QUEUE_MAX_DEPTH_MAX != 1U)
+    /* Temporary index in the Queue */
+    Adc_QueueIndexType QueueTemp = 0U;
+#endif /* (ADC_QUEUE_MAX_DEPTH_MAX != 1U) */
+    /* Position of the new Group in the Queue */
+    Adc_QueueIndexType Pos = 0U;
+    Adc_GroupPriorityType gPri = Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].Priority;
+    Adc_QueueIndexType qPtr = Adc_aUnitStatus[Unit].SwNormalQueueIndex;
+    Std_ReturnType TimeOutStatus = (Std_ReturnType)E_OK;
+
+    /* Find the right place in Queue (SWS_Adc_00332, SWS_Adc_00417) */
+    while(Adc_pCfgPtr[u32CoreId]->pGroups[(Adc_aUnitStatus[Unit].SwNormalQueue[Pos])].Priority >= gPri)
+    {
+        Pos++;
+        if (Pos >= qPtr)
+        {
+            break;
+        }
+    }
+    if(0U == Pos)
+    {
+        /* Highest priority group detected */
+        TimeOutStatus = Adc_Ipw_StopCurrentConversion(Unit, Adc_aUnitStatus[Unit].SwNormalQueue[0U], u32CoreId);
+    }
+#if (ADC_QUEUE_MAX_DEPTH_MAX != 1U)
+    /* Make space for the new Group */
+    if(qPtr > Pos)
+    {
+        for(QueueTemp = qPtr; QueueTemp > Pos; QueueTemp--)
+        {
+            /* Move elements to the right */
+            Adc_aUnitStatus[Unit].SwNormalQueue[QueueTemp] = (Adc_GroupType)Adc_aUnitStatus[Unit].SwNormalQueue[QueueTemp- 1U];
+        }
+    }
+#endif /* (ADC_QUEUE_MAX_DEPTH_MAX != 1U) */
+    /* Place the Group in the Queue */
+    Adc_aUnitStatus[Unit].SwNormalQueue[Pos] = Group;
+    /* Increase the Queue Index */
+    Adc_aUnitStatus[Unit].SwNormalQueueIndex++;
+
+    return TimeOutStatus;
+}
+#endif  /* (ADC_PRIORITY_IMPLEMENTATION != ADC_PRIORITY_NONE) */
+
+#if (ADC_ENABLE_START_STOP_GROUP_API == STD_ON)
+/**
+* @brief          This function update queue before start a group conversion.
+* @details        This function update queue before start a group conversion.
+*
+* @param[in]      Group         The Group Id.
+* @param[in]      Unit          The Logical Unit Id.
+* @param[in]      u32CoreId     Current CoreID
+*
+* @return         void
+*
+* SWS_Adc_00335
+*/
+static inline void Adc_UpdateStatusStartConversion
+(
+    const Adc_GroupType Group,
+    const Adc_HwUnitType Unit,
+    uint32 u32CoreId
+)
+{
+#if (ADC_SOFTWARE_INJECTED_CONVERSIONS_USED == STD_ON)
+    Adc_GroupType GroupIndex = Adc_pCfgPtr[u32CoreId]->pGroupIdToIndexMap[Group];
+#endif /* ADC_SOFTWARE_INJECTED_CONVERSIONS_USED == STD_ON */
+    /* First available slot in the Queue */
+#if ((ADC_PRIORITY_IMPLEMENTATION != ADC_PRIORITY_NONE) || ((ADC_ENABLE_QUEUING == STD_ON) && (ADC_QUEUE_MAX_DEPTH_MAX != 1U)))
+    Adc_QueueIndexType qPtr = 0U;
+#endif
+#if (ADC_ENABLE_QUEUING == STD_ON)
+    Adc_QueueIndexType SwNormalQueueIndex;
+#endif /* (ADC_ENABLE_QUEUING == STD_ON) */
+    Std_ReturnType TimeOutStatus = (Std_ReturnType)E_OK;
+
+    /* Mark the Group as BUSY when the Group goes to the Queue or gets started */
+    /* SWS_Adc_00222 */
+    Adc_aGroupStatus[Group].eConversion = ADC_BUSY;
+    /* SWS_Adc_00431 */
+    Adc_aGroupStatus[Group].ResultIndex = 0U;
+
+#if (ADC_SOFTWARE_INJECTED_CONVERSIONS_USED == STD_ON)
+    /* Injected conversion mode */
+    if (ADC_CONV_TYPE_INJECTED == Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].eType)
+    {
+        SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_01();
+#ifdef ADC_DMA_SUPPORTED
+        if ((ADC_DMA == Adc_pCfgPtr[u32CoreId]->pAdcIpwConfig->Mapping.u8Adc_DmaInterruptSoftware[Unit]) || \
+            ((uint8)STD_ON == Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].u8AdcExtDMAChanEnable) \
+           )
+        {
+            if (Adc_aUnitStatus[Unit].SwNormalQueueIndex > (Adc_QueueIndexType)0U)
+            {
+                /* Queue is NOT Empty */
+                TimeOutStatus = Adc_Ipw_StopCurrentConversion(Unit, Adc_aUnitStatus[Unit].SwNormalQueue[0U], u32CoreId);
+
+                if ((Std_ReturnType)E_NOT_OK == TimeOutStatus)
+                {
+                    /* Timeout is expired.*/
+                    Adc_ReportDetRuntimeError((uint8)ADC_STARTGROUPCONVERSION_ID, (uint8)ADC_E_TIMEOUT);
+                }
+            }
+        }
+#endif /* ADC_DMA_SUPPORTED */
+        /* Place the Group in the SW Inj Queue */
+        Adc_aUnitStatus[Unit].SwInjectedQueue[0U] = Group;
+        /* Increase the Queue Index */
+        Adc_aUnitStatus[Unit].SwInjectedQueueIndex++;
+        SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_01();
+
+        Adc_Ipw_StartInjectedConversion(Unit, u32CoreId);
+
+    }
+    else
+#endif /* ADC_SOFTWARE_INJECTED_CONVERSIONS_USED == STD_ON */
+    {
+        /* Normal conversion */
+#if (ADC_PRIORITY_IMPLEMENTATION != ADC_PRIORITY_NONE)
+        SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_01();
+        qPtr = Adc_aUnitStatus[Unit].SwNormalQueueIndex;
+        if (qPtr > (Adc_QueueIndexType)0U)
+        {
+            /* Queue is NOT Empty */
+            TimeOutStatus = Adc_InsertIntoQueue(Unit, Group, u32CoreId);
+
+            if ((Std_ReturnType)E_NOT_OK == TimeOutStatus)
+            {
+                /* Timeout is expired.*/
+                Adc_ReportDetRuntimeError((uint8)ADC_STARTGROUPCONVERSION_ID, (uint8)ADC_E_TIMEOUT);
+            }
+        }
+        SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_01();
+#else /* ADC_PRIORITY_IMPLEMENTATION == ADC_PRIORITY_NONE */
+#if (ADC_ENABLE_QUEUING == STD_ON) && (ADC_QUEUE_MAX_DEPTH_MAX != 1U)
+        SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_01();
+        qPtr = Adc_aUnitStatus[Unit].SwNormalQueueIndex;
+        if (qPtr > (Adc_QueueIndexType)0U)
+        {
+            /* Place the Group in the Queue */
+            Adc_aUnitStatus[Unit].SwNormalQueue[qPtr] = Group;
+            /* Increase the Queue Index */
+            Adc_aUnitStatus[Unit].SwNormalQueueIndex++;
+        }
+        SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_01();
+#else /* ADC_ENABLE_QUEUING == STD_OFF*/
+    /* In this case all the StartConversion should be rejected by DET */
+#endif /* (ADC_ENABLE_QUEUING == STD_ON) */
+#endif /* ADC_PRIORITY_IMPLEMENTATION == ADC_PRIORITY_NONE */
+
+        SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_01();
+#if (ADC_ENABLE_QUEUING == STD_ON)
+        SwNormalQueueIndex = Adc_aUnitStatus[Unit].SwNormalQueueIndex;
+        /* SWS_Adc_00338, SWS_Adc_00417 */
+        if((Adc_aUnitStatus[Unit].SwNormalQueue[0U] == Group) || (0U == SwNormalQueueIndex))
+        {
+            /* No_priorities OR Queue_is_empty */
+            /* Indicate a new group was added to the queue */
+#endif /* (ADC_ENABLE_QUEUING == STD_ON) */
+            if (0U == Adc_aUnitStatus[Unit].SwNormalQueueIndex)
+            {
+                /* Place the Group in the Queue */
+                Adc_aUnitStatus[Unit].SwNormalQueue[0U] = Group;
+                Adc_aUnitStatus[Unit].SwNormalQueueIndex++;
+            }
+            /* exit critical region */
+            SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_01();
+            /* ADC will not be running - no ISR can occur now */
+            Adc_Ipw_StartNormalConversion(Unit, u32CoreId);
+
+#if (ADC_ENABLE_QUEUING == STD_ON)
+        }
+        else
+        {
+        /* exit critical region */
+        SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_01();
+        }
+#endif /* (ADC_ENABLE_QUEUING == STD_ON) */
+    }
+    (void)TimeOutStatus;
+}
+
+/**
+* @brief          This function stop the current sofware group conversion.
+* @details        This function stop the current sofware group conversion.
+*
+* @param[out]     RemovedPos The removed position in queue.
+* @param[in]      Group      The group id.
+* @param[in]      Unit       The hardware Unit.
+* @param[in]      u32CoreId  Current CoreID
+*
+* @return         Std_ReturnType
+*
+*/
+static inline Std_ReturnType Adc_StopSwGroupConversion
+(
+#if (ADC_ENABLE_QUEUING == STD_ON)
+    Adc_QueueIndexType * RemovedPos,
+#endif /* (ADC_ENABLE_QUEUING == STD_ON) */
+    Adc_GroupType Group,
+    Adc_HwUnitType Unit,
+    uint32 u32CoreId
+)
+{
+    Std_ReturnType TimeOutStatus = (Std_ReturnType)E_OK;
+#if (ADC_ENABLE_QUEUING == STD_ON)
+    Adc_QueueIndexType SwNormalQueueIndex;
+    Adc_QueueIndexType NumOfSwNormalQueue;
+#endif /* (ADC_ENABLE_QUEUING == STD_ON) */
+
+#if (ADC_SOFTWARE_INJECTED_CONVERSIONS_USED == STD_ON)
+    Adc_GroupType GroupIndex = Adc_pCfgPtr[u32CoreId]->pGroupIdToIndexMap[Group];
+    if (ADC_CONV_TYPE_INJECTED == Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].eType)
+    {
+        SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_02();
+        if (Group == Adc_aUnitStatus[Unit].SwInjectedQueue[0U])
+        {
+            /* SWS_Adc_00386, SWS_Adc_00385 */
+            TimeOutStatus = Adc_Ipw_StopCurrentConversion(Unit, Group, u32CoreId);
+            /* zero elements in the sw injected queue */
+            Adc_aUnitStatus[Unit].SwInjectedQueueIndex = 0U;
+        }
+        SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_02();
+    }
+    else
+#endif /* ADC_SOFTWARE_INJECTED_CONVERSIONS_USED == STD_ON */
+    {
+#if (ADC_ENABLE_QUEUING == STD_ON)
+        /* SWS_Adc_00437 */
+        /* Find the Group in the Queue */
+        *RemovedPos = Adc_aUnitStatus[Unit].SwNormalQueueIndex;  /* initialize with something invalid */
+        NumOfSwNormalQueue = Adc_aUnitStatus[Unit].SwNormalQueueIndex;
+        for (SwNormalQueueIndex = 0U; SwNormalQueueIndex < NumOfSwNormalQueue; SwNormalQueueIndex++)
+        {
+            if (Group == Adc_aUnitStatus[Unit].SwNormalQueue[SwNormalQueueIndex])
+            {
+                /* The group is found in the Queue */
+                /* Store the position of the group to be removed */
+                *RemovedPos = SwNormalQueueIndex;
+
+                /* Stop the conversion of all channels belonging to this group */
+                if((Adc_QueueIndexType)0U == SwNormalQueueIndex) /* In this case the group might be under conversion */
+#endif /* (ADC_ENABLE_QUEUING == STD_ON) */
+                {
+                    /* SWS_Adc_00386 */
+                    TimeOutStatus = Adc_Ipw_StopCurrentConversion(Unit, Group, u32CoreId);
+                }
+#if (ADC_ENABLE_QUEUING == STD_ON)
+                /* SWS_Adc_00438 */
+                /* Remove group from Queue */
+                Adc_RemoveFromQueue(Unit, SwNormalQueueIndex);
+            }
+        }
+#else
+        /* No element will be present in the queue */
+        Adc_aUnitStatus[Unit].SwNormalQueueIndex = 0U;
+#endif /* (ADC_ENABLE_QUEUING == STD_ON) */
+    }
+
+    return TimeOutStatus;
+}
+
+/**
+* @brief          This function update queue before start a group conversion.
+* @details        This function update queue before start a group conversion.
+*
+* @param[in]      Group     The group id.
+* @param[in]      Unit      The hardware Unit.
+* @param[in]      u32CoreId       Current CoreID
+*
+* @return         void
+*
+* SWS_Adc_00437
+*/
+static inline void Adc_UpdateStatusStopConversion
+(
+    Adc_GroupType Group,
+    Adc_HwUnitType Unit,
+    uint32 u32CoreId
+)
+{
+    Adc_GroupType GroupIndex = Adc_pCfgPtr[u32CoreId]->pGroupIdToIndexMap[Group];
+#if (ADC_ENABLE_QUEUING == STD_ON)
+    Adc_QueueIndexType RemovedPos = 0U;
+#endif /* (ADC_ENABLE_QUEUING == STD_ON) */
+    Std_ReturnType TimeOutStatus = (Std_ReturnType)E_OK;
+    Adc_GroupConvModeType eMode;
+    Adc_GroupAccessModeType eAccessMode;
+    Adc_StreamBufferModeType eBufferMode;
+    Adc_StatusType eConversion;
+
+#if (ADC_ENABLE_LIMIT_CHECK == STD_ON)
+    Adc_aGroupStatus[Group].bLimitCheckFailed = FALSE;
+#endif /* ADC_ENABLE_LIMIT_CHECK == STD_ON */
+
+    eMode = Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].eMode;
+    eAccessMode = Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].eAccessMode;
+    eBufferMode = Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].eBufferMode;
+    eConversion = Adc_aGroupStatus[Group].eConversion;
+
+     /* FD reset number of samples completed */
+     Adc_aGroupStatus[Group].ResultIndex = 0U;
+#if (ADC_GRP_NOTIF_CAPABILITY == STD_ON)
+     /* disable group notification (SWS_Adc_00155) */
+     Adc_aGroupStatus[Group].eNotification = ADC_NOTIFICATION_DISABLED;
+#endif /* (ADC_GRP_NOTIF_CAPABILITY == STD_ON) */
+#if ((ADC_SETCHANNEL_API == STD_ON) && (ADC_PDB_AVAILABLE == STD_ON))
+     Adc_aRuntimeGroupChannel[Group].u32Mask = 0xFFFFFFFFUL;
+#endif /* ((ADC_SETCHANNEL_API == STD_ON) && (ADC_PDB_AVAILABLE == STD_ON)) */
+    if(((ADC_CONV_MODE_ONESHOT == eMode) || \
+        ((ADC_ACCESS_MODE_STREAMING == eAccessMode) && (ADC_STREAM_BUFFER_LINEAR == eBufferMode)) \
+       ) && (ADC_STREAM_COMPLETED == eConversion) \
+      )
+    {
+        /* SWS_Adc_00221, SWS_Adc_00360 */
+        /* group is stopped, change its status to IDLE  */
+        Adc_aGroupStatus[Group].eConversion = ADC_IDLE;
+    }
+    else /* Continuous single or streaming circular */
+    {
+#if (ADC_ENABLE_QUEUING == STD_ON)
+        TimeOutStatus = Adc_StopSwGroupConversion(&RemovedPos, Group, Unit, u32CoreId);
+#else
+        TimeOutStatus = Adc_StopSwGroupConversion(Group, Unit, u32CoreId);
+#endif /* ADC_ENABLE_LIMIT_CHECK == STD_ON */
+
+        /* SWS_Adc_00221, SWS_Adc_00360 */
+        /* group is stopped, change its status to IDLE  */
+        Adc_aGroupStatus[Group].eConversion = ADC_IDLE;
+
+    #if (ADC_ENABLE_QUEUING == STD_ON)
+        /* Start the next group in the Queue (if any) */
+        if((Adc_QueueIndexType)0U == RemovedPos)
+        {
+            if(Adc_aUnitStatus[Unit].SwNormalQueueIndex > (Adc_QueueIndexType)0U)
+            {
+                /* Structures and pointers will be initialized when the next Group starts */
+                Adc_Ipw_StartNormalConversion(Unit, u32CoreId);
+            }
+        }
+    #endif /* (ADC_ENABLE_QUEUING == STD_ON) */
+        if ((Std_ReturnType)E_NOT_OK == TimeOutStatus)
+        {
+            /* Timeout is expired.*/
+            Adc_ReportDetRuntimeError((uint8)ADC_STOPGROUPCONVERSION_ID, (uint8)ADC_E_TIMEOUT);
+        }
+    }
+}
+#endif /* (ADC_ENABLE_START_STOP_GROUP_API == STD_ON) */
+
+#if (ADC_READ_GROUP_API == STD_ON)
+/**
+* @brief          This function updates the status variables after the read group operation.
+* @details        This function updates the status variables after the read group operation.
+*
+* @param[in]      Group       The group of which conversion will be started.
+* @param[in]      bFlag       Indicates if the values are in the configured limit range.
+* @param[in]      u32CoreId   Current CoreID
+*
+* @return         void
+*
+*/
+static inline void Adc_UpdateStatusReadGroup
+(
+    const Adc_GroupType Group,
+    const boolean bFlag,
+    uint32 u32CoreId
+)
+{
+    Adc_GroupType GroupIndex = Adc_pCfgPtr[u32CoreId]->pGroupIdToIndexMap[Group];
+    if((uint8)STD_ON == Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].u8AdcWithoutInterrupt)
+    {
+        Adc_UpdateStatusReadGroupNoInt(Group, bFlag, u32CoreId);
+    }
+    else
+    {
+        Adc_UpdateStatusReadGroupInt(Group, u32CoreId);
+    }
+}
+
+static inline void Adc_UpdateStatusReadGroupNoInt
+(
+    const Adc_GroupType Group,
+    const boolean bFlag,
+    uint32 u32CoreId
+)
+{
+    Adc_GroupType GroupIndex = Adc_pCfgPtr[u32CoreId]->pGroupIdToIndexMap[Group];
+
+    /* at least once the group was converted */
+    Adc_aGroupStatus[Group].eAlreadyConverted = ADC_ALREADY_CONVERTED;
+    /* Update conversion status*/
+    /* Conversion values are not in the configured range */
+    if (TRUE == bFlag)
+    {
+        /* NOTE: Streaming groups are NOT allowed without interrupts in configuration */
+        if(ADC_CONV_MODE_CONTINUOUS == Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].eMode)
+        {
+            Adc_aGroupStatus[Group].eConversion = ADC_BUSY;
+        }
+        /* Case of software - one shot mode */
+        else
+        {
+            /* CPR_RTD_00265.adc */
+            if(ADC_TRIGG_SRC_SW == Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].eTriggerSource)
+            {
+                /* SWS_Adc_00221 */
+                Adc_aGroupStatus[Group].eConversion = ADC_IDLE;
+                /* Update queue index status */
+                Adc_UpdateSwQueueIndexNoInt(Group, u32CoreId);
+            }
+        }
+    }
+    #if (ADC_ENABLE_LIMIT_CHECK == STD_ON)
+    else
+    {
+        if(ADC_CONV_MODE_ONESHOT == Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].eMode)
+        {
+            /* SWS_Adc_00449, SWS_Adc_00450 */
+            Adc_aGroupStatus[Group].eConversion = ADC_BUSY;
+        }
+    }
+    #endif /* (ADC_ENABLE_LIMIT_CHECK == STD_ON) */
+}
+
+static inline void Adc_UpdateSwQueueIndexNoInt
+(
+    const Adc_GroupType Group,
+    uint32 u32CoreId
+)
+{
+    Adc_GroupType GroupIndex = Adc_pCfgPtr[u32CoreId]->pGroupIdToIndexMap[Group];
+    Adc_HwUnitType LogicalHwUnitId = Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].AdcLogicalUnitId;
+#if (ADC_ENABLE_QUEUING == STD_ON)
+    Adc_QueueIndexType SwNormalQueueIndex;
+    Adc_QueueIndexType NumOfSwNormalQueue;
+#endif
+
+#if (ADC_SOFTWARE_INJECTED_CONVERSIONS_USED == STD_ON)
+    if (ADC_CONV_TYPE_INJECTED == Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].eType)
+    {
+        SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_03();
+        if (Adc_aUnitStatus[LogicalHwUnitId].SwInjectedQueueIndex > (Adc_QueueIndexType)0U)
+        {
+            /* empty queue of  SW injected conversions */
+            Adc_aUnitStatus[LogicalHwUnitId].SwInjectedQueueIndex--;
+        }
+        SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_03();
+    }
+    else /* SW NORMAL CONVERSION */
+#endif /* ADC_SOFTWARE_INJECTED_CONVERSIONS_USED == STD_ON */
+    {
+        if (Adc_aUnitStatus[LogicalHwUnitId].SwNormalQueueIndex > (Adc_QueueIndexType)0U)
+        {
+#if (ADC_ENABLE_QUEUING == STD_ON)
+            /* remove group without interrupts from queue  */
+            NumOfSwNormalQueue = Adc_aUnitStatus[LogicalHwUnitId].SwNormalQueueIndex;
+            for (SwNormalQueueIndex = 0U; SwNormalQueueIndex < NumOfSwNormalQueue; SwNormalQueueIndex++)
+            {
+                if (Group == Adc_aUnitStatus[LogicalHwUnitId].SwNormalQueue[SwNormalQueueIndex])
+                {
+                    /* The group is found in the Queue */
+                    Adc_RemoveFromQueue(LogicalHwUnitId, SwNormalQueueIndex);
+                    break;
+                }
+            }
+#if (ADC_ENABLE_START_STOP_GROUP_API == STD_ON)
+            /* Start / restore next conversion in the queue*/
+            if (0U == SwNormalQueueIndex)
+            {
+                if(Adc_aUnitStatus[LogicalHwUnitId].SwNormalQueueIndex > 0U)
+                {
+                    Adc_Ipw_StartNormalConversion(LogicalHwUnitId, u32CoreId);
+                }
+            }
+#endif /* (ADC_ENABLE_START_STOP_GROUP_API == STD_ON) */
+#else
+            Adc_aUnitStatus[LogicalHwUnitId].SwNormalQueueIndex--;
+#endif
+        }
+    }
+}
+
+static inline void Adc_UpdateStatusReadGroupInt
+(
+    const Adc_GroupType Group,
+    uint32 u32CoreId
+)
+{
+    Adc_GroupType GroupIndex = Adc_pCfgPtr[u32CoreId]->pGroupIdToIndexMap[Group];
+
+    /* The following code has been added to respect the State Diagram of Streaming Access Mode */
+    if (ADC_COMPLETED == Adc_aGroupStatus[Group].eConversion)
+    {
+        /* SWS_Adc_00331 -- SWS_Adc_00222 */
+        Adc_aGroupStatus[Group].eConversion = ADC_BUSY;
+    }
+    else if (ADC_STREAM_COMPLETED == Adc_aGroupStatus[Group].eConversion)
+    {
+        /* Compliance with State Diagram */
+        if (ADC_TRIGG_SRC_SW == Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].eTriggerSource)
+        {
+            if((ADC_CONV_MODE_ONESHOT == Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].eMode)|| \
+               ((ADC_CONV_MODE_CONTINUOUS == Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].eMode) && \
+                (ADC_ACCESS_MODE_STREAMING == Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].eAccessMode) && \
+                (ADC_STREAM_BUFFER_LINEAR == Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].eBufferMode) \
+               )
+              )
+            {
+                /* SWS_Adc_00330 - SWS_Adc_00221 */
+                Adc_aGroupStatus[Group].eConversion = ADC_IDLE;
+            }
+            else
+            {
+                /* Continuous single access or circular streaming buffer mode */
+                /* SWS_Adc_00329 -- SWS_Adc_00222 */
+                Adc_aGroupStatus[Group].eConversion = ADC_BUSY;
+            }
+        }
+#if (ADC_HW_TRIGGER_API == STD_ON)
+        else
+        {
+            if((ADC_ACCESS_MODE_STREAMING == Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].eAccessMode)&& \
+               (ADC_STREAM_BUFFER_LINEAR == Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].eBufferMode)
+              )
+            {
+                /* SWS_Adc_00330 - SWS_Adc_00221 */
+                Adc_aGroupStatus[Group].eConversion = ADC_IDLE;
+            }
+            else
+            { /* Simple One-shot mode, in other words in single access mode*/
+                /* SWS_Adc_00329 -- SWS_Adc_00222 */
+                Adc_aGroupStatus[Group].eConversion = ADC_BUSY;
+            }
+        }
+#endif /* (ADC_HW_TRIGGER_API == STD_ON) */
+    }
+    else
+    {
+        ; /* Empty else branch to avoid MISRA */
+    }
+}
+
+#endif /* (ADC_READ_GROUP_API == STD_ON) */
+
+#if (ADC_HW_TRIGGER_API == STD_ON)
+static inline void Adc_UpdateStatusEnableHardware
+(
+    Adc_GroupType Group,
+    Adc_HwUnitType Unit
+)
+{
+    /* Save enabled hardware group ID */
+    Adc_aUnitStatus[Unit].OngoingHwGroup = Group;
+
+    /* Mark the Group as BUSY */
+    /* SWS_Adc_00222 */
+    Adc_aGroupStatus[Group].eConversion = ADC_BUSY;
+
+    /* if HW trigger is enabled for a group, its HW trigger status becomes ENABLED */
+    Adc_aGroupStatus[Group].eHwTriggering = ADC_HWTRIGGER_ENABLED;
+
+    /* SWS_Adc_00432 */
+    /* Put the conversion results from Results Buffer Base Address */
+    Adc_aGroupStatus[Group].ResultIndex = 0U;
+}
+
+static inline void Adc_UpdateStatusDisableHardware
+(
+    Adc_GroupType Group,
+    Adc_HwUnitType Unit
+)
+{
+#if (ADC_GRP_NOTIF_CAPABILITY == STD_ON)
+    /* [SWS_Adc_00157] If enabled, the function Adc_DisableHardwareTrigger shall disable the notification mechanism for the requested group */
+    Adc_aGroupStatus[Group].eNotification = ADC_NOTIFICATION_DISABLED;
+#endif /* (ADC_GRP_NOTIF_CAPABILITY == STD_ON) */
+#if ((ADC_SETCHANNEL_API == STD_ON) && (ADC_PDB_AVAILABLE == STD_ON))
+     Adc_aRuntimeGroupChannel[Group].u32Mask = 0xFFFFFFFFUL;
+#endif /* ((ADC_SETCHANNEL_API == STD_ON) && (ADC_PDB_AVAILABLE == STD_ON)) */
+
+    /* SWS_Adc_00361, SWS_Adc_00221 */
+    /* Mark the Group status as IDLE */
+    Adc_aGroupStatus[Group].eConversion = ADC_IDLE;
+
+    /* Hardware trigger is disabled */
+    Adc_aGroupStatus[Group].eHwTriggering = ADC_HWTRIGGER_DISABLED;
+
+    /* Remove hardware group ID */
+    Adc_aUnitStatus[Unit].OngoingHwGroup = ADC_INVALID_HW_GROUP_ID;
+
+}
+#endif /* (ADC_HW_TRIGGER_API == STD_ON) */
+
+/**
+* @brief          This function updates the status variables after the getstreamlastpointer operation.
+* @details        This function updates the status variables after the getstreamlastpointer operation.
+*
+* @param[in]      Group       The group of which conversion will be started.
+* @param[in]      u32CoreId       Current CoreID
+*
+* @return         void
+*
+*/
+static inline void Adc_UpdateStatusAfterGetStream
+(
+    Adc_GroupType Group,
+    uint32 u32CoreId
+)
+{
+    Adc_GroupType GroupIndex = Adc_pCfgPtr[u32CoreId]->pGroupIdToIndexMap[Group];
+
+    /* The following code has been added to respect the State Diagram of Streaming Access Mode */
+    if (ADC_COMPLETED == Adc_aGroupStatus[Group].eConversion)
+    {
+        /* SWS_Adc_00328 -- SWS_Adc_00222 */
+        Adc_aGroupStatus[Group].eConversion = ADC_BUSY;
+    }
+
+    if (ADC_STREAM_COMPLETED == Adc_aGroupStatus[Group].eConversion)
+    {
+        /* Compliance with State Diagram */
+        if (ADC_TRIGG_SRC_SW == Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].eTriggerSource)
+        {
+            if((ADC_CONV_MODE_ONESHOT == Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].eMode) || \
+               ((ADC_CONV_MODE_CONTINUOUS == Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].eMode) && \
+                (ADC_ACCESS_MODE_STREAMING == Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].eAccessMode) && \
+                (ADC_STREAM_BUFFER_LINEAR == Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].eBufferMode) \
+               )
+              )
+            {
+                /* SWS_Adc_00327 -- SWS_Adc_00221 */
+                Adc_aGroupStatus[Group].eConversion = ADC_IDLE;
+            }
+            else
+            {
+                /* Continuous single access or circular streaming buffer mode */
+                /* SWS_Adc_00326 -- SWS_Adc_00222 */
+                Adc_aGroupStatus[Group].eConversion = ADC_BUSY;
+            }
+        }
+#if (STD_ON == ADC_HW_TRIGGER_API)
+        else
+        {
+            /* Hw Trigger */
+            if((ADC_ACCESS_MODE_STREAMING == Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].eAccessMode) && \
+               (ADC_STREAM_BUFFER_LINEAR == Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].eBufferMode)
+              )
+            {
+                /* SWS_Adc_00327 -- SWS_Adc_00221 */
+                Adc_aGroupStatus[Group].eConversion = ADC_IDLE;
+            }
+            else
+            {
+                /* Single access mode or circular streaming buffer mode */
+                /* SWS_Adc_00326 -- SWS_Adc_00222 */
+                Adc_aGroupStatus[Group].eConversion = ADC_BUSY;
+            }
+        }
+#endif /* (STD_ON == ADC_HW_TRIGGER_API) */
+    }
+}
+
+#if (ADC_ENABLE_CTU_CONTROL_MODE_API == STD_ON)
+#if (ADC_DEV_ERROR_DETECT == STD_ON)
+
+/**
+* @brief        This function validates the Adc unit is activated for Ctu control mode.
+* @details      This service is a non reentrant function used for validating the Adc unit when
+*               Ctu control mode is used.
+*
+* @param[in]    u8ServiceId     Service id
+* @param[in]    Unit            The unit id
+* @param[in]    u32CoreId       Current CoreID
+*
+* @return       Std_ReturnType  Standard return type.
+* @retval       E_OK:           The call is valid
+* @retval       E_NOT_OK:       The call is not valid
+*/
+static inline Std_ReturnType Adc_ValidateUnitActive
+(
+    uint8 u8ServiceId,
+    Adc_HwUnitType Unit,
+    uint32 u32CoreId
+)
+{
+    Std_ReturnType Return = (Std_ReturnType)E_OK;
+
+    if (0u == Adc_pCfgPtr[u32CoreId]->pAdcIpwConfig->aAdcUnitSupportCtuControlMode[Unit])
+    {
+        /* CPR_RTD_00272.adc */
+        Adc_ReportDetError(u8ServiceId, (uint8)ADC_E_PARAM_UNIT);
+        Return = (Std_ReturnType)E_NOT_OK;
+    }
+
+    return Return;
+}
+#endif /* (ADC_DEV_ERROR_DETECT == STD_ON) */
+
+/**
+* @brief        This function validates the state of s unit when the Ctu Control is enabled.
+* @details      This service is a non reentrant function used for validating the state of a unit
+*               when the ctu control is enabled.
+*
+* @param[in]    Unit            The unit id
+*
+* @return       Std_ReturnType  Standard return type.
+* @retval       E_OK:           The call is valid
+* @retval       E_NOT_OK:       The call is not valid
+*/
+static inline Std_ReturnType Adc_ValidateStateCtuControlMode
+(
+    uint8 u8ServiceId,
+    Adc_HwUnitType Unit
+)
+{
+    Std_ReturnType ValidState = (Std_ReturnType)E_OK;
+
+    switch(u8ServiceId)
+    {
+        case ADC_ENABLE_CTU_CONTROL_MODE_ID:
+        {
+            ValidState = Adc_ValidateNotBusyNoQueue(Unit, ADC_ENABLE_CTU_CONTROL_MODE_ID);
+
+            /* Check for ongoing conversions */
+            if (((Std_ReturnType)E_NOT_OK == ValidState) ||
+                (TRUE == Adc_aUnitStatus[Unit].bCtuControlOngoing)
+               )
+            {
+                /* CPR_RTD_00272.adc */
+                ValidState = (Std_ReturnType)E_NOT_OK;
+                Adc_ReportDetRuntimeError((uint8)ADC_ENABLE_CTU_CONTROL_MODE_ID, (uint8)ADC_E_BUSY);
+            }
+            break;
+        }
+        case ADC_DISABLE_CTU_CONTROL_MODE_ID:
+        {
+            /* Ctu control mode is not already enabled for this unit */
+            if(FALSE == Adc_aUnitStatus[Unit].bCtuControlOngoing)
+            {
+                /* CPR_RTD_00273.adc */
+                ValidState = (Std_ReturnType)E_NOT_OK;
+                Adc_ReportDetRuntimeError((uint8)ADC_DISABLE_CTU_CONTROL_MODE_ID, (uint8)ADC_E_IDLE);
+            }
+            break;
+        }
+        default:
+        {
+            ; /* no-op */
+            break;
+        }
+    }
+    return ValidState;
+}
+
+#if (ADC_DEV_ERROR_DETECT == STD_ON)
+static inline Std_ReturnType Adc_ValidateCtuControlModeApi
+(
+    uint8 u8ServiceId,
+    uint32 u32CoreId
+)
+{
+    Std_ReturnType Status = E_OK;
+    uint8 AdcHwUnit = 0u;
+    boolean CtuControlModeEnabled = FALSE;
+
+    if (Adc_pCfgPtr[u32CoreId] == NULL_PTR)
+    {
+        Adc_ReportDetError(u8ServiceId, (uint8)ADC_E_UNINIT);
+        Status = E_NOT_OK;
+    }
+    else
+    {
+        for (AdcHwUnit = 0u; AdcHwUnit < ADC_MAX_HW_UNITS; AdcHwUnit++)
+        {
+            if (Adc_aUnitStatus[AdcHwUnit].bCtuControlOngoing)
+            {
+                CtuControlModeEnabled = TRUE; /* CtuControl Mode is considered enabled, if it is enabled for at least one AdcHwUnit */
+            }
+        }
+    }
+    if (CtuControlModeEnabled == FALSE)
+    {
+        Adc_ReportDetError(u8ServiceId, (uint8)ADC_E_CONTROL_MODE_DISABLED);
+        Status = E_NOT_OK;
+    }
+
+    return Status;
+}
+#endif /* (ADC_DEV_ERROR_DETECT == STD_ON) */
+
+#endif /* (ADC_ENABLE_CTU_CONTROL_MODE_API == STD_ON) */
+
+#if (ADC_POWER_STATE_SUPPORTED == STD_ON)
+static inline Std_ReturnType Adc_ValidateStateAndPtr
+(
+    uint8 u8ServiceId,
+    Adc_PowerStateRequestResultType * pResult,
+    uint32 u32CoreId
+)
+{
+    Std_ReturnType RetVal = (Std_ReturnType)E_OK;
+    Std_ReturnType ValidCoreId = (Std_ReturnType)E_NOT_OK;
+
+    if (NULL_PTR == pResult)
+    {
+#if (ADC_DEV_ERROR_DETECT == STD_ON)
+        Adc_ReportDetError(u8ServiceId, (uint8)ADC_E_PARAM_POINTER);
+#else
+        (void)u8ServiceId;
+#endif /* (ADC_DEV_ERROR_DETECT == STD_ON) */
+        RetVal = (Std_ReturnType)E_NOT_OK;
+        (void)ValidCoreId;
+    }
+    else if(NULL_PTR == Adc_pCfgPtr[u32CoreId])
+    {
+        /* Adc module is not initialized */
+#if (ADC_DEV_ERROR_DETECT == STD_ON)
+        /* SWS_Adc_00496, SWS_Adc_00493, SWS_Adc_00491, SWS_Adc_00486 */
+        Adc_ReportDetError(u8ServiceId, (uint8)ADC_E_UNINIT);
+#else
+        (void)u8ServiceId;
+#endif /* (ADC_DEV_ERROR_DETECT == STD_ON) */
+
+        *pResult = ADC_NOT_INIT;
+        RetVal = (Std_ReturnType)E_NOT_OK;
+        (void)ValidCoreId;
+    }
+    else
+    {
+        ValidCoreId = Adc_CheckCurrentCoreId(Adc_pCfgPtr[u32CoreId], u32CoreId);
+        if((Std_ReturnType)E_NOT_OK == ValidCoreId)
+        {
+#if (ADC_DEV_ERROR_DETECT == STD_ON)
+            /* CPR_RTD_00420.adc */
+            Adc_ReportDetError(u8ServiceId, (uint8)ADC_E_PARAM_CONFIG);
+#else
+            (void)u8ServiceId;
+#endif /* (ADC_DEV_ERROR_DETECT == STD_ON) */
+
+            *pResult = ADC_NOT_INIT;
+            RetVal = (Std_ReturnType)E_NOT_OK;
+        }
+    }
+    return RetVal;
+}
+
+static inline Std_ReturnType Adc_ValidateIdleState
+(
+    uint8 u8ServiceId,
+    Adc_PowerStateRequestResultType * pResult,
+    uint32 u32CoreId
+)
+{
+    Std_ReturnType RetVal = (Std_ReturnType)E_OK;
+    Adc_HwUnitType LogicalHwUnitId;
+
+    for (LogicalHwUnitId = 0U; LogicalHwUnitId < ADC_MAX_HW_UNITS; LogicalHwUnitId++)
+    {
+        if(Adc_pCfgPtr[u32CoreId]->pAdcIpwConfig->Mapping.au8Adc_HwUnit[LogicalHwUnitId] == (uint8)STD_ON) /* HW unit enabled on current partition */
+        {
+            if (((Std_ReturnType)E_NOT_OK == Adc_ValidateNotBusyNoQueue(LogicalHwUnitId, u8ServiceId))
+#if (ADC_ENABLE_CTU_CONTROL_MODE_API == STD_ON)
+               || (TRUE == Adc_aUnitStatus[LogicalHwUnitId].bCtuControlOngoing)
+#endif /* if (ADC_ENABLE_CTU_CONTROL_MODE_API == STD_ON) */
+               )
+            {
+                /* Adc conversion is ongoing */
+                /* SWS_Adc_00487 */
+                Adc_ReportDetRuntimeError(u8ServiceId, ADC_E_NOT_DISENGAGED);
+                *pResult = ADC_SEQUENCE_ERROR;
+                RetVal = (Std_ReturnType)E_NOT_OK;
+                break;
+            }
+        }
+    }
+    return RetVal;
+}
+
+static inline Std_ReturnType Adc_ValidatePowerStateSupport
+(
+    uint8 u8ServiceId,
+    Adc_PowerStateType ePowerState,
+    Adc_PowerStateRequestResultType * pResult
+)
+{
+    Std_ReturnType RetVal = (Std_ReturnType)E_OK;
+
+    /* If the power state is not supported or low power state is not supported at all */
+    if(ePowerState >= ADC_NODEFINE_POWER)
+    {
+        /* The state is not supported */
+        #if (ADC_DEV_ERROR_DETECT == STD_ON)
+        Adc_ReportDetError(u8ServiceId, ADC_E_POWER_STATE_NOT_SUPPORTED);
+        #else
+        (void)u8ServiceId;
+        #endif /* (ADC_DEV_ERROR_DETECT == STD_ON) */
+
+        *pResult = ADC_POWER_STATE_NOT_SUPP;
+        RetVal = (Std_ReturnType)E_NOT_OK;
+    }
+    return RetVal;
+}
+
+static inline Std_ReturnType Adc_ValidatePowerStatePrepare
+(
+    uint8 u8ServiceId,
+    Adc_PowerStateRequestResultType * pResult,
+    uint32 u32CoreId
+)
+{
+    Std_ReturnType RetVal = (Std_ReturnType)E_OK;
+
+    /* If the terget state is invalid state */
+    if(Adc_eTargetState[u32CoreId] >= ADC_NODEFINE_POWER)
+    {
+        /* The target power state is not prepared */
+        #if (ADC_DEV_ERROR_DETECT == STD_ON)
+        /* SWS_Adc_00490 */
+        Adc_ReportDetError(u8ServiceId, ADC_E_PERIPHERAL_NOT_PREPARED);
+        #else
+        (void)u8ServiceId;
+        #endif /* (ADC_DEV_ERROR_DETECT == STD_ON) */
+
+        *pResult = ADC_SEQUENCE_ERROR;
+        RetVal = (Std_ReturnType)E_NOT_OK;
+    }
+    return RetVal;
+}
+#endif /* (ADC_POWER_STATE_SUPPORTED == STD_ON) */
+
+#if (ADC_ENABLE_CTUTRIG_NONAUTO_API == STD_ON) || defined(__DOXYGEN__)
+#if (ADC_DEV_ERROR_DETECT == STD_ON)
+static inline Std_ReturnType Adc_CheckTriggerSourceRange
+(
+    uint8 u8ServiceId,
+    Adc_HwTriggerTimerType TriggerSource,
+    boolean bTriggFound
+)
+{
+    Std_ReturnType Status = E_OK;
+
+    if ((TriggerSource > (Adc_HwTriggerTimerType)ADC_IPW_MAX_CTU_TRIG_SOURCE_ID) || (bTriggFound == FALSE))
+    {
+        Adc_ReportDetError(u8ServiceId, (uint8)ADC_E_WRONG_TRIGG_SRC);
+        Status = (Std_ReturnType)E_NOT_OK;
+    }
+
+    return Status;
+}
+#endif /* (ADC_DEV_ERROR_DETECT == STD_ON) */
+#endif /* (ADC_ENABLE_CTUTRIG_NONAUTO_API == STD_ON) || defined(__DOXYGEN__) */
+
+#if (ADC_SETCHANNEL_API == STD_ON)
+#if (ADC_DEV_ERROR_DETECT == STD_ON)
+static inline Std_ReturnType Adc_CheckSetChannelParams
+(
+    const Adc_GroupType Group,
+#if (ADC_DELAY_AVAILABLE == STD_ON)
+    const uint16 * Delays,
+    const uint32 ChannelUpdateMask,
+#endif /* (ADC_DELAY_AVAILABLE == STD_ON) */
+    const Adc_ChannelIndexType NumberOfChannel
+)
+{
+    volatile uint32 u32CoreId = (uint32)Adc_GetCoreID();
+    const uint32 u32CoreIdTemp = u32CoreId; /* Used to avoid MISRA */
+    Std_ReturnType StatusChecks = (Std_ReturnType)E_OK;
+    const Adc_GroupType GroupIndex = Adc_pCfgPtr[u32CoreId]->pGroupIdToIndexMap[Group];
+    if(0U == NumberOfChannel)
+    {
+        Adc_ReportDetError(ADC_SETCHANNEL_ID, (uint8)ADC_E_PARAM_CHANNEL);
+        StatusChecks = (Std_ReturnType)E_NOT_OK;
+    }
+#if (ADC_DELAY_AVAILABLE == STD_ON)
+    else if ((0U == ((1UL << (NumberOfChannel - 1U)) & ChannelUpdateMask))
+                && (NumberOfChannel != Adc_pCfgPtr[u32CoreIdTemp]->pGroups[GroupIndex].AssignedChannelCount)
+            )
+    {
+        /* Last channel bit must be enabled for having interrupt */
+        Adc_ReportDetError(ADC_SETCHANNEL_ID, (uint8)ADC_E_PARAM_CHANNEL);
+    }
+    else if (((Std_ReturnType)E_NOT_OK == Adc_ValidatePtr(ADC_SETCHANNEL_ID, Delays))
+                && (TRUE == Adc_pCfgPtr[u32CoreIdTemp]->pGroups[GroupIndex].pAdcIpwGroupConfig->AdcGroupEnableChannelDelays)
+                && (NumberOfChannel != Adc_pCfgPtr[u32CoreIdTemp]->pGroups[GroupIndex].AssignedChannelCount)
+            )
+    {
+        /* If NumberOfChannel is different from number already configured, Delays pointer != NULL. */
+        Adc_ReportDetError(ADC_SETCHANNEL_ID, (uint8)ADC_E_PARAM_POINTER);
+    }
+    else if ( \
+                ((uint8)STD_ON == Adc_pCfgPtr[u32CoreIdTemp]->pGroups[GroupIndex].u8AdcWithoutInterrupt)
+#if (STD_ON == ADC_OPTIMIZE_DMA_STREAMING_GROUPS)
+                || (TRUE == Adc_pCfgPtr[u32CoreIdTemp]->pGroups[GroupIndex].bAdcOptimizeDmaStream)
+#endif /* (STD_ON == ADC_OPTIMIZE_DMA_STREAMING_GROUPS) */
+            )
+    {
+        /* Number of channels won't be greater than maximum number of SC1 registers */
+        if(ADC_MAX_CHAN_COUNT < NumberOfChannel)
+        {
+            Adc_ReportDetError(ADC_SETCHANNEL_ID, (uint8)ADC_E_PARAM_CHANNEL);
+            StatusChecks = (Std_ReturnType)E_NOT_OK;
+        }
+    }
+#if (ADC_OPTIMIZE_ONESHOT_HW_TRIGGER == STD_ON)
+    else
+    {
+        /* Number of channels won't be greater than maximum number of SC1 registers */
+        if(ADC_MAX_CHAN_COUNT < NumberOfChannel)
+        {
+            Adc_ReportDetError(ADC_SETCHANNEL_ID, (uint8)ADC_E_PARAM_CHANNEL);
+            StatusChecks = (Std_ReturnType)E_NOT_OK;
+        }
+    }
+#else
+    else
+    {
+        ; /* Empty else branch to avoid MISRA */
+    }
+#endif /* (ADC_OPTIMIZE_ONESHOT_HW_TRIGGER == STD_ON) */
+#endif /* (ADC_DELAY_AVAILABLE == STD_ON) */
+
+    return StatusChecks;
+}
+#endif /* (ADC_DEV_ERROR_DETECT == STD_ON) */
+#if ((ADC_HW_TRIGGER_API == STD_ON) && (ADC_CTU_TRIGGER_MODE_SUPPORTED == STD_ON))
+static inline Std_ReturnType Adc_CheckSetChannelCtuTriggers
+(
+    const Adc_GroupType GroupIndex,
+    const Adc_HwUnitType LogicalHwUnitId,
+    const Adc_ChannelIndexType NumberOfChannel,
+    const uint32 u32CoreId
+)
+{
+    Std_ReturnType StatusChecks = (Std_ReturnType)E_OK;
+    if (Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].eTriggerSource == ADC_TRIGG_SRC_HW)
+    {
+        /* Check number of channel in the list if the HW trigger source comes from CTU or BCTU */
+        if (Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].HwTriggerSource <= (Adc_HwTriggerTimerType)ADC_IPW_MAX_CTU_TRIG_SOURCE_ID)
+        {
+#if (ADC_CTU_HW_TRIGGER_OPTIMIZATION == STD_OFF)
+            /* Number channel should be less than maximum element of the CTU or BCTU List */
+            if(NumberOfChannel > Adc_pCfgPtr[u32CoreId]->pAdcIpwConfig->CtuListMaxNumElems[LogicalHwUnitId])
+            {
+                Adc_ReportDetError(ADC_SETCHANNEL_ID, (uint8)ADC_E_PARAM_CHANNEL);
+                StatusChecks = (Std_ReturnType)E_NOT_OK;
+            }
+#else
+            /* Adc_SetChannel doesn't support ADC_CTU_HW_TRIGGER_OPTIMIZATION feature */
+            Adc_ReportDetError(ADC_SETCHANNEL_ID, (uint8)ADC_E_PARAM_GROUP);
+            StatusChecks = (Std_ReturnType)E_NOT_OK;
+#endif /* (ADC_CTU_HW_TRIGGER_OPTIMIZATION == STD_OFF) */
+            /* TODO: in case of CTU Trigger, need to check Channel ID is not greater than 15 due to limitation of CTU Hardware */
+        }
+    }
+    return StatusChecks;
+}
+#endif /* ((ADC_HW_TRIGGER_API == STD_ON) && (ADC_CTU_TRIGGER_MODE_SUPPORTED == STD_ON)) */
+#endif /* (ADC_SETCHANNEL_API == STD_ON) */
+
+#if ((ADC_DUAL_CLOCK_MODE == STD_ON) && (ADC_DEV_ERROR_DETECT == STD_ON))
+static inline boolean Adc_CheckSetClockModeCoreAndParam
+(
+    const Adc_SelectPrescalerType Prescaler,
+    const uint32 u32CoreId
+)
+{
+    boolean Valid = FALSE;
+    Std_ReturnType ValidCoreId = (Std_ReturnType)E_NOT_OK;
+
+    if (NULL_PTR == Adc_pCfgPtr[u32CoreId])
+    {
+        Adc_ReportDetError((uint8)ADC_SETCLOCKMODE_ID, (uint8)ADC_E_UNINIT);
+    }
+    else
+    {
+        ValidCoreId = Adc_CheckCurrentCoreId(Adc_pCfgPtr[u32CoreId], u32CoreId);
+        if((Std_ReturnType)E_NOT_OK == ValidCoreId)
+        {
+            /* CPR_RTD_00420.adc */
+            Adc_ReportDetError((uint8)ADC_SETCLOCKMODE_ID, (uint8)ADC_E_PARAM_CONFIG);
+        }
+        else if ((ADC_NORMAL != Prescaler) && (ADC_ALTERNATE != Prescaler))
+        {
+            Adc_ReportDetError((uint8)ADC_SETCLOCKMODE_ID, (uint8)ADC_E_INVALID_CLOCK_MODE);
+        }
+        else
+        {
+            Valid = TRUE;
+        }
+    }
+
+    return Valid;
+}
+#endif /* ((ADC_DUAL_CLOCK_MODE == STD_ON) && (ADC_DEV_ERROR_DETECT == STD_ON)) */
+
+/*==================================================================================================
+                                       GLOBAL FUNCTIONS
+==================================================================================================*/
+/* SWS_Adc_00365, SWS_Adc_00246, SWS_Adc_00056 */
+/** @implements      Adc_Init_Activity */
+void Adc_Init
+(
+    const Adc_ConfigType * ConfigPtr
+)
+{
+    volatile uint32 u32CoreId;
+    uint32 u32CoreIdTemp;
+    Std_ReturnType ValidCoreId;
+    Std_ReturnType TimeOutStatus;
+#if (ADC_DEV_ERROR_DETECT == STD_ON) && ((ADC_VALIDATE_GLOBAL_CALL == STD_ON) || (ADC_VALIDATE_PARAMS == STD_ON))
+    Std_ReturnType ValidStatus;
+#endif
+
+    u32CoreId = (uint32)Adc_GetCoreID();
+    u32CoreIdTemp = u32CoreId; /* Used to avoid MISRA */
+#if (ADC_DEV_ERROR_DETECT == STD_ON) && (ADC_VALIDATE_GLOBAL_CALL == STD_ON)
+        ValidStatus = Adc_ValidateGloballCall(ADC_INIT_ID, u32CoreId);
+        if ((Std_ReturnType)E_OK == ValidStatus)
+        {
+#endif /* (ADC_DEV_ERROR_DETECT == STD_ON) && (ADC_VALIDATE_GLOBAL_CALL == STD_ON) */
+
+#if (ADC_DEV_ERROR_DETECT == STD_ON) && (ADC_VALIDATE_PARAMS == STD_ON)
+            ValidStatus = Adc_ValidatePtrInit(ConfigPtr);
+            if ((Std_ReturnType)E_OK == ValidStatus)
+            {
+#endif /* (ADC_DEV_ERROR_DETECT == STD_ON) && (ADC_VALIDATE_PARAMS == STD_ON) */
+#if (ADC_PRECOMPILE_SUPPORT == STD_ON)
+                ValidCoreId = Adc_CheckCurrentCoreId(Adc_ConfigVariantPredefined[u32CoreId], u32CoreIdTemp);
+#else
+                ValidCoreId = Adc_CheckCurrentCoreId(ConfigPtr, u32CoreId);
+#endif /* (ADC_PRECOMPILE_SUPPORT == STD_ON) */
+                if((Std_ReturnType)E_OK == ValidCoreId)
+                {
+#if (ADC_PRECOMPILE_SUPPORT == STD_ON)
+                    (void)ConfigPtr;
+                    /* ADC342 */
+                    const Adc_ConfigType * predefined = Adc_ConfigVariantPredefined[u32CoreId];
+                    Adc_pCfgPtr[u32CoreId] = predefined;
+#else
+                    /* SWS_Adc_00054 */
+                    Adc_pCfgPtr[u32CoreId] = ConfigPtr;
+#endif /* (ADC_PRECOMPILE_SUPPORT == STD_ON) */
+                    /* Initialize the unit status for all units */
+                    Adc_InitUnitStatus(u32CoreId);
+                    /* Initialize the group status for all groups */
+                    Adc_InitGroupsStatus(u32CoreId);
+                    /* Call the low level function to initialize driver */
+                    TimeOutStatus = Adc_Ipw_Init(Adc_pCfgPtr[u32CoreId]->pAdcIpwConfig, u32CoreIdTemp);
+
+                    if ((Std_ReturnType)E_NOT_OK == TimeOutStatus)
+                    {
+                        /* Timeout is expired.*/
+                        Adc_ReportDetRuntimeError((uint8)ADC_INIT_ID, (uint8)ADC_E_TIMEOUT);
+                    }
+#if ((ADC_ENABLE_TEMPSENSE_API == STD_ON) && (ADC_POWER_ON_TEMPSENSE == STD_ON))
+                    else
+                    {
+                        (void)Adc_TempSenseSetPowerMode(ADC_NORMAL_MODE);
+                    }
+#endif /* ((ADC_ENABLE_TEMPSENSE_API == STD_ON) && (ADC_POWER_ON_TEMPSENSE == STD_ON)) */
+                }
+#if (ADC_DEV_ERROR_DETECT == STD_ON)
+                else
+                {
+                    ValidStatus = (Std_ReturnType)E_NOT_OK;
+                    /* CPR_RTD_00420.adc */
+                    Adc_ReportDetError((uint8)ADC_INIT_ID, (uint8)ADC_E_PARAM_CONFIG);
+                }
+#endif /* ADC_DEV_ERROR_DETECT == STD_ON */
+#if (ADC_VALIDATE_PARAMS == STD_ON)
+            }
+#endif /* ADC_VALIDATE_PARAMS == STD_ON */
+
+#if (ADC_DEV_ERROR_DETECT == STD_ON) && (ADC_VALIDATE_GLOBAL_CALL == STD_ON)
+        }
+        if((Std_ReturnType)E_OK == ValidStatus)
+        {
+            Adc_EndValidateGloballCall(ValidStatus, ADC_INIT_ID, u32CoreId);
+        }
+#endif /* (ADC_DEV_ERROR_DETECT == STD_ON) && (ADC_VALIDATE_GLOBAL_CALL == STD_ON) */
+}
+
+/* SWS_Adc_00419 */
+/** @implements      Adc_SetupResultBuffer_Activity */
+Std_ReturnType Adc_SetupResultBuffer
+(
+    Adc_GroupType Group,
+    Adc_ValueGroupType * const DataBufferPtr
+)
+{
+    volatile uint32 u32CoreId;
+    Adc_GroupType GroupIndex;
+    Std_ReturnType TempReturn = (Std_ReturnType)E_NOT_OK;
+    const Adc_GroupConfigurationType * pGroupPtr = NULL_PTR;
+
+    u32CoreId = (uint32)Adc_GetCoreID();
+#if (ADC_VALIDATE_CALL_AND_GROUP == STD_ON)
+    if ((Std_ReturnType)E_OK == Adc_ValidateCallAndGroup(ADC_SETUPRESULTBUFFER_ID, Group, u32CoreId))
+    {
+#endif /* ADC_VALIDATE_CALL_AND_GROUP == STD_ON */
+        /* Get the mapping index of group in the current partition */
+        GroupIndex = Adc_pCfgPtr[u32CoreId]->pGroupIdToIndexMap[Group];
+
+#if (ADC_VALIDATE_PARAMS == STD_ON)
+        if ((Std_ReturnType)E_OK == Adc_ValidatePtr(ADC_SETUPRESULTBUFFER_ID, DataBufferPtr))
+        {
+#endif /* ADC_VALIDATE_PARAMS == STD_ON */
+            if ((Std_ReturnType)E_OK == Adc_ValidateSetupBufferNotBusy(Group))
+            {
+                pGroupPtr = &Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex];
+                /* SWS_Adc_00420 */
+                (pGroupPtr->pResultsBufferPtr[Group]) = DataBufferPtr;
+#ifdef ADC_DMA_SUPPORTED
+                if(((uint8)STD_ON == pGroupPtr->u8AdcExtDMAChanEnable) && ((uint8)STD_ON == pGroupPtr->u8AdcWithoutInterrupt))
+                {
+                    /* Need to reset last buffer to invalid value before starting conversion. Because since External Dma Channel is used,
+                    last buffer will be used to check by Adc_ReadGroup to make sure the results of all channel was available. */
+                    DataBufferPtr[(pGroupPtr->AssignedChannelCount - 1U)] = ADC_IPW_INVALID_DATA_RESULT_DMA;
+                }
+#endif /* ADC_DMA_SUPPORTED */
+                TempReturn = (Std_ReturnType)E_OK;
+            }
+#if (ADC_VALIDATE_PARAMS == STD_ON)
+        }
+#endif /* ADC_VALIDATE_PARAMS == STD_ON */
+
+#if (ADC_VALIDATE_CALL_AND_GROUP == STD_ON)
+    }
+#endif /* ADC_VALIDATE_CALL_AND_GROUP == STD_ON */
+
+    return TempReturn;
+}
+
+#if (ADC_DEINIT_API == STD_ON)
+/* SWS_Adc_00366, SWS_Adc_00111 */
+/** @implements      Adc_DeInit_Activity */
+void Adc_DeInit(void)
+{
+    volatile uint32 u32CoreId;
+#if (ADC_PDB_AVAILABLE == STD_ON)
+    Adc_HwUnitType LogicalHwUnitId = 0U;
+#endif /* (ADC_PDB_AVAILABLE == STD_ON) */
+    Std_ReturnType ValidCoreId;
+    uint32 u32CoreIdTemp;
+    Std_ReturnType TempReturn;
+
+    Std_ReturnType ValidStatus;
+
+    u32CoreId = (uint32)Adc_GetCoreID();
+    u32CoreIdTemp = u32CoreId; /* Used to avoid MISRA */
+#if (ADC_VALIDATE_GLOBAL_CALL == STD_ON)
+    ValidStatus = Adc_ValidateGloballCall(ADC_DEINIT_ID, u32CoreId);
+    if ((Std_ReturnType)E_OK == ValidStatus)
+    {
+#endif /* ADC_VALIDATE_GLOBAL_CALL == STD_ON */
+        ValidCoreId = Adc_CheckCurrentCoreId(Adc_pCfgPtr[u32CoreId], u32CoreIdTemp);
+        if((Std_ReturnType)E_OK == ValidCoreId)
+        {
+            ValidStatus = Adc_ValidateDeInitNotBusy(u32CoreId);
+            if ((Std_ReturnType)E_OK == ValidStatus)
+            {
+
+                TempReturn = Adc_Ipw_DeInit(u32CoreId);
+                if ((Std_ReturnType)E_NOT_OK == TempReturn)
+                {
+                    Adc_ReportDetRuntimeError((uint8)ADC_DEINIT_ID, (uint8)ADC_E_TIMEOUT);
+                }
+#if (ADC_PDB_AVAILABLE == STD_ON)
+                for (LogicalHwUnitId = 0U; LogicalHwUnitId < ADC_MAX_HW_UNITS; LogicalHwUnitId++)
+                {
+                    if(Adc_pCfgPtr[u32CoreId]->pAdcIpwConfig->Mapping.au8Adc_HwUnit[LogicalHwUnitId] == (uint8)STD_ON) /* HW unit enabled on current partition */
+                    {
+                        Adc_aUnitStatus[LogicalHwUnitId].u8Sc1Used = 0U;
+                    }
+                }
+#endif /* (ADC_PDB_AVAILABLE == STD_ON) */
+                /* Undefined the global pointer to the configuration */
+                Adc_pCfgPtr[u32CoreId] = NULL_PTR;
+
+            }
+        }
+#if (ADC_VALIDATE_GLOBAL_CALL == STD_ON)
+        else
+        {
+            /* CPR_RTD_00420.adc */
+            Adc_ReportDetError(ADC_DEINIT_ID, (uint8)ADC_E_PARAM_CONFIG);
+        }
+    }
+    Adc_EndValidateGloballCall(ValidStatus, ADC_DEINIT_ID, u32CoreId);
+#endif /* ADC_VALIDATE_GLOBAL_CALL == STD_ON */
+}
+#endif /* (ADC_DEINIT_API == STD_ON) */
+
+#if (ADC_ENABLE_START_STOP_GROUP_API == STD_ON)
+/* SWS_Adc_00367, SWS_Adc_00356, SWS_Adc_00156, SWS_Adc_00061, SWS_Adc_00413 */
+/** @implements      Adc_StartGroupConversion_Activity */
+void Adc_StartGroupConversion
+(
+    Adc_GroupType Group
+)
+{
+    volatile uint32 u32CoreId;
+    Adc_GroupType GroupIndex = 0U;
+    /* ADC Hardware unit on which the requested group will run */
+    Adc_HwUnitType LogicalHwUnitId = 0U;
+
+    u32CoreId = (uint32)Adc_GetCoreID();
+#if (ADC_VALIDATE_CALL_AND_GROUP == STD_ON)
+    if ((Std_ReturnType)E_OK == Adc_ValidateCallAndGroup(ADC_STARTGROUPCONVERSION_ID, Group, u32CoreId))
+    {
+#endif /* ADC_VALIDATE_CALL_AND_GROUP == STD_ON */
+        /* Get the mapping index of group in the current partition */
+        GroupIndex = Adc_pCfgPtr[u32CoreId]->pGroupIdToIndexMap[Group];
+
+        if ((Std_ReturnType)E_OK == Adc_ValidateStateStartGroupConvNotBusy(Group, u32CoreId))
+        {
+#if (ADC_VALIDATE_PARAMS == STD_ON)
+            if ((Std_ReturnType)E_OK == Adc_ValidateExtraParams(ADC_STARTGROUPCONVERSION_ID,
+                                                                ADC_E_BUFFER_UNINIT_LIST | \
+                                                                ADC_E_WRONG_TRIGG_SRC_LIST | \
+                                                                ADC_E_QUEUE_FULL_LIST,
+                                                                Group,
+                                                                u32CoreId
+                                                               )
+               )
+            {
+#endif /* ADC_VALIDATE_PARAMS == STD_ON */
+
+                /* Get the unit to which the group belongs to */
+                LogicalHwUnitId = Adc_pCfgPtr[u32CoreId]->pGroups[(GroupIndex)].AdcLogicalUnitId;
+                /* Update queue */
+                Adc_UpdateStatusStartConversion(Group, LogicalHwUnitId, u32CoreId);
+
+#if (ADC_VALIDATE_PARAMS == STD_ON)
+            }
+#endif /* ADC_VALIDATE_PARAMS == STD_ON */
+        }
+#if (ADC_VALIDATE_CALL_AND_GROUP == STD_ON)
+    }
+#endif /* ADC_VALIDATE_CALL_AND_GROUP == STD_ON */
+}
+
+/* SWS_Adc_00368, SWS_Adc_00356, SWS_Adc_00413 */
+/** @implements      Adc_StopGroupConversion_Activity */
+void Adc_StopGroupConversion
+(
+    Adc_GroupType Group
+)
+{
+    /* ADC Logical Unit Id on which the requested group will run */
+    Adc_HwUnitType LogicalHwUnitId = 0U;
+    volatile uint32 u32CoreId;
+    Adc_GroupType GroupIndex = 0U;
+
+    u32CoreId = (uint32)Adc_GetCoreID();
+#if (ADC_VALIDATE_CALL_AND_GROUP == STD_ON)
+    if ((Std_ReturnType)E_OK == Adc_ValidateCallAndGroup(ADC_STOPGROUPCONVERSION_ID, Group, u32CoreId))
+    {
+#endif /* ADC_VALIDATE_CALL_AND_GROUP == STD_ON */
+
+        if ((Std_ReturnType)E_OK == Adc_ValidateStateNotIdle(ADC_STOPGROUPCONVERSION_ID, Group, u32CoreId))
+        {
+#if (ADC_VALIDATE_PARAMS == STD_ON)
+            if ((Std_ReturnType)E_OK == Adc_ValidateExtraParams(ADC_STOPGROUPCONVERSION_ID,
+                                                                ADC_E_WRONG_TRIGG_SRC_LIST,
+                                                                Group,
+                                                                u32CoreId
+                                                               )
+               )
+            {
+#endif /* ADC_VALIDATE_PARAMS == STD_ON */
+                GroupIndex = Adc_pCfgPtr[u32CoreId]->pGroupIdToIndexMap[Group];
+                /* Get the unit to which the group belongs to */
+                LogicalHwUnitId = Adc_pCfgPtr[u32CoreId]->pGroups[(GroupIndex)].AdcLogicalUnitId;
+                Adc_UpdateStatusStopConversion(Group, LogicalHwUnitId, u32CoreId);
+
+#if (ADC_VALIDATE_PARAMS == STD_ON)
+            }
+#endif /* ADC_VALIDATE_PARAMS == STD_ON */
+        }
+
+#if (ADC_VALIDATE_CALL_AND_GROUP == STD_ON)
+    }
+#endif /* ADC_VALIDATE_CALL_AND_GROUP == STD_ON */
+}
+#endif /* (ADC_ENABLE_START_STOP_GROUP_API == STD_ON) */
+
+#if (ADC_READ_GROUP_API == STD_ON)
+/* SWS_Adc_00369, SWS_Adc_00383, SWS_Adc_00503 */
+/** @implements      Adc_ReadGroup_Activity */
+Std_ReturnType Adc_ReadGroup
+(
+    Adc_GroupType Group,
+    Adc_ValueGroupType * DataBufferPtr
+)
+{
+    volatile uint32 u32CoreId;
+    /* Return Value */
+    Std_ReturnType GroupRet = (Std_ReturnType)E_NOT_OK;
+    boolean bFlag = TRUE;
+
+    u32CoreId = (uint32)Adc_GetCoreID();
+#if (ADC_VALIDATE_CALL_AND_GROUP == STD_ON)
+    if ((Std_ReturnType)E_OK == Adc_ValidateCallAndGroup(ADC_VALUEREADGROUP_ID, Group, u32CoreId))
+    {
+#endif /* ADC_VALIDATE_CALL_AND_GROUP == STD_ON */
+
+#if (ADC_VALIDATE_PARAMS == STD_ON)
+        if ((Std_ReturnType)E_OK == Adc_ValidatePtr(ADC_VALUEREADGROUP_ID, DataBufferPtr))
+        {
+#endif /* ADC_VALIDATE_PARAMS == STD_ON */
+
+            if ((Std_ReturnType)E_OK == Adc_ValidateStateNotIdle(ADC_VALUEREADGROUP_ID, Group, u32CoreId))
+            {
+                /* SWS_Adc_00447 */
+                GroupRet = Adc_Ipw_ReadGroup(Group, DataBufferPtr, &bFlag, u32CoreId);
+                /*if the conversion is finished or if the limit checking was failed for the group without interrupts*/
+                if(((Std_ReturnType)E_OK == GroupRet) || (FALSE == bFlag))
+                {
+                    Adc_UpdateStatusReadGroup(Group, bFlag, u32CoreId);
+                }
+            }
+#if (ADC_VALIDATE_PARAMS == STD_ON)
+        }
+#endif /* ADC_VALIDATE_PARAMS == STD_ON */
+
+#if (ADC_VALIDATE_CALL_AND_GROUP == STD_ON)
+    }
+#endif /* ADC_VALIDATE_CALL_AND_GROUP == STD_ON */
+
+    return(GroupRet);
+}
+#endif /* (ADC_READ_GROUP_API == STD_ON) */
+
+#if (ADC_HW_TRIGGER_API == STD_ON)
+/* SWS_Adc_00370, SWS_Adc_00114, SWS_Adc_00114, SWS_Adc_00413 */
+/** @implements      Adc_EnableHardwareTrigger_Activity */
+void Adc_EnableHardwareTrigger
+(
+    Adc_GroupType Group
+)
+{
+    volatile uint32 u32CoreId;
+    Adc_GroupType GroupIndex = 0U;
+    /* ADC Logical Unit Id on which the requested group will run */
+    Adc_HwUnitType LogicalHwUnitId = 0U;
+    Std_ReturnType ValidStatus;
+
+    u32CoreId = (uint32)Adc_GetCoreID();
+#if (ADC_VALIDATE_CALL_AND_GROUP == STD_ON)
+    if ((Std_ReturnType)E_OK == Adc_ValidateCallAndGroup(ADC_ENABLEHARDWARETRIGGER_ID, Group, u32CoreId))
+    {
+#endif /* ADC_VALIDATE_CALL_AND_GROUP == STD_ON */
+        /* Get the mapping index of group in the current partition */
+        GroupIndex = Adc_pCfgPtr[u32CoreId]->pGroupIdToIndexMap[Group];
+
+        if ((Std_ReturnType)E_OK == Adc_ValidateStateEnableHwTriggNotBusy(Group, u32CoreId))
+        {
+#if (ADC_VALIDATE_PARAMS == STD_ON)
+            if ((Std_ReturnType)E_OK == Adc_ValidateExtraParams(ADC_ENABLEHARDWARETRIGGER_ID,
+                                                                ADC_E_BUFFER_UNINIT_LIST | \
+                                                                ADC_E_WRONG_TRIGG_SRC_LIST | \
+                                                                ADC_E_WRONG_CONV_MODE_LIST,
+                                                                Group,
+                                                                u32CoreId
+                                                               )
+               )
+            {
+#endif /* ADC_VALIDATE_PARAMS == STD_ON */
+
+                /* Get the unit to which the group belongs to */
+                LogicalHwUnitId = Adc_pCfgPtr[u32CoreId]->pGroups[(GroupIndex)].AdcLogicalUnitId;
+                Adc_UpdateStatusEnableHardware(Group, LogicalHwUnitId);
+
+                ValidStatus = Adc_Ipw_EnableHardwareTrigger(Group, LogicalHwUnitId, u32CoreId);
+                if ((Std_ReturnType)E_NOT_OK == ValidStatus)
+                {
+                    /* There is a running conversion.*/
+                    Adc_ReportDetRuntimeError((uint8)ADC_ENABLEHARDWARETRIGGER_ID, (uint8)ADC_E_BUSY);
+                }
+#if (ADC_VALIDATE_PARAMS == STD_ON)
+            }
+#endif /* ADC_VALIDATE_PARAMS == STD_ON */
+        }
+
+#if (ADC_VALIDATE_CALL_AND_GROUP == STD_ON)
+    }
+#endif /* ADC_VALIDATE_CALL_AND_GROUP == STD_ON */
+}
+
+/* SWS_Adc_00371, SWS_Adc_00413, SWS_Adc_00145 */
+/** @implements      Adc_DisableHardwareTrigger_Activity */
+void Adc_DisableHardwareTrigger
+(
+    Adc_GroupType Group
+)
+{
+    volatile uint32 u32CoreId;
+    Adc_GroupType GroupIndex = 0U;
+    /* ADC Logical Unit Id on which the requested group will run */
+    Adc_HwUnitType LogicalHwUnitId = 0U;
+
+    u32CoreId = (uint32)Adc_GetCoreID();
+#if (ADC_VALIDATE_CALL_AND_GROUP == STD_ON)
+    if ((Std_ReturnType)E_OK == Adc_ValidateCallAndGroup(ADC_DISABLEHARDWARETRIGGER_ID, Group, u32CoreId))
+    {
+#endif /* ADC_VALIDATE_CALL_AND_GROUP == STD_ON */
+
+        if ((Std_ReturnType)E_OK == Adc_ValidateStateNotIdle(ADC_DISABLEHARDWARETRIGGER_ID, Group, u32CoreId))
+        {
+
+#if (ADC_VALIDATE_PARAMS == STD_ON)
+            if ((Std_ReturnType)E_OK == Adc_ValidateExtraParams(ADC_DISABLEHARDWARETRIGGER_ID,
+                                                                ADC_E_WRONG_TRIGG_SRC_LIST | \
+                                                                ADC_E_WRONG_CONV_MODE_LIST,
+                                                                Group,
+                                                                u32CoreId
+                                                               )
+               )
+            {
+#endif /* ADC_VALIDATE_PARAMS == STD_ON */
+
+                GroupIndex = Adc_pCfgPtr[u32CoreId]->pGroupIdToIndexMap[Group];
+                /* Get the unit to which the group belongs to */
+                LogicalHwUnitId = Adc_pCfgPtr[u32CoreId]->pGroups[(GroupIndex)].AdcLogicalUnitId;
+                Adc_UpdateStatusDisableHardware(Group, LogicalHwUnitId);
+
+                Adc_Ipw_DisableHardwareTrigger(Group, LogicalHwUnitId, u32CoreId);
+
+#if (ADC_VALIDATE_PARAMS == STD_ON)
+            }
+#endif /* ADC_VALIDATE_PARAMS == STD_ON */
+        }
+
+#if (ADC_VALIDATE_CALL_AND_GROUP == STD_ON)
+    }
+#endif /* ADC_VALIDATE_CALL_AND_GROUP == STD_ON */
+}
+#endif /* (ADC_HW_TRIGGER_API == STD_ON) */
+
+#if (ADC_GRP_NOTIF_CAPABILITY == STD_ON)
+/* SWS_Adc_00372, SWS_Adc_00413 */
+/** @implements      Adc_EnableGroupNotification_Activity */
+void Adc_EnableGroupNotification
+(
+    Adc_GroupType Group
+)
+{
+#if (ADC_DEV_ERROR_DETECT == STD_ON)
+    volatile uint32 u32CoreId;
+
+    u32CoreId = (uint32)Adc_GetCoreID();
+#endif /* ADC_DEV_ERROR_DETECT == STD_ON */
+
+#if (ADC_VALIDATE_CALL_AND_GROUP == STD_ON)
+    if ((Std_ReturnType)E_OK == Adc_ValidateCallAndGroup(ADC_ENABLEGROUPNOTIFICATION_ID, Group, u32CoreId))
+    {
+#endif /* ADC_VALIDATE_CALL_AND_GROUP == STD_ON */
+
+#if (ADC_VALIDATE_NOTIFY_CAPABILITY == STD_ON)
+        if ((Std_ReturnType)E_OK == Adc_NotifyCapablity(ADC_ENABLEGROUPNOTIFICATION_ID, Group, u32CoreId))
+        {
+#endif /* ADC_VALIDATE_NOTIFY_CAPABILITY == STD_ON */
+            /* SWS_Adc_00057 */
+            Adc_aGroupStatus[Group].eNotification = ADC_NOTIFICATION_ENABLED;
+
+#if (ADC_VALIDATE_NOTIFY_CAPABILITY == STD_ON)
+        }
+#endif /* ADC_VALIDATE_NOTIFY_CAPABILITY == STD_ON */
+
+#if (ADC_VALIDATE_CALL_AND_GROUP == STD_ON)
+    }
+#endif /* ADC_VALIDATE_CALL_AND_GROUP == STD_ON */
+}
+
+/* SWS_Adc_00373, SWS_Adc_00413, SWS_Adc_00416 */
+/** @implements      Adc_DisableGroupNotification_Activity */
+void Adc_DisableGroupNotification
+(
+    Adc_GroupType Group
+)
+{
+#if (ADC_DEV_ERROR_DETECT == STD_ON)
+    volatile uint32 u32CoreId;
+
+    u32CoreId = (uint32)Adc_GetCoreID();
+#endif /* ADC_DEV_ERROR_DETECT == STD_ON */
+
+#if (ADC_VALIDATE_CALL_AND_GROUP == STD_ON)
+    if ((Std_ReturnType)E_OK == Adc_ValidateCallAndGroup(ADC_DISABLEGROUPNOTIFICATION_ID, Group, u32CoreId))
+    {
+#endif /* ADC_VALIDATE_CALL_AND_GROUP == STD_ON */
+
+#if (ADC_VALIDATE_NOTIFY_CAPABILITY == STD_ON)
+        if ((Std_ReturnType)E_OK == Adc_NotifyCapablity(ADC_DISABLEGROUPNOTIFICATION_ID, Group, u32CoreId))
+        {
+#endif /* ADC_VALIDATE_NOTIFY_CAPABILITY == STD_ON */
+            /* SWS_Adc_00058 */
+            Adc_aGroupStatus[Group].eNotification = ADC_NOTIFICATION_DISABLED;
+
+#if (ADC_VALIDATE_NOTIFY_CAPABILITY == STD_ON)
+        }
+#endif /* ADC_VALIDATE_NOTIFY_CAPABILITY == STD_ON */
+
+#if (ADC_VALIDATE_CALL_AND_GROUP == STD_ON)
+    }
+#endif /* ADC_VALIDATE_CALL_AND_GROUP == STD_ON */
+}
+#endif /* (ADC_GRP_NOTIF_CAPABILITY == STD_ON) */
+
+/* SWS_Adc_00374, SWS_Adc_00140, SWS_Adc_00503, SWS_Adc_00413 */
+/** @implements      Adc_GetGroupStatus_Activity */
+Adc_StatusType Adc_GetGroupStatus
+(
+    Adc_GroupType Group
+)
+{
+#if (ADC_VALIDATE_CALL_AND_GROUP == STD_ON)
+    volatile uint32 u32CoreId;
+#endif /* ADC_VALIDATE_CALL_AND_GROUP == STD_ON */
+    Adc_StatusType eTempReturn = ADC_IDLE;
+
+#if (ADC_VALIDATE_CALL_AND_GROUP == STD_ON)
+    u32CoreId = (uint32)Adc_GetCoreID();
+    if ((Std_ReturnType)E_OK == Adc_ValidateCallAndGroup(ADC_GETGROUPSTATUS_ID, Group, u32CoreId))
+    {
+#endif /* ADC_VALIDATE_CALL_AND_GROUP == STD_ON */
+        /* SWS_Adc_00220 */
+        eTempReturn = Adc_aGroupStatus[Group].eConversion;
+#if (ADC_VALIDATE_CALL_AND_GROUP == STD_ON)
+    }
+#endif /* ADC_VALIDATE_CALL_AND_GROUP == STD_ON */
+
+    return(eTempReturn);
+}
+
+/* SWS_Adc_00375, SWS_Adc_00382 */
+/** @implements      Adc_GetStreamLastPointer_Activity */
+Adc_StreamNumSampleType Adc_GetStreamLastPointer
+(
+    Adc_GroupType Group,
+    Adc_ValueGroupType ** PtrToSamplePtr
+)
+{
+    volatile uint32 u32CoreId = (uint32)Adc_GetCoreID();
+    Adc_GroupType GroupIndex = 0U;
+    const Adc_GroupConfigurationType * pGroupPtr;
+    /* Number of samples to return */
+    Adc_StreamNumSampleType NumberOfResults = 0U;
+    Adc_StreamNumSampleType ResultIndex = 0U;
+#if (ADC_ENABLE_GROUP_STREAMING_RESULTS_REORDER == STD_ON)
+    Adc_ChannelIndexType ChannelCount;
+#endif /* (ADC_ENABLE_GROUP_STREAMING_RESULTS_REORDER == STD_ON) */
+
+#if (ADC_VALIDATE_CALL_AND_GROUP == STD_ON)
+    Std_ReturnType ValidStatus = Adc_ValidateCallAndGroup(ADC_GETSTREAMLASTPOINTER_ID, Group, u32CoreId);
+    if (ValidStatus == (Std_ReturnType)E_OK)
+    {
+#endif /* ADC_VALIDATE_CALL_AND_GROUP == STD_ON */
+        pGroupPtr = &(Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex]);
+#if (ADC_ENABLE_GROUP_STREAMING_RESULTS_REORDER == STD_ON)
+#if (ADC_SETCHANNEL_API == STD_ON)
+        /* Get channel count at runtime */
+        ChannelCount = Adc_aRuntimeGroupChannel[Group].ChannelCount;
+#else
+        /* Get channel count from configuration */
+        ChannelCount = pGroupPtr->AssignedChannelCount;
+#endif
+#endif /* (ADC_ENABLE_GROUP_STREAMING_RESULTS_REORDER == STD_ON) */
+
+        if ((Std_ReturnType)E_OK == Adc_ValidateStateNotIdle(ADC_GETSTREAMLASTPOINTER_ID, Group, u32CoreId))
+        {
+            *PtrToSamplePtr = NULL_PTR;
+
+            if ((ADC_IDLE != Adc_aGroupStatus[Group].eConversion) && \
+                (ADC_BUSY != Adc_aGroupStatus[Group].eConversion)) /* SWS_Adc_00216 */
+            {
+                GroupIndex = Adc_pCfgPtr[u32CoreId]->pGroupIdToIndexMap[Group];
+                if ((Adc_StreamNumSampleType)0U == Adc_aGroupStatus[Group].ResultIndex)
+                {
+                    ResultIndex = Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].NumSamples - (Adc_StreamNumSampleType)1U;
+                    /* SWS_Adc_00387 */
+                    NumberOfResults = Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].NumSamples;
+                }
+                else
+                {
+                    ResultIndex = Adc_aGroupStatus[Group].ResultIndex - (Adc_StreamNumSampleType)1U;
+                    /* SWS_Adc_00387 */
+                    NumberOfResults = Adc_aGroupStatus[Group].ResultIndex;
+                }
+
+#if (ADC_ENABLE_GROUP_STREAMING_RESULTS_REORDER == STD_ON)
+                /* SWS_Adc_00214 -- SWS_Adc_00418 -- ADC382 */
+                if (FALSE == pGroupPtr->bStreamResultGroupMultiSets)
+#endif /* (ADC_ENABLE_GROUP_STREAMING_RESULTS_REORDER == STD_ON) */
+                {
+                    *PtrToSamplePtr = (Adc_ValueGroupType *)(&(pGroupPtr->pResultsBufferPtr[Group][ResultIndex]));
+                }
+#if (ADC_ENABLE_GROUP_STREAMING_RESULTS_REORDER == STD_ON)
+                else
+                {
+                    *PtrToSamplePtr = (Adc_ValueGroupType *)(&(pGroupPtr->pResultsBufferPtr[Group][ResultIndex * ChannelCount]));
+                }
+#endif /* (ADC_ENABLE_GROUP_STREAMING_RESULTS_REORDER == STD_ON) */
+                Adc_UpdateStatusAfterGetStream(Group, u32CoreId);
+            }
+        }
+        else
+        {
+            *PtrToSamplePtr = NULL_PTR;
+        }
+
+#if (ADC_VALIDATE_CALL_AND_GROUP == STD_ON)
+    }
+    else
+    {
+        /* SWS_Adc_00302, SWS_Adc_00218 */
+        *PtrToSamplePtr = NULL_PTR;
+    }
+#endif /* ADC_VALIDATE_CALL_AND_GROUP == STD_ON */
+
+    return (NumberOfResults);
+}
+
+#if (ADC_VERSION_INFO_API == STD_ON)
+/* SWS_Adc_00376 */
+/** @implements      Adc_GetVersionInfo_Activity */
+void Adc_GetVersionInfo
+(
+    Std_VersionInfoType * versioninfo
+)
+{
+#if (ADC_VALIDATE_PARAMS == STD_ON)
+    if ((Std_ReturnType)E_OK == Adc_ValidatePtr(ADC_GETVERSIONINFO_ID, versioninfo))
+    {
+#endif /* ADC_VALIDATE_PARAMS == STD_ON */
+
+        (versioninfo)->vendorID = (uint16)ADC_VENDOR_ID;
+        (versioninfo)->moduleID = (uint16)ADC_MODULE_ID;
+        (versioninfo)->sw_major_version = (uint8)ADC_SW_MAJOR_VERSION;
+        (versioninfo)->sw_minor_version = (uint8)ADC_SW_MINOR_VERSION;
+        (versioninfo)->sw_patch_version = (uint8)ADC_SW_PATCH_VERSION;
+
+#if (ADC_VALIDATE_PARAMS == STD_ON)
+    }
+#endif /* ADC_VALIDATE_PARAMS == STD_ON */
+}
+#endif /* (ADC_VERSION_INFO_API == STD_ON) */
+
+#if (ADC_POWER_STATE_SUPPORTED == STD_ON)
+/* SWS_Adc_00475, SWS_Adc_00481 */
+/** @implements      Adc_SetPowerState_Activity */
+Std_ReturnType Adc_SetPowerState
+(
+    Adc_PowerStateRequestResultType * Result
+)
+{
+    volatile uint32 u32CoreId;
+    uint32 u32CoreIdTemp;
+    Adc_PowerStateType StateTemp;
+    Std_ReturnType RetVal = (Std_ReturnType)E_NOT_OK;
+
+    u32CoreId = (uint32)Adc_GetCoreID();
+    u32CoreIdTemp = u32CoreId; /* Used to avoid MISRA */
+    if((Std_ReturnType)E_OK == Adc_ValidateStateAndPtr(ADC_SETPOWERSTATE_ID, Result, u32CoreId))
+    {
+        if((Std_ReturnType)E_OK == Adc_ValidatePowerStatePrepare(ADC_SETPOWERSTATE_ID, Result, u32CoreId))
+        {
+            if((Std_ReturnType)E_OK == Adc_ValidatePowerStateSupport(ADC_SETPOWERSTATE_ID, Adc_eTargetState[u32CoreId], Result))
+            {
+                RetVal = Adc_ValidateIdleState(ADC_SETPOWERSTATE_ID, Result, u32CoreId);
+            }
+        }
+    }
+
+    if((Std_ReturnType)E_OK == RetVal)
+    {
+        RetVal = Adc_Ipw_SetPowerState(Adc_eTargetState[u32CoreId], u32CoreIdTemp);
+        if((Std_ReturnType)E_OK == RetVal)
+        {
+            /* SWS_Adc_00482 */
+            /* Everything is ok */
+            *Result = ADC_SERVICE_ACCEPTED;
+            /* Use StateTemp and u32CoreIdTemp to avoid IAR warning */
+            StateTemp = Adc_eTargetState[u32CoreIdTemp];
+            Adc_eCurrentState[u32CoreId] = StateTemp;
+            Adc_eTargetState[u32CoreId] = ADC_NODEFINE_POWER;
+        }
+        else
+        {
+            /* Hardware failure */
+            *Result = ADC_HW_FAILURE;
+        }
+    }
+
+    return RetVal;
+}
+
+/* SWS_Adc_00476 */
+/** @implements      Adc_GetCurrentPowerState_Activity */
+Std_ReturnType Adc_GetCurrentPowerState
+(
+    Adc_PowerStateType * CurrentPowerState,
+    Adc_PowerStateRequestResultType * Result
+)
+{
+    volatile uint32 u32CoreId;
+    Std_ReturnType RetVal = (Std_ReturnType)E_NOT_OK;
+
+    u32CoreId = (uint32)Adc_GetCoreID();
+    if((Std_ReturnType)E_OK == Adc_ValidateStateAndPtr(ADC_GETCURRENTPOWERSTATE_ID, Result, u32CoreId))
+    {
+#if (ADC_VALIDATE_PARAMS == STD_ON)
+        if ((Std_ReturnType)E_OK == Adc_ValidatePtr(ADC_GETCURRENTPOWERSTATE_ID, CurrentPowerState))
+#endif /* (ADC_VALIDATE_PARAMS == STD_ON) */
+        {
+            *CurrentPowerState = Adc_eCurrentState[u32CoreId];
+            *Result = ADC_SERVICE_ACCEPTED;
+            RetVal = (Std_ReturnType)E_OK;
+        }
+    }
+    return RetVal;
+}
+
+/* SWS_Adc_00477 */
+/** @implements      Adc_GetTargetPowerState_Activity */
+Std_ReturnType Adc_GetTargetPowerState
+(
+    Adc_PowerStateType * TargetPowerState,
+    Adc_PowerStateRequestResultType * Result
+)
+{
+    volatile uint32 u32CoreId;
+    Std_ReturnType RetVal = (Std_ReturnType)E_NOT_OK;
+
+    u32CoreId = (uint32)Adc_GetCoreID();
+    if((Std_ReturnType)E_OK == Adc_ValidateStateAndPtr(ADC_GETTARGETPOWERSTATE_ID, Result, u32CoreId))
+    {
+#if (ADC_VALIDATE_PARAMS == STD_ON)
+        if ((Std_ReturnType)E_OK == Adc_ValidatePtr(ADC_GETTARGETPOWERSTATE_ID, TargetPowerState))
+#endif /* (ADC_VALIDATE_PARAMS == STD_ON) */
+        {
+            /* SWS_Adc_00492 */
+            if(Adc_eTargetState[u32CoreId] < ADC_NODEFINE_POWER)
+            {
+                /* A transition is ongoing */
+                *TargetPowerState = Adc_eTargetState[u32CoreId];
+            }
+            else
+            {
+                /* No transition is ongoing */
+                *TargetPowerState = Adc_eCurrentState[u32CoreId];
+            }
+            *Result = ADC_SERVICE_ACCEPTED;
+            RetVal = (Std_ReturnType)E_OK;
+        }
+    }
+    return RetVal;
+}
+
+/* SWS_Adc_00478 */
+/** @implements      Adc_PreparePowerState_Activity */
+Std_ReturnType Adc_PreparePowerState
+(
+    Adc_PowerStateType PowerState,
+    Adc_PowerStateRequestResultType * Result
+)
+{
+    volatile uint32 u32CoreId;
+    Adc_HwUnitType LogicalHwUnitId;
+    Std_ReturnType RetVal = (Std_ReturnType)E_NOT_OK;
+
+    u32CoreId = (uint32)Adc_GetCoreID();
+    if ((Std_ReturnType)E_OK == Adc_ValidateStateAndPtr(ADC_PREPAREPOWERSTATE_ID, Result, u32CoreId))
+    {
+        if ((Std_ReturnType)E_OK == Adc_ValidatePowerStateSupport(ADC_PREPAREPOWERSTATE_ID, PowerState, Result))
+        {
+            RetVal = (Std_ReturnType)E_OK;
+            for (LogicalHwUnitId = 0U; LogicalHwUnitId < ADC_MAX_HW_UNITS; LogicalHwUnitId++)
+            {
+                if (Adc_pCfgPtr[u32CoreId]->pAdcIpwConfig->Mapping.au8Adc_HwUnit[LogicalHwUnitId] == (uint8)STD_ON) /* HW unit enabled on current partition */
+                {
+                    RetVal = (Std_ReturnType)Adc_ValidateNotBusyNoQueue(LogicalHwUnitId, ADC_PREPAREPOWERSTATE_ID);
+                }
+                if ((Std_ReturnType)E_NOT_OK == RetVal)
+                {
+                    /* Break the loop to avoid overwriting RetVal */
+                    break;
+                }
+            }
+            if ((Std_ReturnType)E_NOT_OK == RetVal)
+            {
+                *Result = ADC_TRANS_NOT_POSSIBLE;
+            }
+            else
+            {
+                /* SWS_Adc_00495 */
+                /* Everything is ok */
+                Adc_eTargetState[u32CoreId] = PowerState;
+                *Result = ADC_SERVICE_ACCEPTED;
+            }
+        }
+    }
+    return RetVal;
+}
+
+#if (ADC_POWER_STATE_ASYNCH_MODE_SUPPORTED == STD_ON)
+void Adc_Main_PowerTransitionManager(void)
+{
+
+}
+#endif /* (ADC_POWER_STATE_ASYNCH_MODE_SUPPORTED == STD_ON) */
+#endif /* (ADC_POWER_STATE_SUPPORTED == STD_ON) */
+
+#if (ADC_SET_HW_UNIT_POWER_MODE_API == STD_ON)
+/* CPR_RTD_00034.adc */
+/** @implements      Adc_SetHwUnitPowerMode_Activity */
+Std_ReturnType Adc_SetHwUnitPowerMode
+(
+    Adc_HwUnitType Unit,
+    Adc_SetPowerModeType SetPowerMode
+)
+{
+    /* TODO: update to use logical Unit ID */
+    volatile uint32 u32CoreId;
+    /* Return standard value */
+    Std_ReturnType TempReturn = (Std_ReturnType)E_NOT_OK;
+
+    u32CoreId = (uint32)Adc_GetCoreID();
+    if ((Std_ReturnType)E_OK == Adc_ValidateSetHwUnitPowerMode(SetPowerMode, u32CoreId))
+    {
+        TempReturn = Adc_ValidateNotBusyNoQueue(Unit, ADC_SET_HW_UNIT_POWER_MODE_ID);
+
+        if ((Std_ReturnType)E_OK == TempReturn)
+        {
+            if ((Std_ReturnType)E_OK == Adc_ValidateCheckGroupNotConversion(ADC_SET_HW_UNIT_POWER_MODE_ID, u32CoreId))
+            {
+                TempReturn = Adc_Ipw_SetHwUnitPowerMode(Unit, SetPowerMode, u32CoreId);
+                if ((Std_ReturnType)E_NOT_OK == TempReturn)
+                {
+                    Adc_ReportDetRuntimeError((uint8)ADC_SET_HW_UNIT_POWER_MODE_ID, (uint8)ADC_E_TIMEOUT);
+                }
+            }
+        }
+    }
+    return TempReturn;
+}
+
+#if (ADC_BCTU_AVAILABLE == STD_ON)
+/* The next condition is true if CTU/BCTU Unit is used */
+#if ((ADC_ENABLE_CTU_CONTROL_MODE_API == STD_ON) || (ADC_ENABLE_CTUTRIG_NONAUTO_API == STD_ON) || (ADC_HW_TRIGGER_API == STD_ON))
+/* CPR_RTD_00453.adc, CPR_RTD_00454.adc */
+/** @implements      Adc_CtuSetPowerMode */
+Std_ReturnType Adc_CtuSetPowerMode
+(
+    Adc_HwUnitType CtuUnit,
+    Adc_PowerStateType State
+)
+{
+    volatile uint32 u32CoreId;
+    Std_ReturnType TempReturn = (Std_ReturnType)E_NOT_OK;
+    u32CoreId = (uint32)Adc_GetCoreID();
+
+#if (ADC_DEV_ERROR_DETECT == STD_ON)
+    if (NULL_PTR == Adc_pCfgPtr[u32CoreId])
+    {
+        Adc_ReportDetError((uint8)ADC_CTU_SET_POWER_MODE_ID, (uint8)ADC_E_UNINIT);
+    }
+    else
+    {
+#endif /* (ADC_DEV_ERROR_DETECT == STD_ON) */
+        TempReturn = Adc_ValidateCheckGroupNotConversion(ADC_CTU_SET_POWER_MODE_ID, u32CoreId);
+        if ((Std_ReturnType)E_OK == TempReturn)
+        {
+            if ((Std_ReturnType)E_OK != Adc_Ipw_CtuSetPowerMode(CtuUnit, State))
+            {
+                /* CTU unit out of range */
+                Adc_ReportDetRuntimeError((uint8)ADC_CTU_SET_POWER_MODE_ID, (uint8)ADC_E_PARAM_CONFIG);
+            }
+        }
+#if (ADC_DEV_ERROR_DETECT == STD_ON)
+    }
+#endif /* ADC_DEV_ERROR_DETECT == STD_ON */
+
+    return TempReturn;
+}
+#endif /* (ADC_ENABLE_CTU_CONTROL_MODE_API == STD_ON) || */
+#endif /* (ADC_BCTU_AVAILABLE == STD_ON) */
+#endif /* (ADC_SET_HW_UNIT_POWER_MODE_API == STD_ON) */
+
+#if (ADC_ENABLE_CTUTRIG_NONAUTO_API == STD_ON)
+/** @implements      Adc_EnableCTUTrigger_Activity */
+void Adc_EnableCTUTrigger
+(
+    Adc_GroupType Group,
+    Adc_HwTriggerTimerType TriggerSource
+)
+{
+    const volatile uint32 u32CoreId = Adc_GetCoreID();
+    const Adc_GroupConfigurationType * pGroupConfig;
+    Adc_GroupType GroupIndex;
+    Adc_HwUnitType LogicalHwUnitId;
+    Std_ReturnType ValidStatus;
+    uint8 u8TrigIdx = 0U;
+    boolean bTriggFound;
+
+#if (ADC_VALIDATE_CALL_AND_GROUP  == STD_ON)
+    boolean isValidateOK = FALSE;
+    ValidStatus = Adc_ValidateCallAndGroup((uint8)ADC_ENABLECTUTRIGGER_ID, Group, u32CoreId);
+    if (ValidStatus == (Std_ReturnType)E_OK)
+    {
+#endif /* (ADC_VALIDATE_CALL_AND_GROUP  == STD_ON) */
+        /* Map TriggerSource to TriggerIndex */
+        bTriggFound = Adc_Ipw_MapCTUTriggerIndex(TriggerSource, u32CoreId, &u8TrigIdx);
+        (void)bTriggFound;
+#if (ADC_VALIDATE_CALL_AND_GROUP  == STD_ON)
+        /* Check that TriggerSource is in range */
+        Std_ReturnType TriggSrcStatus = Adc_CheckTriggerSourceRange((uint8)ADC_ENABLECTUTRIGGER_ID, TriggerSource, bTriggFound);
+        if (TriggSrcStatus == (Std_ReturnType)E_OK)
+        {
+#endif /* (ADC_VALIDATE_CALL_AND_GROUP  == STD_ON) */
+            GroupIndex = Adc_pCfgPtr[u32CoreId]->pGroupIdToIndexMap[Group];
+            pGroupConfig = &(Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex]);
+            LogicalHwUnitId = pGroupConfig->AdcLogicalUnitId;
+
+            if ((Std_ReturnType)E_OK == Adc_ValidateNotBusyEnableHwTrig(ADC_ENABLECTUTRIGGER_ID, Group, u32CoreId))
+            {
+#if (ADC_VALIDATE_PARAMS == STD_ON)
+                if ((Std_ReturnType)E_OK == Adc_ValidateExtraParams(ADC_ENABLECTUTRIGGER_ID,
+                                                                    ADC_E_WRONG_TRIGG_SRC_LIST | ADC_E_WRONG_CONV_MODE_LIST,
+                                                                    Group,
+                                                                    u32CoreId))
+                {
+                    isValidateOK = TRUE;
+                }
+#endif /* ADC_VALIDATE_PARAMS == STD_ON */
+            }
+#if (ADC_VALIDATE_CALL_AND_GROUP  == STD_ON)
+        }
+    }
+#endif /* (ADC_VALIDATE_CALL_AND_GROUP  == STD_ON) */
+
+#if (ADC_VALIDATE_PARAMS == STD_ON)
+    if (isValidateOK == TRUE)
+    {
+#endif /* ADC_VALIDATE_PARAMS == STD_ON */
+        SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_04();
+#if (ADC_VALIDATE_PARAMS == STD_ON)
+        /* Check if trigger already enabled */
+        if (0U == Adc_au8CtuGroupTriggersActive[LogicalHwUnitId][u8TrigIdx])
+        {
+#endif /* ADC_VALIDATE_PARAMS == STD_ON */
+            boolean bFirstTrigger = TRUE;
+            uint8 TriggerIndex;
+            for(TriggerIndex = 0U; TriggerIndex < ADC_MAX_HARDWARE_TRIGGERS; TriggerIndex++)
+            {
+                if(0U != Adc_au8CtuGroupTriggersActive[LogicalHwUnitId][TriggerIndex])
+                {
+                    bFirstTrigger = FALSE;
+                    break;
+                }
+            }
+            /* Mark trigger as enabled */
+            Adc_au8CtuGroupTriggersActive[LogicalHwUnitId][u8TrigIdx] = 1U;
+            SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_04();
+            ValidStatus = Adc_Ipw_EnableCtuTrigger(Group, TriggerSource, bFirstTrigger, u32CoreId);
+            if ((Std_ReturnType)E_NOT_OK == ValidStatus)
+            {
+                /* There is a running conversion.*/
+                Adc_ReportDetRuntimeError((uint8)ADC_ENABLECTUTRIGGER_ID, (uint8)ADC_E_BUSY);
+            }
+#if (ADC_VALIDATE_PARAMS == STD_ON)
+        }
+        else
+        {
+            SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_04();
+            /* This trigger has already been enabled for this group */
+            Adc_ReportDetError(ADC_ENABLECTUTRIGGER_ID, (uint8)ADC_E_PARAM_TRIGGER);
+        }
+    }
+#endif /* ADC_VALIDATE_PARAMS == STD_ON */
+}
+
+/** @implements      Adc_DisableCTUTrigger_Activity */
+void Adc_DisableCTUTrigger
+(
+    Adc_GroupType Group,
+    Adc_HwTriggerTimerType TriggerSource
+)
+{
+    const volatile uint32 u32CoreId = Adc_GetCoreID();
+    const Adc_GroupConfigurationType * pGroupConfig;
+    Adc_GroupType GroupIndex;
+    Adc_HwUnitType LogicalHwUnitId;
+    boolean bLastTrigger = TRUE;
+    uint8 u8TrigIdx = 0U;
+    boolean bTriggFound;
+
+#if (ADC_VALIDATE_CALL_AND_GROUP  == STD_ON)
+    boolean isValidateOK = FALSE;
+    Std_ReturnType ValidStatus = Adc_ValidateCallAndGroup((uint8)ADC_DISABLECTUTRIGGER_ID, Group, u32CoreId);
+    if (ValidStatus == (Std_ReturnType)E_OK)
+    {
+#endif /* (ADC_VALIDATE_CALL_AND_GROUP  == STD_ON) */
+        /* Map TriggerSource to TriggerIndex */
+        bTriggFound = Adc_Ipw_MapCTUTriggerIndex(TriggerSource, u32CoreId, &u8TrigIdx);
+        (void)bTriggFound;
+#if (ADC_VALIDATE_CALL_AND_GROUP  == STD_ON)
+        /* Check that TriggerSource is in range */
+        Std_ReturnType TriggSrcStatus = Adc_CheckTriggerSourceRange((uint8)ADC_DISABLECTUTRIGGER_ID, TriggerSource, bTriggFound);
+        if (TriggSrcStatus == (Std_ReturnType)E_OK)
+        {
+#endif /* (ADC_VALIDATE_CALL_AND_GROUP  == STD_ON) */
+            GroupIndex = Adc_pCfgPtr[u32CoreId]->pGroupIdToIndexMap[Group];
+            pGroupConfig = &(Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex]);
+            LogicalHwUnitId = pGroupConfig->AdcLogicalUnitId;
+#if (ADC_VALIDATE_PARAMS == STD_ON)
+            if ((Std_ReturnType)E_OK == Adc_ValidateExtraParams(ADC_DISABLECTUTRIGGER_ID,
+                                                                ADC_E_WRONG_TRIGG_SRC_LIST | ADC_E_WRONG_CONV_MODE_LIST,
+                                                                Group,
+                                                                u32CoreId))
+            {
+                isValidateOK = TRUE;
+            }
+#endif /* ADC_VALIDATE_PARAMS == STD_ON */
+
+#if (ADC_VALIDATE_CALL_AND_GROUP  == STD_ON)
+        }
+    }
+#endif /* (ADC_VALIDATE_CALL_AND_GROUP  == STD_ON) */
+
+#if (ADC_VALIDATE_PARAMS == STD_ON)
+    if (isValidateOK == TRUE)
+    {
+#endif /* ADC_VALIDATE_PARAMS == STD_ON */
+        SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_05();
+#if (ADC_VALIDATE_PARAMS == STD_ON)
+        /* Check if trigger already disabled */
+        if (0U != Adc_au8CtuGroupTriggersActive[LogicalHwUnitId][u8TrigIdx])
+        {
+#endif /* ADC_VALIDATE_PARAMS == STD_ON */
+            /* Mark trigger as disabled */
+            Adc_au8CtuGroupTriggersActive[LogicalHwUnitId][u8TrigIdx] = 0U;
+            /* Check the trigger is last or not */
+            uint8 TriggerIndex;
+            for (TriggerIndex = 0U; TriggerIndex < ADC_MAX_HARDWARE_TRIGGERS; TriggerIndex++)
+            {
+                if (0U != Adc_au8CtuGroupTriggersActive[LogicalHwUnitId][TriggerIndex])
+                {
+                    bLastTrigger = FALSE;
+                    break;
+                }
+            }
+            /* Mark trigger as disabled */
+            Adc_au8CtuGroupTriggersActive[LogicalHwUnitId][u8TrigIdx] = 0U;
+            SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_05();
+
+            Adc_Ipw_DisableCtuTrigger(Group, TriggerSource, bLastTrigger, u32CoreId);
+#if (ADC_VALIDATE_PARAMS == STD_ON)
+        }
+        else
+        {
+            SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_05();
+            /* This trigger has already been disabled for this group */
+            Adc_ReportDetError(ADC_DISABLECTUTRIGGER_ID, (uint8)ADC_E_PARAM_TRIGGER);
+        }
+    }
+#endif /* ADC_VALIDATE_PARAMS == STD_ON */
+}
+
+/** @implements      Adc_HwResultReadGroup_Activity */
+Std_ReturnType Adc_HwResultReadGroup
+(
+    Adc_GroupType Group,
+    Adc_ValueGroupType * DataPtr
+)
+{
+    const volatile uint32 u32CoreId = Adc_GetCoreID();
+    /* Standard return value */
+    Std_ReturnType GroupRet = (Std_ReturnType)E_NOT_OK;
+
+#if (ADC_VALIDATE_CALL_AND_GROUP == STD_ON)
+    if ((Std_ReturnType)E_OK == Adc_ValidateCallAndGroup(ADC_HWRESULTREADGROUP_ID, Group, u32CoreId))
+    {
+#endif /* ADC_VALIDATE_CALL_AND_GROUP == STD_ON */
+
+#if (ADC_VALIDATE_PARAMS == STD_ON)
+        if (NULL_PTR == DataPtr)
+        {
+            GroupRet = (Std_ReturnType)E_NOT_OK;
+        }
+        else
+#endif
+        {
+            GroupRet = Adc_Ipw_HwResultReadGroup(Group, DataPtr, u32CoreId);
+        }
+#if (ADC_VALIDATE_CALL_AND_GROUP == STD_ON)
+    }
+#endif /* ADC_VALIDATE_CALL_AND_GROUP == STD_ON */
+    return(GroupRet);
+}
+#endif /* (ADC_ENABLE_CTUTRIG_NONAUTO_API == STD_ON) */
+
+#if (ADC_ENABLE_READ_RAW_DATA_API == STD_ON)
+/** @implements      Adc_ReadRawData_Activity */
+void Adc_ReadRawData
+(
+    Adc_HwUnitType Unit,
+    const Adc_ChannelType * const ChansArray,
+    uint8 NumItems,
+    Adc_ValueGroupType * const DataBufferPtr
+)
+{
+    uint8 i;
+    const volatile uint32 u32CoreId = Adc_GetCoreID();
+    Std_ReturnType Status;
+
+#if (ADC_VALIDATE_CALL_AND_UNIT == STD_ON)
+    if ((Std_ReturnType)E_OK == Adc_ValidateCallAndUnit(ADC_ENABLE_READ_RAW_DATA_ID, Unit, u32CoreId))
+    {
+#endif /* ADC_VALIDATE_CALL_AND_UNIT == STD_ON */
+#if (ADC_VALIDATE_PARAMS == STD_ON)
+        if ((Std_ReturnType)E_OK == Adc_ValidatePtr(ADC_ENABLE_READ_RAW_DATA_ID, DataBufferPtr))
+        {
+            if ((Std_ReturnType)E_OK == Adc_ValidatePtr(ADC_ENABLE_READ_RAW_DATA_ID, ChansArray))
+            {
+                /* Check input channel id if it's greater than maximum number of available channels */
+                if (NumItems <= ADC_IPW_RES_REG_NUM)
+                {
+    #endif /* ADC_VALIDATE_PARAMS == STD_ON */
+                    for (i = 0U; i < NumItems; i++)
+                    {
+                        Status = (Std_ReturnType)E_OK;
+                        if (ChansArray[i] < (Adc_ChannelType)ADC_IPW_MAX_CHN_ID)
+                        {
+                            Status = Adc_Ipw_GetConvData(Unit, ChansArray[i], u32CoreId, &DataBufferPtr[i]);
+                        }
+    #if (ADC_VALIDATE_PARAMS == STD_ON)
+                        else
+                        {
+                            Status = (Std_ReturnType)E_NOT_OK;
+                        }
+
+                        if ((Std_ReturnType)E_NOT_OK == Status)
+                        {
+                            Adc_ReportDetError(ADC_ENABLE_READ_RAW_DATA_ID, (uint8)ADC_E_PARAM_CONFIG);
+                        }
+    #else
+                        (void)Status;
+    #endif /* ADC_VALIDATE_PARAMS == STD_ON */
+                    }
+    #if (ADC_VALIDATE_PARAMS == STD_ON)
+                }
+                else
+                {
+                    Adc_ReportDetError(ADC_ENABLE_READ_RAW_DATA_ID, (uint8)ADC_E_PARAM_CONFIG);
+                }
+            }
+        }
+#endif /* ADC_VALIDATE_PARAMS == STD_ON */
+#if (ADC_VALIDATE_CALL_AND_UNIT == STD_ON)
+    }
+#endif /* ADC_VALIDATE_CALL_AND_UNIT == STD_ON */
+}
+#endif /* (ADC_ENABLE_READ_RAW_DATA_API == STD_ON) */
+
+#if (ADC_ENABLE_CH_DISABLE_CH_NONAUTO_API == STD_ON)
+/* CPR_RTD_00050.adc, SWS_Adc_00413 */
+void Adc_EnableChannel
+(
+   Adc_GroupType Group,
+   Adc_ChannelType Channel
+)
+{
+    volatile uint32 u32CoreId;
+    Adc_GroupType GroupIndex = 0U;
+    Adc_HwUnitType LogicalHwUnitId = 0U;
+    Adc_ChannelType LogicalChannelId;
+    Adc_ChannelType PhysicalChannelId;
+    Adc_GroupType GroupId = ADC_ENABLE_CH_DISABLE_CH_INVALID_GROUP_INDEX;
+    Adc_ChansIdxMaskType CmrMask;
+    uint8 i;
+
+    u32CoreId = (uint32)Adc_GetCoreID();
+#if (ADC_VALIDATE_CALL_AND_GROUP == STD_ON)
+    if ((Std_ReturnType)E_OK == Adc_ValidateCallAndGroup(ADC_ENABLE_CHANNEL_ID, Group, u32CoreId))
+    {
+#endif /* ADC_VALIDATE_CALL_AND_GROUP == STD_ON */
+
+    LogicalChannelId = Channel & ADC_CHANNEL_SYMBOLIC_NAME_MASK_CHANNEL_ID_U16;
+#if (ADC_VALIDATE_PARAMS == STD_ON)
+        if ((Std_ReturnType)E_OK == Adc_ValidateExtraParams(ADC_ENABLE_CHANNEL_ID,
+                                                            ADC_E_WRONG_TRIGG_SRC_LIST | \
+                                                            ADC_E_WRONG_CONV_MODE_LIST | \
+                                                            ADC_E_WRONG_ENABLE_CH_DISABLE_CH_GROUP_LIST | \
+                                                            ADC_E_WRONG_ENABLE_CH_DISABLE_CH_ID_LIST, \
+                                                            Group, \
+                                                            u32CoreId \
+                                                           )
+           )
+        {
+            if ((Std_ReturnType)E_OK == Adc_ValidateEnableDisbleIdList(ADC_ENABLE_CHANNEL_ID, Group, LogicalChannelId, u32CoreId))
+            {
+#endif /* ADC_VALIDATE_PARAMS == STD_ON */
+                /* Get the unit to which the group belongs to */
+                GroupIndex = Adc_pCfgPtr[u32CoreId]->pGroupIdToIndexMap[Group];
+                LogicalHwUnitId = Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].AdcLogicalUnitId;
+                PhysicalChannelId = Adc_pCfgPtr[u32CoreId]->pAdcIpwConfig->apAdcConfig[LogicalHwUnitId]->pChannelConfigs[LogicalChannelId].u8ChannelIndex;
+                GroupId = (Adc_GroupType)Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].EnableChDisableChGroupIndex;
+
+                Adc_GetCmrRegister(LogicalHwUnitId, Group, &CmrMask, u32CoreId);
+                for (i = 0; i < ADC_SAR_NUM_GROUP_CHAN; i++)
+                {
+                    Adc_aNCMRxMask[GroupId].aChanMask[i] = CmrMask.aChanMask[i];
+                }
+                Adc_Ipw_SetChansMask(&(Adc_aNCMRxMask[GroupId]), PhysicalChannelId);
+#if (ADC_VALIDATE_PARAMS == STD_ON)
+            }
+        }
+#endif /* ADC_VALIDATE_PARAMS == STD_ON */
+
+#if (ADC_VALIDATE_CALL_AND_GROUP == STD_ON)
+    }
+#endif /* ADC_VALIDATE_CALL_AND_GROUP == STD_ON */
+}
+
+/* CPR_RTD_00050.adc, SWS_Adc_00413 */
+void Adc_DisableChannel
+(
+    Adc_GroupType Group,
+    Adc_ChannelType Channel
+)
+{
+    volatile uint32 u32CoreId;
+    Adc_GroupType GroupIndex = 0U;
+    Adc_HwUnitType LogicalHwUnitId = 0U;
+    Adc_ChannelType LogicalChannelId;
+    Adc_ChannelType PhysicalChannelId;
+    Adc_GroupType GroupId = ADC_ENABLE_CH_DISABLE_CH_INVALID_GROUP_INDEX;
+    Adc_ChansIdxMaskType CmrMask;
+    uint8 i;
+
+    u32CoreId = (uint32)Adc_GetCoreID();
+#if (ADC_VALIDATE_CALL_AND_GROUP == STD_ON)
+    if ((Std_ReturnType)E_OK == Adc_ValidateCallAndGroup(ADC_DISABLE_CHANNEL_ID, Group, u32CoreId))
+    {
+#endif /* ADC_VALIDATE_CALL_AND_GROUP == STD_ON */
+
+    LogicalChannelId = Channel & ADC_CHANNEL_SYMBOLIC_NAME_MASK_CHANNEL_ID_U16;
+#if (ADC_VALIDATE_PARAMS == STD_ON)
+        if ((Std_ReturnType)E_OK == Adc_ValidateExtraParams(ADC_DISABLE_CHANNEL_ID,
+                                                            ADC_E_WRONG_TRIGG_SRC_LIST | \
+                                                            ADC_E_WRONG_CONV_MODE_LIST | \
+                                                            ADC_E_WRONG_ENABLE_CH_DISABLE_CH_GROUP_LIST | \
+                                                            ADC_E_WRONG_ENABLE_CH_DISABLE_CH_ID_LIST, \
+                                                            Group, \
+                                                            u32CoreId \
+                                                           )
+           )
+        {
+            if ((Std_ReturnType)E_OK == Adc_ValidateEnableDisbleIdList(ADC_DISABLE_CHANNEL_ID, Group, LogicalChannelId, u32CoreId))
+            {
+#endif /* ADC_VALIDATE_PARAMS == STD_ON */
+                GroupIndex = Adc_pCfgPtr[u32CoreId]->pGroupIdToIndexMap[Group];
+                LogicalHwUnitId = Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].AdcLogicalUnitId;
+                PhysicalChannelId = Adc_pCfgPtr[u32CoreId]->pAdcIpwConfig->apAdcConfig[LogicalHwUnitId]->pChannelConfigs[LogicalChannelId].u8ChannelIndex;
+                GroupId = (Adc_GroupType)Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].EnableChDisableChGroupIndex;
+
+                Adc_GetCmrRegister(LogicalHwUnitId, Group, &CmrMask, u32CoreId);
+                for (i = 0; i < ADC_SAR_NUM_GROUP_CHAN; i++)
+                {
+                    Adc_aNCMRxMask[GroupId].aChanMask[i] = CmrMask.aChanMask[i];
+                }
+                Adc_Ipw_ClearChansMask(&(Adc_aNCMRxMask[GroupId]), PhysicalChannelId);
+#if (ADC_VALIDATE_PARAMS == STD_ON)
+            }
+        }
+#endif /* ADC_VALIDATE_PARAMS == STD_ON */
+
+#if (ADC_VALIDATE_CALL_AND_GROUP == STD_ON)
+    }
+#endif /* ADC_VALIDATE_CALL_AND_GROUP == STD_ON */
+}
+#endif /* (ADC_ENABLE_CH_DISABLE_CH_NONAUTO_API == STD_ON) */
+
+#if (ADC_GET_INJECTED_CONVERSION_STATUS_API == STD_ON)
+/* CPR_RTD_00275.adc, SWS_Adc_00413 */
+/** @implements      Adc_GetInjectedConversionStatus_Activity */
+Adc_StatusType Adc_GetInjectedConversionStatus
+(
+    Adc_HwUnitType Unit
+)
+{
+#if (ADC_VALIDATE_CALL_AND_UNIT == STD_ON)
+    volatile uint32 u32CoreId;
+#endif /* ADC_VALIDATE_CALL_AND_UNIT == STD_ON */
+    Adc_StatusType eTempReturn = ADC_IDLE;
+
+#if (ADC_VALIDATE_CALL_AND_UNIT == STD_ON)
+    u32CoreId = (uint32)Adc_GetCoreID();
+    if ((Std_ReturnType)E_OK == Adc_ValidateCallAndUnit(ADC_GETINJECTEDCONVERSIONSTATUS_ID, Unit, u32CoreId))
+    {
+#endif /* ADC_VALIDATE_CALL_AND_UNIT == STD_ON */
+
+#if (ADC_SOFTWARE_INJECTED_CONVERSIONS_USED == STD_ON)
+        if (Adc_aUnitStatus[Unit].SwInjectedQueueIndex > (Adc_QueueIndexType)0U)
+        {
+            eTempReturn = ADC_BUSY;
+        }
+#endif /* ADC_SOFTWARE_INJECTED_CONVERSIONS_USED == STD_ON */
+#if (ADC_HW_TRIGGER_API == STD_ON)
+        if (ADC_INVALID_HW_GROUP_ID != Adc_aUnitStatus[Unit].OngoingHwGroup)
+        {
+            eTempReturn = ADC_BUSY;
+        }
+#endif /* (ADC_HW_TRIGGER_API == STD_ON) */
+
+#if (ADC_VALIDATE_CALL_AND_UNIT == STD_ON)
+    }
+#endif /* ADC_VALIDATE_CALL_AND_UNIT == STD_ON */
+
+    return (eTempReturn);
+}
+#endif /* (ADC_GET_INJECTED_CONVERSION_STATUS_API) */
+
+#if (ADC_CALIBRATION == STD_ON)
+/* CPR_RTD_00014.adc, CPR_RTD_00029.adc */
+/** @implements      Adc_Calibrate_Activity */
+void Adc_Calibrate
+(
+    Adc_HwUnitType Unit,
+    Adc_CalibrationStatusType * pStatus
+)
+{
+    volatile uint32 u32CoreId;
+    boolean isCalibrateCalled = FALSE;
+
+    u32CoreId = (uint32)Adc_GetCoreID();
+#if (ADC_VALIDATE_CALL_AND_UNIT == STD_ON)
+    if ((Std_ReturnType)E_OK == Adc_ValidateCallAndUnit(ADC_CALIBRATE_ID, Unit, u32CoreId))
+    {
+#endif /* ADC_VALIDATE_CALL_AND_UNIT == STD_ON */
+
+#if (ADC_VALIDATE_PARAMS == STD_ON)
+        if ((Std_ReturnType)E_OK == Adc_ValidatePtr(ADC_CALIBRATE_ID, pStatus))
+        {
+#endif /* ADC_VALIDATE_PARAMS == STD_ON */
+            /* Reset Status before executing the calibration */
+            pStatus->Adc_UnitSelfTestStatus = E_NOT_OK;
+            if ((Std_ReturnType)E_OK == Adc_ValidateNotBusyNoQueue(Unit, ADC_CALIBRATE_ID))
+            {
+                if ((Std_ReturnType)E_OK == Adc_ValidateCheckGroupNotConversion(ADC_CALIBRATE_ID, u32CoreId))
+                {
+                    Adc_Ipw_Calibrate(Unit, pStatus, u32CoreId);
+                    isCalibrateCalled = TRUE;
+                }
+            }
+            if (TRUE == isCalibrateCalled)
+            {
+                if ((Std_ReturnType)E_NOT_OK == pStatus->Adc_UnitSelfTestStatus)
+                {
+                    Adc_ReportDetRuntimeError((uint8)ADC_CALIBRATE_ID, (uint8)ADC_E_TIMEOUT);
+                }
+            }
+#if (ADC_VALIDATE_PARAMS == STD_ON)
+        }
+#endif /* ADC_VALIDATE_PARAMS == STD_ON */
+
+#if (ADC_VALIDATE_CALL_AND_UNIT == STD_ON)
+    }
+#endif /* ADC_VALIDATE_CALL_AND_UNIT == STD_ON */
+}
+#endif /* ADC_CALIBRATION == STD_ON */
+
+#if (ADC_SELF_TEST == STD_ON)
+/** @implements      Adc_SelfTest_Activity */
+Std_ReturnType Adc_SelfTest
+(
+    Adc_HwUnitType Unit
+)
+{
+    volatile uint32 u32CoreId;
+    Std_ReturnType ReturnValue = (Std_ReturnType)E_NOT_OK;
+
+    u32CoreId = (uint32)Adc_GetCoreID();
+#if (ADC_VALIDATE_CALL_AND_UNIT == STD_ON)
+    if ((Std_ReturnType)E_OK == Adc_ValidateCallAndUnit(ADC_SELFTEST_ID , Unit, u32CoreId))
+    {
+#endif /* ADC_VALIDATE_CALL_AND_UNIT == STD_ON */
+
+        ReturnValue = Adc_Ipw_SelfTest(Unit, u32CoreId);
+        if ((Std_ReturnType)E_NOT_OK == ReturnValue)
+        {
+            Adc_ReportDetRuntimeError((uint8)ADC_SELFTEST_ID, (uint8)ADC_E_TIMEOUT);
+        }
+#if (ADC_VALIDATE_CALL_AND_UNIT == STD_ON)
+    }
+#endif /* ADC_VALIDATE_CALL_AND_UNIT == STD_ON */
+    return ReturnValue;
+}
+#endif
+
+#if (ADC_ENABLE_CONFIGURE_THRESHOLD_NONAUTO_API == STD_ON)
+void Adc_ConfigureThreshold
+(
+    Adc_ThresholdControlIndexType ThresholdControlIndex,
+    Adc_WdgThresholdValueType LowValue,
+    Adc_WdgThresholdValueType HighValue
+)
+{
+    Std_ReturnType Status;
+#if (ADC_DEV_ERROR_DETECT == STD_ON)
+    Adc_HwUnitType LogicalHwUnitId = 0U;
+    Adc_WdgThresholdValueType MaxHighThreshold = ((Adc_WdgThresholdValueType)1U << ADC_MAX_RESOLUTION) - 1U;
+    Adc_WdgThresholdValueType MaxLowThreshold = ((Adc_WdgThresholdValueType)1U << ADC_MAX_RESOLUTION) - 1U;
+#endif /* if (ADC_DEV_ERROR_DETECT == STD_ON) */
+    volatile uint32 u32CoreId;
+
+    u32CoreId = (uint32)Adc_GetCoreID();
+#if (ADC_DEV_ERROR_DETECT == STD_ON)
+    LogicalHwUnitId = (uint8)(ThresholdControlIndex >> ADC_THRESHOLD_SYMBOLIC_NAME_SHIFT_HW_UNIT_ID_U16);
+    if ((Std_ReturnType)E_OK == Adc_ValidateCallAndUnit(ADC_CONFIGURE_THRESHOLD_ID, LogicalHwUnitId, u32CoreId))
+    {
+        if ((HighValue < LowValue) || (HighValue > MaxHighThreshold) || (LowValue > MaxLowThreshold))
+        {
+            /* Error if High Threshold value is less than Low Threshold value or value > register size */
+            Adc_ReportDetError((uint8)ADC_CONFIGURE_THRESHOLD_ID, (uint8)ADC_E_WRONG_CONF_THRHLD_VALUE);
+        }
+        else
+        {
+#endif /* if (ADC_DEV_ERROR_DETECT == STD_ON) */
+
+            Status = Adc_Ipw_ConfigureThreshold(ThresholdControlIndex, LowValue, HighValue, u32CoreId);
+
+#if (ADC_DEV_ERROR_DETECT == STD_ON)
+            if ((Std_ReturnType)E_NOT_OK == Status)
+            {
+                Adc_ReportDetError((uint8)ADC_CONFIGURE_THRESHOLD_ID, (uint8)ADC_E_WRONG_CONF_THRHLD_VALUE);
+            }
+        }
+    }
+#endif /* if (ADC_DEV_ERROR_DETECT == STD_ON) */
+    (void)Status;
+}
+#endif /* ADC_ENABLE_CONFIGURE_THRESHOLD_NONAUTO_API == STD_ON */
+
+#ifdef ADC_WDG_SUPPORTED
+/* CPR_RTD_00449.adc */
+void Adc_EnableWdgNotification
+(
+    Adc_ChannelType ChannelId
+)
+{
+    /* update enable/disable channel */
+    Std_ReturnType Status;
+    Adc_HwUnitType LogicalHwUnitId = 0U;
+    volatile uint32 u32CoreId;
+
+    u32CoreId = (uint32)Adc_GetCoreID();
+    LogicalHwUnitId = (Adc_HwUnitType)(ChannelId >> ADC_CHANNEL_SYMBOLIC_NAME_SHIFT_HW_UNIT_ID_U16);
+#if (ADC_DEV_ERROR_DETECT == STD_ON)
+    if ((Std_ReturnType)E_OK == Adc_ValidateCallAndUnit(ADC_ENABLEWDGNOTIFICATION_ID, LogicalHwUnitId, u32CoreId))
+    {
+#endif /* if (ADC_DEV_ERROR_DETECT == STD_ON) */
+
+        Status = Adc_Ipw_EnableWdgNotification(LogicalHwUnitId, ChannelId, u32CoreId);
+
+#if (ADC_DEV_ERROR_DETECT == STD_ON)
+        if ((Std_ReturnType)E_NOT_OK == Status)
+        {
+            Adc_ReportDetError((uint8)ADC_ENABLEWDGNOTIFICATION_ID, (uint8)ADC_E_PARAM_CONFIG);
+        }
+    }
+#endif /* if (ADC_DEV_ERROR_DETECT == STD_ON) */
+    (void)Status;
+}
+
+/* CPR_RTD_00451.adc */
+void Adc_DisableWdgNotification
+(
+    Adc_ChannelType ChannelId
+)
+{
+    /* update enable/disable channel */
+    Std_ReturnType Status;
+    Adc_HwUnitType LogicalHwUnitId = 0U;
+    volatile uint32 u32CoreId;
+
+    u32CoreId = (uint32)Adc_GetCoreID();
+    LogicalHwUnitId = (Adc_HwUnitType)(ChannelId >> ADC_CHANNEL_SYMBOLIC_NAME_SHIFT_HW_UNIT_ID_U16);
+#if (ADC_DEV_ERROR_DETECT == STD_ON)
+    if ((Std_ReturnType)E_OK == Adc_ValidateCallAndUnit(ADC_DISABLEWDGNOTIFICATION_ID, LogicalHwUnitId, u32CoreId))
+    {
+#endif /* if (ADC_DEV_ERROR_DETECT == STD_ON) */
+
+        Status = Adc_Ipw_DisableWdgNotification(LogicalHwUnitId, ChannelId, u32CoreId);
+
+#if (ADC_DEV_ERROR_DETECT == STD_ON)
+        if ((Std_ReturnType)E_NOT_OK == Status)
+        {
+            Adc_ReportDetError((uint8)ADC_DISABLEWDGNOTIFICATION_ID, (uint8)ADC_E_PARAM_CONFIG);
+        }
+    }
+#endif /* if (ADC_DEV_ERROR_DETECT == STD_ON) */
+    (void)Status;
+}
+#endif /* ADC_WDG_SUPPORTED */
+
+#if (ADC_DUAL_CLOCK_MODE == STD_ON)
+/* CPR_RTD_00044.adc */
+/** @implements      Adc_SetClockMode_Activity */
+Std_ReturnType Adc_SetClockMode
+(
+    Adc_SelectPrescalerType Prescaler
+)
+{
+    volatile uint32 u32CoreId;
+    Std_ReturnType Ret = (Std_ReturnType)E_NOT_OK;
+    Adc_HwUnitType LogicalHwUnitId;
+    Std_ReturnType ErrorFound = (Std_ReturnType)E_OK;
+#if (ADC_DEV_ERROR_DETECT == STD_ON)
+    uint32 u32CoreIdTemp;
+#endif /* ADC_DEV_ERROR_DETECT == STD_ON */
+
+    u32CoreId = (uint32)Adc_GetCoreID();
+#if (ADC_DEV_ERROR_DETECT == STD_ON) 
+    u32CoreIdTemp = u32CoreId; /* Used to avoid MISRA */
+    if (TRUE == Adc_CheckSetClockModeCoreAndParam(Prescaler, u32CoreIdTemp))
+    {
+#endif /* ADC_DEV_ERROR_DETECT == STD_ON */
+        for (LogicalHwUnitId = 0U; LogicalHwUnitId < ADC_MAX_HW_UNITS; LogicalHwUnitId++)
+        {
+            /* HW unit enabled on current partition */
+            if(Adc_pCfgPtr[u32CoreId]->pAdcIpwConfig->Mapping.au8Adc_HwUnit[LogicalHwUnitId] == (uint8)STD_ON)
+            {
+                ErrorFound = Adc_ValidateNotBusyNoQueue(LogicalHwUnitId, ADC_SETCLOCKMODE_ID);
+                if ((Std_ReturnType)E_NOT_OK == ErrorFound)
+                {
+                    break;
+                }
+            }
+        }
+        if ((Std_ReturnType)E_OK == ErrorFound)
+        {
+            if ((Std_ReturnType)E_OK == Adc_ValidateCheckGroupNotConversion(ADC_SETCLOCKMODE_ID, u32CoreId))
+            {
+
+                Ret = Adc_Ipw_SetClockMode(Prescaler, u32CoreId);
+#if (ADC_SET_ADC_CONV_TIME_ONCE == STD_OFF)
+                Adc_eClockMode[u32CoreId] = Prescaler;
+#endif
+            }
+        }
+#if (ADC_DEV_ERROR_DETECT == STD_ON)
+    }
+#endif /* ADC_DEV_ERROR_DETECT == STD_ON */
+    return Ret;
+}
+#endif /* (ADC_DUAL_CLOCK_MODE == STD_ON) */
+
+#if (ADC_CTU_CONTROL_MODE_EXTRA_APIS == STD_ON)
+/* CPR_RTD_00056.adc */
+/** @implements      Adc_CtuWriteTriggerEnableMask_Activity */
+Std_ReturnType Adc_CtuWriteTriggerEnableMask
+(
+    uint8 u8Trigger,
+    uint8 u8ThcrValue
+)
+{
+    Std_ReturnType Ret = (Std_ReturnType)E_OK;
+
+#if (ADC_DEV_ERROR_DETECT == STD_ON)
+    volatile uint32 u32CoreId = (uint32)Adc_GetCoreID();
+
+    Ret = Adc_ValidateCallAndTrigger(CTU_SET_WRITE_TRIG_EN_MASK_ID, u8Trigger, u32CoreId);
+    if((Std_ReturnType)E_OK == Ret)
+#endif
+    {
+        Adc_Ipw_SetCtuWriteTriggerEnableMask(0U, u8Trigger, u8ThcrValue);
+    }
+    return Ret;
+}
+
+/* CPR_RTD_00059.adc */
+/** @implements      Adc_CtuSetTriggerEnable_Activity */
+Std_ReturnType Adc_CtuSetTriggerEnable
+(
+    uint8 u8Trigger,
+    boolean bEnable
+)
+{
+    Std_ReturnType Ret = (Std_ReturnType)E_OK;
+
+#if (ADC_DEV_ERROR_DETECT == STD_ON)
+    volatile uint32 u32CoreId = (uint32)Adc_GetCoreID();
+
+    Ret = Adc_ValidateCallAndTrigger(CTU_SET_TRIGGER_ENABLE_ID, u8Trigger, u32CoreId);
+    if((Std_ReturnType)E_OK == Ret)
+#endif
+    {
+        Adc_Ipw_CtuSetTriggerEnable(0U, u8Trigger, bEnable);
+    }
+    return Ret;
+}
+
+/* CPR_RTD_00057.adc */
+/** @implements      Adc_CtuSetTriggerAdcCmdAddress_Activity */
+Std_ReturnType Adc_CtuSetTriggerAdcCmdAddress
+(
+    uint8 u8Trigger,
+    uint8 u8ClcrValue
+)
+{
+    Std_ReturnType Ret = (Std_ReturnType)E_OK;
+
+#if (ADC_DEV_ERROR_DETECT == STD_ON)
+    volatile uint32 u32CoreId = (uint32)Adc_GetCoreID();
+
+    Ret = Adc_ValidateCallAndTrigger(CTU_SET_TRIGGER_ADC_CMD_ADDRESS_ID, u8Trigger, u32CoreId);
+    if((Std_ReturnType)E_OK == Ret)
+    {
+        if ((uint32)u8ClcrValue > 24u) /* TODO: Update hardcoded value */
+        {
+            Adc_ReportDetError(CTU_SET_TRIGGER_ADC_CMD_ADDRESS_ID, ADC_E_WRONG_CTU_CLCR_TRIGGER);
+            Ret = (Std_ReturnType)E_NOT_OK;
+        }
+    }
+    if((Std_ReturnType)E_OK == Ret)
+#endif
+    {
+        Adc_Ipw_SetCtuTrigAdcCmd(0U, u8Trigger, u8ClcrValue);
+    }
+    return Ret;
+}
+
+/* CPR_RTD_00058.adc */
+/** @implements      Adc_CtuSetTriggerCompare_Activity */
+Std_ReturnType Adc_CtuSetTriggerCompare
+(
+    uint8 u8Trigger,
+    uint16 u16CompareValue
+)
+{
+    Std_ReturnType Ret = (Std_ReturnType)E_OK;
+
+#if (ADC_DEV_ERROR_DETECT == STD_ON)
+    volatile uint32 u32CoreId = (uint32)Adc_GetCoreID();
+
+    Ret = Adc_ValidateCallAndTrigger(CTU_SET_TRIGGER_COMPARE_ID, u8Trigger, u32CoreId);
+    if((Std_ReturnType)E_OK == Ret)
+#endif
+    {
+        Adc_Ipw_SetCtuTriggerCompare(0U, u8Trigger, u16CompareValue);
+    }
+    return Ret;
+}
+#endif /* if (ADC_CTU_CONTROL_MODE_EXTRA_APIS == STD_ON)  */
+
+#if (ADC_SETCHANNEL_API == STD_ON)
+/** @implements      Adc_SetChannel_Activity */
+void Adc_SetChannel
+(
+    const Adc_GroupType Group,
+    const Adc_GroupDefType * Channel,
+#if (ADC_DELAY_AVAILABLE == STD_ON)
+    const uint16 * Delays,
+    const uint32 ChannelUpdateMask,
+#endif /* (ADC_DELAY_AVAILABLE == STD_ON) */
+    const Adc_ChannelIndexType NumberOfChannel
+)
+{
+#if ((ADC_DEV_ERROR_DETECT == STD_ON) || (ADC_ENABLE_LIMIT_CHECK == STD_ON))
+    volatile uint32 u32CoreId = (uint32)Adc_GetCoreID();
+    Adc_HwUnitType LogicalHwUnitId = 0U;
+    Adc_GroupType GroupIndex = 0U;
+#endif /* ((ADC_DEV_ERROR_DETECT == STD_ON) || (ADC_ENABLE_LIMIT_CHECK == STD_ON)) */
+#if (ADC_DEV_ERROR_DETECT == STD_ON)
+    uint32 u32CoreIdTemp = u32CoreId; /* Used to avoid MISRA */
+    uint32 Index = 0u;
+    Std_ReturnType StatusChecks = Adc_ValidateCallAndGroup(ADC_SETCHANNEL_ID, Group, u32CoreId);
+
+    if (StatusChecks == (Std_ReturnType)E_OK)
+    {
+        GroupIndex = Adc_pCfgPtr[u32CoreId]->pGroupIdToIndexMap[Group];
+        LogicalHwUnitId = Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].AdcLogicalUnitId;
+        if ((Std_ReturnType)E_OK == Adc_ValidatePtr(ADC_SETCHANNEL_ID, Channel))
+        {
+#if (ADC_DELAY_AVAILABLE == STD_ON)
+            StatusChecks = Adc_CheckSetChannelParams(Group, Delays, ChannelUpdateMask, NumberOfChannel);
+#else
+            StatusChecks = Adc_CheckSetChannelParams(Group, NumberOfChannel);
+#endif /* (ADC_DELAY_AVAILABLE == STD_ON) */
+
+            for (Index = 0; Index < NumberOfChannel; Index++)
+            {
+                /* Check if input channel is configured at initialization */
+                if (
+                    (Channel[Index] >= Adc_pCfgPtr[u32CoreIdTemp]->pAdcIpwConfig->Mapping.aAdc_Channels[LogicalHwUnitId])
+#if (ADC_ENABLE_LIMIT_CHECK == STD_ON)
+                    || ((NumberOfChannel > 1U) && (TRUE == Adc_pCfgPtr[u32CoreIdTemp]->pAdcIpwConfig->ChannelLimitCheckingConfigs[LogicalHwUnitId][Channel[Index]].bChannelLimitCheckEnabled))
+#endif /* (ADC_ENABLE_LIMIT_CHECK == STD_ON) */
+                   )
+                {
+                    Adc_ReportDetError(ADC_SETCHANNEL_ID, (uint8)ADC_E_PARAM_CHANNEL);
+                    StatusChecks = (Std_ReturnType)E_NOT_OK;
+                    break;
+                }
+            }
+        }
+    }
+
+#if ((ADC_HW_TRIGGER_API == STD_ON) && (ADC_CTU_TRIGGER_MODE_SUPPORTED == STD_ON))
+    if (StatusChecks == (Std_ReturnType)E_OK)
+    {
+        StatusChecks = Adc_CheckSetChannelCtuTriggers(GroupIndex, LogicalHwUnitId, NumberOfChannel, u32CoreId);
+    }
+#endif /* ((ADC_HW_TRIGGER_API == STD_ON) && (ADC_CTU_TRIGGER_MODE_SUPPORTED == STD_ON)) */
+
+    if (StatusChecks == (Std_ReturnType)E_OK)
+    {
+#endif /* ADC_DEV_ERROR_DETECT == STD_ON */
+        Adc_aRuntimeGroupChannel[Group].pChannel = Channel;
+        Adc_aRuntimeGroupChannel[Group].ChannelCount = NumberOfChannel;
+        Adc_aRuntimeGroupChannel[Group].bRuntimeUpdated = TRUE;
+#if (ADC_ENABLE_LIMIT_CHECK == STD_ON)
+#if (ADC_DEV_ERROR_DETECT == STD_OFF)
+        GroupIndex = Adc_pCfgPtr[u32CoreId]->pGroupIdToIndexMap[Group];
+        LogicalHwUnitId = Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].AdcLogicalUnitId;
+#endif /* (ADC_DEV_ERROR_DETECT == STD_OFF) */
+        Adc_aRuntimeGroupChannel[Group].bAdcRuntimeGroupLimitcheck = Adc_pCfgPtr[u32CoreId]->pAdcIpwConfig->ChannelLimitCheckingConfigs[LogicalHwUnitId][Channel[0U]].bChannelLimitCheckEnabled;
+#endif /* (ADC_ENABLE_LIMIT_CHECK == STD_ON) */
+#if (ADC_DELAY_AVAILABLE == STD_ON)
+        Adc_aRuntimeGroupChannel[Group].pu16Delays = Delays;
+        if (NumberOfChannel <= ADC_MAX_CHAN_COUNT)
+        {
+            Adc_aRuntimeGroupChannel[Group].u32Mask = ChannelUpdateMask;
+        }
+        else
+        {
+            Adc_aRuntimeGroupChannel[Group].u32Mask = 0xFFFFFFFFUL;
+        }
+#endif /* (ADC_DELAY_AVAILABLE == STD_ON) */
+#if (ADC_DEV_ERROR_DETECT == STD_ON)
+    }
+#endif /* ADC_DEV_ERROR_DETECT == STD_ON */
+}
+#endif /* ADC_SETCHANNEL_API == STD_ON */
+
+#ifndef ADC_CMR_REGISTER_NOT_SUPPORTED
+void Adc_GetCmrRegister /* TODO: rename and move to IPW */
+(
+    Adc_HwUnitType Unit,
+    Adc_GroupType Group,
+    Adc_ChansIdxMaskType * pCmrMask,
+    uint32 u32CoreId
+)
+{
+#if ((ADC_ENABLE_CH_DISABLE_CH_NONAUTO_API == STD_ON) || (ADC_SETCHANNEL_API == STD_OFF))
+    Adc_GroupType GroupIndex = Adc_pCfgPtr[u32CoreId]->pGroupIdToIndexMap[Group];
+    const Adc_GroupConfigurationType * pGroupPtr = &(Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex]);
+#endif /* (ADC_ENABLE_CH_DISABLE_CH_NONAUTO_API == STD_ON) || (ADC_SETCHANNEL_API == STD_OFF) */
+#if (ADC_ENABLE_CH_DISABLE_CH_NONAUTO_API == STD_ON)
+    Adc_GroupType Adc_IndividualGroupId;
+#endif /* (ADC_ENABLE_CH_DISABLE_CH_NONAUTO_API == STD_ON) */
+#if (ADC_SETCHANNEL_API == STD_ON)
+    Adc_ChannelType ChId;
+    Adc_ChannelIndexType Ch;
+#endif /* (ADC_SETCHANNEL_API == STD_ON) */
+
+    (void)Unit;
+
+    uint8 i;
+
+        for (i = 0; i < ADC_SAR_NUM_GROUP_CHAN; i++)
+        {
+            pCmrMask->aChanMask[i] = 0UL;
+        }
+
+    /* If the Individual group channel enable capability is ON*/
+#if (ADC_ENABLE_CH_DISABLE_CH_NONAUTO_API == STD_ON)
+    Adc_IndividualGroupId = pGroupPtr->EnableChDisableChGroupIndex;
+    if(ADC_ENABLE_CH_DISABLE_CH_INVALID_GROUP_INDEX != Adc_IndividualGroupId)
+    {
+        for (i = 0; i < ADC_SAR_NUM_GROUP_CHAN; i++)
+        {
+            pCmrMask->aChanMask[i] = Adc_aNCMRxMask[Adc_IndividualGroupId].aChanMask[i];
+        }
+    }
+    else
+#endif /* (ADC_ENABLE_CH_DISABLE_CH_NONAUTO_API == STD_ON) */
+    {
+#if (ADC_SETCHANNEL_API == STD_ON)
+        for(Ch = 0U; Ch < Adc_aRuntimeGroupChannel[Group].ChannelCount; Ch++)
+        {
+            ChId = Adc_pCfgPtr[u32CoreId]->pAdcIpwConfig->apAdcConfig[Unit]->pChannelConfigs[Adc_aRuntimeGroupChannel[Group].pChannel[Ch]].u8ChannelIndex;
+            Adc_Ipw_SetChansMask(pCmrMask, ChId);
+        }
+#else
+        /* Program the mask registers */
+        for (i = 0; i < ADC_SAR_NUM_GROUP_CHAN; i++)
+        {
+            pCmrMask->aChanMask[i] = pGroupPtr->AssignedChannelMask.aChanMask[i];
+        }
+#endif /* (ADC_SETCHANNEL_API == STD_ON) */
+    }
+}
+#endif /* ADC_CMR_REGISTER_NOT_SUPPORTED */
+
+
+#if (ADC_ENABLE_CTU_CONTROL_MODE_API == STD_ON)
+/* CPR_RTD_00271.adc */
+/** @implements      Adc_EnableCtuControlMode_Activity */
+void Adc_EnableCtuControlMode
+(
+    Adc_HwUnitType Unit
+)
+{
+    volatile uint32 u32CoreId = (uint32)Adc_GetCoreID();
+
+#if (ADC_VALIDATE_CALL_AND_UNIT == STD_ON)
+    if ((Std_ReturnType)E_OK == Adc_ValidateCallAndUnit(ADC_ENABLE_CTU_CONTROL_MODE_ID, Unit, u32CoreId))
+#endif /* ADC_VALIDATE_CALL_AND_UNIT == STD_ON */
+#if (ADC_DEV_ERROR_DETECT == STD_ON)
+    {
+        if ((Std_ReturnType)E_OK == Adc_ValidateUnitActive(ADC_ENABLE_CTU_CONTROL_MODE_ID, Unit, u32CoreId))
+        {
+#endif /* ADC_DEV_ERROR_DETECT == STD_ON */
+            if ((Std_ReturnType)E_OK == Adc_ValidateStateCtuControlMode(ADC_ENABLE_CTU_CONTROL_MODE_ID, Unit))
+            {
+                Adc_Ipw_EnableCtuControlMode(Unit, u32CoreId);
+            }
+#if (ADC_DEV_ERROR_DETECT == STD_ON)
+        }
+    }
+#endif /* ADC_DEV_ERROR_DETECT == STD_ON */
+}
+
+/* CPR_RTD_00271.adc */
+/** @implements      Adc_DisableCtuControlMode_Activity */
+void Adc_DisableCtuControlMode
+(
+    Adc_HwUnitType Unit
+)
+{
+    volatile uint32 u32CoreId = (uint32)Adc_GetCoreID();
+
+#if (ADC_VALIDATE_CALL_AND_UNIT == STD_ON)
+    if ((Std_ReturnType)E_OK == Adc_ValidateCallAndUnit(ADC_DISABLE_CTU_CONTROL_MODE_ID, Unit, u32CoreId))
+#endif /* ADC_VALIDATE_CALL_AND_UNIT == STD_ON */
+#if (ADC_DEV_ERROR_DETECT == STD_ON)
+    {
+        if ((Std_ReturnType)E_OK == Adc_ValidateUnitActive(ADC_DISABLE_CTU_CONTROL_MODE_ID, Unit, u32CoreId))
+        {
+#endif /* ADC_DEV_ERROR_DETECT == STD_ON */
+            if ((Std_ReturnType)E_OK == Adc_ValidateStateCtuControlMode(ADC_DISABLE_CTU_CONTROL_MODE_ID, Unit))
+            {
+                Adc_Ipw_DisableCtuControlMode(Unit, u32CoreId);
+            }
+#if (ADC_DEV_ERROR_DETECT == STD_ON)
+        }
+    }
+#endif /* ADC_DEV_ERROR_DETECT == STD_ON */
+}
+
+/* CPR_RTD_00455.adc */
+/** @implements      Adc_CtuEnableHwTrigger_Activity */
+void Adc_CtuEnableHwTrigger
+(
+    Adc_CtuTrigSrcType TrigSource
+)
+{
+#if (ADC_DEV_ERROR_DETECT == STD_ON)
+    uint32 u32CoreId = (uint32)Adc_GetCoreID();
+    const uint8 u8ServiceId = ADC_CTU_ENABLE_HW_TRIGGER_ID;
+
+    if (Adc_ValidateCtuControlModeApi(u8ServiceId, u32CoreId) == (Std_ReturnType)E_OK)
+    {
+        if(TrigSource > ADC_IPW_MAX_CTU_TRIG_SOURCE_ID)
+        {
+            Adc_ReportDetError(u8ServiceId, ADC_E_WRONG_TRIGG_SRC);
+        }
+        else
+        {
+#endif /* (ADC_DEV_ERROR_DETECT == STD_ON) */
+
+            Adc_Ipw_CtuEnableHwTrigger(0u, (uint8)TrigSource);
+
+#if (ADC_DEV_ERROR_DETECT == STD_ON)
+        }
+    }
+#endif /* (ADC_DEV_ERROR_DETECT == STD_ON) */
+}
+
+/** @implements      Adc_CtuDisableHwTrigger_Activity */
+void Adc_CtuDisableHwTrigger
+(
+    Adc_CtuTrigSrcType TrigSource
+)
+{
+#if (ADC_DEV_ERROR_DETECT == STD_ON)
+    uint32 u32CoreId = (uint32)Adc_GetCoreID();
+    const uint8 u8ServiceId = ADC_CTU_DISABLE_HW_TRIGGER_ID;
+
+    if (Adc_ValidateCtuControlModeApi(u8ServiceId, u32CoreId) == (Std_ReturnType)E_OK)
+    {
+        if(TrigSource > ADC_IPW_MAX_CTU_TRIG_SOURCE_ID)
+        {
+            Adc_ReportDetError(u8ServiceId, ADC_E_WRONG_TRIGG_SRC);
+        }
+        else
+        {
+#endif /* (ADC_DEV_ERROR_DETECT == STD_ON) */
+
+            Adc_Ipw_CtuDisableHwTrigger(0u, (uint8)TrigSource);
+
+#if (ADC_DEV_ERROR_DETECT == STD_ON)
+        }
+    }
+#endif /* (ADC_DEV_ERROR_DETECT == STD_ON) */
+}
+
+/** @implements      Adc_CtuStartConversion_Activity */
+void Adc_CtuStartConversion
+(
+    Adc_CtuTrigSrcType TrigSource
+)
+{
+#if (ADC_DEV_ERROR_DETECT == STD_ON)
+    uint32 u32CoreId = (uint32)Adc_GetCoreID();
+    const uint8 u8ServiceId = ADC_CTU_START_CONVERSION_ID;
+
+    if (Adc_ValidateCtuControlModeApi(u8ServiceId, u32CoreId) == (Std_ReturnType)E_OK)
+    {
+        if(TrigSource > ADC_IPW_MAX_CTU_TRIG_SOURCE_ID)
+        {
+            Adc_ReportDetError(u8ServiceId, ADC_E_WRONG_TRIGG_SRC);
+        }
+        else
+        {
+#endif /* (ADC_DEV_ERROR_DETECT == STD_ON) */
+
+            Adc_Ipw_CtuStartConversion(0u, (uint8)TrigSource);
+
+#if (ADC_DEV_ERROR_DETECT == STD_ON)
+        }
+    }
+#endif /* (ADC_DEV_ERROR_DETECT == STD_ON) */
+}
+
+#if (ADC_CTU_AVAILABLE == STD_ON)
+/** @implements      Adc_CtuMasterReload_Activity */
+void Adc_CtuMasterReload
+(
+    Adc_HwUnitType CtuUnit
+)
+{
+#if (ADC_DEV_ERROR_DETECT == STD_ON)
+    uint32 u32CoreId = (uint32)Adc_GetCoreID();
+    const uint8 u8ServiceId = ADC_CTU_MASTER_RELOAD_ID;
+
+    if (Adc_ValidateCtuControlModeApi(u8ServiceId, u32CoreId) == (Std_ReturnType)E_OK)
+    {
+#endif /* (ADC_DEV_ERROR_DETECT == STD_ON) */
+
+        Adc_Ipw_CtuMasterReload(CtuUnit);
+
+#if (ADC_DEV_ERROR_DETECT == STD_ON)
+    }
+#endif /* (ADC_DEV_ERROR_DETECT == STD_ON) */
+}
+#endif /* (ADC_CTU_AVAILABLE == STD_ON) */
+
+#if (ADC_BCTU_AVAILABLE == STD_ON)
+/** @implements      Adc_CtuReadConvData_Activity */
+Adc_ValueGroupType Adc_CtuReadConvData
+(
+    Adc_HwUnitType AdcUnit
+)
+{
+    Adc_ValueGroupType ConvData = 0u;
+
+#if (ADC_DEV_ERROR_DETECT == STD_ON)
+    uint32 u32CoreId = (uint32)Adc_GetCoreID();
+    const uint8 u8ServiceId = ADC_CTU_READ_CONV_DATA_ID;
+
+    if (Adc_ValidateCtuControlModeApi(u8ServiceId, u32CoreId) == (Std_ReturnType)E_OK)
+    {
+#endif /* (ADC_DEV_ERROR_DETECT == STD_ON) */
+
+        ConvData = Adc_Ipw_CtuReadConvData(0u, AdcUnit);
+
+#if (ADC_DEV_ERROR_DETECT == STD_ON)
+    }
+#endif /* (ADC_DEV_ERROR_DETECT == STD_ON) */
+
+    return ConvData;
+}
+
+/** @implements      Adc_CtuReadConvResult_Activity */
+void Adc_CtuReadConvResult
+(
+    Adc_HwUnitType AdcUnit,
+    Adc_CtuResultType * pResult
+)
+{
+#if (ADC_DEV_ERROR_DETECT == STD_ON)
+    uint32 u32CoreId = (uint32)Adc_GetCoreID();
+    const uint8 u8ServiceId = ADC_CTU_READ_CONV_RESULT_ID;
+
+    if (Adc_ValidateCtuControlModeApi(u8ServiceId, u32CoreId) == (Std_ReturnType)E_OK)
+    {
+#endif /* (ADC_DEV_ERROR_DETECT == STD_ON) */
+
+        Adc_Ipw_CtuReadConvResult(0u, AdcUnit, pResult);
+
+#if (ADC_DEV_ERROR_DETECT == STD_ON)
+    }
+#endif /* (ADC_DEV_ERROR_DETECT == STD_ON) */
+}
+
+/** @implements      Adc_CtuStopLoopConversions_Activity */
+void Adc_CtuStopLoopConversions
+(
+    Adc_CtuTrigSrcType TrigSource
+)
+{
+#if (ADC_DEV_ERROR_DETECT == STD_ON)
+    uint32 u32CoreId = (uint32)Adc_GetCoreID();
+    const uint8 u8ServiceId = ADC_CTU_STOP_LOOP_CONVERSION_ID;
+
+    if (Adc_ValidateCtuControlModeApi(u8ServiceId, u32CoreId) == (Std_ReturnType)E_OK)
+    {
+        if(TrigSource > ADC_IPW_MAX_CTU_TRIG_SOURCE_ID)
+        {
+            Adc_ReportDetError(u8ServiceId, ADC_E_WRONG_TRIGG_SRC);
+        }
+        else
+        {
+#endif /* (ADC_DEV_ERROR_DETECT == STD_ON) */
+
+            Adc_Ipw_CtuStopLoopConversions(0u, (uint8)TrigSource);
+
+#if (ADC_DEV_ERROR_DETECT == STD_ON)
+        }
+    }
+#endif /* (ADC_DEV_ERROR_DETECT == STD_ON) */
+}
+#endif /* (ADC_BCTU_AVAILABLE == STD_ON) */
+
+/** @implements      Adc_CtuReadFifoData_Activity */
+void Adc_CtuReadFifoData
+(
+    Adc_CtuFifoIdxType FifoIdx,
+    uint16 * pu16Data,
+    uint8 u8DataLength
+)
+{
+    uint8 Index;
+
+#if (ADC_DEV_ERROR_DETECT == STD_ON)
+    uint32 u32CoreId = (uint32)Adc_GetCoreID();
+    const uint8 u8ServiceId = ADC_CTU_READ_FIFO_DATA_ID;
+
+    if (Adc_ValidateCtuControlModeApi(u8ServiceId, u32CoreId) == (Std_ReturnType)E_OK)
+    {
+        if(FifoIdx >= ADC_IPW_NUM_CTU_FIFO)
+        {
+            Adc_ReportDetError(u8ServiceId, ADC_E_WRONG_TRIGG_SRC); /* TODO update error code. Add rest of DET checks. */
+        }
+        else
+        {
+#endif /* (ADC_DEV_ERROR_DETECT == STD_ON) */
+           for(Index = 0u; Index < u8DataLength; Index++)
+           {
+               pu16Data[Index] = Adc_Ipw_CtuReadFifoData(0u, FifoIdx);
+           }
+#if (ADC_DEV_ERROR_DETECT == STD_ON)
+        }
+    }
+#endif /* (ADC_DEV_ERROR_DETECT == STD_ON) */
+}
+
+/** @implements      Adc_CtuReadFifoResult_Activity */
+void Adc_CtuReadFifoResult
+(
+    Adc_CtuFifoIdxType FifoIdx,
+    Adc_CtuFifoResultType * pResult,
+    uint8 u8ResultLength
+)
+{
+    uint8 Index;
+
+#if (ADC_DEV_ERROR_DETECT == STD_ON)
+    uint32 u32CoreId = (uint32)Adc_GetCoreID();
+    const uint8 u8ServiceId = ADC_CTU_READ_FIFO_RESULT_ID;
+
+    if (Adc_ValidateCtuControlModeApi(u8ServiceId, u32CoreId) == (Std_ReturnType)E_OK)
+    {
+        if(FifoIdx >= ADC_IPW_NUM_CTU_FIFO)
+        {
+            Adc_ReportDetError(u8ServiceId, ADC_E_WRONG_TRIGG_SRC); /* TODO update error code. Add rest of DET checks. */
+        }
+        else
+        {
+#endif /* (ADC_DEV_ERROR_DETECT == STD_ON) */
+            for(Index = 0u; Index < u8ResultLength; Index++)
+            {
+                Adc_Ipw_CtuReadFifoResult(0u, FifoIdx, &(pResult[Index]));
+            }
+#if (ADC_DEV_ERROR_DETECT == STD_ON)
+        }
+    }
+#endif /* (ADC_DEV_ERROR_DETECT == STD_ON) */
+}
+
+/** @implements      Adc_CtuSetFifoWatermark_Activity */
+void Adc_CtuSetFifoWatermark
+(
+    Adc_CtuFifoIdxType FifoIdx,
+    uint8 u8Watermark
+)
+{
+#if (ADC_DEV_ERROR_DETECT == STD_ON)
+    uint32 u32CoreId = (uint32)Adc_GetCoreID();
+    const uint8 u8ServiceId = ADC_CTU_SET_FIFO_WATERMARK_ID;
+
+    if (Adc_ValidateCtuControlModeApi(u8ServiceId, u32CoreId) == (Std_ReturnType)E_OK)
+    {
+        if(FifoIdx >= ADC_IPW_NUM_CTU_FIFO)
+        {
+            Adc_ReportDetError(u8ServiceId, ADC_E_WRONG_TRIGG_SRC); /* TODO update error code. Add rest of DET checks. */
+        }
+        else
+        {
+#endif /* (ADC_DEV_ERROR_DETECT == STD_ON) */
+            Adc_Ipw_CtuSetFifoWatermark(0u, FifoIdx, u8Watermark);
+#if (ADC_DEV_ERROR_DETECT == STD_ON)
+        }
+    }
+#endif /* (ADC_DEV_ERROR_DETECT == STD_ON) */
+}
+
+/** @implements      Adc_CtuEnableNotification_Activity */
+void Adc_CtuEnableNotification
+(
+    Adc_CtuNotificationType Notification
+)
+{
+#if (ADC_DEV_ERROR_DETECT == STD_ON)
+    uint32 u32CoreId = (uint32)Adc_GetCoreID();
+    const uint8 u8ServiceId = ADC_CTU_ENABLE_NOTIFICATION_ID;
+
+    if (Adc_ValidateCtuControlModeApi(u8ServiceId, u32CoreId) == (Std_ReturnType)E_OK)
+    {
+#endif /* (ADC_DEV_ERROR_DETECT == STD_ON) */
+            Adc_Ipw_CtuEnableNotification(0u, Notification);
+#if (ADC_DEV_ERROR_DETECT == STD_ON)
+    }
+#endif /* (ADC_DEV_ERROR_DETECT == STD_ON) */
+}
+
+/** @implements      Adc_CtuDisableNotification_Activity */
+void Adc_CtuDisableNotification
+(
+    Adc_CtuNotificationType Notification
+)
+{
+#if (ADC_DEV_ERROR_DETECT == STD_ON)
+    uint32 u32CoreId = (uint32)Adc_GetCoreID();
+    const uint8 u8ServiceId = ADC_CTU_DISABLE_NOTIFICATION_ID;
+
+    if (Adc_ValidateCtuControlModeApi(u8ServiceId, u32CoreId) == (Std_ReturnType)E_OK)
+    {
+#endif /* (ADC_DEV_ERROR_DETECT == STD_ON) */
+            Adc_Ipw_CtuDisableNotification(0u, Notification);
+#if (ADC_DEV_ERROR_DETECT == STD_ON)
+    }
+#endif /* (ADC_DEV_ERROR_DETECT == STD_ON) */
+}
+
+/** @implements      Adc_CtuSetList_Activity */
+void Adc_CtuSetList
+(
+    const Adc_CtuListItemType * const ListItemsArray,
+    const uint8 NumItems,
+    const uint8 ListStartPosition
+)
+{
+#if (ADC_DEV_ERROR_DETECT == STD_ON)
+    uint32 u32CoreId = (uint32)Adc_GetCoreID();
+    const uint8 u8ServiceId = ADC_CTU_SET_LIST_ID;
+
+    if (Adc_ValidateCtuControlModeApi(u8ServiceId, u32CoreId) == (Std_ReturnType)E_OK)
+    {
+        if(ListItemsArray == NULL_PTR)
+        {
+            Adc_ReportDetError(u8ServiceId, ADC_E_PARAM_POINTER);
+        }
+        else
+        {
+            if((NumItems >= ADC_IPW_NUM_CTU_LIST_ELEMS) || (ListStartPosition >= ADC_IPW_NUM_CTU_LIST_ELEMS))
+            {
+                Adc_ReportDetError(u8ServiceId, ADC_E_WRONG_TRIGG_SRC);
+            }
+            else
+            {
+#endif /* (ADC_DEV_ERROR_DETECT == STD_ON) */
+               Adc_Ipw_CtuSetList(0u, ListStartPosition, ListItemsArray, NumItems);
+#if (ADC_DEV_ERROR_DETECT == STD_ON)
+            }
+        }
+    }
+#endif /* (ADC_DEV_ERROR_DETECT == STD_ON) */
+}
+
+/** @implements      Adc_CtuSetListPointer_Activity */
+void Adc_CtuSetListPointer
+(
+    Adc_CtuTrigSrcType TrigSource,
+    Adc_CtuListPtrType ListPtr
+)
+{
+#if (ADC_DEV_ERROR_DETECT == STD_ON)
+    uint32 u32CoreId = (uint32)Adc_GetCoreID();
+    const uint8 u8ServiceId = ADC_CTU_SET_LIST_POINTER_ID;
+
+    if (Adc_ValidateCtuControlModeApi(u8ServiceId, u32CoreId) == (Std_ReturnType)E_OK)
+    {
+#endif /* (ADC_DEV_ERROR_DETECT == STD_ON) */
+        Adc_Ipw_CtuSetListPointer(0u, TrigSource, ListPtr);
+#if (ADC_DEV_ERROR_DETECT == STD_ON)
+    }
+#endif /* (ADC_DEV_ERROR_DETECT == STD_ON) */
+}
+#endif /* ADC_ENABLE_CTU_CONTROL_MODE_API == STD_ON */
+
+#if (ADC_ENABLE_TEMPSENSE_API == STD_ON)
+/** @implements      Adc_TempSenseCalculateTemp_Activity */
+uint16 Adc_TempSenseCalculateTemp
+(
+    Adc_HwUnitType Unit,
+    const uint16 TempSenseAdcConvData
+)
+{
+    uint16 TempSenseVal;
+#if (ADC_DEV_ERROR_DETECT == STD_ON)
+    if (TempSenseAdcConvData >= TEMPSENSE_RESOLUTION_12B)
+    {
+        /* The data conversion must be converted to 12bit resolution */
+        Adc_ReportDetError(ADC_TEMPSENSE_CALCULATE_TEMP_ID, ADC_E_PARAM_CONFIG);
+        TempSenseVal = 0u; /* Invalid value */
+    }
+    else
+    {
+#endif /* (ADC_DEV_ERROR_DETECT == STD_ON) */
+        TempSenseVal = Adc_Ipw_TempSenseCalculateTemp(Unit, 0u, TempSenseAdcConvData);
+#if (ADC_DEV_ERROR_DETECT == STD_ON)
+    }
+#endif /* (ADC_DEV_ERROR_DETECT == STD_ON) */
+
+    return TempSenseVal;
+}
+
+/** @implements      Adc_TempSenseGetTemp_Activity */
+Std_ReturnType Adc_TempSenseGetTemp
+(
+    Adc_HwUnitType Unit,
+    uint16 * const TempSenseVal
+)
+{
+    Std_ReturnType RetVal;
+    boolean isGetTempCalled = FALSE;
+    bTempsenseInUsed = TRUE;
+    const volatile uint32 u32CoreId = Adc_GetCoreID();
+#if (ADC_VALIDATE_CALL_AND_UNIT == STD_ON)
+    if ((Std_ReturnType)E_OK == Adc_ValidateCallAndUnit(ADC_TEMPSENSE_GET_TEMP_ID, Unit, u32CoreId))
+    {
+#endif /* ADC_VALIDATE_CALL_AND_UNIT == STD_ON */
+        if ((Std_ReturnType)E_OK == Adc_ValidateNotBusyNoQueue(Unit, ADC_TEMPSENSE_GET_TEMP_ID))
+        {
+            if ((Std_ReturnType)E_OK == Adc_ValidateCheckGroupNotConversion(ADC_TEMPSENSE_GET_TEMP_ID, u32CoreId))
+            {
+                RetVal = Adc_Ipw_TempSenseGetTemp(Unit, 0u, TempSenseVal, u32CoreId);
+                isGetTempCalled = TRUE;
+            }
+        }
+        if (FALSE == isGetTempCalled)
+        {
+            RetVal = (Std_ReturnType)E_NOT_OK;
+        }
+#if (ADC_VALIDATE_CALL_AND_UNIT == STD_ON)
+    }
+    else
+    {
+        RetVal = (Std_ReturnType)E_NOT_OK;
+    }
+#endif /* ADC_VALIDATE_CALL_AND_UNIT == STD_ON */
+    bTempsenseInUsed = FALSE;
+
+    return RetVal;
+}
+
+/** @implements      Adc_TempSenseSetPowerMode_Activity */
+Std_ReturnType Adc_TempSenseSetPowerMode
+(
+    Adc_SetPowerModeType SetPowerMode
+)
+{
+    Std_ReturnType ReturnStatus = (Std_ReturnType)E_OK;
+
+    if (ADC_POWER_DOWN_MODE == SetPowerMode)
+    {
+        if (bTempsenseInUsed == FALSE)
+        {
+            Adc_Ipw_TempSenseDisable(0u);
+        }
+        else
+        {
+            ReturnStatus = (Std_ReturnType)E_NOT_OK;
+        }
+    }
+    else
+    {
+        Adc_Ipw_TempSenseEnable(0u);
+    }
+
+    return ReturnStatus;
+}
+
+#endif /* (ADC_ENABLE_TEMPSENSE_API == STD_ON) */
+
+#define ADC_STOP_SEC_CODE
+#include "Adc_MemMap.h"
+
+#ifdef __cplusplus
+}
+#endif
+
+/** @} */

+ 1351 - 0
RTD/src/Adc_Ip.c

@@ -0,0 +1,1351 @@
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : ADC
+*   Dependencies         : none
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_D2108_ASR_REL_4_4_REV_0000_20210810
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+
+/**
+*   @file
+*
+*   @addtogroup adc_ip Adc IPL
+*   @{
+*/
+
+#include "Adc_Ip.h"
+#include "Adc_Ip_HwAccess.h"
+#include "SchM_Adc.h"
+#include "OsIf.h"
+
+#if (ADC_IP_DEV_ERROR_DETECT == STD_ON)
+#include "Devassert.h"
+#endif /* (ADC_IP_DEV_ERROR_DETECT == STD_ON) */
+
+#if (STD_ON == ADC_IP_ENABLE_USER_MODE_SUPPORT)
+/* USER_MODE_REG_PROT_ENABLED is defined for Base sanity check in RegLockMacros.h */
+#define USER_MODE_REG_PROT_ENABLED      (ADC_IP_ENABLE_USER_MODE_SUPPORT)
+#include "RegLockMacros.h"
+#endif /* (STD_ON == ADC_IP_ENABLE_USER_MODE_SUPPORT) */
+
+/*******************************************************************************
+ *   Source file version information
+ ******************************************************************************/
+#define ADC_IP_VENDOR_ID_C                      43
+#define ADC_IP_AR_RELEASE_MAJOR_VERSION_C       4
+#define ADC_IP_AR_RELEASE_MINOR_VERSION_C       4
+#define ADC_IP_AR_RELEASE_REVISION_VERSION_C    0
+#define ADC_IP_SW_MAJOR_VERSION_C               1
+#define ADC_IP_SW_MINOR_VERSION_C               0
+#define ADC_IP_SW_PATCH_VERSION_C               0
+
+/*******************************************************************************
+ *   File version checks
+ ******************************************************************************/
+/* Check if Adc_Ip.c file and Adc_Ip.h file are of the same vendor */
+#if (ADC_IP_VENDOR_ID_C != ADC_IP_VENDOR_ID_H)
+    #error "Adc_Ip.c and Adc_Ip.h have different vendor ids"
+#endif
+
+/* Check if Adc_Ip.c file and Adc_Ip.h file are of the same Autosar version */
+#if ((ADC_IP_AR_RELEASE_MAJOR_VERSION_C != ADC_IP_AR_RELEASE_MAJOR_VERSION_H) || \
+     (ADC_IP_AR_RELEASE_MINOR_VERSION_C != ADC_IP_AR_RELEASE_MINOR_VERSION_H) || \
+     (ADC_IP_AR_RELEASE_REVISION_VERSION_C != ADC_IP_AR_RELEASE_REVISION_VERSION_H) \
+    )
+    #error "AutoSar Version Numbers of Adc_Ip.c and Adc_Ip.h are different"
+#endif
+
+/* Check if Adc_Ip.c file and Adc_Ip.h file are of the same Software version */
+#if ((ADC_IP_SW_MAJOR_VERSION_C != ADC_IP_SW_MAJOR_VERSION_H) || \
+     (ADC_IP_SW_MINOR_VERSION_C != ADC_IP_SW_MINOR_VERSION_H) || \
+     (ADC_IP_SW_PATCH_VERSION_C != ADC_IP_SW_PATCH_VERSION_H) \
+    )
+  #error "Software Version Numbers of Adc_Ip.c and Adc_Ip.h are different"
+#endif
+
+/* Check if Adc_Ip.c file and Adc_Ip_HwAccess.h file are of the same vendor */
+#if (ADC_IP_VENDOR_ID_C != ADC_IP_VENDOR_ID_HWACCESS_H)
+    #error "Adc_Ip.c and Adc_Ip_HwAccess.h have different vendor ids"
+#endif
+
+/* Check if Adc_Ip.c file and Adc_Ip_HwAccess.h file are of the same Autosar version */
+#if ((ADC_IP_AR_RELEASE_MAJOR_VERSION_C != ADC_IP_AR_RELEASE_MAJOR_VERSION_HWACCESS_H) || \
+     (ADC_IP_AR_RELEASE_MINOR_VERSION_C != ADC_IP_AR_RELEASE_MINOR_VERSION_HWACCESS_H) || \
+     (ADC_IP_AR_RELEASE_REVISION_VERSION_C != ADC_IP_AR_RELEASE_REVISION_VERSION_HWACCESS_H) \
+    )
+    #error "AutoSar Version Numbers of Adc_Ip.c and Adc_Ip_HwAccess.h are different"
+#endif
+
+/* Check if Adc_Ip.c file and Adc_Ip_HwAccess.h file are of the same Software version */
+#if ((ADC_IP_SW_MAJOR_VERSION_C != ADC_IP_SW_MAJOR_VERSION_HWACCESS_H) || \
+     (ADC_IP_SW_MINOR_VERSION_C != ADC_IP_SW_MINOR_VERSION_HWACCESS_H) || \
+     (ADC_IP_SW_PATCH_VERSION_C != ADC_IP_SW_PATCH_VERSION_HWACCESS_H) \
+    )
+  #error "Software Version Numbers of Adc_Ip.c and Adc_Ip_HwAccess.h are different"
+#endif
+
+#ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
+/* Check if Adc_Ip.c file and OsIf.h file are of the same Autosar version */
+#if ((ADC_IP_AR_RELEASE_MAJOR_VERSION_C != OSIF_AR_RELEASE_MAJOR_VERSION) || \
+        (ADC_IP_AR_RELEASE_MINOR_VERSION_C != OSIF_AR_RELEASE_MINOR_VERSION)    \
+    )
+    #error "AutoSar Version Numbers of Adc_Ip.c and OsIf.h are different"
+#endif
+
+#if (STD_ON == ADC_IP_ENABLE_USER_MODE_SUPPORT)
+    /* Checks against RegLockMacros.h */
+    #if ((ADC_IP_AR_RELEASE_MAJOR_VERSION_C != REGLOCKMACROS_AR_RELEASE_MAJOR_VERSION) || \
+         (ADC_IP_AR_RELEASE_MINOR_VERSION_C != REGLOCKMACROS_AR_RELEASE_MINOR_VERSION))
+        #error "AutoSar Version Numbers of Adc_Ip.c and RegLockMacros.h are different"
+    #endif
+#endif /* (STD_ON == ADC_IP_ENABLE_USER_MODE_SUPPORT) */
+
+/* Check if Adc_Ip.c and SchM_Adc.h are of the same Autosar version */
+#if ((ADC_IP_AR_RELEASE_MAJOR_VERSION_C != SCHM_ADC_AR_RELEASE_MAJOR_VERSION) || \
+     (ADC_IP_AR_RELEASE_MINOR_VERSION_C != SCHM_ADC_AR_RELEASE_MINOR_VERSION) \
+    )
+#error "AutoSar Version Numbers of Adc_Ip.c and SchM_Adc.h are different"
+#endif
+
+#if (ADC_IP_DEV_ERROR_DETECT == STD_ON)
+/* Check if Adc_Ip.c and Devassert.h are of the same Autosar version */
+#if ((ADC_IP_AR_RELEASE_MAJOR_VERSION_C != DEVASSERT_AR_RELEASE_MAJOR_VERSION) || \
+     (ADC_IP_AR_RELEASE_MINOR_VERSION_C != DEVASSERT_AR_RELEASE_MINOR_VERSION) \
+    )
+    #error "AutoSar Version Numbers of Adc_Ip.c and Devassert.h are different"
+#endif
+#endif /* (ADC_IP_DEV_ERROR_DETECT == STD_ON) */
+#endif /* DISABLE_MCAL_INTERMODULE_ASR_CHECK */
+
+/*******************************************************************************
+ * Pre-check
+ ******************************************************************************/
+#ifndef MCAL_ENABLE_USER_MODE_SUPPORT
+    #if (STD_ON == ADC_IP_ENABLE_USER_MODE_SUPPORT)
+        #error MCAL_ENABLE_USER_MODE_SUPPORT is not enabled. For running ADC in user mode the MCAL_ENABLE_USER_MODE_SUPPORT needs to be defined
+    #endif /* (STD_ON == ADC_IP_ENABLE_USER_MODE_SUPPORT) */
+#endif /* ifndef MCAL_ENABLE_USER_MODE_SUPPORT */
+
+/*******************************************************************************
+ * Local function prototypes
+ ******************************************************************************/
+#define ADC_START_SEC_CODE
+#include "Adc_MemMap.h"
+
+#if (ADC_IP_SUPPLY_MONITORING_ENABLED == STD_ON)
+static void ADC_SetSupplyMonitoringEnable_TrustedCall(const boolean SupplyEnable);
+static void ADC_SetSupplyMonitoringEnable(const boolean SupplyEnable);
+static void ADC_ConfigSupplyMonitoringChannel_TrustedCall(const uint32 SupplyChannel);
+static void ADC_ConfigSupplyMonitoringChannel(const uint32 SupplyChannel);
+static void ADC_ResetSupplyMonitoringChannel_TrustedCall(void);
+static void ADC_ResetSupplyMonitoringChannel(void);
+#endif /* (ADC_IP_SUPPLY_MONITORING_ENABLED == STD_ON) */
+#if (ADC_IP_ENABLE_SIM_SOURCE_SELECTION == STD_ON)
+static void ADC_SetTriggerSourceSelect_TrustedCall(const uint32 Instance, const uint8 TriggerSource);
+static void ADC_SetTriggerSourceSelect(const uint32 Instance, const uint8 TriggerSource);
+static void ADC_SetPretriggerSourceSelect_TrustedCall(const uint32 Instance, const uint8 PretriggerSource);
+static void ADC_SetPretriggerSourceSelect(const uint32 Instance, const uint8 PretriggerSource);
+static void ADC_SetSoftwarePretrigger_TrustedCall(const uint32 Instance, const uint8 SoftwarePretrigger);
+#endif /* (ADC_IP_ENABLE_SIM_SOURCE_SELECTION == STD_ON) */
+
+#define ADC_STOP_SEC_CODE
+#include "Adc_MemMap.h"
+/*******************************************************************************
+ * Variables
+ ******************************************************************************/
+#define ADC_START_SEC_CONST_UNSPECIFIED
+#include "Adc_MemMap.h"
+
+/* Table of Base addresses for ADC instances. */
+static ADC_Type * const AdcBase[ADC_INSTANCE_COUNT] = IP_ADC_BASE_PTRS;
+
+#define ADC_STOP_SEC_CONST_UNSPECIFIED
+#include "Adc_MemMap.h"
+
+#define ADC_START_SEC_VAR_CLEARED_UNSPECIFIED
+#include "Adc_MemMap.h"
+/* Global state structure */
+static Adc_Ip_StateStructType AdcIpState[ADC_INSTANCE_COUNT];
+
+#define ADC_STOP_SEC_VAR_CLEARED_UNSPECIFIED
+#include "Adc_MemMap.h"
+
+#define ADC_START_SEC_CODE
+#include "Adc_MemMap.h"
+
+/*FUNCTION**********************************************************************
+*
+* Function Name : Adc_DoCalibration_SetParams
+* Description   : This function configures averaging, sample time, input clock and trigger
+* mode for Adc_Ip_DoCalibration service.
+*
+* END**************************************************************************/
+static inline void Adc_DoCalibration_SetParams(ADC_Type * const Base, const Adc_Ip_ClockConfigType * const Config, const Adc_Ip_TrigType TriggerMode);
+
+static inline void Adc_DoCalibration_SetParams(ADC_Type * const Base, const Adc_Ip_ClockConfigType * const Config, const Adc_Ip_TrigType TriggerMode)
+{
+    /* Configure averaging */
+    SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_29();
+    Adc_HwAcc_SetAveraging(Base, Config->AvgEn, Config->AvgSel);
+    SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_29();
+
+    /* Configure trigger mode */
+    SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_24();
+    Adc_HwAcc_SetTriggerMode(Base, TriggerMode);
+    SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_24();
+
+    /* Configure sample time */
+    SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_15();
+    Adc_HwAcc_SetSampleTime(Base, Config->SampleTime);
+    SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_15();
+
+    /* Configure input clock */
+    SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_13();
+    Adc_HwAcc_SetClock(Base, Config->ClockDivide, Config->InputClock);
+    SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_13();
+}
+
+/*FUNCTION**********************************************************************
+*
+* Function Name : Adc_Ip_Init
+* Description   : This function initializes the ADC module by configuring all
+* available features.
+*
+* @implements     Adc_Ip_Init_Activity
+* END**************************************************************************/
+void Adc_Ip_Init(const uint32 Instance, const Adc_Ip_ConfigType * const Config)
+{
+#if (ADC_IP_DEV_ERROR_DETECT == STD_ON)
+    DevAssert(Instance < ADC_INSTANCE_COUNT);
+    DevAssert(Config != NULL_PTR);
+    DevAssert(Config->NumChannels <= ADC_MAX_CHAN_COUNT);
+#endif /* (ADC_IP_DEV_ERROR_DETECT == STD_ON) */
+
+    ADC_Type * const Base = AdcBase[Instance];
+    uint32 SC2Reg = 0u;
+    uint32 SC2ClearMask = 0u;
+    uint8 Index;
+
+    Adc_HwAcc_SetClock(Base, Config->ClockDivide, Config->InputClock);
+    Adc_HwAcc_SetSampleTime(Base, Config->SampleTime);
+    Adc_HwAcc_SetAveraging(Base, Config->AvgEn, Config->AvgSel);
+
+    Adc_Ip_SetResolution(Instance, Config->Resolution);
+
+#if (ADC_IP_ENABLE_SIM_SOURCE_SELECTION == STD_ON)
+    ADC_SetTriggerSourceSelect(Instance, Config->TriggerSel);
+    ADC_SetPretriggerSourceSelect(Instance, Config->PretriggerSel);
+#endif /* (ADC_IP_ENABLE_SIM_SOURCE_SELECTION == STD_ON) */
+
+#if (ADC_IP_SUPPLY_MONITORING_ENABLED == STD_ON)
+    if (Instance == 0U)
+    {
+        ADC_SetSupplyMonitoringEnable(Config->SupplyMonitoringEnable);
+    }
+#endif /* (ADC_IP_SUPPLY_MONITORING_ENABLED == STD_ON) */
+
+    /* Configure trigger mode */
+    SC2ClearMask |= ADC_SC2_ADTRG_MASK;
+    SC2Reg |= ADC_SC2_ADTRG(Config->TriggerMode);
+
+    /* Configure DMA enable */
+    if (Config->DmaEnable)
+    {
+        SC2Reg |= ADC_SC2_DMAEN_MASK;
+    }
+    else
+    {
+        SC2ClearMask |= ADC_SC2_DMAEN_MASK;
+    }
+
+    /* Configure voltage reference selector */
+    SC2ClearMask |= ADC_SC2_REFSEL_MASK;
+    SC2Reg |= ADC_SC2_REFSEL(Config->VoltageRef);
+
+    /* Configure compare enables and values */
+    SC2ClearMask |= ADC_SC2_ACFE_MASK | ADC_SC2_ACFGT_MASK | ADC_SC2_ACREN_MASK;
+    SC2Reg |= ADC_SC2_ACFE(Config->CompareEnable ? 1u : 0u);
+    SC2Reg |= ADC_SC2_ACFGT(Config->CompareGreaterThanEnable ? 1u : 0u);
+    SC2Reg |= ADC_SC2_ACREN(Config->CompareRangeFuncEnable ? 1u : 0u);
+    Base->CV[0u] = ADC_CV_CV(Config->CompVal1);
+    Base->CV[1u] = ADC_CV_CV(Config->CompVal2);
+
+    Adc_HwAcc_SetSC2Reg(Base, SC2ClearMask, SC2Reg);
+
+    Adc_HwAcc_SetUserGainAndOffset(Base, Config->UsrGain, Config->UsrOffset);
+
+    Adc_Ip_SetContinuousMode(Instance, Config->ContinuousConvEnable);
+
+    if (Config->ChannelConfigs != NULL_PTR)
+    {
+        for (Index = 0u; Index < Config->NumChannels; Index++)
+        {
+            Adc_Ip_ConfigChannel(Instance, &(Config->ChannelConfigs[Index]));
+        }
+    }
+
+    AdcIpState[Instance].ConversionCompleteNotification = Config->ConversionCompleteNotification;
+    AdcIpState[Instance].CalibrationClockDivide = Config->CalibrationClockDivide;
+    AdcIpState[Instance].Init = TRUE;
+#if (ADC_IP_ENABLE_SIM_SOURCE_SELECTION == STD_ON)
+    AdcIpState[Instance].PretriggerSel = Config->PretriggerSel;
+#endif /* (ADC_IP_ENABLE_SIM_SOURCE_SELECTION == STD_ON) */
+}
+
+/*FUNCTION**********************************************************************
+*
+* Function Name : Adc_Ip_DeInit
+* Description   : This function resets the ADC internal registers to default values.
+*
+* @implements     Adc_Ip_Deinit_Activity
+* END**************************************************************************/
+void Adc_Ip_DeInit(const uint32 Instance)
+{
+#if (ADC_IP_DEV_ERROR_DETECT == STD_ON)
+    DevAssert(Instance < ADC_INSTANCE_COUNT);
+#endif /* (ADC_IP_DEV_ERROR_DETECT == STD_ON) */
+
+    Adc_Ip_ConfigType DefaultConfig;
+    Adc_Ip_ChanConfigType ChannelConfigs[ADC_MAX_CHAN_COUNT];
+    uint8 Index;
+
+    DefaultConfig.ClockDivide = ADC_IP_CLK_FULL_BUS;
+    DefaultConfig.CalibrationClockDivide = ADC_IP_CLK_EIGHTH_BUS;
+    DefaultConfig.InputClock = ADC_IP_CLK_ALT_1;
+    DefaultConfig.SampleTime = ADC_IP_DEFAULT_SAMPLE_TIME;
+    DefaultConfig.AvgEn = FALSE;
+    DefaultConfig.AvgSel = ADC_IP_AVG_4_CONV;
+    DefaultConfig.Resolution = ADC_IP_RESOLUTION_8BIT;
+    DefaultConfig.TriggerMode = ADC_IP_TRIGGER_SOFTWARE;
+#if (ADC_IP_ENABLE_SIM_SOURCE_SELECTION == STD_ON)
+    DefaultConfig.PretriggerSel = ADC_IP_PRETRIGGER_SEL_PDB;
+    DefaultConfig.TriggerSel = ADC_IP_TRIGGER_SEL_PDB;
+#endif /* (ADC_IP_ENABLE_SIM_SOURCE_SELECTION == STD_ON) */
+    DefaultConfig.DmaEnable = FALSE;
+    DefaultConfig.VoltageRef = ADC_IP_VOLTAGEREF_VREF;
+    DefaultConfig.ContinuousConvEnable = FALSE;
+#if (ADC_IP_SUPPLY_MONITORING_ENABLED == STD_ON)
+    DefaultConfig.SupplyMonitoringEnable = FALSE;
+#endif /* (ADC_IP_SUPPLY_MONITORING_ENABLED == STD_ON) */
+    DefaultConfig.CompareEnable = FALSE;
+    DefaultConfig.CompareGreaterThanEnable = FALSE;
+    DefaultConfig.CompareRangeFuncEnable = FALSE;
+    DefaultConfig.CompVal1 = 0u;
+    DefaultConfig.CompVal2 = 0u;
+    DefaultConfig.UsrGain = ADC_IP_DEFAULT_USER_GAIN;
+    DefaultConfig.UsrOffset = 0u;
+    DefaultConfig.NumChannels = ADC_MAX_CHAN_COUNT;
+    for (Index = 0u; Index < ADC_MAX_CHAN_COUNT; Index++)
+    {
+        ChannelConfigs[Index].ChnIdx = Index;
+        ChannelConfigs[Index].Channel = ADC_IP_INPUTCHAN_DISABLED;
+        ChannelConfigs[Index].InterruptEnable = FALSE;
+    }
+    DefaultConfig.ChannelConfigs = ChannelConfigs;
+    DefaultConfig.ConversionCompleteNotification = NULL_PTR;
+
+    Adc_Ip_Init(Instance, &DefaultConfig);
+#if (ADC_IP_SUPPLY_MONITORING_ENABLED == STD_ON)
+    if (Instance == 0U)
+    {
+        ADC_ResetSupplyMonitoringChannel();
+    }
+#endif /* (ADC_IP_SUPPLY_MONITORING_ENABLED == STD_ON) */
+
+    AdcIpState[Instance].Init = FALSE;
+}
+
+/*FUNCTION**********************************************************************
+*
+* Function Name : Adc_Ip_SetAveraging
+* Description   : This function enables averaging and selects the number of 
+* conversions to average.
+* The mask parameter should be set using the Adc_Ip_AvgSelectType enum elements
+* that have the pattern ADC_IP_AVG_... e.g. ADC_IP_AVG_4_CONV.
+*
+* @implements     Adc_Ip_SetAveraging_Activity
+* END**************************************************************************/
+void Adc_Ip_SetAveraging(const uint32 Instance, const boolean AvgEn, const Adc_Ip_AvgSelectType AvgSel)
+{
+#if (ADC_IP_DEV_ERROR_DETECT == STD_ON)
+    DevAssert(Instance < ADC_INSTANCE_COUNT);
+#endif /* (ADC_IP_DEV_ERROR_DETECT == STD_ON) */
+
+    ADC_Type * const Base = AdcBase[Instance];
+
+    SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_27();
+    Adc_HwAcc_SetAveraging(Base, AvgEn, AvgSel);
+    SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_27();
+}
+
+/*FUNCTION**********************************************************************
+*
+* Function Name : Adc_Ip_SetSampleTime
+* Description   : This function sets the sample time for selected ADC instance.
+*
+* @implements     Adc_Ip_SetSampleTime_Activity
+* END**************************************************************************/
+void Adc_Ip_SetSampleTime(const uint32 Instance, const uint8 SampleTime)
+{
+#if (ADC_IP_DEV_ERROR_DETECT == STD_ON)
+    DevAssert(Instance < ADC_INSTANCE_COUNT);
+#endif /* (ADC_IP_DEV_ERROR_DETECT == STD_ON) */
+
+    ADC_Type * const Base = AdcBase[Instance];
+
+    SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_16();
+    Adc_HwAcc_SetSampleTime(Base, SampleTime);
+    SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_16();
+}
+
+/*FUNCTION**********************************************************************
+*
+* Function Name : Adc_Ip_EnableDma
+* Description   : This function enables DMA.
+*
+* @implements     Adc_Ip_EnableDma_Activity
+* END**************************************************************************/
+void Adc_Ip_EnableDma(const uint32 Instance)
+{
+#if (ADC_IP_DEV_ERROR_DETECT == STD_ON)
+    DevAssert(Instance < ADC_INSTANCE_COUNT);
+#endif /* (ADC_IP_DEV_ERROR_DETECT == STD_ON) */
+
+    ADC_Type * const Base = AdcBase[Instance];
+
+    SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_26();
+    Base->SC2 |= ADC_SC2_DMAEN_MASK;
+    SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_26();
+}
+
+/*FUNCTION**********************************************************************
+*
+* Function Name : Adc_Ip_DisableDma
+* Description   : This function disables DMA.
+*
+* @implements     Adc_Ip_DisableDma_Activity
+* END**************************************************************************/
+void Adc_Ip_DisableDma(const uint32 Instance)
+{
+#if (ADC_IP_DEV_ERROR_DETECT == STD_ON)
+    DevAssert(Instance < ADC_INSTANCE_COUNT);
+#endif /* (ADC_IP_DEV_ERROR_DETECT == STD_ON) */
+
+    ADC_Type * const Base = AdcBase[Instance];
+    
+    SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_22();
+    Base->SC2 &= ~(ADC_SC2_DMAEN_MASK);
+    SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_22();
+}
+
+/*FUNCTION**********************************************************************
+*
+* Function Name : Adc_Ip_SetTriggerMode
+* Description   : This function enables either hardware or software trigger.
+*
+* @implements     Adc_Ip_SetTriggerMode_Activity
+* END**************************************************************************/
+void Adc_Ip_SetTriggerMode(const uint32 Instance, const Adc_Ip_TrigType TriggerMode)
+{
+#if (ADC_IP_DEV_ERROR_DETECT == STD_ON)
+    DevAssert(Instance < ADC_INSTANCE_COUNT);
+#endif /* (ADC_IP_DEV_ERROR_DETECT == STD_ON) */
+
+    ADC_Type * const Base = AdcBase[Instance];
+
+    SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_23();
+    Adc_HwAcc_SetTriggerMode(Base, TriggerMode);
+    SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_23();
+}
+
+/*FUNCTION**********************************************************************
+*
+* Function Name : Adc_Ip_SetContinuousMode
+* Description   : This function switches between ADC continuous conversion mode 
+* and one shot mode.
+*
+* @implements     Adc_Ip_SetContinuousMode_Activity
+* END**************************************************************************/
+void Adc_Ip_SetContinuousMode(const uint32 Instance, const boolean ContinuousModeEnable)
+{
+#if (ADC_IP_DEV_ERROR_DETECT == STD_ON)
+    DevAssert(Instance < ADC_INSTANCE_COUNT);
+#endif /* (ADC_IP_DEV_ERROR_DETECT == STD_ON) */
+
+    ADC_Type * const Base = AdcBase[Instance];
+
+    SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_30();
+    uint32 Sc3Reg = Base->SC3;
+    Sc3Reg &= ~(ADC_SC3_ADCO_MASK);
+    Sc3Reg |= ADC_SC3_ADCO(ContinuousModeEnable ? 1u : 0u);
+    Base->SC3 = Sc3Reg;
+    SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_30();
+}
+
+/*FUNCTION**********************************************************************
+*
+* Function Name : Adc_Ip_SetResolution
+* Description   : This function sets ADC module resolution.
+*
+* @implements     Adc_Ip_SetResolution_Activity
+* END**************************************************************************/
+void Adc_Ip_SetResolution(const uint32 Instance, const Adc_Ip_ResolutionType Resolution)
+{
+#if (ADC_IP_DEV_ERROR_DETECT == STD_ON)
+    DevAssert(Instance < ADC_INSTANCE_COUNT);
+#endif /* (ADC_IP_DEV_ERROR_DETECT == STD_ON) */
+
+    ADC_Type * const Base = AdcBase[Instance];
+
+    SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_10();
+    uint32 Cfg1Reg = Base->CFG1;
+    Cfg1Reg &= ~(ADC_CFG1_MODE_MASK);
+    Cfg1Reg |= ADC_CFG1_MODE(Resolution);
+    Base->CFG1 = Cfg1Reg;
+    SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_10();
+}
+
+/*FUNCTION**********************************************************************
+*
+* Function Name : Adc_Ip_SetClockMode
+* Description   : This function initializes the ADC clock configuration.
+*
+* @implements     Adc_Ip_SetClockMode_Activity
+* END**************************************************************************/
+void Adc_Ip_SetClockMode(const uint32 Instance, const Adc_Ip_ClockConfigType * const Config)
+{
+#if (ADC_IP_DEV_ERROR_DETECT == STD_ON)
+    DevAssert(Instance < ADC_INSTANCE_COUNT);
+    DevAssert(Config != NULL_PTR);
+#endif /* (ADC_IP_DEV_ERROR_DETECT == STD_ON) */
+
+    ADC_Type * const Base = AdcBase[Instance];
+
+    SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_11();
+    Adc_HwAcc_SetClock(Base, Config->ClockDivide, Config->InputClock);
+    SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_11();
+
+    SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_14();
+    Adc_HwAcc_SetSampleTime(Base, Config->SampleTime);
+    SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_14();
+
+    SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_28();
+    Adc_HwAcc_SetAveraging(Base, Config->AvgEn, Config->AvgSel);
+    SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_28();
+}
+
+/*FUNCTION**********************************************************************
+*
+* Function Name : Adc_Ip_ConfigChannel
+* Description   : Configures the selected control channel with the given
+* configuration structure.
+*
+* When Software Trigger mode is enabled, configuring control channel index 0,
+* implicitly triggers a new conversion on the selected ADC input channel.
+* Therefore, Adc_Ip_ConfigChannel can be used for sw-triggering conversions.
+*
+* Configuring any control channel while it is actively controlling a conversion
+* (sw or hw triggered) will implicitly abort the on-going conversion.
+*
+* @implements     Adc_Ip_ConfigChannel_Activity
+* END**************************************************************************/
+void Adc_Ip_ConfigChannel(const uint32 Instance, const Adc_Ip_ChanConfigType * const ChanConfig)
+{
+#if (ADC_IP_DEV_ERROR_DETECT == STD_ON)
+    DevAssert(Instance < ADC_INSTANCE_COUNT);
+    DevAssert(ChanConfig != NULL_PTR);
+#if (ADC_IP_SUPPLY_MONITORING_ENABLED == STD_ON)
+    DevAssert((Instance == 0u) || ((uint32)ChanConfig->Channel < (uint32)ADC_IP_INPUTCHAN_SUPPLY_VDD));
+#endif /* (ADC_IP_SUPPLY_MONITORING_ENABLED == STD_ON) */
+#endif /* (ADC_IP_DEV_ERROR_DETECT == STD_ON) */
+
+    ADC_Type * const Base = AdcBase[Instance];
+    Adc_Ip_InputChannelType InputChanDemapped;
+
+#if (ADC_IP_SUPPLY_MONITORING_ENABLED == STD_ON)
+    /* Internal supply monitor channels need special configuration */
+    if (ChanConfig->Channel >= ADC_IP_INPUTCHAN_SUPPLY_VDD)
+    {
+        /* De-map ADC_IP_INPUTCHAN_SUPPLY_ into actual index. */
+        const uint32 SupplyChannel = (uint32)ChanConfig->Channel - (uint32)ADC_IP_INPUTCHAN_SUPPLY_VDD;
+        ADC_ConfigSupplyMonitoringChannel(SupplyChannel);
+        /* Supply monitor channels are measured on ADC internal input channel 0 */
+        InputChanDemapped = ADC_IP_INPUTCHAN_INT0;
+    }
+    else
+#endif /* (ADC_IP_SUPPLY_MONITORING_ENABLED == STD_ON) */
+    {
+        InputChanDemapped = ChanConfig->Channel;
+    }
+
+    SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_21();
+    Adc_HwAcc_SetChannel(Base, ChanConfig->ChnIdx, InputChanDemapped, ChanConfig->InterruptEnable);
+    SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_21();
+
+    /* Also update in state structure */
+    AdcIpState[Instance].ChannelConfig[ChanConfig->ChnIdx] = ChanConfig->Channel;
+}
+
+/*FUNCTION**********************************************************************
+*
+* Function Name : Adc_Ip_SetDisabledChannel
+* Description   : This function sets the input channel of the selected control 
+* channel to ADC_IP_INPUTCHAN_DISABLED. If WithTimeout is TRUE then the 
+* function will also wait for the register to be updated.
+* Note: the control channel index is the numeric index of SC1x 
+* (e.g. SC1A has index 0), not the input channel.
+*
+* @implements     Adc_Ip_SetDisabledChannel_Activity
+* END**************************************************************************/
+Adc_Ip_StatusType Adc_Ip_SetDisabledChannel(const uint32 Instance, const uint8 ControlChanIdx, const boolean WithTimeout)
+{
+#if (ADC_IP_DEV_ERROR_DETECT == STD_ON)
+    DevAssert(Instance < ADC_INSTANCE_COUNT);
+    DevAssert(ControlChanIdx < ADC_MAX_CHAN_COUNT);
+#endif /* (ADC_IP_DEV_ERROR_DETECT == STD_ON) */
+
+    ADC_Type * const Base = AdcBase[Instance];
+    Adc_Ip_StatusType Status = ADC_IP_STATUS_SUCCESS;
+    uint32 TimeoutTicks = OsIf_MicrosToTicks(ADC_IP_TIMEOUT_VAL, ADC_IP_TIMEOUT_TYPE);
+    uint32 CurrentTicks = OsIf_GetCounter(ADC_IP_TIMEOUT_TYPE);
+    uint32 ElapsedTicks = 0u;
+
+    SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_17();
+    /* Set input channel select to disabled */
+    SC1(Base, ControlChanIdx) |= ADC_SC1_ADCH_MASK;
+    SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_17();
+
+    if (WithTimeout == TRUE)
+    {
+        while (((SC1(Base, ControlChanIdx) & ADC_SC1_ADCH_MASK) != ADC_SC1_ADCH_MASK) && (ElapsedTicks < TimeoutTicks))
+        {
+            ElapsedTicks += OsIf_GetElapsed(&CurrentTicks, ADC_IP_TIMEOUT_TYPE);
+        }
+        if (ElapsedTicks >= TimeoutTicks)
+        {
+            Status = ADC_IP_STATUS_TIMEOUT;
+        }
+    }
+
+    return Status;
+}
+
+/*FUNCTION**********************************************************************
+*
+* Function Name : Adc_Ip_StartConversion
+* Description   : This function starts a software conversion on the selected 
+* input channel by writing the given values to the SC1A register.
+* The result can be read with Adc_Ip_GetConvData with index 0.
+* Note: hardware configuration on the control channel with index 0 will be 
+* overwritten.
+* Note: this will not work if hardware triggered mode is selected.
+*
+* @implements     Adc_Ip_StartConversion_Activity
+* END**************************************************************************/
+void Adc_Ip_StartConversion(const uint32 Instance, Adc_Ip_InputChannelType InputChannel, const boolean InterruptEnable)
+{
+#if (ADC_IP_DEV_ERROR_DETECT == STD_ON)
+    DevAssert(Instance < ADC_INSTANCE_COUNT);
+#endif /* (ADC_IP_DEV_ERROR_DETECT == STD_ON) */
+
+    ADC_Type * const Base = AdcBase[Instance];
+
+    SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_18();
+    /* Configure SC1A register */
+    Adc_HwAcc_SetChannel(Base, 0u, InputChannel, InterruptEnable);
+    SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_18();
+}
+
+/*FUNCTION**********************************************************************
+*
+* Function Name : Adc_Ip_GetConvActiveFlag
+* Description   : Reads and return conversion active flag status.
+*
+* @implements     Adc_Ip_GetConvActiveFlag_Activity
+* END**************************************************************************/
+boolean Adc_Ip_GetConvActiveFlag(const uint32 Instance)
+{
+#if (ADC_IP_DEV_ERROR_DETECT == STD_ON)
+    DevAssert(Instance < ADC_INSTANCE_COUNT);
+#endif /* (ADC_IP_DEV_ERROR_DETECT == STD_ON) */
+
+    const ADC_Type * const Base = AdcBase[Instance];
+    uint32 Sc2Reg = Base->SC2;
+
+    Sc2Reg = (Sc2Reg & ADC_SC2_ADACT_MASK) >> ADC_SC2_ADACT_SHIFT;
+
+    return (Sc2Reg != 0u) ? TRUE : FALSE;
+}
+
+/*FUNCTION**********************************************************************
+*
+* Function Name : Adc_Ip_GetChanInterrupt
+* Description   :  This function checks and returns if the selected control 
+* channel has the interrupt flag set.
+*
+* @implements     Adc_Ip_GetChanInterrupt_Activity
+* END**************************************************************************/
+boolean Adc_Ip_GetChanInterrupt(const uint32 Instance, const uint8 ControlChanIdx)
+{
+#if (ADC_IP_DEV_ERROR_DETECT == STD_ON)
+    DevAssert(Instance < ADC_INSTANCE_COUNT);
+    DevAssert(ControlChanIdx < ADC_MAX_CHAN_COUNT);
+#endif /* (ADC_IP_DEV_ERROR_DETECT == STD_ON) */
+
+    const ADC_Type * const Base = AdcBase[Instance];
+    const uint32 Sc1Reg = SC1(Base, ControlChanIdx);
+
+    return Adc_HwAcc_GetAIEN(Sc1Reg);
+}
+
+/*FUNCTION**********************************************************************
+*
+* Function Name : Adc_Ip_GetConvCompleteFlag
+* Description   :  This function returns the value of the conversion 
+* complete(COCO) flag of a given channel.
+*
+* @implements     Adc_Ip_GetConvCompleteFlag_Activity
+* END**************************************************************************/
+boolean Adc_Ip_GetConvCompleteFlag(const uint32 Instance, const uint8 ControlChanIdx)
+{
+#if (ADC_IP_DEV_ERROR_DETECT == STD_ON)
+    DevAssert(Instance < ADC_INSTANCE_COUNT);
+    DevAssert(ControlChanIdx < ADC_MAX_CHAN_COUNT);
+#endif /* (ADC_IP_DEV_ERROR_DETECT == STD_ON) */
+
+    const ADC_Type * const Base = AdcBase[Instance];
+    const uint32 Sc1Reg = SC1(Base, ControlChanIdx);
+
+    return Adc_HwAcc_GetCOCO(Sc1Reg);
+}
+
+/*FUNCTION**********************************************************************
+*
+* Function Name : Adc_Ip_GetConvData
+* Description   : This function retrieves the last conversion result for the 
+* selected control channel. This function does no validity check on the result. 
+* In order to check if the result is valid, the user must call 
+* Adc_Ip_GetConvCompleteFlag function before this one.
+*
+* @implements     Adc_Ip_GetConvData_Activity
+* END**************************************************************************/
+uint16 Adc_Ip_GetConvData(const uint32 Instance, const uint8 ControlChanIdx)
+{
+#if (ADC_IP_DEV_ERROR_DETECT == STD_ON)
+    DevAssert(Instance < ADC_INSTANCE_COUNT);
+    DevAssert(ControlChanIdx < ADC_MAX_CHAN_COUNT);
+#endif /* (ADC_IP_DEV_ERROR_DETECT == STD_ON) */
+
+    const ADC_Type * const Base = AdcBase[Instance];
+
+    return Adc_HwAcc_GetData(Base, ControlChanIdx);
+}
+
+/*FUNCTION**********************************************************************
+*
+* Function Name : Adc_Ip_DoCalibration
+* Description   : This function performs a calibration of the ADC. The input
+* clock frequency for calibration must be less than or equal to half of the maximum
+* specified frequency (50Mhz) and greater than minimum specified frequency (20Mhz).
+*
+* @implements     Adc_Ip_DoCalibration_Activity
+* END**************************************************************************/
+Adc_Ip_StatusType Adc_Ip_DoCalibration(const uint32 Instance)
+{
+#if (ADC_IP_DEV_ERROR_DETECT == STD_ON)
+    DevAssert(Instance < ADC_INSTANCE_COUNT);
+#endif /* (ADC_IP_DEV_ERROR_DETECT == STD_ON) */
+
+    ADC_Type * const Base = AdcBase[Instance];
+    Adc_Ip_StatusType Status = ADC_IP_STATUS_SUCCESS;
+    Adc_Ip_TrigType TriggerMode;
+    uint32 TimeoutTicks = OsIf_MicrosToTicks(ADC_IP_TIMEOUT_VAL, ADC_IP_TIMEOUT_TYPE);
+    uint32 CurrentTicks = OsIf_GetCounter(ADC_IP_TIMEOUT_TYPE);
+    uint32 ElapsedTicks = 0u;
+    uint32 Reg;
+    Adc_Ip_ClockConfigType PreClockConfig;
+    Adc_Ip_ClockConfigType CalClockConfig;
+
+    /* Store settings before calibration */
+    Reg = Base->SC3;
+    PreClockConfig.AvgEn = ((Reg & ADC_SC3_AVGE_MASK) != 0u) ? TRUE : FALSE;
+    PreClockConfig.AvgSel = Adc_HwAcc_GetAverageSelect(Reg);
+
+    Reg = Base->CFG2;
+    PreClockConfig.SampleTime = (uint8) ((Reg & ADC_CFG2_SMPLTS_MASK) >> ADC_CFG2_SMPLTS_SHIFT);
+    TriggerMode = Adc_HwAcc_GetTriggerMode(Base->SC2);
+
+    Reg = Base->CFG1;
+    PreClockConfig.ClockDivide = Adc_HwAcc_GetClockDivide(Reg);
+    PreClockConfig.InputClock = Adc_HwAcc_GetInputClock(Reg);
+
+    CalClockConfig.AvgEn = TRUE;
+    CalClockConfig.AvgSel = ADC_IP_AVG_32_CONV;
+    CalClockConfig.SampleTime = ADC_IP_DEFAULT_SAMPLE_TIME;
+    CalClockConfig.ClockDivide = AdcIpState[Instance].CalibrationClockDivide;
+    CalClockConfig.InputClock = PreClockConfig.InputClock;
+
+    /* Prepare required settings for calibration. */
+    Adc_DoCalibration_SetParams(Base, &CalClockConfig, ADC_IP_TRIGGER_SOFTWARE);
+
+    Base->CLPS = 0u;
+    Base->CLP3 = 0u;
+    Base->CLP2 = 0u;
+    Base->CLP1 = 0u;
+    Base->CLP0 = 0u;
+    Base->CLPX = 0u;
+    Base->CLP9 = 0u;
+
+    /* Start calibration by writing to the calibration field */
+    SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_29();
+    Reg = Base->SC3;
+    Reg &= ~(ADC_SC3_CAL_MASK);
+    Reg |= ADC_SC3_CAL(1u);
+    Base->SC3 = Reg;
+    SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_29();
+
+    /* Wait for the calibration to finish */
+    while (((Base->SC3 & ADC_SC3_CAL_MASK) != 0u) && (ElapsedTicks < TimeoutTicks))
+    {
+        ElapsedTicks += OsIf_GetElapsed(&CurrentTicks, ADC_IP_TIMEOUT_TYPE);
+    }
+    if (ElapsedTicks >= TimeoutTicks)
+    {
+        Status = ADC_IP_STATUS_TIMEOUT;
+    }
+
+    /* Revert settings as same as before calibration. */
+    Adc_DoCalibration_SetParams(Base, &PreClockConfig, TriggerMode);
+
+    /* Clear COCO flag */
+    (void) R(Base, 0u);
+
+    return Status;
+}
+
+/*FUNCTION**********************************************************************
+*
+* Function Name : Adc_Ip_ClearLatchedTriggers
+* Description   : This function clears all trigger latched flags of the ADC instance.
+* This function must be called after the hardware trigger source for the ADC 
+* has been deactivated.
+*
+* @implements     Adc_Ip_ClearLatchedTriggers_Activity
+* END**************************************************************************/
+Adc_Ip_StatusType Adc_Ip_ClearLatchedTriggers(const uint32 Instance)
+{
+#if (ADC_IP_DEV_ERROR_DETECT == STD_ON)
+    DevAssert(Instance < ADC_INSTANCE_COUNT);
+    DevAssert(Instance != 0u);
+#endif /* (ADC_IP_DEV_ERROR_DETECT == STD_ON) */
+
+    ADC_Type * const Base = AdcBase[Instance];
+    Adc_Ip_StatusType Status = ADC_IP_STATUS_SUCCESS;
+    uint32 TimeoutTicks = OsIf_MicrosToTicks(ADC_IP_TIMEOUT_VAL, ADC_IP_TIMEOUT_TYPE);
+    uint32 CurrentTicks = OsIf_GetCounter(ADC_IP_TIMEOUT_TYPE);
+    uint32 ElapsedTicks = 0u;
+
+    SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_12();
+    /* Write bit to clear latched triggers */
+    Base->CFG1 |= ADC_CFG1_CLRLTRG(0x01u);
+    SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_12();
+
+    /* Wait for latched triggers to be cleared */
+    while (((Base->SC2 & ADC_SC2_TRGSTLAT_MASK) != 0u) && (ElapsedTicks < TimeoutTicks))
+    {
+        ElapsedTicks += OsIf_GetElapsed(&CurrentTicks, ADC_IP_TIMEOUT_TYPE);
+    }
+    if (ElapsedTicks >= TimeoutTicks)
+    {
+        Status = ADC_IP_STATUS_TIMEOUT;
+    }
+
+    return Status;
+}
+
+/*FUNCTION**********************************************************************
+*
+* Function Name : Adc_Ip_EnableChannelNotification
+* Description   : This function enables the notification for the selected channel.
+* Note          : It's required to read result data in user notification in order to clear the COCO flags and avoid ISR getting invoked repeatedly
+*
+* @implements     Adc_Ip_EnableChannelNotification_Activity
+* END**************************************************************************/
+void Adc_Ip_EnableChannelNotification(const uint32 Instance, const uint8 ControlChanIdx)
+{
+#if (ADC_IP_DEV_ERROR_DETECT == STD_ON)
+    DevAssert(Instance < ADC_INSTANCE_COUNT);
+    DevAssert(ControlChanIdx < ADC_MAX_CHAN_COUNT);
+#endif /* (ADC_IP_DEV_ERROR_DETECT == STD_ON) */
+
+    ADC_Type * const Base = AdcBase[Instance];
+
+    SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_19();
+    SC1(Base, ControlChanIdx) |= ADC_SC1_AIEN_MASK;
+    SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_19();
+}
+
+/*FUNCTION**********************************************************************
+*
+* Function Name : Adc_Ip_DisableChannelNotification
+* Description   : This function disables the notification for the selected channel.
+*
+* @implements     Adc_Ip_DisableChannelNotification_Activity
+* END**************************************************************************/
+void Adc_Ip_DisableChannelNotification(const uint32 Instance, const uint8 ControlChanIdx)
+{
+#if (ADC_IP_DEV_ERROR_DETECT == STD_ON)
+    DevAssert(Instance < ADC_INSTANCE_COUNT);
+    DevAssert(ControlChanIdx < ADC_MAX_CHAN_COUNT);
+#endif /* (ADC_IP_DEV_ERROR_DETECT == STD_ON) */
+
+    ADC_Type * const Base = AdcBase[Instance];
+    
+    SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_20();
+    SC1(Base, ControlChanIdx) &= ~(ADC_SC1_AIEN_MASK);
+    SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_20();
+}
+
+/*FUNCTION**********************************************************************
+*
+* Function Name : Adc_Ip_ClearTrigErrReg
+* Description   : This function clears all trigger error flags of the ADC instance.
+*
+* @implements     Adc_Ip_ClearTrigErrReg_Activity
+* END**************************************************************************/
+void Adc_Ip_ClearTrigErrReg(const uint32 Instance)
+{
+#if (ADC_IP_DEV_ERROR_DETECT == STD_ON)
+    DevAssert(Instance < ADC_INSTANCE_COUNT);
+    DevAssert(Instance != 0u);
+#endif /* (ADC_IP_DEV_ERROR_DETECT == STD_ON) */
+
+    ADC_Type * const Base = AdcBase[Instance];
+    
+    SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_25();
+    Base->SC2 |= ADC_SC2_TRGSTERR_MASK;
+    SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_25();
+}
+
+/*FUNCTION**********************************************************************
+*
+* Function Name : Adc_Ip_GetTrigErrReg
+* Description   : This function returns all trigger error flags of the ADC instance.
+*
+* @implements     Adc_Ip_GetTrigErrReg_Activity
+* END**************************************************************************/
+uint32 Adc_Ip_GetTrigErrReg(const uint32 Instance)
+{
+#if (ADC_IP_DEV_ERROR_DETECT == STD_ON)
+    DevAssert(Instance < ADC_INSTANCE_COUNT);
+    DevAssert(Instance != 0u);
+#endif /* (ADC_IP_DEV_ERROR_DETECT == STD_ON) */
+
+    const ADC_Type * const Base = AdcBase[Instance];
+
+    return (Base->SC2 & ADC_SC2_TRGSTERR_MASK) >> ADC_SC2_TRGSTERR_SHIFT;
+}
+
+/*FUNCTION*********************************************************************
+ *
+ * Function Name : Adc_Ip_GetDataAddress
+ * Description   : Returns the address of the specified Rn register.
+ *
+ * @implements     Adc_Ip_GetDataAddress_Activity
+ *END*************************************************************************/
+uint32 Adc_Ip_GetDataAddress(const uint32 Instance, const uint8 Index)
+{
+#if (ADC_IP_DEV_ERROR_DETECT == STD_ON)
+    DevAssert(Instance < ADC_INSTANCE_COUNT);
+#endif /* (ADC_IP_DEV_ERROR_DETECT == STD_ON) */
+    return (uint32)&(R(AdcBase[Instance], Index));
+}
+
+/*FUNCTION**********************************************************************
+*
+* Function Name : Adc_Ip_GetChanData
+* Description   : This function retrieves the last conversion result for the
+* selected input channel, by looking which control channel was configured
+* with it. If multiple control channels are configured simultaneously with
+* the same requested input channel, the result of the first control channel
+* found will be returned. If no control channel is configured with the given
+* input channel then ADC_IP_STATUS_ERROR will be returned.
+* This function does no validity check on the result.
+* In order to check if the result is valid, the user must call
+* Adc_Ip_GetConvCompleteFlag function before this one.
+*
+* @implements     Adc_Ip_GetChanData_Activity
+* END**************************************************************************/
+Adc_Ip_StatusType Adc_Ip_GetChanData(const uint32 Instance, const Adc_Ip_InputChannelType Channel, uint16 * const Result)
+{
+#if (ADC_IP_DEV_ERROR_DETECT == STD_ON)
+    DevAssert(Instance < ADC_INSTANCE_COUNT);
+#if (ADC_IP_SUPPLY_MONITORING_ENABLED == STD_ON)
+    DevAssert((Instance == 0u) || ((uint32)Channel < (uint32)ADC_IP_INPUTCHAN_SUPPLY_VDD));
+#endif /* (ADC_IP_SUPPLY_MONITORING_ENABLED == STD_ON) */
+#endif /* (ADC_IP_DEV_ERROR_DETECT == STD_ON) */
+
+    const ADC_Type * const Base = AdcBase[Instance];
+    Adc_Ip_StatusType Status = ADC_IP_STATUS_SUCCESS;
+    uint16 Temp = 0u;
+    uint8 ControlChanIdx;
+    boolean Found = FALSE;
+
+    for (ControlChanIdx = 0u; ControlChanIdx < ADC_MAX_CHAN_COUNT; ControlChanIdx++)
+    {
+        if (AdcIpState[Instance].ChannelConfig[ControlChanIdx] == Channel)
+        {
+            Found = TRUE;
+            break;
+        }
+    }
+
+    if (Found == TRUE)
+    {
+        Temp = (uint16) R(Base, ControlChanIdx);
+        Temp = (uint16) ((Temp & ADC_R_D_MASK) >> ADC_R_D_SHIFT);
+    }
+    else
+    {
+        Status = ADC_IP_STATUS_ERROR;
+    }
+
+    *Result = Temp;
+
+    return Status;
+}
+
+#if (ADC_IP_ENABLE_SIM_SOURCE_SELECTION == STD_ON)
+/*FUNCTION**********************************************************************
+*
+* Function Name : Adc_Ip_SetSoftwarePretrigger
+* Description   : This function sets the software pretrigger source for 
+* an ADC instance.
+*
+* @implements     Adc_Ip_SetSoftwarePretrigger_Activity
+* END**************************************************************************/
+void Adc_Ip_SetSoftwarePretrigger(const uint32 Instance, const Adc_Ip_SoftwarePretriggerType SoftwarePretrigger)
+{
+#if (ADC_IP_DEV_ERROR_DETECT == STD_ON)
+    DevAssert(Instance < ADC_INSTANCE_COUNT);
+    /* If SW Pretrigger Select is not enabled, the SW pretriggers will be ignored by ADC. */
+    DevAssert(AdcIpState[Instance].PretriggerSel == ADC_IP_PRETRIGGER_SEL_SW);
+#endif /* (ADC_IP_DEV_ERROR_DETECT == STD_ON) */
+
+#if (STD_ON == ADC_IP_ENABLE_USER_MODE_SUPPORT)
+    OsIf_Trusted_Call2params(ADC_SetSoftwarePretrigger_TrustedCall, Instance, (uint8)SoftwarePretrigger);
+#else
+    ADC_SetSoftwarePretrigger_TrustedCall(Instance, (uint8)SoftwarePretrigger);
+#endif /* (STD_ON == ADC_IP_ENABLE_USER_MODE_SUPPORT) */
+}
+#endif /* (ADC_IP_ENABLE_SIM_SOURCE_SELECTION == STD_ON) */
+
+/*FUNCTION*********************************************************************
+ *
+ * Function Name : Adc_Ip_IRQHandler
+ * Description   : Handles Adc interrupts.
+ * Note          : It's required to read result data in user notification in order to clear the COCO flags and avoid ISR getting invoked repeatedly
+ *
+ * @implements     Adc_Ip_IRQHandler_Activity
+ *END*************************************************************************/
+/* The IAR build wants to see function prototypes */
+void Adc_Ip_IRQHandler(const uint32 Instance);
+
+void Adc_Ip_IRQHandler(const uint32 Instance)
+{
+#if (ADC_IP_DEV_ERROR_DETECT == STD_ON)
+    DevAssert(Instance < ADC_INSTANCE_COUNT);
+#endif /* (ADC_IP_DEV_ERROR_DETECT == STD_ON) */
+
+    const ADC_Type * const Base = AdcBase[Instance];
+    uint32 Sc1Reg;
+    uint8 ControlChanIdx;
+    boolean ChanIntFlag = FALSE;
+    boolean ChanCocoFlag = FALSE;
+
+    /* NOTE: CPR_RTD_00028 wasn't fulfilled in because ISR cannot distinguish if an interrupt is spurious or if conversion was initiated on purpose with AIEN = 0
+    * The reasons are:
+    *  - There is a single interrupt line for all COCO flags
+    *  - It is a valid usecase to have COCO flag set but AIEN=0 (e.g. in HLD only interrupt for last channel in group is enabled)
+    *  - Clearing of COCO flag is only done by reading the result register - COCO is not w1c
+    */
+
+    /* Check if the Adc unit is initialized and if the interrupt is not NULL 
+     * first since all channels use the same callback */
+    if ((AdcIpState[Instance].Init == TRUE) && 
+        (AdcIpState[Instance].ConversionCompleteNotification != NULL_PTR))
+    {
+        for (ControlChanIdx = 0u; ControlChanIdx < ADC_MAX_CHAN_COUNT; ControlChanIdx++)
+        {
+            Sc1Reg = SC1(Base, ControlChanIdx);
+            ChanIntFlag = Adc_HwAcc_GetAIEN(Sc1Reg);
+            ChanCocoFlag = Adc_HwAcc_GetCOCO(Sc1Reg);
+            /* Check if the interrupt was spurrios by checking if the interrupt 
+             * is enabled and equivalent conversion has finished */
+            if ((TRUE == ChanIntFlag) && (TRUE == ChanCocoFlag))
+            {
+                AdcIpState[Instance].ConversionCompleteNotification(ControlChanIdx);
+            }
+            else if ((ADC_IP_INPUTCHAN_DISABLED == AdcIpState[Instance].ChannelConfig[ControlChanIdx]) && (TRUE == ChanCocoFlag))
+            {
+                /* This will only clear the obvious spurious COCO flags. If the flag will be spuriously set on active channels it will not be caught by this. */
+                (void)Adc_HwAcc_GetData(Base, ControlChanIdx);
+            }
+            else
+            {
+                ; /* Empty else branch to avoid MISRA */
+            }
+        }
+    }
+    else
+    {
+        for (ControlChanIdx = 0u; ControlChanIdx < ADC_MAX_CHAN_COUNT; ControlChanIdx++)
+        {
+            /* Do a dummy read to clear the COCO flags */
+            (void)Adc_HwAcc_GetData(Base, ControlChanIdx);
+        }
+    }
+}
+
+#if (ADC_IP_SUPPLY_MONITORING_ENABLED == STD_ON)
+static void ADC_SetSupplyMonitoringEnable_TrustedCall(const boolean SupplyEnable)
+{
+    /* Set or clear ADC_SUPPLY field of CHIPCTL register from SIM based on SupplyEnable */
+    if (SupplyEnable == TRUE)
+    {
+        IP_SIM->CHIPCTL |= SIM_CHIPCTL_ADC_SUPPLYEN_MASK;
+    }
+    else
+    {
+        IP_SIM->CHIPCTL &= ~SIM_CHIPCTL_ADC_SUPPLYEN_MASK;
+    }
+}
+
+/*FUNCTION**********************************************************************
+*
+* Function Name : ADC_SetSupplyMonitoringEnable
+* Description   : This function enable supply monitoring for the internal channels
+* on SIM registers
+*
+* END**************************************************************************/
+static void ADC_SetSupplyMonitoringEnable(const boolean SupplyEnable)
+{
+#if (STD_ON == ADC_IP_ENABLE_USER_MODE_SUPPORT)
+    OsIf_Trusted_Call1param(ADC_SetSupplyMonitoringEnable_TrustedCall, SupplyEnable);
+#else
+    ADC_SetSupplyMonitoringEnable_TrustedCall(SupplyEnable);
+#endif /* (STD_ON == ADC_IP_ENABLE_USER_MODE_SUPPORT) */
+}
+
+static void ADC_ConfigSupplyMonitoringChannel_TrustedCall(const uint32 SupplyChannel)
+{
+#if (ADC_IP_DEV_ERROR_DETECT == STD_ON)
+    DevAssert((IP_SIM->CHIPCTL & SIM_CHIPCTL_ADC_SUPPLYEN_MASK) != 0UL);
+#endif /* (ADC_IP_DEV_ERROR_DETECT == STD_ON) */
+
+    SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_32();
+    uint32 Reg = IP_SIM->CHIPCTL;
+    Reg &= ~SIM_CHIPCTL_ADC_SUPPLY_MASK;
+    Reg |= SIM_CHIPCTL_ADC_SUPPLY(SupplyChannel);
+    IP_SIM->CHIPCTL = Reg;
+    SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_32();
+}
+
+/*FUNCTION**********************************************************************
+*
+* Function Name : ADC_ConfigSupplyMonitoringChannel
+* Description   : This function configures the internal channels on on SIM registers
+*
+* END**************************************************************************/
+static void ADC_ConfigSupplyMonitoringChannel(const uint32 SupplyChannel)
+{
+#if (STD_ON == ADC_IP_ENABLE_USER_MODE_SUPPORT)
+    OsIf_Trusted_Call1param(ADC_ConfigSupplyMonitoringChannel_TrustedCall, SupplyChannel);
+#else
+    ADC_ConfigSupplyMonitoringChannel_TrustedCall(SupplyChannel);
+#endif /* (STD_ON == ADC_IP_ENABLE_USER_MODE_SUPPORT) */
+}
+
+static void ADC_ResetSupplyMonitoringChannel_TrustedCall(void)
+{
+    /* Clear ADC supply mask from CHIPCTL of SIM register */
+    IP_SIM->CHIPCTL &= ~SIM_CHIPCTL_ADC_SUPPLY_MASK;
+}
+
+/*FUNCTION**********************************************************************
+*
+* Function Name : ADC_ResetSupplyMonitoringChannel
+* Description   : This function resets the muxing for ADC channel on SIM register to reset value
+*
+* END**************************************************************************/
+static void ADC_ResetSupplyMonitoringChannel(void)
+{
+#if (STD_ON == ADC_IP_ENABLE_USER_MODE_SUPPORT)
+    OsIf_Trusted_Call(ADC_ResetSupplyMonitoringChannel_TrustedCall);
+#else
+    ADC_ResetSupplyMonitoringChannel_TrustedCall();
+#endif /* (STD_ON == ADC_IP_ENABLE_USER_MODE_SUPPORT) */
+}
+#endif /* (ADC_IP_SUPPLY_MONITORING_ENABLED == STD_ON) */
+
+#if (ADC_IP_ENABLE_SIM_SOURCE_SELECTION == STD_ON)
+/*FUNCTION**********************************************************************
+*
+* Function Name : ADC_SetTriggerSourceSelect
+* Description   : This function selects trigger source for an ADC instance
+*
+* END**************************************************************************/
+static void ADC_SetTriggerSourceSelect(const uint32 Instance, const uint8 TriggerSource)
+{
+#if (STD_ON == ADC_IP_ENABLE_USER_MODE_SUPPORT)
+    OsIf_Trusted_Call2params(ADC_SetTriggerSourceSelect_TrustedCall, Instance, TriggerSource);
+#else
+    ADC_SetTriggerSourceSelect_TrustedCall(Instance, TriggerSource);
+#endif /* (STD_ON == ADC_IP_ENABLE_USER_MODE_SUPPORT) */
+}
+
+static void ADC_SetTriggerSourceSelect_TrustedCall(const uint32 Instance, const uint8 TriggerSource)
+{
+    uint32 Reg = (uint32)IP_SIM->ADCOPT;
+
+#if (ADC_INSTANCE_COUNT > 1u)
+    switch (Instance)
+    {
+        case 0u:
+        {
+#endif /* (ADC_INSTANCE_COUNT > 1u) */
+            Reg &= ~SIM_ADCOPT_ADC0TRGSEL_MASK;
+            Reg |= SIM_ADCOPT_ADC0TRGSEL(TriggerSource);
+#if (ADC_INSTANCE_COUNT > 1u)
+            break;
+        }
+        case 1u:
+        {
+            Reg &= ~SIM_ADCOPT_ADC1TRGSEL_MASK;
+            Reg |= SIM_ADCOPT_ADC1TRGSEL(TriggerSource);
+            break;
+        }
+        default:
+        {
+            ; /* no-op */
+            break;
+        }
+    }
+#else
+    (void)Instance;
+#endif /* (ADC_INSTANCE_COUNT > 1u) */
+    IP_SIM->ADCOPT = Reg;
+}
+
+/*FUNCTION**********************************************************************
+*
+* Function Name : ADC_SetPretriggerSourceSelect
+* Description   : This function selects pretrigger source for an ADC instance
+*
+* END**************************************************************************/
+static void ADC_SetPretriggerSourceSelect(const uint32 Instance, const uint8 PretriggerSource)
+{
+#if (STD_ON == ADC_IP_ENABLE_USER_MODE_SUPPORT)
+    OsIf_Trusted_Call2params(ADC_SetPretriggerSourceSelect_TrustedCall, Instance, PretriggerSource);
+#else
+    ADC_SetPretriggerSourceSelect_TrustedCall(Instance, PretriggerSource);
+#endif /* (STD_ON == ADC_IP_ENABLE_USER_MODE_SUPPORT) */
+}
+
+static void ADC_SetPretriggerSourceSelect_TrustedCall(const uint32 Instance, const uint8 PretriggerSource)
+{
+    uint32 Reg = (uint32)IP_SIM->ADCOPT;
+
+#if (ADC_INSTANCE_COUNT > 1u)
+    switch (Instance)
+    {
+        case 0u:
+        {
+#endif /* (ADC_INSTANCE_COUNT > 1u) */
+            Reg &= ~SIM_ADCOPT_ADC0PRETRGSEL_MASK;
+            Reg |= SIM_ADCOPT_ADC0PRETRGSEL(PretriggerSource);
+#if (ADC_INSTANCE_COUNT > 1u)
+            break;
+        }
+        case 1u:
+        {
+            Reg &= ~SIM_ADCOPT_ADC1PRETRGSEL_MASK;
+            Reg |= SIM_ADCOPT_ADC1PRETRGSEL(PretriggerSource);
+            break;
+        }
+        default:
+        {
+            ; /* no-op */
+            break;
+        }
+    }
+#else
+    (void)Instance;
+#endif /* (ADC_INSTANCE_COUNT > 1u) */
+    IP_SIM->ADCOPT = Reg;
+}
+
+/*FUNCTION**********************************************************************
+*
+* Function Name : ADC_SetSoftwarePretrigger_TrustedCall
+* Description   : This function writes the software pretrigger source to be 
+* configured for an ADC instance
+*
+* END**************************************************************************/
+static void ADC_SetSoftwarePretrigger_TrustedCall(const uint32 Instance, const uint8 SoftwarePretrigger)
+{
+    SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_31();
+    uint32 Reg = (uint32)IP_SIM->ADCOPT;
+
+#if (ADC_INSTANCE_COUNT > 1u)
+    switch (Instance)
+    {
+        case 0u:
+        {
+#endif /* (ADC_INSTANCE_COUNT > 1u) */
+            Reg &= ~SIM_ADCOPT_ADC0SWPRETRG_MASK;
+            Reg |= SIM_ADCOPT_ADC0SWPRETRG(SoftwarePretrigger);
+#if (ADC_INSTANCE_COUNT > 1u)
+            break;
+        }
+        case 1u:
+        {
+            Reg &= ~SIM_ADCOPT_ADC1SWPRETRG_MASK;
+            Reg |= SIM_ADCOPT_ADC1SWPRETRG(SoftwarePretrigger);
+            break;
+        }
+        default:
+        {
+            ; /* no-op */
+            break;
+        }
+    }
+#else
+    (void)Instance;
+#endif /* (ADC_INSTANCE_COUNT > 1u) */
+    IP_SIM->ADCOPT = Reg;
+    SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_31();
+}
+#endif /* (ADC_IP_ENABLE_SIM_SOURCE_SELECTION == STD_ON) */
+
+
+#define ADC_STOP_SEC_CODE
+#include "Adc_MemMap.h"
+
+/** @} */

+ 111 - 0
RTD/src/Adc_Ip_Isr.c

@@ -0,0 +1,111 @@
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : ADC
+*   Dependencies         : none
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_D2108_ASR_REL_4_4_REV_0000_20210810
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+
+/**
+*   @file
+*
+*   @addtogroup adc_ip Adc IPL
+*   @{
+*/
+
+#include "OsIf.h"
+#include "Mcal.h"
+#include "Adc_Ip_CfgDefines.h"
+/*******************************************************************************
+ *   Source file version information
+ ******************************************************************************/
+#define ADC_IP_VENDOR_ID_ISR_C                      43
+#define ADC_IP_AR_RELEASE_MAJOR_VERSION_ISR_C       4
+#define ADC_IP_AR_RELEASE_MINOR_VERSION_ISR_C       4
+#define ADC_IP_AR_RELEASE_REVISION_VERSION_ISR_C    0
+#define ADC_IP_SW_MAJOR_VERSION_ISR_C               1
+#define ADC_IP_SW_MINOR_VERSION_ISR_C               0
+#define ADC_IP_SW_PATCH_VERSION_ISR_C               0
+/*******************************************************************************
+ *   File version checks
+ ******************************************************************************/
+#ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
+    /* Check if Adc_Ip_Isr.c file and OsIf.h file are of the same Autosar version */
+    #if ((ADC_IP_AR_RELEASE_MAJOR_VERSION_ISR_C != OSIF_AR_RELEASE_MAJOR_VERSION) || \
+         (ADC_IP_AR_RELEASE_MINOR_VERSION_ISR_C != OSIF_AR_RELEASE_MINOR_VERSION)    \
+        )
+        #error "AutoSar Version Numbers of Adc_Ip_Isr.c and OsIf.h are different"
+    #endif
+
+    /* Check if Adc_Ip_Isr.c file and Mcal.h file are of the same Autosar version */
+    #if ((ADC_IP_AR_RELEASE_MAJOR_VERSION_ISR_C != MCAL_AR_RELEASE_MAJOR_VERSION) || \
+         (ADC_IP_AR_RELEASE_MINOR_VERSION_ISR_C != MCAL_AR_RELEASE_MINOR_VERSION)    \
+        )
+        #error "AutoSar Version Numbers of Adc_Ip_Isr.c and Mcal.h are different"
+    #endif
+#endif /* DISABLE_MCAL_INTERMODULE_ASR_CHECK */
+/* Check if Adc_Ip_Isr.c file and Adc_Ip_CfgDefines.h file are of the same vendor */
+#if (ADC_IP_VENDOR_ID_ISR_C != ADC_IP_VENDOR_ID_CFGDEFINES_H)
+    #error "Adc_Ip_Isr.c and Adc_Ip_CfgDefines.h have different vendor ids"
+#endif
+
+/* Check if Adc_Ip_Isr.c file and Adc_Ip_CfgDefines.h file are of the same Autosar version */
+#if ((ADC_IP_AR_RELEASE_MAJOR_VERSION_ISR_C != ADC_IP_AR_RELEASE_MAJOR_VERSION_CFGDEFINES_H) || \
+     (ADC_IP_AR_RELEASE_MINOR_VERSION_ISR_C != ADC_IP_AR_RELEASE_MINOR_VERSION_CFGDEFINES_H) || \
+     (ADC_IP_AR_RELEASE_REVISION_VERSION_ISR_C != ADC_IP_AR_RELEASE_REVISION_VERSION_CFGDEFINES_H) \
+    )
+    #error "AutoSar Version Numbers of Adc_Ip_Isr.c and Adc_Ip_CfgDefines.h are different"
+#endif
+
+/* Check if Adc_Ip_Isr.c file and Adc_Ip_CfgDefines.h file are of the same Software version */
+#if ((ADC_IP_SW_MAJOR_VERSION_ISR_C != ADC_IP_SW_MAJOR_VERSION_CFGDEFINES_H) || \
+     (ADC_IP_SW_MINOR_VERSION_ISR_C != ADC_IP_SW_MINOR_VERSION_CFGDEFINES_H) || \
+     (ADC_IP_SW_PATCH_VERSION_ISR_C != ADC_IP_SW_PATCH_VERSION_CFGDEFINES_H) \
+    )
+  #error "Software Version Numbers of Adc_Ip_Isr.c and Adc_Ip_CfgDefines.h are different"
+#endif
+
+/******************************************************************************/
+#define ADC_START_SEC_CODE
+#include "Adc_MemMap.h"
+
+extern void Adc_Ip_IRQHandler(const uint32 Instance);
+
+ISR(Adc_0_Isr); /* IAR requires prototypes. */
+ISR(Adc_0_Isr)
+{
+    Adc_Ip_IRQHandler(0UL);
+
+    EXIT_INTERRUPT();
+}
+
+#if (ADC_INSTANCE_COUNT > 1)
+ISR(Adc_1_Isr); /* IAR requires prototypes. */
+ISR(Adc_1_Isr)
+{
+    Adc_Ip_IRQHandler(1UL);
+
+    EXIT_INTERRUPT();
+}
+#endif /* (ADC_INSTANCE_COUNT > 1) */
+
+#define ADC_STOP_SEC_CODE
+#include "Adc_MemMap.h"
+
+/** @} */

+ 2233 - 0
RTD/src/Adc_Ipw.c

@@ -0,0 +1,2233 @@
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : ADC
+*   Dependencies         : none
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_D2108_ASR_REL_4_4_REV_0000_20210810
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+
+/**
+*   @file
+*
+*   @internal
+*   @addtogroup adc_ipw Adc Ipw
+*   @{
+*/
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+/*==================================================================================================
+*                                        INCLUDE FILES
+* 1) system and project includes
+* 2) needed interfaces from external units
+* 3) internal and external interfaces from this unit
+==================================================================================================*/
+#include "Adc_Ipw.h"
+#include "Adc.h" /*TODO: to be removed when separating ADC HLD from IPW*/
+
+/*==================================================================================================
+*                              SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+#define ADC_VENDOR_ID_IPW_C                    43
+#define ADC_AR_RELEASE_MAJOR_VERSION_IPW_C     4
+#define ADC_AR_RELEASE_MINOR_VERSION_IPW_C     4
+#define ADC_AR_RELEASE_REVISION_VERSION_IPW_C  0
+#define ADC_SW_MAJOR_VERSION_IPW_C             1
+#define ADC_SW_MINOR_VERSION_IPW_C             0
+#define ADC_SW_PATCH_VERSION_IPW_C             0
+
+/*==================================================================================================
+*                                     FILE VERSION CHECKS
+==================================================================================================*/
+/* Check if source file and ADC IPW header file are from the same vendor */
+#if (ADC_VENDOR_ID_IPW_C != ADC_VENDOR_ID_IPW_H)
+    #error "Adc_Ipw.c and Adc_Ipw.h have different vendor ids"
+#endif
+
+/* Check if source file and ADC IPW header file are of the same Autosar version */
+#if ((ADC_AR_RELEASE_MAJOR_VERSION_IPW_C != ADC_AR_RELEASE_MAJOR_VERSION_IPW_H) || \
+     (ADC_AR_RELEASE_MINOR_VERSION_IPW_C != ADC_AR_RELEASE_MINOR_VERSION_IPW_H) || \
+     (ADC_AR_RELEASE_REVISION_VERSION_IPW_C != ADC_AR_RELEASE_REVISION_VERSION_IPW_H) \
+    )
+    #error "AutoSar Version Numbers of Adc_Ipw.c and Adc_Ipw.h are different"
+#endif
+
+/* Check if source file and ADC IPW header file are of the same Software version */
+#if ((ADC_SW_MAJOR_VERSION_IPW_C != ADC_SW_MAJOR_VERSION_IPW_H) || \
+     (ADC_SW_MINOR_VERSION_IPW_C != ADC_SW_MINOR_VERSION_IPW_H) || \
+     (ADC_SW_PATCH_VERSION_IPW_C != ADC_SW_PATCH_VERSION_IPW_H) \
+    )
+  #error "Software Version Numbers of Adc_Ipw.c and Adc_Ipw.h are different"
+#endif
+
+/* Check if source file and ADC header file are of the same vendor */
+#if (ADC_VENDOR_ID_IPW_C != ADC_VENDOR_ID)
+#error "Adc_Ipw.c and Adc.h have different vendor ids"
+#endif
+
+/* Check if source file and ADC header file are of the same Autosar version */
+#if ((ADC_AR_RELEASE_MAJOR_VERSION_IPW_C != ADC_AR_RELEASE_MAJOR_VERSION) || \
+     (ADC_AR_RELEASE_MINOR_VERSION_IPW_C != ADC_AR_RELEASE_MINOR_VERSION) || \
+     (ADC_AR_RELEASE_REVISION_VERSION_IPW_C != ADC_AR_RELEASE_REVISION_VERSION) \
+    )
+#error "AutoSar Version Numbers of Adc_Ipw.c and Adc.h are different"
+#endif
+
+/* Check if source file and ADC header file are of the same Software version */
+#if ((ADC_SW_MAJOR_VERSION_IPW_C != ADC_SW_MAJOR_VERSION) || \
+     (ADC_SW_MINOR_VERSION_IPW_C != ADC_SW_MINOR_VERSION) || \
+     (ADC_SW_PATCH_VERSION_IPW_C != ADC_SW_PATCH_VERSION) \
+    )
+#error "Software Version Numbers of Adc_Ipw.c and Adc.h are different"
+#endif
+
+/*==================================================================================================
+*                          LOCAL TYPEDEFS (STRUCTURES, UNIONS, ENUMS)
+==================================================================================================*/
+
+/*==================================================================================================
+*                                       LOCAL MACROS
+==================================================================================================*/
+#define ADC_IPW_NUM_CHANNELS_USED(x) ((((x) >> 3U) != 0U) ? 8U : (x))
+#define ADC_IPW_PDB_CHANNELS_USED(x) ((((x)%8U) != 0U) ? (((x)/8U) + 1U) : ((x)/8U))
+#define ADC_IPW_PDB_PRETRIGG_MASK(x) (0xFFU >> (8U-(x)))
+/*==================================================================================================
+*                                      LOCAL CONSTANTS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                      LOCAL VARIABLES
+==================================================================================================*/
+
+/*==================================================================================================
+*                                      GLOBAL CONSTANTS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                      GLOBAL VARIABLES
+==================================================================================================*/
+#if (ADC_SETCHANNEL_API == STD_ON)
+#define ADC_START_SEC_VAR_CLEARED_UNSPECIFIED
+#include "Adc_MemMap.h"
+
+extern Adc_RuntimeGroupChannelType Adc_aRuntimeGroupChannel[ADC_MAX_GROUPS];
+
+#define ADC_STOP_SEC_VAR_CLEARED_UNSPECIFIED
+#include "Adc_MemMap.h"
+#endif /* (ADC_SETCHANNEL_API == STD_ON) */
+
+#ifdef ADC_DMA_SUPPORTED
+#if (STD_ON == ADC_OPTIMIZE_DMA_STREAMING_GROUPS)
+#define ADC_START_SEC_VAR_CLEARED_8_NO_CACHEABLE
+#include "Adc_MemMap.h"
+
+#define ADC_STOP_SEC_VAR_CLEARED_8_NO_CACHEABLE
+#include "Adc_MemMap.h"
+#endif /*  (STD_ON == ADC_OPTIMIZE_DMA_STREAMING_GROUPS) */
+
+#define ADC_START_SEC_VAR_CLEARED_16_NO_CACHEABLE
+#include "Adc_MemMap.h"
+
+/* Internal Dma Buffer filled in by DMA for groups having Without Interrupts enabled. It stores full results, to be read and masked accordingly when Adc_ReadGroup is called. */
+static uint16 u16DmaNoIrqBuffer[ADC_MAX_HW_UNITS][ADC_MAX_CHANNEL_PER_HW_UNIT];
+
+#define ADC_STOP_SEC_VAR_CLEARED_16_NO_CACHEABLE
+#include "Adc_MemMap.h"
+#endif /* ADC_DMA_SUPPORTED */
+
+/*==================================================================================================
+*                                   LOCAL FUNCTION PROTOTYPES
+==================================================================================================*/
+#define ADC_START_SEC_CODE
+#include "Adc_MemMap.h"
+
+#if (ADC_READ_GROUP_API == STD_ON)
+#ifdef ADC_DMA_SUPPORTED
+static inline uint16 Adc_Ipw_GetAdcDataMask
+(
+    Adc_Ip_ResolutionType Resolution
+);
+#endif /* ADC_DMA_SUPPORTED */
+
+static inline Std_ReturnType Adc_Ipw_ReadGroupConvData
+(
+    const Adc_GroupConfigurationType * pGroupPtr,
+    Adc_ValueGroupType * pDataPtr,
+    boolean * pFlag,
+    uint32 u32CoreId
+);
+
+static inline Std_ReturnType Adc_Ipw_ReadGroupNoInt
+(
+    const Adc_GroupConfigurationType * pGroupPtr,
+    Adc_ValueGroupType * pDataPtr,
+    boolean * pFlag,
+    uint32 u32CoreId
+);
+
+static inline void Adc_Ipw_WriteDataBuffer
+(
+    const Adc_GroupType Group,
+    Adc_ValueGroupType * pDataPtr,
+    uint32 u32CoreId
+);
+#endif /* (ADC_READ_GROUP_API == STD_ON) */
+
+static inline uint8 Adc_Ipw_ConfigurePdbChannels
+(
+    Adc_HwUnitType Unit,
+    Adc_GroupType Group,
+    const Adc_GroupConfigurationType * GroupPtr,
+    uint8 NumChannel
+);
+
+static inline void Adc_Ipw_ConfigurePdbConversion
+(
+    Adc_HwUnitType Unit,
+    Adc_GroupType Group,
+    const Adc_GroupConfigurationType * GroupPtr,
+    Adc_HwTriggerTimerType Trigger,
+    uint8 NumChannel
+);
+
+#if (ADC_ENABLE_START_STOP_GROUP_API == STD_ON)
+static inline Std_ReturnType Adc_Ipw_StopConversionCheckTimeout
+(
+    Adc_HwUnitType Unit,
+    Adc_GroupType Group,
+    uint32 u32CoreId
+);
+#endif /* (ADC_ENABLE_START_STOP_GROUP_API == STD_ON) */
+
+#if (ADC_SET_ADC_CONV_TIME_ONCE == STD_OFF)
+static inline void Adc_Ipw_PrepareGroupStart
+(
+    Adc_HwUnitType Unit,
+    const Adc_GroupConfigurationType * GroupPtr,
+    uint32 u32CoreId
+);
+#endif /* (ADC_SET_ADC_CONV_TIME_ONCE == STD_OFF) */
+
+/*==================================================================================================
+*                                       LOCAL FUNCTIONS
+==================================================================================================*/
+
+#if (ADC_READ_GROUP_API == STD_ON)
+#ifdef ADC_DMA_SUPPORTED
+/**
+* @brief          This function gets data mask based on selected Adc resolution
+* @details        This function gets data mask based on selected Adc resolution
+*
+* @param[in]      Resolution    Adc resolution enum value
+*
+* @return         uint16        Data mask
+*/
+static inline uint16 Adc_Ipw_GetAdcDataMask
+(
+    Adc_Ip_ResolutionType Resolution
+)
+{
+    uint16 Mask;
+    switch (Resolution)
+    {
+        case ADC_IP_RESOLUTION_8BIT:
+            Mask = 0xFFu;
+            break;
+        case ADC_IP_RESOLUTION_10BIT:
+            Mask = 0x3FFu;
+            break;
+        case ADC_IP_RESOLUTION_12BIT:
+            Mask = 0xFFFu;
+            break;
+        default:
+            /* Default is 12 bits */
+            Mask = 0xFFFu;
+            break;
+    }
+    return Mask;
+}
+#endif /* ADC_DMA_SUPPORTED */
+
+static inline Std_ReturnType Adc_Ipw_ReadGroupConvData
+(
+    const Adc_GroupConfigurationType * pGroupPtr,
+    Adc_ValueGroupType * pDataPtr,
+    boolean * pFlag,
+    uint32 u32CoreId
+)
+{
+    uint8 Channel;
+    Adc_ValueGroupType AdcResult;
+    Std_ReturnType ReadGroupRet = (Std_ReturnType) E_OK;
+    const Adc_HwUnitType LogicalHwUnitId = pGroupPtr->AdcLogicalUnitId;
+    const Adc_HwUnitType PhysicalHwUnitId = Adc_pCfgPtr[u32CoreId]->pAdcIpwConfig->aAdcPhysicalId[LogicalHwUnitId];
+    const uint8 NumsBitShift = Adc_Ipw_CalculateNumsBitShift(Adc_pCfgPtr[u32CoreId]->pAdcIpwConfig->apAdcConfig[LogicalHwUnitId]->Resolution);
+#if (defined(ADC_DMA_SUPPORTED) || (ADC_ENABLE_LIMIT_CHECK == STD_ON) || (ADC_SETCHANNEL_API == STD_ON))
+    const Adc_GroupType Group = pGroupPtr->GroupId;
+#endif /* (defined(ADC_DMA_SUPPORTED) || ... */
+#ifdef ADC_DMA_SUPPORTED
+    /* When DMA is used, the masking result is required according to safety analysis. For interrupt case, this is done by Adc_Ip_GetConvData. */
+    const uint16 DmaBufferMask = Adc_Ipw_GetAdcDataMask(Adc_pCfgPtr[u32CoreId]->pAdcIpwConfig->apAdcConfig[LogicalHwUnitId]->Resolution);
+#endif /* ADC_DMA_SUPPORTED */
+#if (ADC_ENABLE_LIMIT_CHECK == STD_ON)
+    Adc_ChannelType ChIndex;
+    /* Flag to set if ADC results are in the selected range */
+    boolean bWriteFlag = TRUE;
+#endif /* (ADC_ENABLE_LIMIT_CHECK == STD_ON) */
+#if (ADC_SETCHANNEL_API == STD_ON)
+    const Adc_ChannelIndexType ChannelCount = Adc_aRuntimeGroupChannel[Group].ChannelCount;
+#else
+    const Adc_ChannelIndexType ChannelCount = pGroupPtr->AssignedChannelCount;
+#endif /* (ADC_SETCHANNEL_API == STD_ON) */
+    for (Channel = 0U; Channel < ChannelCount; Channel++)
+    {
+#ifdef ADC_DMA_SUPPORTED
+        if ((ADC_DMA == Adc_pCfgPtr[u32CoreId]->pAdcIpwConfig->Mapping.u8Adc_DmaInterruptSoftware[LogicalHwUnitId]) && (pGroupPtr->u8AdcWithoutDma == FALSE))
+        {
+            if((uint8)STD_OFF == pGroupPtr->u8AdcExtDMAChanEnable)
+            {
+                AdcResult = (uint16) (u16DmaNoIrqBuffer[PhysicalHwUnitId][Channel] & DmaBufferMask);
+            }
+            else
+            {
+                AdcResult = (uint16) (pGroupPtr->pResultsBufferPtr[Group][Channel] & DmaBufferMask);
+            }
+        }
+        else
+#endif /* ADC_DMA_SUPPORTED */
+        {
+            AdcResult = Adc_Ip_GetConvData(PhysicalHwUnitId, Channel);
+            /* Assumption: the width of the register is less than 16 */
+            AdcResult = AdcResult << (NumsBitShift);
+        }
+#if (ADC_ENABLE_LIMIT_CHECK == STD_OFF)
+        (*pFlag) = TRUE;
+#else
+        if (
+            (TRUE == pGroupPtr->bAdcGroupLimitcheck)
+#if (ADC_SETCHANNEL_API == STD_ON)
+            || (TRUE == Adc_aRuntimeGroupChannel[Group].bAdcRuntimeGroupLimitcheck)
+#endif /* ADC_SETCHANNEL_API == STD_ON */
+        )
+        {
+#if (ADC_SETCHANNEL_API == STD_ON)
+            ChIndex = Adc_aRuntimeGroupChannel[Group].pChannel[Channel];
+#else
+            ChIndex = pGroupPtr->pAssignment[Channel];
+#endif /* ADC_SETCHANNEL_API == STD_ON */
+            (*pFlag) =  Adc_Ipw_CheckConversionValuesInRange(AdcResult, LogicalHwUnitId, ChIndex, u32CoreId);
+            if (FALSE == (*pFlag))
+            {
+                /* SWS_Adc_00448, SWS_Adc_00449, SWS_Adc_00450 */
+                Adc_aGroupStatus[Group].bLimitCheckFailed = TRUE;
+                ReadGroupRet = (Std_ReturnType)E_NOT_OK;
+                bWriteFlag = FALSE;
+            }
+            else
+            {
+                Adc_aGroupStatus[Group].bLimitCheckFailed = FALSE;
+            }
+        }
+        if (TRUE == bWriteFlag)
+#endif /* ADC_ENABLE_LIMIT_CHECK == STD_OFF */
+        {
+            pDataPtr[Channel] = AdcResult;
+        }
+    }
+    return ReadGroupRet;
+}
+
+/**
+* @brief          This function reads the converted data for the requested group without interrupt.
+* @details        Reads the converted data for the requested group.
+*
+* @param[in]      Group           The group number.
+* @param[in]      pDataPtr        Pointer to a buffer which will be filled by the conversion results.
+* @param[in]      pFlag           Pointer to limit check flag
+* @param[in]      u32CoreId       Current CoreID.
+* @return         Std_ReturnType  E_OK or E_NOT_OK.
+* @retval         E_OK            In case of successful read of the converted data.
+* @retval         E_NOT_OK        In case of an ongoing conversion.
+*/
+static inline Std_ReturnType Adc_Ipw_ReadGroupNoInt
+(
+    const Adc_GroupConfigurationType * pGroupPtr,
+    Adc_ValueGroupType * pDataPtr,
+    boolean * pFlag,
+    uint32 u32CoreId
+)
+{
+    Adc_ChannelIndexType ChannelCount;
+    boolean ValidConversion = TRUE;
+    Std_ReturnType ReadGroupRet = (Std_ReturnType) E_OK;
+    const Adc_HwUnitType LogicalHwUnitId = pGroupPtr->AdcLogicalUnitId;
+    const Adc_HwUnitType PhysicalHwUnitId = Adc_pCfgPtr[u32CoreId]->pAdcIpwConfig->aAdcPhysicalId[LogicalHwUnitId];
+#if ((ADC_SETCHANNEL_API == STD_ON) || defined(ADC_DMA_SUPPORTED))
+    const Adc_GroupType Group = pGroupPtr->GroupId;
+#endif /* (ADC_SETCHANNEL_API == STD_ON) || defined(ADC_DMA_SUPPORTED) */
+
+#if (ADC_SETCHANNEL_API == STD_ON)
+    ChannelCount = Adc_aRuntimeGroupChannel[Group].ChannelCount;
+#else
+    ChannelCount = pGroupPtr->AssignedChannelCount;
+#endif /* (ADC_SETCHANNEL_API == STD_ON) */
+
+    /* Checking conversion is completed (valid) for all channels by check COCO bit in SC1n.
+     If all COCO bits are set, it means that all the conversions in the group have completed.
+     In case of DMA Transfering, just make sure that the result of last conversion was available
+     by checking value of u16DmaNoIrqBuffer (not equal default init value ADC_IPW_INVALID_DATA_RESULT_DMA)
+     because when DMA copied data from Rn to internal buffer then COCO bit is cleared.*/
+#ifdef ADC_DMA_SUPPORTED
+    if ((ADC_DMA == Adc_pCfgPtr[u32CoreId]->pAdcIpwConfig->Mapping.u8Adc_DmaInterruptSoftware[LogicalHwUnitId]) && (pGroupPtr->u8AdcWithoutDma == FALSE))
+    {
+        if((uint8)STD_OFF == pGroupPtr->u8AdcExtDMAChanEnable)
+        {
+            if(ADC_IPW_INVALID_DATA_RESULT_DMA == u16DmaNoIrqBuffer[PhysicalHwUnitId][(ChannelCount - 1U)])
+            {
+                ValidConversion = FALSE;
+            }
+        }
+        else
+        {
+            if(ADC_IPW_INVALID_DATA_RESULT_DMA == pGroupPtr->pResultsBufferPtr[Group][ChannelCount - 1U])
+            {
+                ValidConversion = FALSE;
+            }
+        }
+    }
+    else
+#endif /* ADC_DMA_SUPPORTED */
+    {
+        ValidConversion = Adc_Ipw_CheckValidConversion(PhysicalHwUnitId, 0U, ChannelCount);
+    }
+
+    /* All results are valid, so all conversions from the group have been completed */
+    if (ValidConversion)
+    {
+        ReadGroupRet = Adc_Ipw_ReadGroupConvData(pGroupPtr, pDataPtr, pFlag, u32CoreId);
+        
+#ifdef ADC_DMA_SUPPORTED
+        if ((ADC_DMA == Adc_pCfgPtr[u32CoreId]->pAdcIpwConfig->Mapping.u8Adc_DmaInterruptSoftware[LogicalHwUnitId]) && (pGroupPtr->u8AdcWithoutDma == FALSE))
+        {
+            if((uint8)STD_OFF == pGroupPtr->u8AdcExtDMAChanEnable)
+            {
+                /* Because all conversions were completed so need to reset last buffer to invalid value before starting next conversion */
+                u16DmaNoIrqBuffer[PhysicalHwUnitId][(ChannelCount - 1U)] = ADC_IPW_INVALID_DATA_RESULT_DMA;
+            }
+            else
+            {
+                pGroupPtr->pResultsBufferPtr[Group][(ChannelCount - 1U)] = ADC_IPW_INVALID_DATA_RESULT_DMA;
+            }
+        }
+#endif /* ADC_DMA_SUPPORTED */
+    }
+    else
+    {
+        ReadGroupRet = (Std_ReturnType)E_NOT_OK;
+    }
+
+    return ReadGroupRet;
+}
+
+static inline void Adc_Ipw_WriteDataBuffer
+(
+    const Adc_GroupType Group,
+    Adc_ValueGroupType * pDataPtr,
+    uint32 u32CoreId
+)
+{
+    uint8 Index;
+    uint16 ResultOffset;
+    const Adc_GroupType GroupIndex = Adc_pCfgPtr[u32CoreId]->pGroupIdToIndexMap[Group];
+    const Adc_GroupConfigurationType * GroupPtr = &(Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex]);
+#ifdef ADC_DMA_SUPPORTED
+    const Adc_HwUnitType LogicalHwUnitId = GroupPtr->AdcLogicalUnitId;
+    /* When DMA is used, the masking result is required according to safety analysis. Interrupt was done by Adc_Ip_GetConvData. */
+    uint16 DmaBufferMask = Adc_Ipw_GetAdcDataMask(Adc_pCfgPtr[u32CoreId]->pAdcIpwConfig->apAdcConfig[LogicalHwUnitId]->Resolution);
+#endif /* ADC_DMA_SUPPORTED */
+#if (ADC_SETCHANNEL_API == STD_ON)
+    const Adc_ChannelIndexType ChannelCount = Adc_aRuntimeGroupChannel[Group].ChannelCount;
+#else
+    const Adc_ChannelIndexType ChannelCount = GroupPtr->AssignedChannelCount;
+#endif /* (ADC_SETCHANNEL_API == STD_ON) */
+    Adc_ValueGroupType * pResultPtr = NULL_PTR;
+    Adc_StreamNumSampleType ResultIndex = 0U;
+
+    /* Get index of last completed sample */
+    ResultIndex = Adc_aGroupStatus[Group].ResultIndex - (Adc_StreamNumSampleType)1U;
+    if ((Adc_StreamNumSampleType)0U == Adc_aGroupStatus[Group].ResultIndex)
+    {
+        ResultIndex = GroupPtr->NumSamples - (Adc_StreamNumSampleType)1U;
+    }
+
+#if (ADC_ENABLE_GROUP_STREAMING_RESULTS_REORDER == STD_ON)
+    /* Get the result buffer pointer */
+    if (FALSE == GroupPtr->bStreamResultGroupMultiSets)
+#endif /* (ADC_ENABLE_GROUP_STREAMING_RESULTS_REORDER == STD_ON) */
+    {
+        pResultPtr = (Adc_ValueGroupType *)(&(GroupPtr->pResultsBufferPtr[Group][ResultIndex]));
+        ResultOffset = GroupPtr->NumSamples;
+
+        /* Copy results of last conversion from streaming buffer to internal buffer */
+        for (Index = 0U; Index < ChannelCount; Index++)
+        {
+#ifdef ADC_DMA_SUPPORTED
+            if (ADC_DMA == Adc_pCfgPtr[u32CoreId]->pAdcIpwConfig->Mapping.u8Adc_DmaInterruptSoftware[LogicalHwUnitId])
+            {
+                pDataPtr[Index] = (Adc_ValueGroupType)((*pResultPtr) & DmaBufferMask);
+            }
+            else
+#endif /* ADC_DMA_SUPPORTED */
+            {
+                pDataPtr[Index] = (*pResultPtr);
+            }
+            pResultPtr = &(pResultPtr[ResultOffset]);
+        }
+    }
+#if (ADC_ENABLE_GROUP_STREAMING_RESULTS_REORDER == STD_ON)
+    else
+    {
+        pResultPtr = (Adc_ValueGroupType *)(&(GroupPtr->pResultsBufferPtr[Group][ResultIndex * ChannelCount]));
+
+        /* Copy results of last conversion from streaming buffer to internal buffer */
+        for (Index = 0U; Index < ChannelCount; Index++)
+        {
+#ifdef ADC_DMA_SUPPORTED
+            if (ADC_DMA == Adc_pCfgPtr[u32CoreId]->pAdcIpwConfig->Mapping.u8Adc_DmaInterruptSoftware[LogicalHwUnitId])
+            {
+                pDataPtr[Index] = (Adc_ValueGroupType)(pResultPtr[Index] & DmaBufferMask);
+            }
+            else
+#endif /* ADC_DMA_SUPPORTED */
+            {
+                pDataPtr[Index] = pResultPtr[Index];
+            }
+        }
+    }
+#endif /* (ADC_ENABLE_GROUP_STREAMING_RESULTS_REORDER == STD_ON) */
+}
+#endif /* (ADC_READ_GROUP_API == STD_ON) */
+
+/**
+* @brief            Configure PDB channels
+* @details          This function configures PDB channels
+*
+* @param[in]      Unit              Adc Logical Unit Id
+* @param[in]      Group             Group number
+* @param[in]      GroupPtr          Group config pointer
+* @param[in]      NumChannel        Number of channels used for this conversion
+*
+* @return       void
+*/
+static inline uint8 Adc_Ipw_ConfigurePdbChannels
+(
+    Adc_HwUnitType Unit,
+    Adc_GroupType Group,
+    const Adc_GroupConfigurationType * GroupPtr,
+    uint8 NumChannel
+)
+{
+    uint8 PdbIndex;
+    uint8 PreTriggerCtr;
+    uint8 ChUsed;
+    uint8 LeftChannel = NumChannel;
+    uint8 PdbChannelUsed = (uint8)ADC_IPW_PDB_CHANNELS_USED(NumChannel);
+    uint16 PdbDelay;
+    const uint16 * GroupDelay = NULL_PTR;
+    uint16 CurrentCh = Adc_aGroupStatus[Group].CurrentChannel;
+    Pdb_Adc_Ip_PretriggersConfigType PdbPretriggsConfig;
+    Adc_HwUnitType PhysicalHwUnitId = Adc_pCfgPtr[0U]->pAdcIpwConfig->aAdcPhysicalId[Unit];
+#if  (STD_ON == FEATURE_PDB_HAS_INTERCHANNEL_BACKTOBACK)
+    Adc_HwUnitType LogicalHwUnitId = GroupPtr->AdcLogicalUnitId;
+#endif /* (STD_ON == FEATURE_PDB_HAS_INTERCHANNEL_BACKTOBACK) */
+#if (ADC_SETCHANNEL_API == STD_ON)
+    uint32 TempMask = Adc_aRuntimeGroupChannel[Group].u32Mask;
+    /* Get delay configuration of each pre-trigger at runtime */
+    GroupDelay = Adc_aRuntimeGroupChannel[Group].pu16Delays;
+#else
+    /* Follow user configuration */
+    GroupDelay = GroupPtr->pAdcIpwGroupConfig->pDelay;
+#endif /* (ADC_SETCHANNEL_API == STD_ON) */
+
+    /* Configure PDB channels */
+    for (PdbIndex = 0U; PdbIndex < PdbChannelUsed; PdbIndex++)
+    {
+        /* Get channels used depending on number of pre-triggers per PDB channel */
+        ChUsed = ADC_IPW_NUM_CHANNELS_USED(LeftChannel);
+
+        /* If group channel delay, not bypass mode */
+        if ((GroupPtr->pAdcIpwGroupConfig->AdcGroupEnableChannelDelays == TRUE)
+#if (ADC_SETCHANNEL_API == STD_ON)
+                && (GroupDelay != NULL_PTR)
+#endif /* (ADC_SETCHANNEL_API == STD_ON) */
+           )
+        {
+            /* If Back to Back mode is disabled, enable and configure delays for all channels */
+            if (GroupPtr->pAdcIpwGroupConfig->AdcGroupEnableBackToBack == FALSE)
+            {
+                PdbPretriggsConfig.EnableDelayMask = (uint8) ADC_IPW_PDB_PRETRIGG_MASK(ChUsed);
+                for (PreTriggerCtr = 0U; PreTriggerCtr < ChUsed; PreTriggerCtr++)
+                {
+#if (ADC_SETCHANNEL_API == STD_ON)
+                    if ((uint32)1U == (TempMask & (uint32)1U))
+#endif /* (ADC_SETCHANNEL_API == STD_ON) */
+                    {
+                        Pdb_Adc_Ip_SetAdcPretriggerDelayValue(PhysicalHwUnitId, PdbIndex, PreTriggerCtr, GroupDelay[CurrentCh + PreTriggerCtr]);
+                    }
+#if (ADC_SETCHANNEL_API == STD_ON)
+                    TempMask = TempMask >> (uint32)1U;
+                    if ((uint32)0U == TempMask)
+                    {
+                        break;
+                    }
+#endif /* (ADC_SETCHANNEL_API == STD_ON) */
+                }
+            }
+            else
+            {
+                /* Beginning part (8 ADC channels) of group will be configured in PDB channel 0 */
+                if (PdbIndex == 0U)
+                {
+                    PdbPretriggsConfig.EnableDelayMask = 1U;
+                    /* First pre-trigger need to be configured as delay, others will be in back to back mode */
+                    PdbDelay = GroupDelay[0U];
+                    Pdb_Adc_Ip_SetAdcPretriggerDelayValue(PhysicalHwUnitId, PdbIndex, 0U, PdbDelay);
+                }
+                else
+                {
+#if  (STD_ON == FEATURE_PDB_HAS_INTERCHANNEL_BACKTOBACK)
+                    if (FALSE == Adc_pCfgPtr[0U]->pAdcIpwConfig->apPdbConfig[LogicalHwUnitId]->InterChannelBackToBackEnable)
+#endif /* (STD_ON == FEATURE_PDB_HAS_INTERCHANNEL_BACKTOBACK) */
+                    {
+                        /* The other parts will be configured in following PDB channels */
+                        PdbPretriggsConfig.EnableDelayMask = 1U;
+                        PdbDelay = (GroupPtr->pAdcIpwGroupConfig->PdbDelay)*PdbIndex;
+                        Pdb_Adc_Ip_SetAdcPretriggerDelayValue(PhysicalHwUnitId, PdbIndex, 0U, PdbDelay);
+                    }
+                }
+            }
+        }
+        else    /* Back-to-back mode only */
+        {
+            if (PdbIndex == 0U)
+            {
+                /* Configure the delay for the second PDB in case of only back to back used */
+                /* The first PDB channel, pre-trigger 0 also need to use channel delay (TOS bit = 1) in order to work with continuous PDB mode */
+                PdbPretriggsConfig.EnableDelayMask = 1U;
+                Pdb_Adc_Ip_SetAdcPretriggerDelayValue(PhysicalHwUnitId, PdbIndex, 0U, 0U);
+            }
+            else
+            {
+#if  (STD_ON == FEATURE_PDB_HAS_INTERCHANNEL_BACKTOBACK)
+                if (FALSE == Adc_pCfgPtr[0U]->pAdcIpwConfig->apPdbConfig[LogicalHwUnitId]->InterChannelBackToBackEnable)
+#endif /* (STD_ON == FEATURE_PDB_HAS_INTERCHANNEL_BACKTOBACK) */
+                {
+                    PdbPretriggsConfig.EnableDelayMask = 1U;
+                    PdbDelay = (GroupPtr->pAdcIpwGroupConfig->PdbDelay)*PdbIndex;
+                    Pdb_Adc_Ip_SetAdcPretriggerDelayValue(PhysicalHwUnitId, PdbIndex, 0U, PdbDelay);
+                }
+            }
+        }
+
+        Pdb_Adc_Ip_LoadRegValues(PhysicalHwUnitId);
+
+        /* Update status channel for configuring PDB channel in next loop */
+        LeftChannel -= ChUsed;
+        CurrentCh += ChUsed;
+
+
+        /* Use back to back mode for all channels but using delay in pre-trigger 0 */
+        if (GroupPtr->pAdcIpwGroupConfig->AdcGroupEnableBackToBack == TRUE)
+        {
+            if (PdbIndex == 0U)
+            {
+                PdbPretriggsConfig.BackToBackEnableMask = (uint8) ADC_IPW_PDB_PRETRIGG_MASK(ChUsed) - 1U;
+            }
+            else
+            {
+#if  (STD_ON == FEATURE_PDB_HAS_INTERCHANNEL_BACKTOBACK)
+                if (TRUE == Adc_pCfgPtr[0U]->pAdcIpwConfig->apPdbConfig[LogicalHwUnitId]->InterChannelBackToBackEnable)
+                {
+                    PdbPretriggsConfig.BackToBackEnableMask = (uint8) ADC_IPW_PDB_PRETRIGG_MASK(ChUsed);
+                }
+                else
+#endif /* (STD_ON == FEATURE_PDB_HAS_INTERCHANNEL_BACKTOBACK) */
+                {
+                    PdbPretriggsConfig.BackToBackEnableMask = (uint8) ADC_IPW_PDB_PRETRIGG_MASK(ChUsed) - 1U;
+                }
+            }
+        }
+        else
+        {
+            PdbPretriggsConfig.BackToBackEnableMask = 0u;
+        }
+        PdbPretriggsConfig.EnableMask = (uint8) ADC_IPW_PDB_PRETRIGG_MASK(ChUsed);
+        /* Update configuration to CHnC1 register for pre-trigger */
+        Pdb_Adc_Ip_ConfigAdcPretriggers(PhysicalHwUnitId, PdbIndex, &PdbPretriggsConfig);
+    }
+    return PdbIndex;
+}
+
+/**
+* @brief            Configure PDB IPL module for each conversion
+* @details          This function configures PDB IPL module for each conversion
+*
+* @param[in]      Unit              Adc Logical Unit Id
+* @param[in]      Group             Group number
+* @param[in]      GroupPtr          Group config pointer
+* @param[in]      Trigger           PDB trigger
+* @param[in]      NumChannel        Number of channels used for this conversion
+*
+* @return       void
+*
+* @pre  ADC Unit is in stand by, there is no ongoing conversion.
+*/
+static inline void Adc_Ipw_ConfigurePdbConversion
+(
+    Adc_HwUnitType Unit,
+    Adc_GroupType Group,
+    const Adc_GroupConfigurationType * GroupPtr,
+    Adc_HwTriggerTimerType Trigger,
+    uint8 NumChannel
+)
+{
+    uint8 PdbIndex;
+    uint8 PdbChannelUsed;
+    uint16 PdbPeriod = 0U;
+    const uint16 * GroupDelay = NULL_PTR;
+    Pdb_Adc_Ip_PretriggersConfigType PdbPretriggsConfig;
+    Adc_HwUnitType PhysicalHwUnitId = Adc_pCfgPtr[0U]->pAdcIpwConfig->aAdcPhysicalId[Unit];
+
+    /* Calculate number of PDB channels depending on the ADC channels used */
+    /* Note that 1 PDB channel triggers to 8 ADC channels */
+    PdbChannelUsed = (uint8)ADC_IPW_PDB_CHANNELS_USED(NumChannel);
+
+#if (ADC_SETCHANNEL_API == STD_ON)
+    /* Get delay configuration of each pre-trigger */
+    /* At runtime */
+    GroupDelay = Adc_aRuntimeGroupChannel[Group].pu16Delays;
+#else
+    /* Follow user configuration */
+    GroupDelay = GroupPtr->pAdcIpwGroupConfig->pDelay;
+#endif /* (ADC_SETCHANNEL_API == STD_ON) */
+
+    /* Select the input trigger source for PDB */
+    Pdb_Adc_Ip_Enable(PhysicalHwUnitId);
+    Pdb_Adc_Ip_SetTriggerInput(PhysicalHwUnitId, Trigger);
+
+    PdbIndex = Adc_Ipw_ConfigurePdbChannels(Unit, Group, GroupPtr, NumChannel);
+
+#if (defined(ADC_CONTINUOUS_NO_INTERRUPT_SUPPORTED) || (STD_ON == ADC_OPTIMIZE_DMA_STREAMING_GROUPS))
+    /* If the continuous group is configured without interrupts or Optimize DMA Streaming Groups
+        then PDB need to be configured as continuous mode.*/
+    if ((ADC_CONV_MODE_CONTINUOUS == GroupPtr->eMode) &&
+        (((uint8)STD_ON == GroupPtr->u8AdcWithoutInterrupt)
+#if (STD_ON == ADC_OPTIMIZE_DMA_STREAMING_GROUPS)
+        || (TRUE == GroupPtr->bAdcOptimizeDmaStream)
+#endif /* (STD_ON == ADC_OPTIMIZE_DMA_STREAMING_GROUPS) */
+        ))
+    {
+        PdbPeriod = GroupPtr->pAdcIpwGroupConfig->PdbPeriod;
+    }
+    else
+#endif /* ADC_CONTINUOUS_NO_INTERRUPT_SUPPORTED */
+    {
+        /* If group channel delay, not bypass mode */
+        if (GroupPtr->pAdcIpwGroupConfig->AdcGroupEnableChannelDelays == TRUE)
+        {
+            if (GroupPtr->pAdcIpwGroupConfig->AdcGroupEnableBackToBack == FALSE)
+            {
+                /* If delay mode for all pre-triggers, PDB period equals to value of last pre-trigger delay (i.e longest delay) */
+                PdbPeriod = GroupDelay[(Adc_aGroupStatus[Group].CurrentChannel + NumChannel) - 1U];
+            }
+            else
+            {
+                /* Period will be calculated depending on user configuration in back to back mode */
+                PdbPeriod = GroupDelay[0U] + (uint16)((GroupPtr->pAdcIpwGroupConfig->PdbDelay)*((uint16)PdbChannelUsed - 1U));
+            }
+        }
+        else
+        {
+            /* All pre-trigger configured as user PdbDelay */
+            PdbPeriod = (GroupPtr->pAdcIpwGroupConfig->PdbDelay)*((uint16)PdbChannelUsed - 1U);
+        }
+    }
+
+    /* Configure the period of counter */
+    Pdb_Adc_Ip_SetModulus(PhysicalHwUnitId, PdbPeriod);
+
+    /* Load the configuration */
+    Pdb_Adc_Ip_LoadRegValues(PhysicalHwUnitId);
+
+    PdbPretriggsConfig.EnableMask = 0u;
+    PdbPretriggsConfig.EnableDelayMask = 0u;
+    PdbPretriggsConfig.BackToBackEnableMask = 0u;
+
+    /* Disable others PDB channels to avoid errors when PDB trigger the disabled channels */
+    for (; PdbIndex < PDB_CH_COUNT; PdbIndex++)
+    {
+        Pdb_Adc_Ip_ConfigAdcPretriggers(PhysicalHwUnitId, PdbIndex, &PdbPretriggsConfig);
+    }
+
+    /* Update current channel */
+    Adc_aGroupStatus[Group].CurrentChannel += NumChannel;
+
+    /* ADC356, ADC357 */
+    /* Start software trigger */
+    /* If trigger is not software trigger, hardware trigger or external trigger will be used */
+    if (PDB_ADC_IP_SOFTWARE_TRIGGER == Trigger)
+    {
+#if (STD_ON == ADC_OPTIMIZE_DMA_STREAMING_GROUPS)
+        if (TRUE == GroupPtr->bAdcOptimizeDmaStream)
+        {
+            /* PDB operation in Continuous mode for software */
+            Pdb_Adc_Ip_SetContinuousMode(PhysicalHwUnitId, TRUE);
+        }
+#endif /* (STD_ON == ADC_OPTIMIZE_DMA_STREAMING_GROUPS) */
+
+        Pdb_Adc_Ip_SwTrigger(PhysicalHwUnitId);
+    }
+#if (ADC_SETCHANNEL_API == STD_OFF)
+    /* Avoid compiler warning */
+    (void)Group;
+#endif /* (ADC_SETCHANNEL_API == STD_OFF) */
+}
+
+#if (ADC_ENABLE_START_STOP_GROUP_API == STD_ON)
+/**
+* @brief          This function stops the current conversion.
+* @details        This function stops the current conversion and checks if the hardware has responded to the command.
+*
+* @param[in]      Unit           The hardware Unit.
+* @param[in]      Group          The group id.
+* @param[in]      u32Timeout     Time for conversion is aborted.
+*
+* @return         Std_ReturnType  E_OK or E_NOT_OK.
+* @retval         E_OK            If the conversion has stopped as expected.
+* @retval         E_NOT_OK        In case of timeout while waiting for adc hardware to stop a conversion.
+*
+*/
+static inline Std_ReturnType Adc_Ipw_StopConversionCheckTimeout
+(
+    Adc_HwUnitType Unit,
+    Adc_GroupType Group,
+    uint32 u32CoreId
+)
+{
+    const Adc_GroupType GroupIndex = Adc_pCfgPtr[u32CoreId]->pGroupIdToIndexMap[Group];
+    const Adc_HwUnitType PhysicalHwUnitId = Adc_pCfgPtr[u32CoreId]->pAdcIpwConfig->aAdcPhysicalId[Unit];
+    Std_ReturnType Status = E_OK;
+    Adc_Ip_StatusType IPLStatus;
+    uint8 ChIndex;
+
+    /* Stop PDB hardware trigger unit */
+    Pdb_Adc_Ip_DisableAndClearPdb(PhysicalHwUnitId);
+
+    /* Check if ADC is in continuous mode */
+    if(((uint8)STD_ON == Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].u8AdcWithoutInterrupt) && (ADC_CONV_MODE_CONTINUOUS == Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].eMode))
+    {
+        /* Set to Oneshot mode */
+        Adc_Ip_SetContinuousMode(PhysicalHwUnitId, FALSE);
+    }
+
+    /* Disable all channels */
+    for (ChIndex = 0U; ChIndex < Adc_aUnitStatus[Unit].u8Sc1Used; ChIndex++)
+    {
+        /* Stop conversion in SC1n register and wait until conversion is aborted. */
+        /* Because some channels in chain are not converted yet */
+        IPLStatus = Adc_Ip_SetDisabledChannel(PhysicalHwUnitId, ChIndex, TRUE);
+        if (IPLStatus == ADC_IP_STATUS_TIMEOUT)
+        {
+            Status = E_NOT_OK;
+        }
+    }
+    return Status;
+}
+#endif /* (ADC_ENABLE_START_STOP_GROUP_API == STD_ON) */
+
+#ifdef ADC_DMA_SUPPORTED
+/**
+* @brief        This function configures the DMA Transfer involved in the ADC conversion process.
+* @details      This function configures the Dma Ip to Transfer data from Data Register to Result Buffer.
+*               It should be called with the ADC Unit on standby (no ADC interrupt event allowed
+*               because its code is not protected by critical regions) - no conversions is ongoing.
+*
+* @param[in]    Unit        The Adc Logical Unit Id.
+* @param[in]    u32CoreId   Current CoreID
+*
+* @return       void
+*
+* @pre  ADC Unit is in stand by, there is no ongoing conversion.
+*/
+void Adc_Ipw_StartDmaOperation
+(
+    Adc_HwUnitType Unit,
+    Adc_GroupType Group,
+    uint8 u8NumChannel,
+    uint32 u32CoreId
+)
+{
+#if (STD_ON == ADC_OPTIMIZE_DMA_STREAMING_GROUPS)
+    /* This variable is used to make a temp DMA transfer by itself. */
+    static uint8 Adc_Ipw_u8DmaDraftBuffer;
+#endif /* (STD_ON == ADC_OPTIMIZE_DMA_STREAMING_GROUPS) */
+    uint8 u8Index;
+    uint8 LocTransferListNumElems;
+    Adc_ChannelIndexType ChannelCount;
+    const Adc_HwUnitType PhysicalHwUnitId = Adc_pCfgPtr[u32CoreId]->pAdcIpwConfig->aAdcPhysicalId[Unit];
+    const Adc_GroupType GroupIndex = Adc_pCfgPtr[u32CoreId]->pGroupIdToIndexMap[Group]; /* Group index in each partition */
+    const uint32 u32AdcDmaLogicChId = Adc_pCfgPtr[u32CoreId]->pAdcIpwConfig->Mapping.au8Adc_DmaChannel[Unit];
+    const Adc_GroupConfigurationType * pGroupPtr = &(Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex]); /* Pointer to AdcGroup */
+    Adc_StreamNumSampleType u8GroupNumSample = pGroupPtr->NumSamples;
+    Dma_Ip_LogicChannelTransferListType LocTransferList[16U];
+#if (STD_ON == ADC_OPTIMIZE_DMA_STREAMING_GROUPS) || (ADC_ENABLE_GROUP_STREAMING_RESULTS_REORDER == STD_ON)
+    Dma_Ip_LogicChannelTransferListType CountingDmaLocTransferList[16U];
+    const uint32 u32AdcCountingDmaLogicChId = Adc_pCfgPtr[u32CoreId]->pAdcIpwConfig->Mapping.au8Adc_CountingDmaChannel[Unit];
+#endif /* (ADC_OPTIMIZE_DMA_STREAMING_GROUPS = STD_ON) || (ADC_ENABLE_GROUP_STREAMING_RESULTS_REORDER == STD_ON)*/
+
+    /* Get number of channel in the Group */
+#if (ADC_SETCHANNEL_API == STD_ON)
+    ChannelCount = Adc_aRuntimeGroupChannel[Group].ChannelCount;
+#else
+    ChannelCount = pGroupPtr->AssignedChannelCount;
+#endif
+
+    if ((uint8)STD_ON == pGroupPtr->u8AdcWithoutInterrupt)
+    {
+        /* Reset u16DmaNoIrqBuffer to invalid value when enabling the group, because this buffer is used by ReadGroup to check that conversions are complete and results available */
+        for (u8Index = 0; u8Index < ADC_MAX_CHANNEL_PER_HW_UNIT; u8Index++)
+        {
+            u16DmaNoIrqBuffer[PhysicalHwUnitId][u8Index] = ADC_IPW_INVALID_DATA_RESULT_DMA;
+        }
+    }
+
+    /* Prepare for Software TCD Configuration:
+    0. Source Address (SADDR): Starting address of the first ADC channel
+    1. Source Transfer Size (SSIZE): Number of bytes to read each time.
+    2. Source Address Offset (SOFF): [Datasize * 2 (4 bytes)] (offset to starting address of next ADC channel data field)
+    3. Destination Address (DADDR): Starting address of group user buffer
+    4. Destination Transfer Size (DSIZE): [Datasize (or 1 or DMA_SIZE_2BYTES)] (write 2 bytes/Doffset).
+    5. Destination Address Offset (DOFF): [No.Samples * Datasize (=2bytes)] (next channel of sample)
+    6. Minor Loop Size (NBYTES): [No.Channels * Datasize (=2bytes)] (number of bytes to transfer per service request).
+    7. Major Loop Count (CITER): [No.Channels] (Number of minor loop in a major loop)
+    8. Start to Transfer by Software (TCDn_CSR.START). TODO can be removed?
+    9. Enable Major Interrupt (INTMAJOR): Enable Interrupt If Major count complete.
+    10. Enable Half Major Interrupt (INTHALF): Enable Interrupt If Major Counter Half-complete
+    11. Disable Automatic Hardware Request (DREQ): clear automatically the ERQ bit.
+    12. The Source Signed Last Address Adjustment: will adjust source address after major is done.
+         [-(No.Channels * u32soff)] (<two's complement> number of bytes that source address offsets in a loop)
+    13. Destination Signed Last Address Adjustment: will adjust destination address after major is done.
+    */
+    LocTransferList[0].Param = DMA_IP_CH_SET_SOURCE_ADDRESS;
+    LocTransferList[0].Value = Adc_Ip_GetDataAddress(PhysicalHwUnitId, 0U);
+    LocTransferList[1].Param = DMA_IP_CH_SET_SOURCE_TRANSFER_SIZE;
+    LocTransferList[1].Value = (uint32)1U; /* 2 Bytes */
+    LocTransferList[2].Param = DMA_IP_CH_SET_SOURCE_SIGNED_OFFSET;
+    LocTransferList[2].Value = (uint32)4U; /* offset to starting address of next data field */
+    LocTransferList[3].Param = DMA_IP_CH_SET_DESTINATION_ADDRESS;
+    LocTransferList[3].Value = (uint32)(&(pGroupPtr->pResultsBufferPtr[Group][0U]));
+    LocTransferList[4].Param = DMA_IP_CH_SET_DESTINATION_TRANSFER_SIZE;
+    LocTransferList[4].Value = (uint32)1U; /* 2 Bytes */
+    LocTransferList[5].Param = DMA_IP_CH_SET_DESTINATION_SIGNED_OFFSET;
+    LocTransferList[5].Value = (uint32)u8GroupNumSample << 1U;
+    LocTransferList[6].Param = DMA_IP_CH_SET_MINORLOOP_SIZE;
+    LocTransferList[6].Value = (uint32)2U;
+    LocTransferList[7].Param = DMA_IP_CH_SET_MAJORLOOP_COUNT;
+    LocTransferList[7].Value = (uint32)u8NumChannel;
+    LocTransferList[8].Param = DMA_IP_CH_SET_CONTROL_SOFTWARE_REQUEST;
+    LocTransferList[8].Value = FALSE;
+    LocTransferList[9].Param = DMA_IP_CH_SET_CONTROL_EN_MAJOR_INTERRUPT;
+    LocTransferList[9].Value = TRUE;
+    LocTransferList[10].Param = DMA_IP_CH_SET_CONTROL_EN_HALF_MAJOR_INTERRUPT;
+    LocTransferList[10].Value = FALSE;
+    LocTransferList[11].Param = DMA_IP_CH_SET_CONTROL_DIS_AUTO_REQUEST;
+    LocTransferList[11].Value = TRUE;
+    LocTransferList[12].Param = DMA_IP_CH_SET_SOURCE_SIGNED_LAST_ADDR_ADJ;
+    LocTransferList[12].Value = ADC_IPW_GET_COMPLEMENT_OF_2((uint32)u8NumChannel << 2UL);
+    LocTransferList[13].Param = DMA_IP_CH_SET_DESTINATION_SIGNED_LAST_ADDR_ADJ;
+    if (u8GroupNumSample == 1U)
+    {
+        LocTransferList[13].Value = ADC_IPW_GET_COMPLEMENT_OF_2((uint32)u8NumChannel << 1U); /* multiply by 2U because this is the ADC result data size */
+    }
+    else
+    {
+        LocTransferList[13].Value = ADC_IPW_GET_COMPLEMENT_OF_2((((uint32)(ChannelCount) * (uint32)u8GroupNumSample) - 1UL) << 1U); /* multiply by 2U because this is the ADC result data size */
+    }
+
+#if (ADC_ENABLE_GROUP_STREAMING_RESULTS_REORDER == STD_ON)
+    if ((TRUE == pGroupPtr->bStreamResultGroupMultiSets) && (u8GroupNumSample > 1U))
+    {
+        LocTransferList[5].Value = (uint32)2U;
+        LocTransferList[13].Value = (uint32)0U;
+    }
+#endif /* (ADC_ENABLE_GROUP_STREAMING_RESULTS_REORDER == STD_ON) */
+
+    LocTransferListNumElems = 14U;
+    if((uint8)STD_ON == pGroupPtr->u8AdcWithoutInterrupt)
+    {
+        LocTransferList[3].Value = (uint32)(&(u16DmaNoIrqBuffer[PhysicalHwUnitId][0])); /* Transfer results in internal buffer first */
+        LocTransferList[9].Value = FALSE;
+        LocTransferList[11].Value = FALSE;
+#if (ADC_ENABLE_GROUP_STREAMING_RESULTS_REORDER == STD_ON)
+        if (pGroupPtr->eAccessMode == ADC_ACCESS_MODE_STREAMING)
+        {
+            /* Link to counting DMA channel to transfer results from u16DmaNoIrqBuffer to buffer setup by user.
+            Use extra transfer via u16DmaNoIrqBuffer to allow usage of ReadGroup */
+            LocTransferList[13].Value = ADC_IPW_GET_COMPLEMENT_OF_2((uint32)u8NumChannel << 1U); /* multiply by 2U because this is the ADC result data size */
+            LocTransferList[14].Param = DMA_IP_CH_SET_MAJORLOOP_EN_LINK;
+            LocTransferList[14].Value = TRUE;
+            LocTransferList[15].Param = DMA_IP_CH_SET_MAJORLOOP_LOGIC_LINK_CH;
+            LocTransferList[15].Value = u32AdcCountingDmaLogicChId;
+            LocTransferListNumElems = 16U;
+        }
+#endif /* (ADC_ENABLE_GROUP_STREAMING_RESULTS_REORDER == STD_ON) */
+    }
+
+#if (STD_ON == ADC_OPTIMIZE_DMA_STREAMING_GROUPS)
+    /* Setchannel/EnableChannel/DisableChannel cannot be used with optimize DMA streaming groups multiple group channels */
+    if (TRUE == pGroupPtr->bAdcOptimizeDmaStream)
+    {
+        if (1U == ChannelCount)
+        {
+            LocTransferList[2].Value = (uint32)0U; /* Group has only one channel */
+
+            LocTransferList[5].Value = (uint32)(2U);
+            LocTransferList[7].Value = (uint32)u8GroupNumSample;
+            LocTransferList[10].Value = (pGroupPtr->bHalfInterrupt == TRUE) ? 1UL : 0UL;
+            LocTransferList[12].Value = (uint32)0U;
+            /* Each minor loop, DMA will transfer 2 bytes. So adjustment value will be [(-((No.Sample) * u32doff))]
+            (<two's complement> number of bytes that destination address offsets in a major loop) */
+            LocTransferList[13].Value = ADC_IPW_GET_COMPLEMENT_OF_2(((uint32)(u8GroupNumSample) * LocTransferList[5].Value));
+
+        }
+        else
+        {
+            /* Configuration of counter DMA channel for optimize DMA streaming groups:
+            * DMA_IP_CH_SET_SOURCE_ADDRESS      = [Starting address of a dummy byte] with offset = 0
+            * DMA_IP_CH_SET_DESTINATION_ADDRESS = [Starting address of a dummy byte] with offset = 0
+            * DMA_IP_CH_SET_MINORLOOP_SIZE      = [1] (total transferred bytes of 1 loop)
+            * DMA_IP_CH_SET_MAJORLOOP_COUNT (citer/biter) = [No.Samples] (The DMA acts as an hardware counter. Number of samples imply citer/biter count)
+            * Control register flags = [  DMA_IP_CH_SET_CONTROL_EN_HALF_MAJOR_INTERRUPT=1 (if Adc Group Enable Half Interrupt is enabled)
+            *                           | DMA_IP_CH_SET_CONTROL_EN_MAJOR_INTERRUPT=1
+            *                           | DMA_IP_CH_SET_CONTROL_DIS_AUTO_REQUEST=1]
+            * <other field> = 0 */
+            CountingDmaLocTransferList[0].Param = DMA_IP_CH_SET_SOURCE_ADDRESS;
+            CountingDmaLocTransferList[0].Value = (uint32)&Adc_Ipw_u8DmaDraftBuffer;
+            CountingDmaLocTransferList[1].Param = DMA_IP_CH_SET_SOURCE_TRANSFER_SIZE;
+            CountingDmaLocTransferList[1].Value = 0U; /* 1 Bytes */
+            CountingDmaLocTransferList[2].Param = DMA_IP_CH_SET_SOURCE_SIGNED_OFFSET;
+            CountingDmaLocTransferList[2].Value = 0U;
+            CountingDmaLocTransferList[3].Param = DMA_IP_CH_SET_DESTINATION_ADDRESS;
+            CountingDmaLocTransferList[3].Value = (uint32)&Adc_Ipw_u8DmaDraftBuffer;
+            CountingDmaLocTransferList[4].Param = DMA_IP_CH_SET_DESTINATION_TRANSFER_SIZE;
+            CountingDmaLocTransferList[4].Value = 0U; /* 1 Bytes */
+            CountingDmaLocTransferList[5].Param = DMA_IP_CH_SET_DESTINATION_SIGNED_OFFSET;
+            CountingDmaLocTransferList[5].Value = 0U;
+            CountingDmaLocTransferList[6].Param = DMA_IP_CH_SET_MINORLOOP_SIZE;
+            CountingDmaLocTransferList[6].Value = 1U;
+            CountingDmaLocTransferList[7].Param = DMA_IP_CH_SET_MAJORLOOP_COUNT;
+            CountingDmaLocTransferList[7].Value = (uint32)u8GroupNumSample;
+            CountingDmaLocTransferList[8].Param = DMA_IP_CH_SET_CONTROL_SOFTWARE_REQUEST;
+            CountingDmaLocTransferList[8].Value = FALSE;
+            CountingDmaLocTransferList[9].Param = DMA_IP_CH_SET_CONTROL_EN_MAJOR_INTERRUPT;
+            CountingDmaLocTransferList[9].Value = TRUE;
+            CountingDmaLocTransferList[10].Param = DMA_IP_CH_SET_CONTROL_EN_HALF_MAJOR_INTERRUPT;
+            CountingDmaLocTransferList[10].Value = (pGroupPtr->bHalfInterrupt == TRUE) ? 1UL : 0UL;
+
+            (void)Dma_Ip_SetLogicChannelTransferList(u32AdcCountingDmaLogicChId, CountingDmaLocTransferList, 11U);
+
+            /* Configuration of transferring data DMA channel for optimize DMA streaming groups
+            Disable Major and Half-Major Interrupt for main DMA Channel. Interrupt was handled by Counting Dma Channel */
+            LocTransferList[9].Value = FALSE;
+            LocTransferList[10].Value = FALSE;
+            /* Need to keep receiving DMA request from ADC */
+            LocTransferList[11].Value = FALSE;
+
+            /* Link to counting DMA channel to count number of completed sample and use DMA callback to update group status. */
+            LocTransferList[14].Param = DMA_IP_CH_SET_MAJORLOOP_EN_LINK;
+            LocTransferList[14].Value = TRUE;
+            LocTransferList[15].Param = DMA_IP_CH_SET_MAJORLOOP_LOGIC_LINK_CH;
+            LocTransferList[15].Value = (uint32)u32AdcCountingDmaLogicChId;
+            LocTransferListNumElems = 16U;
+        }
+    }
+#endif /*  (STD_ON == ADC_OPTIMIZE_DMA_STREAMING_GROUPS) */
+#if (ADC_ENABLE_GROUP_STREAMING_RESULTS_REORDER == STD_ON)
+    /* Note that AdcEnableOptimizeDmaStreamingGroups cannot be enabled simultaneously with Without Interrupts.
+    So the CountingDmaLocTransferList configured for bAdcOptimizeDmaStream is NOT overwritten by these. */
+    /* Configure Counting DMA channel to transfer results from u16DmaNoIrqBuffer to buffer setup by user.
+     Streaming results reorder feature must be enabled to allow running without interrupts for groups with ChannelCount > 1,
+     and also ChannelCount == 1, but for the latter reorder is not necessary to be enabled at group level. */
+    if ((pGroupPtr->eAccessMode == ADC_ACCESS_MODE_STREAMING) && ((uint8)STD_ON == pGroupPtr->u8AdcWithoutInterrupt))
+    {
+        if ((ChannelCount == 1U) || ((ChannelCount > 1U) && (pGroupPtr->bStreamResultGroupMultiSets == TRUE))) /* TODO: rename bStreamResultGroupMultiSets to reorder */
+        {
+            CountingDmaLocTransferList[0].Param = DMA_IP_CH_SET_SOURCE_ADDRESS;
+            CountingDmaLocTransferList[0].Value = (uint32)&(u16DmaNoIrqBuffer[PhysicalHwUnitId][0U]);
+            CountingDmaLocTransferList[1].Param = DMA_IP_CH_SET_SOURCE_TRANSFER_SIZE;
+            CountingDmaLocTransferList[1].Value = (uint32)1U; /* 2 Bytes */
+            CountingDmaLocTransferList[2].Param = DMA_IP_CH_SET_SOURCE_SIGNED_OFFSET;
+            CountingDmaLocTransferList[2].Value = (uint32)2U; /* move by 2 Bytes */
+            CountingDmaLocTransferList[3].Param = DMA_IP_CH_SET_DESTINATION_ADDRESS;
+            CountingDmaLocTransferList[3].Value = (uint32) & (pGroupPtr->pResultsBufferPtr[Group][0U]);
+            CountingDmaLocTransferList[4].Param = DMA_IP_CH_SET_DESTINATION_TRANSFER_SIZE;
+            CountingDmaLocTransferList[4].Value = (uint32)1U; /* 2 Bytes */
+            CountingDmaLocTransferList[5].Param = DMA_IP_CH_SET_DESTINATION_SIGNED_OFFSET;
+            CountingDmaLocTransferList[5].Value = (uint32)2U; /* 2U because this is ADC result register size. TODO: replace with CDATA SIZE */
+            CountingDmaLocTransferList[6].Param = DMA_IP_CH_SET_MINORLOOP_SIZE;
+            CountingDmaLocTransferList[6].Value = (uint32)u8NumChannel << 1UL; /* multiply by 2U because this is the ADC result data size */
+            CountingDmaLocTransferList[7].Param = DMA_IP_CH_SET_MAJORLOOP_COUNT;
+            CountingDmaLocTransferList[7].Value = (uint32)u8GroupNumSample;
+            CountingDmaLocTransferList[8].Param = DMA_IP_CH_SET_MINORLOOP_EN_SRC_OFFSET;
+            CountingDmaLocTransferList[8].Value = TRUE;
+            CountingDmaLocTransferList[9].Param = DMA_IP_CH_SET_MINORLOOP_SIGNED_OFFSET;
+            CountingDmaLocTransferList[9].Value = ADC_IPW_GET_COMPLEMENT_OF_2((uint32)u8NumChannel << 1UL); /* multiply by 4U because 2 is the ADC result register size and 2 are additional info u16DmaNoIrqBuffer because needed for ReadGroup*/
+            CountingDmaLocTransferList[10].Param = DMA_IP_CH_SET_CONTROL_SOFTWARE_REQUEST;
+            CountingDmaLocTransferList[10].Value = FALSE;
+            CountingDmaLocTransferList[11].Param = DMA_IP_CH_SET_CONTROL_EN_MAJOR_INTERRUPT;
+            CountingDmaLocTransferList[11].Value = FALSE;
+            CountingDmaLocTransferList[12].Param = DMA_IP_CH_SET_CONTROL_EN_HALF_MAJOR_INTERRUPT;
+            CountingDmaLocTransferList[12].Value = FALSE;
+            CountingDmaLocTransferList[13].Param = DMA_IP_CH_SET_CONTROL_DIS_AUTO_REQUEST;
+            CountingDmaLocTransferList[13].Value = TRUE;
+            CountingDmaLocTransferList[14].Param = DMA_IP_CH_SET_SOURCE_SIGNED_LAST_ADDR_ADJ;
+            CountingDmaLocTransferList[14].Value = ADC_IPW_GET_COMPLEMENT_OF_2((uint32)u8NumChannel << 1UL); /* multiply by 4U because 2 is the ADC result register size and 2 are additional info u16DmaNoIrqBuffer because needed for ReadGroup*/
+            CountingDmaLocTransferList[15].Param = DMA_IP_CH_SET_DESTINATION_SIGNED_LAST_ADDR_ADJ;
+            CountingDmaLocTransferList[15].Value = ADC_IPW_GET_COMPLEMENT_OF_2(((uint32)u8NumChannel * (uint32)u8GroupNumSample) << 1U); /* multiply by 2U because this is the ADC result data size */
+
+            (void)Dma_Ip_SetLogicChannelTransferList(u32AdcCountingDmaLogicChId, CountingDmaLocTransferList, 16U);
+            /* Enable Hardware Request for Counting Dma channel */
+            (void)Dma_Ip_SetLogicChannelCommand(u32AdcCountingDmaLogicChId, DMA_IP_CH_SET_HARDWARE_REQUEST);
+        }
+    }
+#endif /* (ADC_ENABLE_GROUP_STREAMING_RESULTS_REORDER == STD_ON) */
+
+    (void)Dma_Ip_SetLogicChannelTransferList(u32AdcDmaLogicChId, LocTransferList, LocTransferListNumElems);
+    /* Enable Hardware Request for Dma */
+    (void)Dma_Ip_SetLogicChannelCommand(u32AdcDmaLogicChId, DMA_IP_CH_SET_HARDWARE_REQUEST);
+
+}
+#endif /* ADC_DMA_SUPPORTED */
+
+#if (ADC_SET_ADC_CONV_TIME_ONCE == STD_OFF)
+/**
+* @brief          This function performs general configurations to the adc hardware prior to starting a conversion.
+* @details        This function performs general configurations to the adc hardware prior to starting a conversion.
+*
+* @param[in]      Unit                  The Adc Logical Unit Id.
+* @param[in]      GroupPtr              The pointer to the group configuration structure.
+* @param[in]      u32CoreId             Current CoreID
+*
+* @return         void
+*/
+static inline void Adc_Ipw_PrepareGroupStart
+(
+    Adc_HwUnitType Unit,
+    const Adc_GroupConfigurationType * GroupPtr,
+    uint32 u32CoreId
+)
+{
+    Adc_ConversionTimeType ConvTime;
+    Adc_HwUnitType PhysicalHwUnitId = Adc_pCfgPtr[u32CoreId]->pAdcIpwConfig->aAdcPhysicalId[Unit];
+
+#if (ADC_DUAL_CLOCK_MODE == STD_ON)
+    if (ADC_NORMAL == Adc_eClockMode[u32CoreId])
+    {
+        if ((uint8)STD_ON == GroupPtr->pAdcIpwGroupConfig->u8GroupAvgEnable)
+        {
+            Adc_Ip_SetAveraging(PhysicalHwUnitId, TRUE, GroupPtr->pAdcIpwGroupConfig->GroupAvgSelect);
+        }
+    }
+    else
+    {
+        if ((uint8)STD_ON == GroupPtr->pAdcIpwGroupConfig->u8GroupAvgEnableAlternate)
+        {
+            Adc_Ip_SetAveraging(PhysicalHwUnitId, TRUE, GroupPtr->pAdcIpwGroupConfig->GroupAvgSelectAlternate);
+        }
+    }
+#else /* (ADC_DUAL_CLOCK_MODE == STD_OFF) */
+    {
+        if ((uint8)STD_ON == GroupPtr->pAdcIpwGroupConfig->u8GroupAvgEnable)
+        {
+            Adc_Ip_SetAveraging(PhysicalHwUnitId, TRUE, GroupPtr->pAdcIpwGroupConfig->GroupAvgSelect);
+        }
+    }
+#endif /* (ADC_DUAL_CLOCK_MODE == STD_ON) */
+
+    /* Get the configuration value of conversion time */
+#if (ADC_DUAL_CLOCK_MODE == STD_ON)
+    if (ADC_NORMAL == Adc_eClockMode[u32CoreId])
+    {
+        ConvTime = GroupPtr->pAdcIpwGroupConfig->ConvTime;
+    }
+    else
+    {
+        ConvTime = GroupPtr->pAdcIpwGroupConfig->AlternateConvTime;
+    }
+#else /* (ADC_DUAL_CLOCK_MODE == STD_OFF) */
+    ConvTime = GroupPtr->pAdcIpwGroupConfig->ConvTime;
+    (void)u32CoreId;
+#endif /* (ADC_DUAL_CLOCK_MODE == STD_ON) */
+    /*  Program Conversion Time */
+    Adc_Ip_SetSampleTime(PhysicalHwUnitId, ConvTime);
+}
+#endif /* (ADC_SET_ADC_CONV_TIME_ONCE == STD_OFF) */
+
+/*==================================================================================================
+*                                       GLOBAL FUNCTIONS
+==================================================================================================*/
+#if ((defined(ADC_UNIT_0_ISR_USED)) || (defined(ADC_UNIT_1_ISR_USED)) || \
+     (defined(ADC_DMA_SUPPORTED)) || (ADC_READ_GROUP_API == STD_ON) \
+    )
+/**
+* @brief          This function calculates number of bits that need to shift according the alignment configuration
+* @details        This function calculates number of bits that need to shift according the alignment configuration
+*
+* @param[in]      Resolution    Adc resolution enum value
+*
+* @return         uint8        Number of bits shift
+*/
+uint8 Adc_Ipw_CalculateNumsBitShift
+(
+    Adc_Ip_ResolutionType Resolution
+)
+{
+    uint8 NumsBitShift;
+#if (ADC_RESULT_ALIGNMENT == ADC_ALIGN_LEFT)
+    switch (Resolution)
+    {
+        case ADC_IP_RESOLUTION_8BIT:
+            NumsBitShift = 8u;
+            break;
+        case ADC_IP_RESOLUTION_10BIT:
+            NumsBitShift = 6u;
+            break;
+        case ADC_IP_RESOLUTION_12BIT:
+            NumsBitShift = 4u;
+            break;
+        default:
+            /* Default is 12 bits */
+            NumsBitShift = 4u;
+            break;
+    }
+#else
+    NumsBitShift = 0u;
+    (void) Resolution;
+#endif /* (ADC_RESULT_ALIGNMENT == ADC_ALIGN_LEFT) */
+
+    return NumsBitShift;
+}
+#endif  /* (defined(ADC_UNIT_0_ISR_USED) || ... */
+
+/**
+* @brief            Configure channels of a group
+* @details          This function configure channels of a group
+*                   if number of channels in group excess maximum channels allowed for a conversion,
+*                   a part of channels of group (= max allowed channels) will be configured in start conversion in the first time.
+*                   the remaining channels of group will be seperated into other parts which are configured and converted in group interrupt.
+*
+* @param[in]      Unit          Adc Logical Unit Id
+* @param[in]      Group         Group number
+* @param[in]      Trigger       PDB trigger
+* @param[in]      NumChannel    Number of channels to be configured
+*
+* @return       void
+*
+* @pre  ADC Unit is in stand by, there is no ongoing conversion.
+*/
+void Adc_Ipw_ConfigureConversion
+(
+    Adc_HwUnitType Unit,
+    Adc_GroupType Group,
+    Adc_HwTriggerTimerType Trigger,
+    uint8 NumChannel,
+    uint32 u32CoreId
+)
+{
+    uint8 ChIndex;
+    Adc_ChannelIndexType CurrentChannel;
+    Adc_Ip_ChanConfigType ChannelConfig;
+    const Adc_GroupType GroupIndex = Adc_pCfgPtr[u32CoreId]->pGroupIdToIndexMap[Group];
+    const Adc_GroupConfigurationType * GroupPtr = &(Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex]);
+    const Adc_HwUnitType PhysicalHwUnitId = Adc_pCfgPtr[u32CoreId]->pAdcIpwConfig->aAdcPhysicalId[Unit];
+    Adc_Ip_InputChannelType Channel;
+    const Adc_GroupDefType * ChannelsDefinition = NULL_PTR;
+
+    /* Next channel will be converted */
+    CurrentChannel = Adc_aGroupStatus[Group].CurrentChannel;
+
+#if (ADC_SETCHANNEL_API == STD_ON)
+    /* Get status of channels are changed at runtime */
+    uint32 TempMask = Adc_aRuntimeGroupChannel[Group].u32Mask;
+#endif /* ADC_SETCHANNEL_API */
+
+#if (ADC_SETCHANNEL_API == STD_ON)
+    /* Get configured channels */
+    /* At runtime */
+    ChannelsDefinition = Adc_aRuntimeGroupChannel[Group].pChannel;
+#else
+    /* Pre-configuration */
+    ChannelsDefinition = GroupPtr->pAssignment;
+#endif /* ADC_SETCHANNEL_API */
+
+    /* Configure channels from current to (last channel - 1) */
+    for (ChIndex = 0U; ChIndex < (NumChannel - 1U); ChIndex++)
+    {
+        /* Physical channel ID */
+        Channel = Adc_pCfgPtr[u32CoreId]->pAdcIpwConfig->apAdcConfig[Unit]->ChannelConfigs[ChannelsDefinition[(CurrentChannel + ChIndex)]].Channel;
+
+#if (ADC_SETCHANNEL_API == STD_ON)
+        /* Channel was changed? */
+        if (1U == (TempMask & 1U))
+#endif /* ADC_SETCHANNEL_API */
+        {
+            /* Configure all channels except the last one with interrupts disabled */
+            ChannelConfig.ChnIdx = ChIndex;
+            ChannelConfig.Channel = Channel;
+            ChannelConfig.InterruptEnable = FALSE;
+            Adc_Ip_ConfigChannel(PhysicalHwUnitId, &ChannelConfig);
+        }
+#if (ADC_SETCHANNEL_API == STD_ON)
+        TempMask = TempMask >> (uint32)1U;
+        /* There are no channels changed then break out the loop */
+        if (0U == TempMask)
+        {
+            break;
+        }
+#endif /* ADC_SETCHANNEL_API */
+    }
+
+    /* Configure last channel */
+#if (ADC_SETCHANNEL_API == STD_ON)
+    /* Last channel was changed? */
+    if (1U == (TempMask & 1U))
+#endif
+    {
+        /* Get channel ID */
+        Channel = Adc_pCfgPtr[u32CoreId]->pAdcIpwConfig->apAdcConfig[Unit]->ChannelConfigs[ChannelsDefinition[(CurrentChannel + ChIndex)]].Channel;
+        ChannelConfig.ChnIdx = ChIndex;
+        ChannelConfig.Channel = Channel;
+        /* In case of group is configured with interrupt, the complete int bit of the last channel must be enabled */
+        if ((uint8)STD_OFF == GroupPtr->u8AdcWithoutInterrupt)
+        {
+            ChannelConfig.InterruptEnable = TRUE;
+        }
+        else
+        {
+            ChannelConfig.InterruptEnable = FALSE;
+        }
+
+        /* Configure last channel */
+        Adc_Ip_ConfigChannel(PhysicalHwUnitId, &ChannelConfig);
+    }
+
+#if ((ADC_OPTIMIZE_ONESHOT_HW_TRIGGER == STD_OFF) || (ADC_SETCHANNEL_API == STD_ON))
+    for (ChIndex = NumChannel; ChIndex < ADC_MAX_CHAN_COUNT; ChIndex++)
+    {
+        /* Disable other channels by configuring them as disabled */
+        ChannelConfig.ChnIdx = ChIndex;
+        ChannelConfig.Channel = ADC_IP_INPUTCHAN_DISABLED;
+        ChannelConfig.InterruptEnable = FALSE;
+        Adc_Ip_ConfigChannel(PhysicalHwUnitId, &ChannelConfig);
+    }
+#endif /* (ADC_OPTIMIZE_ONESHOT_HW_TRIGGER == STD_OFF) || (ADC_SETCHANNEL_API == STD_ON) */
+
+     /* Save the Sc1Used register equal the number of channels configured */
+     Adc_aUnitStatus[Unit].u8Sc1Used = NumChannel;
+     /* Start software trigger through PDB or enable PDB hardware trigger */
+     Adc_Ipw_ConfigurePdbConversion(Unit, Group, GroupPtr, Trigger, NumChannel);
+}
+
+#ifdef ADC_DMA_SUPPORTED
+/**
+* @brief        This function configures IPL for DMA Transfer.
+* @details      This function configures IP layer in order to Transfer data from Data Register to Result Buffer.
+*
+* @param[in]    Unit        Adc Logical Unit Id
+* @param[in]    Group       Group number
+* @param[in]    Trigger     PDB trigger
+* @param[in]    NumChannel  number of conversion channels
+*
+* @return       void
+*
+* @pre  ADC Unit is in stand by, there is no ongoing conversion.
+*/
+/* TODO: Merged this to Adc_Ipw_ConfigureConversion for Optimization */
+void Adc_Ipw_ConfigureDmaConversion
+(
+    Adc_HwUnitType Unit,
+    Adc_GroupType Group,
+    Adc_HwTriggerTimerType Trigger,
+    uint8 NumChannel
+)
+{
+    uint8 ChIndex;
+    Adc_ChannelIndexType CurrentChannel;
+    Adc_Ip_ChanConfigType ChannelConfig;
+    const Adc_GroupType GroupIndex = Adc_pCfgPtr[0U]->pGroupIdToIndexMap[Group];
+    const Adc_GroupConfigurationType * GroupPtr = &(Adc_pCfgPtr[0U]->pGroups[GroupIndex]);
+    const Adc_HwUnitType PhysicalHwUnitId = Adc_pCfgPtr[0U]->pAdcIpwConfig->aAdcPhysicalId[Unit];
+    Adc_Ip_InputChannelType Channel;
+    const Adc_GroupDefType * ChannelsDefinition = NULL_PTR;
+
+    /* Next channel will be converted */
+    CurrentChannel = Adc_aGroupStatus[Group].CurrentChannel;
+
+    /* Ensure that PDB does not run when ADC configured */
+    Pdb_Adc_Ip_Disable(PhysicalHwUnitId);
+
+#if (ADC_SETCHANNEL_API == STD_ON)
+    /* Get configured channels */
+    /* At runtime */
+    ChannelsDefinition = Adc_aRuntimeGroupChannel[Group].pChannel;
+#else
+    /* Pre-configuration */
+    ChannelsDefinition = GroupPtr->pAssignment;
+#endif /* ADC_SETCHANNEL_API */
+
+    /* Because the transfer type is DMA so need to disable interrupt for all used channels */
+    /* Interrupt will be generated through DMA Callback */
+    for (ChIndex = 0U; ChIndex < NumChannel; ChIndex++)
+    {
+        /* Logical channel ID */
+        Channel = Adc_pCfgPtr[0U]->pAdcIpwConfig->apAdcConfig[Unit]->ChannelConfigs[ChannelsDefinition[(CurrentChannel + ChIndex)]].Channel;
+        /* Disable other channels by configuring them as disabled */
+        ChannelConfig.ChnIdx = ChIndex;
+        ChannelConfig.Channel = Channel;
+        ChannelConfig.InterruptEnable = FALSE;
+        Adc_Ip_ConfigChannel(PhysicalHwUnitId, &ChannelConfig);
+    }
+
+#if ((ADC_OPTIMIZE_ONESHOT_HW_TRIGGER == STD_OFF) || (ADC_SETCHANNEL_API == STD_ON))
+    for (ChIndex = NumChannel; ChIndex < ADC_MAX_CHAN_COUNT; ChIndex++)
+    {
+        /* Disable other channels by configuring them as disabled */
+        ChannelConfig.ChnIdx = ChIndex;
+        ChannelConfig.Channel = ADC_IP_INPUTCHAN_DISABLED;
+        ChannelConfig.InterruptEnable = FALSE;
+        Adc_Ip_ConfigChannel(PhysicalHwUnitId, &ChannelConfig);
+    }
+#endif /* (ADC_OPTIMIZE_ONESHOT_HW_TRIGGER == STD_OFF) || (ADC_SETCHANNEL_API == STD_ON) */
+
+    /* Save the Sc1Used register equal the number of channels configured */
+     Adc_aUnitStatus[Unit].u8Sc1Used = NumChannel;
+
+    /* Start software trigger through PDB or enable PDB hardware trigger */
+     Adc_Ipw_ConfigurePdbConversion(Unit, Group, GroupPtr, Trigger, NumChannel);
+}
+#endif /* ADC_DMA_SUPPORTED */
+
+#if (ADC_HW_TRIGGER_API == STD_ON)
+/**
+* @brief          This function starts a hardware trigger conversion.
+* @details        This function starts a hardware trigger conversion.
+*
+* @param[in]      Unit        Adc Logical Unit Id
+* @param[in]      Group       Group number
+*
+* @return         void
+*/
+void Adc_Ipw_StartHwTrigConversion
+(
+    Adc_HwUnitType Unit,
+    Adc_GroupType Group,
+    uint32 u32CoreId
+)
+{
+    uint8 NumChannel;
+#ifdef ADC_DMA_SUPPORTED
+    const Adc_HwUnitType PhysicalHwUnitId = Adc_pCfgPtr[u32CoreId]->pAdcIpwConfig->aAdcPhysicalId[Unit];
+#endif /* ADC_DMA_SUPPORTED */
+    const Adc_GroupType GroupIndex = Adc_pCfgPtr[u32CoreId]->pGroupIdToIndexMap[Group];
+    const Adc_GroupConfigurationType * GroupPtr = &(Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex]);
+
+    /* Calculate the number of channels for current configuration */
+#if (ADC_SETCHANNEL_API == STD_ON)
+    NumChannel = (uint8)ADC_IPW_CALCULATE_CHAN_NUMBER(Adc_aRuntimeGroupChannel[Group].ChannelCount);
+#else
+    NumChannel = (uint8)ADC_IPW_CALCULATE_CHAN_NUMBER(GroupPtr->AssignedChannelCount);
+#endif
+
+    /* If it is the first group, u8Sc1Used is assigned as the number channels of group */
+    if(0U == Adc_aUnitStatus[Unit].u8Sc1Used)
+    {
+        Adc_aUnitStatus[Unit].u8Sc1Used = NumChannel;
+    }
+    Adc_aGroupStatus[Group].CurrentChannel = 0U;
+
+#ifdef ADC_DMA_SUPPORTED
+    /* Not required to check u8AdcWithoutDma == FALSE, because u8AdcWithoutDma is only supported for SW normal triggered which cannot be HW Trigger when DMA transfer selected for HW unit */
+    if ((ADC_DMA == Adc_pCfgPtr[u32CoreId]->pAdcIpwConfig->Mapping.u8Adc_DmaInterruptSoftware[Unit]))
+    {
+        /* Enable DMA for ADC Module */
+        Adc_Ip_EnableDma(PhysicalHwUnitId);
+
+        if((uint8)STD_OFF == GroupPtr->u8AdcExtDMAChanEnable)
+        {
+            /* Configure for DMA transfer */
+            Adc_Ipw_StartDmaOperation(Unit, Group, NumChannel, u32CoreId);
+        }
+
+        /* Setting for ADC in case of DMA transfer was selected, in the first time DMA should not be re-configured */
+        Adc_Ipw_ConfigureDmaConversion(Unit, Group, GroupPtr->HwTriggerSource, NumChannel);
+    }
+    else
+#endif /* ADC_DMA_SUPPORTED */
+    {
+        /* Setting for ADC hardware in case of DMA transfer was not selected */
+        Adc_Ipw_ConfigureConversion(Unit, Group, GroupPtr->HwTriggerSource, NumChannel, u32CoreId);
+    }
+#if (ADC_SETCHANNEL_API == STD_ON)
+    if (TRUE == Adc_aRuntimeGroupChannel[Group].bRuntimeUpdated)
+    {
+        /* Roll back to the first sample */
+        Adc_aGroupStatus[Group].ResultIndex = 0U;
+        /* Reset the update status */
+        Adc_aRuntimeGroupChannel[Group].bRuntimeUpdated =  FALSE;
+    }
+#endif /* (ADC_SETCHANNEL_API == STD_ON) */
+}
+#endif /* (ADC_HW_TRIGGER_API == STD_ON) */
+
+/**
+* @brief          This function initializes the ADC hardware modules, triggering units and the ADC driver.
+* @details        This function initializes the ADC hardware module, and the ADC driver.
+*
+* @param[in]      pIpwCfg           Configuration data pointer.
+* @param[in]      u32CoreId         Current CoreID
+*
+* @return         Std_ReturnType    E_OK or E_NOT_OK.
+* @retval         E_OK              If Power up/Power down activities return status as expected.
+* @retval         E_NOT_OK          If Power up/Power down activities couldn't return status as expected.
+*
+*/
+Std_ReturnType Adc_Ipw_Init
+(
+    const Adc_Ipw_Config * pIpwCfg,
+    const uint32 u32CoreId
+)
+{
+    Adc_HwUnitType LogicalHwUnitId = 0U;
+    Adc_HwUnitType PhysicalHwUnitId = 0U;
+    Std_ReturnType TimeOutStatus = (Std_ReturnType)E_OK;
+
+    for (LogicalHwUnitId = 0U; LogicalHwUnitId < ADC_MAX_HW_UNITS_CFG; LogicalHwUnitId++)
+    {
+        if (pIpwCfg->Mapping.au8Adc_HwUnit[LogicalHwUnitId] == (uint8)STD_ON) /* HW unit enabled on current partition */
+        {
+            PhysicalHwUnitId = pIpwCfg->aAdcPhysicalId[LogicalHwUnitId];
+            Adc_Ip_Init(PhysicalHwUnitId, pIpwCfg->apAdcConfig[LogicalHwUnitId]);
+            Pdb_Adc_Ip_Init(PhysicalHwUnitId, pIpwCfg->apPdbConfig[LogicalHwUnitId]);
+        }
+    }
+
+    (void)u32CoreId;
+
+    return TimeOutStatus;
+}
+
+#if (ADC_DEINIT_API == STD_ON)
+/**
+* @brief          This function de-initializes the ADC driver, and the ADC hardware.
+* @details        This function de-initializes the ADC driver, and ensures that the ADC hardware
+*                 will be in the power on after reset state.
+*
+* @param[in]      u32CoreId         Current CoreID
+*
+* @return         Std_ReturnType    E_OK or E_NOT_OK.
+* @retval         E_OK              If the operation completed successfully.
+* @retval         E_NOT_OK          In case of timeout while waiting for adc hardware operations.
+*
+*/
+Std_ReturnType Adc_Ipw_DeInit
+(
+    uint32 u32CoreId
+)
+{
+    Adc_HwUnitType PhysicalHwUnitId = 0U;
+    Adc_HwUnitType LogicalHwUnitId = 0U;
+    Adc_GroupType GroupId = 0U;
+    Adc_GroupType GroupIter = 0U;
+    Std_ReturnType ReturnStatus = E_OK;
+
+    for (LogicalHwUnitId = 0U; LogicalHwUnitId < ADC_MAX_HW_UNITS_CFG; LogicalHwUnitId++)
+    {
+        if (Adc_pCfgPtr[u32CoreId]->pAdcIpwConfig->Mapping.au8Adc_HwUnit[LogicalHwUnitId] == (uint8)STD_ON) /* HW unit enabled on current partition */
+        {
+            PhysicalHwUnitId = Adc_pCfgPtr[u32CoreId]->pAdcIpwConfig->aAdcPhysicalId[LogicalHwUnitId];
+            Adc_Ip_DeInit(PhysicalHwUnitId);
+            Pdb_Adc_Ip_DeInit(PhysicalHwUnitId);
+        }
+    }
+
+    for (GroupIter = 0U; GroupIter < (Adc_GroupType)Adc_pCfgPtr[u32CoreId]->GroupCount; GroupIter++)
+    {
+        GroupId = Adc_pCfgPtr[u32CoreId]->pGroups[GroupIter].GroupId;
+        Adc_pCfgPtr[u32CoreId]->pGroups[GroupIter].pResultsBufferPtr[GroupId] = NULL_PTR;
+#if (ADC_SETCHANNEL_API == STD_ON)
+        Adc_aRuntimeGroupChannel[GroupId].pChannel = NULL_PTR;
+        Adc_aRuntimeGroupChannel[GroupId].ChannelCount = 0U;
+        Adc_aRuntimeGroupChannel[GroupId].bRuntimeUpdated = FALSE;
+#if (ADC_ENABLE_LIMIT_CHECK == STD_ON)
+        Adc_aRuntimeGroupChannel[GroupId].bAdcRuntimeGroupLimitcheck = FALSE;
+#endif /* (ADC_ENABLE_LIMIT_CHECK == STD_ON) */
+#endif
+#if (ADC_GRP_NOTIF_CAPABILITY == STD_ON)
+        Adc_aGroupStatus[GroupId].eNotification = ADC_NOTIFICATION_DISABLED;
+#endif  /* (ADC_GRP_NOTIF_CAPABILITY == STD_ON) */
+    }
+#if (ADC_DUAL_CLOCK_MODE == STD_ON)
+#if (ADC_SET_ADC_CONV_TIME_ONCE == STD_OFF)
+    Adc_eClockMode[u32CoreId] = ADC_NORMAL;
+#endif /* (ADC_SET_ADC_CONV_TIME_ONCE == STD_OFF) */
+#endif /* (ADC_DUAL_CLOCK_MODE == STD_ON) */
+
+    return ReturnStatus;
+}
+#endif /* (ADC_DEINIT_API == STD_ON) */
+
+#if (ADC_ENABLE_START_STOP_GROUP_API == STD_ON)
+/**
+* @brief          This function starts the conversion on the specified hardware Unit.
+* @details        This function starts the conversion on the specified hardware Unit.
+*                 This function should be called with the ADC Unit on standby (no ADC interruptions
+*                 allowed because its code is not protected by critical regions) - no conversions must
+*                 be running.
+*
+* @param[in]      Unit          Adc Logical Unit Id
+* @param[in]      u32CoreId     Current CoreID
+*
+* @return         void
+*
+*/
+void Adc_Ipw_StartNormalConversion
+(
+    Adc_HwUnitType Unit,
+    uint32 u32CoreId
+)
+{
+    Adc_GroupType Group = Adc_aUnitStatus[Unit].SwNormalQueue[0U]; /* Active group in the Queue */
+#if (defined(ADC_DMA_SUPPORTED) || defined(ADC_CONTINUOUS_NO_INTERRUPT_SUPPORTED) || \
+    (ADC_ENABLE_LIMIT_CHECK == STD_ON) || (ADC_SETCHANNEL_API == STD_OFF) || \
+    (ADC_SET_ADC_CONV_TIME_ONCE == STD_OFF))
+    Adc_GroupType GroupIndex = Adc_pCfgPtr[u32CoreId]->pGroupIdToIndexMap[Group]; /* Group index in each partition */
+    const Adc_GroupConfigurationType * GroupPtr = &(Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex]); /* Pointer to AdcGroup */
+#endif /* (defined(ADC_DMA_SUPPORTED) ||... */
+    const Adc_HwUnitType PhysicalHwUnitId = Adc_pCfgPtr[u32CoreId]->pAdcIpwConfig->aAdcPhysicalId[Unit];
+    uint8 NumChannel;
+    uint8 ChIndex;
+#ifdef ADC_CONTINUOUS_NO_INTERRUPT_SUPPORTED
+    boolean PdbMode;
+#endif /* ADC_CONTINUOUS_NO_INTERRUPT_SUPPORTED */
+
+    /* Do nothing if there is no request available in queue */
+    if ((Adc_aUnitStatus[Unit].SwNormalQueueIndex != (Adc_QueueIndexType)0U)
+#if (ADC_ENABLE_LIMIT_CHECK == STD_ON)
+        || ((Adc_aGroupStatus[Group].bLimitCheckFailed == FALSE) && (GroupPtr->eMode == ADC_CONV_MODE_ONESHOT))
+#endif /* ADC_ENABLE_LIMIT_CHECK == STD_ON */
+        )
+    {
+
+#if (ADC_SET_ADC_CONV_TIME_ONCE == STD_OFF)
+        /* Configure group params (e.g. conversion time) if needed before starting conversion */
+        Adc_Ipw_PrepareGroupStart(Unit, GroupPtr, u32CoreId);
+#endif /* (ADC_SET_ADC_CONV_TIME_ONCE == STD_OFF) */
+
+        /* Reset to start conversion from channel logical index 0 */
+        Adc_aGroupStatus[Group].CurrentChannel = 0U;
+
+        /* Calculate the number of channels for current configuration */
+#if (ADC_SETCHANNEL_API == STD_ON)
+        /* Channel enabled at runtime */
+        NumChannel = (uint8)ADC_IPW_CALCULATE_CHAN_NUMBER(Adc_aRuntimeGroupChannel[Group].ChannelCount);
+#else
+        /* Channel enabled from initialzing */
+        NumChannel = (uint8)ADC_IPW_CALCULATE_CHAN_NUMBER(GroupPtr->AssignedChannelCount);
+#endif /* (ADC_SETCHANNEL_API == STD_ON) */
+
+        /* Update u8Sc1Used for the first time */
+        if (0U == Adc_aUnitStatus[Unit].u8Sc1Used)
+        {
+            Adc_aUnitStatus[Unit].u8Sc1Used = NumChannel;
+        }
+
+#ifdef ADC_CONTINUOUS_NO_INTERRUPT_SUPPORTED
+        PdbMode = (ADC_CONV_MODE_CONTINUOUS == GroupPtr->eMode) && ((uint8)STD_ON == GroupPtr->u8AdcWithoutInterrupt);
+        Pdb_Adc_Ip_SetContinuousMode(PhysicalHwUnitId, PdbMode);
+#endif /* ADC_CONTINUOUS_NO_INTERRUPT_SUPPORTED */
+
+#ifdef ADC_DMA_SUPPORTED
+        if ((ADC_DMA == Adc_pCfgPtr[u32CoreId]->pAdcIpwConfig->Mapping.u8Adc_DmaInterruptSoftware[Unit]) && (GroupPtr->u8AdcWithoutDma == FALSE))
+        {
+            /* Enable DMA for ADC module */
+            Adc_Ip_EnableDma(PhysicalHwUnitId);
+            if ((uint8)STD_OFF == GroupPtr->u8AdcExtDMAChanEnable)
+            {
+                /* Setting for DMA transfer */
+                Adc_Ipw_StartDmaOperation(Unit, Group, NumChannel, u32CoreId);
+            }
+            /* Setting for Adc in case of DMA transfer was selected, in the first time DMA should not be re-configured */
+            Adc_Ipw_ConfigureDmaConversion(Unit, Group, PDB_ADC_IP_SOFTWARE_TRIGGER, NumChannel);
+        }
+        else
+#endif /* ADC_DMA_SUPPORTED */
+        {
+            /* Clear all of COCO flag by reading Rn registers */
+            for (ChIndex = 0U; ChIndex < Adc_aUnitStatus[Unit].u8Sc1Used; ChIndex++)
+            {
+                (void)Adc_Ip_GetConvData(PhysicalHwUnitId, ChIndex);
+            }
+            Adc_Ip_SetTriggerMode(PhysicalHwUnitId, ADC_IP_TRIGGER_HARDWARE);
+
+            /* Update group configuration to registers and start conversion */
+            Adc_Ipw_ConfigureConversion(Unit, Group, PDB_ADC_IP_SOFTWARE_TRIGGER, NumChannel, u32CoreId);
+        }
+#if (ADC_SETCHANNEL_API == STD_ON)
+        if (TRUE == Adc_aRuntimeGroupChannel[Group].bRuntimeUpdated)
+        {
+            /* Reset the update status */
+            Adc_aRuntimeGroupChannel[Group].bRuntimeUpdated =  FALSE;
+        }
+#endif /* (ADC_SETCHANNEL_API == STD_ON) */
+    }
+}
+
+/**
+* @brief          This function stops the current conversion of a group.
+* @details        This function stops the current conversion of a group.
+*
+* @param[in]      Unit              Adc Logical Unit Id
+* @param[in]      Group             The group id
+* @param[in]      u32CoreId         Current CoreID
+*
+* @return         Std_ReturnType    E_OK or E_NOT_OK.
+* @retval         E_OK              If the conversion has stopped as expected.
+* @retval         E_NOT_OK          In case of timeout while waiting for adc hardware to stop a conversion.
+*
+*/
+Std_ReturnType Adc_Ipw_StopCurrentConversion
+(
+    Adc_HwUnitType Unit,
+    Adc_GroupType Group,
+    uint32 u32CoreId
+)
+{
+#if ((ADC_BYPASS_ABORT_CHAIN_CHECK == STD_ON) || defined(ADC_DMA_SUPPORTED))
+    const Adc_GroupType GroupIndex = Adc_pCfgPtr[u32CoreId]->pGroupIdToIndexMap[Group];
+#endif /* (ADC_BYPASS_ABORT_CHAIN_CHECK == STD_ON) */
+    Std_ReturnType Status = (Std_ReturnType)E_OK;
+    const Adc_HwUnitType PhysicalHwUnitId = Adc_pCfgPtr[u32CoreId]->pAdcIpwConfig->aAdcPhysicalId[Unit];
+    uint8 ChIndex;
+
+    /* Disable Adc hardware unit and clear all of COCO flag by reading Rn register */
+    for (ChIndex = 0U; ChIndex < Adc_aUnitStatus[Unit].u8Sc1Used; ChIndex++)
+    {
+        (void) Adc_Ip_SetDisabledChannel(PhysicalHwUnitId, ChIndex, FALSE);
+
+        /* Make a dummy read to clear COCO flag */
+        (void) Adc_Ip_GetConvData(PhysicalHwUnitId, ChIndex);
+    }
+#ifdef ADC_DMA_SUPPORTED
+    if (((uint8)ADC_DMA == Adc_pCfgPtr[u32CoreId]->pAdcIpwConfig->Mapping.u8Adc_DmaInterruptSoftware[Unit]) && (Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].u8AdcWithoutDma == FALSE))
+    {
+        /* Disable DMA for Adc */
+        Adc_Ip_DisableDma(PhysicalHwUnitId);
+        if((uint8)STD_OFF == Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].u8AdcExtDMAChanEnable)
+        {
+            /* Disable DMA hardware request */
+            (void)Dma_Ip_SetLogicChannelCommand(Adc_pCfgPtr[u32CoreId]->pAdcIpwConfig->Mapping.au8Adc_DmaChannel[Unit], DMA_IP_CH_CLEAR_HARDWARE_REQUEST);
+        }
+    }
+#endif /* ADC_DMA_SUPPORTED */
+    /* Reset current channel status to 0 */
+    Adc_aGroupStatus[Group].CurrentChannel = 0U;
+
+    /* Stop the conversion and abort the current group conversion */
+#if (ADC_BYPASS_ABORT_CHAIN_CHECK == STD_ON)
+    if ((uint8)STD_OFF == Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].u8AdcWithoutInterrupt)
+    {
+        Status = Adc_Ipw_StopConversionCheckTimeout(Unit, Group, u32CoreId);
+    }
+#ifdef ADC_CONTINUOUS_NO_INTERRUPT_SUPPORTED
+    else
+    {
+        /* If group is continuous and configured without interrupts, clear the CONTINUOUS bit */
+        if (ADC_CONV_MODE_CONTINUOUS == Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].eMode)
+        {
+            Pdb_Adc_Ip_DisableAndClearPdb(PhysicalHwUnitId);
+        }
+    }
+#endif /* ADC_CONTINUOUS_NO_INTERRUPT_SUPPORTED */
+#else
+    Status = Adc_Ipw_StopConversionCheckTimeout(Unit, Group, u32CoreId);
+#endif /* (ADC_BYPASS_ABORT_CHAIN_CHECK == STD_OFF) */
+
+    return Status;
+}
+#endif /* (ADC_ENABLE_START_STOP_GROUP_API == STD_ON) */
+
+#if (ADC_HW_TRIGGER_API == STD_ON)
+/**
+* @brief          This function enables the hardware triggers for the specified group.
+* @details        This function enables the hardware triggers for the specified group.
+*
+* @param[in]      Group             The group for which the hardware triggers will be enabled
+* @param[in]      Unit              Adc Logical Unit Id
+* @param[in]      u32CoreId         Current CoreID
+*
+* @return         Std_ReturnType    E_OK or E_NOT_OK.
+* @retval         E_OK              If there is no running conversion.
+* @retval         E_NOT_OK          If there is a running conversion.
+*
+*/
+Std_ReturnType Adc_Ipw_EnableHardwareTrigger
+(
+    Adc_GroupType Group,
+    Adc_HwUnitType Unit,
+    uint32 u32CoreId
+)
+{
+    uint8 ChIndex;
+
+#if (ADC_SET_ADC_CONV_TIME_ONCE == STD_OFF)
+    const Adc_GroupType GroupIndex = Adc_pCfgPtr[u32CoreId]->pGroupIdToIndexMap[Group];
+    const Adc_GroupConfigurationType * GroupPtr = &(Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex]);
+#endif /* (ADC_SET_ADC_CONV_TIME_ONCE == STD_OFF) */
+    const Adc_HwUnitType PhysicalHwUnitId = Adc_pCfgPtr[u32CoreId]->pAdcIpwConfig->aAdcPhysicalId[Unit];
+    Adc_aGroupStatus[Group].ResultIndex = 0U;
+
+    /* Clear all of COCO flag by reading Rn registers */
+    for(ChIndex = 0U; ChIndex < Adc_aUnitStatus[Unit].u8Sc1Used; ChIndex++)
+    {
+        (void)Adc_Ip_GetConvData(PhysicalHwUnitId, ChIndex);
+    }
+
+#if (ADC_SET_ADC_CONV_TIME_ONCE == STD_OFF)
+    /* Configure group params (e.g. conversion time) if needed before starting conversion */
+    Adc_Ipw_PrepareGroupStart(Unit, GroupPtr, u32CoreId);
+#endif /* (ADC_SET_ADC_CONV_TIME_ONCE == STD_OFF) */
+
+    Adc_Ipw_StartHwTrigConversion(Unit, Group, u32CoreId);
+
+    return E_OK;
+}
+
+/**
+* @brief          This function disables the hardware triggers for the specified group.
+* @details        This function disables the hardware triggers for the specified group.
+*
+* @param[in]      Group           The group for which the hardware triggers will be enabled
+* @param[in]      Unit            Adc Logical Unit Id
+*
+* @return         void
+*
+*/
+void Adc_Ipw_DisableHardwareTrigger
+(
+    Adc_GroupType Group,
+    Adc_HwUnitType Unit,
+    uint32 u32CoreId
+)
+{
+    uint8 ChIndex;
+    Adc_Ip_ChanConfigType ChannelConfig;
+    const Adc_HwUnitType PhysicalHwUnitId = Adc_pCfgPtr[u32CoreId]->pAdcIpwConfig->aAdcPhysicalId[Unit];
+#ifdef ADC_DMA_SUPPORTED
+    Adc_GroupType GroupIndex = Adc_pCfgPtr[u32CoreId]->pGroupIdToIndexMap[Group];
+#endif /* ADC_DMA_SUPPORTED */
+
+    (void) Group;
+
+#ifdef ADC_DMA_SUPPORTED
+    /* Not required to check u8AdcWithoutDma == FALSE, because u8AdcWithoutDma is only supported for SW normal triggered which cannot be HW Trigger when DMA transfer selected for HW unit */
+    if (ADC_DMA == Adc_pCfgPtr[u32CoreId]->pAdcIpwConfig->Mapping.u8Adc_DmaInterruptSoftware[Unit])
+    {
+        if ((uint8)STD_ON == Adc_pCfgPtr[u32CoreId]->pAdcIpwConfig->Mapping.au8Adc_HwUnit[Unit])
+        {
+            /* Disable DMA for ADC Module */
+            Adc_Ip_DisableDma(PhysicalHwUnitId);
+            if((uint8)STD_OFF == Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].u8AdcExtDMAChanEnable)
+            {
+                /* Disable Hardware Request for Dma */
+                (void)Dma_Ip_SetLogicChannelCommand(Adc_pCfgPtr[u32CoreId]->pAdcIpwConfig->Mapping.au8Adc_DmaChannel[Unit], DMA_IP_CH_CLEAR_HARDWARE_REQUEST);
+            }
+        }
+    }
+#endif /* ADC_DMA_SUPPORTED */
+
+    /* Disable Pdb hardware unit */
+    Pdb_Adc_Ip_DisableAndClearPdb(PhysicalHwUnitId);
+
+    /* Disable Adc hardware unit */
+    for(ChIndex = 0U; ChIndex < Adc_aUnitStatus[Unit].u8Sc1Used; ChIndex++)
+    {
+        ChannelConfig.ChnIdx = ChIndex;
+        ChannelConfig.Channel = ADC_IP_INPUTCHAN_DISABLED;
+        ChannelConfig.InterruptEnable = FALSE;
+        Adc_Ip_ConfigChannel(PhysicalHwUnitId, &ChannelConfig);
+    }
+}
+#endif /* ADC_HW_TRIGGER_API == STD_ON */
+
+/**
+* @brief          Small function that validates current conversion.
+* @details        Validates current conversion.
+*
+* @param[in]      PhysicalHwUnitId  The group number.
+* @param[in]      StartIndex        Starting index of the check.
+* @param[in]      EndIndex          End index of the check.
+* @return         boolean  TRUE or FALSE.
+* @retval         TRUE              Valid conversion.
+* @retval         FALSE             Invalid conversion.
+*
+*/
+boolean Adc_Ipw_CheckValidConversion
+(
+    Adc_HwUnitType PhysicalHwUnitId,
+    Adc_ChannelIndexType StartIndex,
+    Adc_ChannelIndexType EndIndex
+)
+{
+    Adc_ChannelIndexType Index;
+    boolean ValidConversion = TRUE;
+
+    for (Index = StartIndex; Index < EndIndex; Index++)
+    {
+        ValidConversion = Adc_Ip_GetConvCompleteFlag(PhysicalHwUnitId, Index - StartIndex);
+        if (!ValidConversion)
+        {
+            break;
+        }
+    }
+
+    return ValidConversion;
+}
+
+#if (ADC_READ_GROUP_API == STD_ON)
+/**
+* @brief          This function reads the converted data for the requested group.
+* @details        Reads the converted data for the requested group.
+*
+* @param[in]      Group           The group number.
+* @param[in]      pDataPtr        Pointer to a buffer which will be filled by the
+*                                 conversion results.
+* @param[in]      pFlag
+* @return         Std_ReturnType  E_OK or E_NOT_OK.
+* @retval         E_OK            In case of successful read of the converted data.
+* @retval         E_NOT_OK        In case of an ongoing conversion.
+*
+*/
+Std_ReturnType Adc_Ipw_ReadGroup
+(
+    const Adc_GroupType Group,
+    Adc_ValueGroupType * pDataPtr,
+    boolean * pFlag,
+    uint32 u32CoreId
+)
+{
+    Std_ReturnType ReadGroupRet = (Std_ReturnType)E_OK;
+    const Adc_GroupType GroupIndex = Adc_pCfgPtr[u32CoreId]->pGroupIdToIndexMap[Group];
+    const Adc_GroupConfigurationType * GroupPtr = &(Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex]);
+    const Adc_HwUnitType LogicalHwUnitId = GroupPtr->AdcLogicalUnitId;
+
+    /* If the group is configured for without interrupts */
+    if ((uint8)STD_ON == GroupPtr->u8AdcWithoutInterrupt)
+    {
+        /* Return error if group is not at the first of queue */
+        if (ADC_CONV_TYPE_NORMAL == GroupPtr->eType)
+        {
+            if (ADC_TRIGG_SRC_SW == GroupPtr->eTriggerSource)
+            {
+                if (Group != Adc_aUnitStatus[LogicalHwUnitId].SwNormalQueue[0U])
+                {
+                    ReadGroupRet = (Std_ReturnType)E_NOT_OK;
+                }
+            }
+#if (STD_ON == ADC_HW_TRIGGER_API)
+            else
+            {
+                if (Group != Adc_aUnitStatus[LogicalHwUnitId].OngoingHwGroup)
+                {
+                    ReadGroupRet = (Std_ReturnType)E_NOT_OK;
+                }
+            }
+#endif /* (STD_ON == ADC_HW_TRIGGER_API) */
+        }
+        if ((Std_ReturnType)E_OK == ReadGroupRet)
+        {
+            ReadGroupRet = Adc_Ipw_ReadGroupNoInt(GroupPtr, pDataPtr, pFlag, u32CoreId);
+        }
+    }
+    else  /* If the group is configured with interrupts */
+    {
+        if (ADC_BUSY == Adc_aGroupStatus[Group].eConversion)
+        {
+            ReadGroupRet = (Std_ReturnType)E_NOT_OK;
+        }
+
+        if ((Std_ReturnType)E_OK == ReadGroupRet)
+        {
+            Adc_Ipw_WriteDataBuffer(Group, pDataPtr, u32CoreId);
+        }
+    }
+
+    return ReadGroupRet;
+}
+#endif /* (ADC_READ_GROUP_API == STD_ON) */
+
+
+#if (ADC_ENABLE_READ_RAW_DATA_API == STD_ON)
+/**
+* @brief          This function reads the converted data for the requested channel.
+* @details        Reads the converted data for the requested channel.
+* @note           The function might return E_NOT_OK in case the number of configured
+*                 channels are greater than number of SC1 register (ADC_MAX_CHAN_COUNT)
+*
+* @param[in]      Unit            Adc Logical Unit Id
+* @param[in]      Channel         Channel to be read
+* @param[in]      u32CoreId       Current CoreID
+* @param[out]     Result          Conversion result
+* @return         Std_ReturnType  E_OK or E_NOT_OK.
+* @retval         E_OK            In case of successful read of the converted data.
+* @retval         E_NOT_OK        In case of not found channel.
+*
+*/
+Std_ReturnType Adc_Ipw_GetConvData
+(
+    Adc_HwUnitType Unit,
+    Adc_ChannelType Channel,
+    uint32 u32CoreId,
+    uint16 * Result
+)
+{
+    const Adc_HwUnitType PhysicalHwUnitId = Adc_pCfgPtr[u32CoreId]->pAdcIpwConfig->aAdcPhysicalId[Unit];
+    Std_ReturnType Status = (Std_ReturnType)E_NOT_OK;
+
+    *Result = 0u;
+
+    if (ADC_IP_STATUS_SUCCESS == Adc_Ip_GetChanData(PhysicalHwUnitId, (Adc_Ip_InputChannelType)Channel, Result))
+    {
+        Status = (Std_ReturnType)E_OK;
+    }
+
+    return Status;
+}
+#endif /* (ADC_ENABLE_READ_RAW_DATA_API == STD_ON) */
+
+#if (ADC_ENABLE_LIMIT_CHECK == STD_ON)
+/**
+* @brief          Checks if conversion values are in the configured range.
+* @details        Return true if conversion values are in the configured range, otherwise false.
+*
+* @param[in]      Value                 Adc conversion value.
+*                 LogicalHwUnitId       Adc Hardware Unit.
+*                 Index                 Adc channel index assigned to a group.
+*                 u32CoreId             Current CoreID
+*
+* @return         boolean               Conversion value in range flag.
+* @retval         TRUE                  If conversion values are in the configured range.
+* @retval         FALSE                 If conversion values are not in the configured range.
+*
+* @pre            Driver must be initialized.
+*/
+boolean Adc_Ipw_CheckConversionValuesInRange
+(
+    Adc_ValueGroupType Value,
+    Adc_HwUnitType LogicalHwUnitId,
+    Adc_ChannelType ChannelIndex,
+    uint32 u32CoreId
+)
+{
+    const Adc_ChannelLimitCheckingType * const pChannelLimitCheckingCfg = &(Adc_pCfgPtr[u32CoreId]->pAdcIpwConfig->ChannelLimitCheckingConfigs[LogicalHwUnitId][ChannelIndex]);
+    boolean bValInRange = FALSE;
+    const Adc_ChannelRangeSelectType eChRange = pChannelLimitCheckingCfg->eChannelRange;
+    const Adc_ValueGroupType LowLimit = pChannelLimitCheckingCfg->ChannelLowLimit;
+    const Adc_ValueGroupType HighLimit = pChannelLimitCheckingCfg->ChannelHighLimit;
+
+    switch (eChRange)
+    {
+        /* Complete range - independent from channel limit settings. */
+        case ADC_RANGE_ALWAYS:
+        {
+            bValInRange = TRUE;
+            break;
+        }
+        /* Range between low limit and high limit - high limit value included. */
+        case ADC_RANGE_BETWEEN:
+        {
+            if ((Value > LowLimit) && (Value <= HighLimit))
+            {
+                bValInRange = TRUE;
+            }
+            break;
+        }
+        /* Range above high limit or below low limit - low limit value included. */
+        case ADC_RANGE_NOT_BETWEEN:
+        {
+            if ((Value > HighLimit) || (Value <= LowLimit))
+            {
+                bValInRange = TRUE;
+            }
+            break;
+        }
+        /* Range below high limit -high limit value included. */
+        case ADC_RANGE_NOT_OVER_HIGH:
+        {
+            if (Value <= HighLimit)
+            {
+                bValInRange = TRUE;
+            }
+            break;
+        }
+        /* Range above low limit. */
+        case ADC_RANGE_NOT_UNDER_LOW:
+        {
+            if (Value > LowLimit)
+            {
+                bValInRange = TRUE;
+            }
+            break;
+        }
+        /* Range above high limit. */
+        case ADC_RANGE_OVER_HIGH:
+        {
+            if (Value > HighLimit)
+            {
+                bValInRange = TRUE;
+            }
+            break;
+        }
+        /* Range below low limit - low limit value included. */
+        case ADC_RANGE_UNDER_LOW:
+        {
+            if (Value <= LowLimit)
+            {
+                bValInRange = TRUE;
+            }
+            break;
+        }
+        /* Unexpected value */
+        default:
+        {
+            ; /* no-op */
+            break;
+        }
+    }
+    return bValInRange;
+}
+#endif /* (ADC_ENABLE_LIMIT_CHECK == STD_ON) */
+
+#if (ADC_DUAL_CLOCK_MODE == STD_ON)
+/**
+* @brief          This function sets the Prescaler value only when ADC is in power down mode.
+* @details        Set prescaler clock divider only in power down mode.
+*
+* @param[in]      Prescaler         ADC_NORMAL, ADC_ALTERNATE.
+* @param[in]      u32CoreId         Current CoreID
+*
+* @return         Std_ReturnType  E_OK or E_NOT_OK.
+* @retval         E_OK            In case of successful set hw unit power mode.
+* @retval         E_NOT_OK        In case of unsuccessful set hw unit power mode.
+*
+*/
+Std_ReturnType Adc_Ipw_SetClockMode
+(
+   Adc_SelectPrescalerType Prescaler,
+   uint32 u32CoreId
+)
+{
+    Adc_HwUnitType LogicalHwUnitId = 0U; /* Hardware Unit index */
+    Adc_HwUnitType PhysicalHwUnitId = 0U; /* Hardware Unit index */
+    Adc_Ip_ClockConfigType AdcNormalClockConfig;
+    const Adc_Ip_ConfigType * pAdc;
+
+    for (LogicalHwUnitId = 0U; LogicalHwUnitId < ADC_MAX_HW_UNITS_CFG; LogicalHwUnitId++)
+    {
+        if (Adc_pCfgPtr[u32CoreId]->pAdcIpwConfig->Mapping.au8Adc_HwUnit[LogicalHwUnitId] == (uint8)STD_ON) /* HW unit enabled on current partition */
+        {
+            PhysicalHwUnitId = Adc_pCfgPtr[u32CoreId]->pAdcIpwConfig->aAdcPhysicalId[LogicalHwUnitId];
+            pAdc = Adc_pCfgPtr[u32CoreId]->pAdcIpwConfig->apAdcConfig[LogicalHwUnitId];
+            if (Prescaler == ADC_NORMAL)
+            {
+                AdcNormalClockConfig.ClockDivide = pAdc->ClockDivide;
+                AdcNormalClockConfig.InputClock = pAdc->InputClock;
+                AdcNormalClockConfig.SampleTime = pAdc->SampleTime;
+                AdcNormalClockConfig.AvgEn = pAdc->AvgEn;
+                AdcNormalClockConfig.AvgSel = pAdc->AvgSel;
+                Adc_Ip_SetClockMode(PhysicalHwUnitId, &AdcNormalClockConfig);
+            }
+            else
+            {
+                Adc_Ip_SetClockMode(PhysicalHwUnitId, Adc_pCfgPtr[u32CoreId]->pAdcIpwConfig->apAdcAltClockConfig[LogicalHwUnitId]);
+            }
+        }
+    }
+
+    return E_OK;
+}
+#endif /* (ADC_DUAL_CLOCK_MODE == STD_ON) */
+
+#if (ADC_CALIBRATION == STD_ON)
+void Adc_Ipw_Calibrate
+(
+    Adc_HwUnitType Unit,
+    Adc_CalibrationStatusType * Status,
+    uint32 u32CoreId
+)
+{
+    Adc_Ip_StatusType IpStatus;
+    const Adc_HwUnitType PhysicalHwUnitId = Adc_pCfgPtr[u32CoreId]->pAdcIpwConfig->aAdcPhysicalId[Unit];
+
+    Status->Adc_UnitSelfTestStatus = E_OK;
+    IpStatus = Adc_Ip_DoCalibration(PhysicalHwUnitId);
+
+    if (IpStatus != ADC_IP_STATUS_SUCCESS)
+    {
+        Status->Adc_UnitSelfTestStatus = E_NOT_OK;
+#if (ADC_CALSTAT_AVAILABLE == STD_ON)
+        /* TODO: populate Status->Adc_au8Calibrate_Failed_Steps */
+#endif /* (ADC_CALSTAT_AVAILABLE == STD_ON) */
+    }
+}
+#endif /* ADC_CALIBRATION == STD_ON */
+
+/**
+* @brief        This function returns the id of the core from which it is called.
+* @details      This function returns the result of the OsIf_GetCoreID OS function
+*               (which is called in the appropriate context depending on USER MODE)
+*               If the multicore feature is disabled for ADC, this function will return 0.
+*
+* @param[in]    void
+*
+* @return      uint32  the core number.
+*/
+uint32 Adc_GetCoreID(void)
+{
+    return 0UL;
+}
+#define ADC_STOP_SEC_CODE
+#include "Adc_MemMap.h"
+
+#ifdef __cplusplus
+}
+#endif
+
+/** @} */

+ 1701 - 0
RTD/src/Adc_Ipw_Irq.c

@@ -0,0 +1,1701 @@
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : ADC
+*   Dependencies         : none
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_D2108_ASR_REL_4_4_REV_0000_20210810
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+
+/**
+*   @file
+*
+*   @internal
+*   @addtogroup adc_ipw Adc Ipw
+*   @{
+*/
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+/*==================================================================================================
+*                                        INCLUDE FILES
+* 1) system and project includes
+* 2) needed interfaces from external Units
+* 3) internal and external interfaces from this Unit
+==================================================================================================*/
+
+/* TODO: only added for: extern const Adc_ConfigType * Adc_pCfgPtr[ADC_MAX_PARTITIONS]*/
+#include "Adc.h"
+#include "Adc_Ipw.h"
+#include "Adc_Ipw_Irq.h"
+#include "Adc_Ipw_Types.h"
+#include "Mcal.h"
+#include "Det.h"
+
+/*==================================================================================================
+*                              SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+#define ADC_VENDOR_ID_IPW_IRQ_C                      43
+#define ADC_AR_RELEASE_MAJOR_VERSION_IPW_IRQ_C       4
+#define ADC_AR_RELEASE_MINOR_VERSION_IPW_IRQ_C       4
+#define ADC_AR_RELEASE_REVISION_VERSION_IPW_IRQ_C    0
+#define ADC_SW_MAJOR_VERSION_IPW_IRQ_C               1
+#define ADC_SW_MINOR_VERSION_IPW_IRQ_C               0
+#define ADC_SW_PATCH_VERSION_IPW_IRQ_C               0
+/*==================================================================================================
+*                                     FILE VERSION CHECKS
+==================================================================================================*/
+/* Check if Adc_Ipw_Irq.c file and Adc.h file are of the same vendor */
+#if (ADC_VENDOR_ID_IPW_IRQ_C != ADC_VENDOR_ID)
+    #error "Adc_Ipw_Irq.c and Adc.h have different vendor ids"
+#endif
+
+/* Check if Adc_Ipw_Irq.c file and Adc.h file are of the same Autosar version */
+#if ((ADC_AR_RELEASE_MAJOR_VERSION_IPW_IRQ_C != ADC_AR_RELEASE_MAJOR_VERSION) || \
+     (ADC_AR_RELEASE_MINOR_VERSION_IPW_IRQ_C != ADC_AR_RELEASE_MINOR_VERSION) || \
+     (ADC_AR_RELEASE_REVISION_VERSION_IPW_IRQ_C != ADC_AR_RELEASE_REVISION_VERSION) \
+    )
+    #error "AutoSar Version Numbers of Adc_Ipw_Irq.c and Adc.h are different"
+#endif
+
+/* Check if Adc_Ipw_Irq.c file and Adc.h file are of the same Software version */
+#if ((ADC_SW_MAJOR_VERSION_IPW_IRQ_C != ADC_SW_MAJOR_VERSION) || \
+     (ADC_SW_MINOR_VERSION_IPW_IRQ_C != ADC_SW_MINOR_VERSION) || \
+     (ADC_SW_PATCH_VERSION_IPW_IRQ_C != ADC_SW_PATCH_VERSION) \
+    )
+  #error "Software Version Numbers of Adc_Ipw_Irq.c and Adc.h are different"
+#endif
+
+/* Check if Adc_Ipw_Irq.c file and Adc_Ipw.h file are of the same vendor */
+#if (ADC_VENDOR_ID_IPW_IRQ_C != ADC_VENDOR_ID_IPW_H)
+    #error "Adc_Ipw_Irq.c and Adc_Ipw.h have different vendor ids"
+#endif
+
+/* Check if Adc_Ipw_Irq.c file and Adc_Ipw.h file are of the same Autosar version */
+#if ((ADC_AR_RELEASE_MAJOR_VERSION_IPW_IRQ_C != ADC_AR_RELEASE_MAJOR_VERSION_IPW_H) || \
+     (ADC_AR_RELEASE_MINOR_VERSION_IPW_IRQ_C != ADC_AR_RELEASE_MINOR_VERSION_IPW_H) || \
+     (ADC_AR_RELEASE_REVISION_VERSION_IPW_IRQ_C != ADC_AR_RELEASE_REVISION_VERSION_IPW_H) \
+    )
+    #error "AutoSar Version Numbers of Adc_Ipw_Irq.c and Adc_Ipw.h are different"
+#endif
+
+/* Check if Adc_Ipw_Irq.c file and Adc_Ipw.h file are of the same Software version */
+#if ((ADC_SW_MAJOR_VERSION_IPW_IRQ_C != ADC_SW_MAJOR_VERSION_IPW_H) || \
+     (ADC_SW_MINOR_VERSION_IPW_IRQ_C != ADC_SW_MINOR_VERSION_IPW_H) || \
+     (ADC_SW_PATCH_VERSION_IPW_IRQ_C != ADC_SW_PATCH_VERSION_IPW_H) \
+    )
+  #error "Software Version Numbers of Adc_Ipw_Irq.c and Adc_Ipw.h are different"
+#endif
+
+/* Check if Adc_Ipw_Irq.c file and Adc_Ipw_Irq.h file are of the same vendor */
+#if (ADC_VENDOR_ID_IPW_IRQ_C != ADC_VENDOR_ID_IPW_IRQ_H)
+    #error "Adc_Ipw_Irq.c and Adc_Ipw_Irq.h have different vendor ids"
+#endif
+
+/* Check if Adc_Ipw_Irq.c file and Adc_Ipw_Irq.h file are of the same Autosar version */
+#if ((ADC_AR_RELEASE_MAJOR_VERSION_IPW_IRQ_C != ADC_AR_RELEASE_MAJOR_VERSION_IPW_IRQ_H) || \
+     (ADC_AR_RELEASE_MINOR_VERSION_IPW_IRQ_C != ADC_AR_RELEASE_MINOR_VERSION_IPW_IRQ_H) || \
+     (ADC_AR_RELEASE_REVISION_VERSION_IPW_IRQ_C != ADC_AR_RELEASE_REVISION_VERSION_IPW_IRQ_H) \
+    )
+    #error "AutoSar Version Numbers of Adc_Ipw_Irq.c and Adc_Ipw_Irq.h are different"
+#endif
+
+/* Check if Adc_Ipw_Irq.c file and Adc_Ipw_Irq.h file are of the same Software version */
+#if ((ADC_SW_MAJOR_VERSION_IPW_IRQ_C != ADC_SW_MAJOR_VERSION_IPW_IRQ_H) || \
+     (ADC_SW_MINOR_VERSION_IPW_IRQ_C != ADC_SW_MINOR_VERSION_IPW_IRQ_H) || \
+     (ADC_SW_PATCH_VERSION_IPW_IRQ_C != ADC_SW_PATCH_VERSION_IPW_IRQ_H) \
+    )
+  #error "Software Version Numbers of Adc_Ipw_Irq.c and Adc_Ipw_Irq.h are different"
+#endif
+
+/* Check if Adc_Ipw_Irq.c file and Adc_Ipw_Types.h file are of the same vendor */
+#if (ADC_VENDOR_ID_IPW_IRQ_C != ADC_VENDOR_ID_IPW_TYPES_H)
+    #error "Adc_Ipw_Irq.c and Adc_Ipw_Types.h have different vendor ids"
+#endif
+
+/* Check if Adc_Ipw_Irq.c file and Adc_Ipw_Types.h file are of the same Autosar version */
+#if ((ADC_AR_RELEASE_MAJOR_VERSION_IPW_IRQ_C != ADC_AR_RELEASE_MAJOR_VERSION_IPW_TYPES_H) || \
+     (ADC_AR_RELEASE_MINOR_VERSION_IPW_IRQ_C != ADC_AR_RELEASE_MINOR_VERSION_IPW_TYPES_H) || \
+     (ADC_AR_RELEASE_REVISION_VERSION_IPW_IRQ_C != ADC_AR_RELEASE_REVISION_VERSION_IPW_TYPES_H) \
+    )
+    #error "AutoSar Version Numbers of Adc_Ipw_Irq.c and Adc_Ipw_Types.h are different"
+#endif
+
+/* Check if Adc_Ipw_Irq.c file and Adc_Ipw_Types.h file are of the same Software version */
+#if ((ADC_SW_MAJOR_VERSION_IPW_IRQ_C != ADC_SW_MAJOR_VERSION_IPW_TYPES_H) || \
+     (ADC_SW_MINOR_VERSION_IPW_IRQ_C != ADC_SW_MINOR_VERSION_IPW_TYPES_H) || \
+     (ADC_SW_PATCH_VERSION_IPW_IRQ_C != ADC_SW_PATCH_VERSION_IPW_TYPES_H) \
+    )
+  #error "Software Version Numbers of Adc_Ipw_Irq.c and Adc_Ipw_Types.h are different"
+#endif
+
+#ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
+/* Check if source file and Mcal header file are of the same AutoSar version */
+#if ((ADC_AR_RELEASE_MAJOR_VERSION_IPW_IRQ_C != MCAL_AR_RELEASE_MAJOR_VERSION) || \
+    (ADC_AR_RELEASE_MINOR_VERSION_IPW_IRQ_C != MCAL_AR_RELEASE_MINOR_VERSION) \
+    )
+#error "AutoSar Version Numbers of Adc_Ipw_Irq.c and Mcal.h are different"
+#endif
+
+/* Check if Adc_Ipw_Irq.c file and Det.h file are of the same Autosar version */
+#if ((ADC_AR_RELEASE_MAJOR_VERSION_IPW_IRQ_C != DET_AR_RELEASE_MAJOR_VERSION) || \
+     (ADC_AR_RELEASE_MINOR_VERSION_IPW_IRQ_C != DET_AR_RELEASE_MINOR_VERSION)    \
+    )
+    #error "AutoSar Version Numbers of Adc_Ipw_Irq.c and Det.h are different"
+#endif
+#endif /* DISABLE_MCAL_INTERMODULE_ASR_CHECK */
+/*==================================================================================================
+*                          LOCAL TYPEDEFS (STRUCTURES, UNIONS, ENUMS)
+==================================================================================================*/
+
+/*==================================================================================================
+*                                       LOCAL MACROS
+==================================================================================================*/
+/* The macro to calculate the index of the first channel in the previous configuration */
+#define ADC_IPW_PREV_CHANNEL_INDEX(x) ((((x) % ADC_MAX_CHAN_COUNT) == 0U) ? ((x) - ADC_MAX_CHAN_COUNT) : ((Adc_ChannelIndexType)((x)-((x) % ADC_MAX_CHAN_COUNT))))
+
+/*==================================================================================================
+*                                      LOCAL CONSTANTS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                      LOCAL VARIABLES
+==================================================================================================*/
+
+/*==================================================================================================
+*                                      GLOBAL CONSTANTS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                      GLOBAL VARIABLES
+==================================================================================================*/
+
+#define ADC_START_SEC_VAR_CLEARED_UNSPECIFIED
+#include "Adc_MemMap.h"
+
+#if (ADC_SETCHANNEL_API == STD_ON)
+extern Adc_RuntimeGroupChannelType Adc_aRuntimeGroupChannel[ADC_MAX_GROUPS];
+#endif
+
+#define ADC_STOP_SEC_VAR_CLEARED_UNSPECIFIED
+#include "Adc_MemMap.h"
+
+/*==================================================================================================
+*                                   LOCAL FUNCTION PROTOTYPES
+==================================================================================================*/
+#define ADC_START_SEC_CODE
+#include "Adc_MemMap.h"
+
+#if ((defined(ADC_UNIT_0_ISR_USED)) || (defined(ADC_UNIT_1_ISR_USED)) || \
+     (defined(ADC_DMA_SUPPORTED)) \
+    )
+#if (ADC_GRP_NOTIF_CAPABILITY == STD_ON)
+static inline void Adc_Ipw_CallNotification
+(
+    Adc_GroupType Group,
+    uint32 u32CoreId
+);
+#endif /* ADC_GRP_NOTIF_CAPABILITY == STD_ON */
+
+#if (ADC_OPTIMIZE_ONESHOT_HW_TRIGGER == STD_OFF)
+static inline void Adc_Ipw_UpdateQueue
+(
+    Adc_HwUnitType Unit,
+    uint32 u32CoreId
+);
+#endif  /* (ADC_OPTIMIZE_ONESHOT_HW_TRIGGER == STD_OFF) */
+
+#if (ADC_ENABLE_INITIAL_NOTIFICATION == STD_ON)
+static inline void Adc_Ipw_CallExtraNotification
+(
+    Adc_GroupType Group,
+    uint32 u32CoreId
+);
+#endif /* (ADC_ENABLE_INITIAL_NOTIFICATION == STD_ON) */
+
+static inline Std_ReturnType Adc_Ipw_CheckConversionChannels
+(
+    Adc_HwUnitType Unit,
+    Adc_GroupType Group,
+    Adc_StreamNumSampleType GroupSamples,
+    uint32 u32CoreId
+);
+
+#if (ADC_ENABLE_LIMIT_CHECK == STD_ON)
+static inline void Adc_Ipw_HandleConversionCheckFail
+(
+    Adc_HwUnitType Unit,
+    Adc_GroupType Group,
+    const Adc_GroupConfigurationType * GroupPtr,
+    uint32 u32CoreId
+);
+#endif /* (ADC_ENABLE_LIMIT_CHECK == STD_ON) */
+
+#if (ADC_OPTIMIZE_ONESHOT_HW_TRIGGER == STD_OFF)
+static inline void Adc_Ipw_RestartConversion
+(
+    Adc_HwUnitType Unit,
+    Adc_GroupType Group,
+    uint32 u32CoreId
+);
+
+static inline void Adc_Ipw_UpdateSoftwareGroupState
+(
+    Adc_HwUnitType Unit,
+    Adc_GroupType Group,
+    Adc_StreamNumSampleType GroupSamples,
+    uint32 u32CoreId
+);
+
+#if (ADC_HW_TRIGGER_API == STD_ON)
+#ifdef ADC_DMA_SUPPORTED
+static inline void Adc_Ipw_CheckAndUpdateDmaHwGroupState
+(
+    Adc_HwUnitType Unit,
+    Adc_GroupType Group,
+    const uint32 u32AdcDmaLogicChId,
+    uint32 u32CoreId
+);
+#endif /* ADC_DMA_SUPPORTED */
+
+static inline uint32 Adc_Ipw_GetCurrentSampleCount
+(
+#if (STD_ON == ADC_OPTIMIZE_DMA_STREAMING_GROUPS)
+    Adc_GroupType Group,
+    Adc_HwUnitType Unit,
+    Adc_StreamNumSampleType GroupSamples,
+    uint32 u32CoreId
+#else
+    Adc_GroupType Group
+#endif /* (STD_ON == ADC_OPTIMIZE_DMA_STREAMING_GROUPS) */
+);
+
+static inline void Adc_Ipw_UpdateHardwareGroupState
+(
+    Adc_HwUnitType Unit,
+    Adc_GroupType Group,
+    Adc_StreamNumSampleType GroupSamples,
+    uint32 u32CoreId
+);
+#endif /* (ADC_HW_TRIGGER_API == STD_ON) */
+#endif  /* (ADC_OPTIMIZE_ONESHOT_HW_TRIGGER == STD_OFF) */
+
+static inline void Adc_Ipw_EndConversion
+(
+    Adc_HwUnitType Unit,
+    Adc_GroupType Group,
+    boolean IsSoftwareConversion,
+    uint32 u32CoreId
+);
+
+#ifdef ADC_DMA_SUPPORTED
+static inline void Adc_Ipw_EndDmaConversion
+(
+    Adc_HwUnitType Unit,
+    Adc_GroupType Group,
+    boolean IsSoftwareConversion,
+    uint32 u32CoreId
+);
+
+#if (ADC_OPTIMIZE_ONESHOT_HW_TRIGGER == STD_OFF)
+static inline void Adc_Ipw_UpdateDmaConfig
+(
+    const Adc_ValueGroupType * DataPtr,
+    const uint32 DmaLogicChId,
+    uint8 NumChannel
+);
+
+static inline void Adc_Ipw_ContinueDmaConversion
+(
+    Adc_HwUnitType Unit,
+    Adc_GroupType Group,
+    const Adc_ChannelIndexType ChannelCount,
+    const uint32 AdcDmaLogicChId,
+    uint32 u32CoreId
+);
+#endif  /* (ADC_OPTIMIZE_ONESHOT_HW_TRIGGER == STD_OFF) */
+
+#if (ADC_ENABLE_LIMIT_CHECK == STD_ON)
+static inline Std_ReturnType Adc_Ipw_CheckGroupConvResultDma
+(
+    const Adc_GroupConfigurationType * pGroupPtr,
+    uint32 u32CoreId
+);
+#endif /* (ADC_ENABLE_LIMIT_CHECK == STD_ON) */
+#endif /* ADC_DMA_SUPPORTED */
+
+static inline void Adc_Ipw_ReadData
+(
+    const Adc_GroupConfigurationType * GroupPtr,
+    Adc_ValueGroupType * pResult,
+    const Adc_StreamNumSampleType GroupSamples,
+    const Adc_ChannelIndexType Index,
+    const uint16 ConvResult
+);
+
+static inline void Adc_Ipw_EndConversionNotification
+(
+    const Adc_HwUnitType PhysicalAdcUnit
+);
+#endif  /* (defined(ADC_UNIT_0_ISR_USED) || ... */
+
+
+/*==================================================================================================
+*                                       LOCAL FUNCTIONS
+==================================================================================================*/
+#if ((defined(ADC_UNIT_0_ISR_USED)) || (defined(ADC_UNIT_1_ISR_USED)) || \
+     (defined(ADC_DMA_SUPPORTED)))
+
+
+
+#if (ADC_GRP_NOTIF_CAPABILITY == STD_ON)
+/**
+* @brief          This function checks and calls group notification
+* @details        This function checks and calls group notification
+*
+* @param[in]      Group             The group to be converted
+* @param[in]      u32CoreId         Current CoreID
+*
+* @return         void
+*
+*/
+static inline void Adc_Ipw_CallNotification
+(
+    Adc_GroupType Group,
+    uint32 u32CoreId
+)
+{
+    Adc_GroupType GroupIndex = Adc_pCfgPtr[u32CoreId]->pGroupIdToIndexMap[Group];
+
+    /* SWS_Adc_00080, SWS_Adc_00083 */
+    if ((ADC_NOTIFICATION_ENABLED == Adc_aGroupStatus[Group].eNotification) && \
+        (NULL_PTR != Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].Notification)
+       )
+    {
+        /* Execute notification function */
+        Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].Notification();
+    }
+}
+#endif /* ADC_GRP_NOTIF_CAPABILITY == STD_ON */
+
+#if (ADC_OPTIMIZE_ONESHOT_HW_TRIGGER == STD_OFF)
+/**
+* @brief          This function updates queue
+* @details        This function updates queue elements after a conversion
+*                 and start conversion if requests are still available in queue
+*
+* @param[in]      Unit              The ADC hardware unit
+* @param[in]      u32CoreId         Current CoreID
+*
+* @return         void
+*
+*/
+static inline void Adc_Ipw_UpdateQueue
+(
+    Adc_HwUnitType Unit,
+    uint32 u32CoreId
+)
+{
+#if (ADC_ENABLE_QUEUING == STD_ON)
+    /* Remove current request element in queue */
+    Adc_RemoveFromQueue(Unit, 0U);
+#if (ADC_ENABLE_START_STOP_GROUP_API == STD_ON)
+    if (Adc_aUnitStatus[Unit].SwNormalQueueIndex > (Adc_QueueIndexType)0U)
+    {
+        /* Start conversion if request elements are still available in queue */
+        Adc_Ipw_StartNormalConversion(Unit, u32CoreId);
+    }
+#endif /* (ADC_ENABLE_START_STOP_GROUP_API == STD_ON) */
+#else
+    /* No element will be present in the queue */
+    Adc_aUnitStatus[Unit].SwNormalQueueIndex = (Adc_QueueIndexType)0;
+#endif /* ADC_ENABLE_QUEUING == STD_ON */
+    (void)u32CoreId;
+}
+#endif  /* (ADC_OPTIMIZE_ONESHOT_HW_TRIGGER == STD_OFF) */
+
+#if (ADC_ENABLE_INITIAL_NOTIFICATION == STD_ON)
+/**
+* @brief          This function calls extra notification
+* @details        This function calls extra notification
+*
+* @param[in]      Group         The channel group to be converted
+* @param[in]      u32CoreId     Current CoreID
+*
+* @return         void
+* CPR-MCAL-797.adc, SWS_Adc_00140
+*/
+static inline void Adc_Ipw_CallExtraNotification
+(
+    Adc_GroupType Group,
+    uint32 u32CoreId
+)
+{
+    Adc_GroupType GroupIndex = Adc_pCfgPtr[u32CoreId]->pGroupIdToIndexMap[Group];
+
+    /* Call notification if available */
+    if (Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].ExtraNotification != NULL_PTR)
+    {
+        Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].ExtraNotification();
+    }
+}
+#endif /* (ADC_ENABLE_INITIAL_NOTIFICATION == STD_ON) */
+
+/**
+* @brief          This function checks conversion results
+* @details        This function checks conversion results
+*
+* @param[in]      Unit          Adc Logical Unit Id
+* @param[in]      Group         Selected group Id
+* @param[in]      GroupSamples  Number of samples
+* @param[in]      u32CoreId     Current CoreID
+*
+* @return         void
+*/
+static inline Std_ReturnType Adc_Ipw_CheckConversionChannels
+(
+    Adc_HwUnitType Unit,
+    Adc_GroupType Group,
+    Adc_StreamNumSampleType GroupSamples,
+    uint32 u32CoreId
+)
+{
+    const Adc_GroupType GroupIndex = Adc_pCfgPtr[u32CoreId]->pGroupIdToIndexMap[Group];
+    const Adc_GroupConfigurationType * GroupPtr; /* Pointer to AdcGroup */
+    Adc_ChannelIndexType CurrentChannel = Adc_aGroupStatus[Group].CurrentChannel;
+    Adc_ChannelIndexType Temp;
+    Adc_ChannelIndexType Index;
+    uint16 ConvResult;
+    Adc_ValueGroupType * ResultIndex = NULL_PTR;
+    Adc_HwUnitType PhysicalHwUnitId = Adc_pCfgPtr[u32CoreId]->pAdcIpwConfig->aAdcPhysicalId[Unit];
+    Std_ReturnType Status = (Std_ReturnType)E_OK;
+    const uint8 NumsBitShift = Adc_Ipw_CalculateNumsBitShift(Adc_pCfgPtr[u32CoreId]->pAdcIpwConfig->apAdcConfig[Unit]->Resolution);
+#if (ADC_ENABLE_LIMIT_CHECK == STD_ON)
+    Adc_ChannelType HwChannel;
+    boolean bFlag = FALSE;
+#endif /* (ADC_ENABLE_LIMIT_CHECK == STD_ON) */
+    boolean ValidConversion = TRUE;
+
+    /* record the result of the Channel conversion and update group status */
+#if (ADC_SETCHANNEL_API == STD_ON)
+    Index = Adc_aRuntimeGroupChannel[Group].ChannelCount;
+#else
+    Index = Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].AssignedChannelCount;
+#endif /* (ADC_SETCHANNEL_API == STD_ON) */
+
+    GroupPtr = &(Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex]);
+
+    if (CurrentChannel <= Index)
+    {
+        /* Calculate the index of the first channel in the previous configuration */
+        Temp = (Adc_ChannelIndexType)ADC_IPW_PREV_CHANNEL_INDEX(CurrentChannel);
+
+#if (ADC_ENABLE_GROUP_STREAMING_RESULTS_REORDER == STD_ON)
+        /* Get the result buffer pointer */
+        if (FALSE == GroupPtr->bStreamResultGroupMultiSets)
+        {
+#endif /* (ADC_ENABLE_GROUP_STREAMING_RESULTS_REORDER == STD_ON) */
+            ResultIndex = GroupPtr->pResultsBufferPtr[Group] + Adc_aGroupStatus[Group].ResultIndex;
+#if (ADC_ENABLE_GROUP_STREAMING_RESULTS_REORDER == STD_ON)
+        }
+        else
+        {
+            ResultIndex = GroupPtr->pResultsBufferPtr[Group] + (Adc_aGroupStatus[Group].ResultIndex * Index);
+        }
+#endif /* (ADC_ENABLE_GROUP_STREAMING_RESULTS_REORDER == STD_ON) */
+
+        ValidConversion = Adc_Ipw_CheckValidConversion(PhysicalHwUnitId, Temp, CurrentChannel);
+
+        if (ValidConversion)
+        {
+            /* For each of channels in the list of previous configuration, read data and take result into user buffer */
+            for (Index = Temp; Index < CurrentChannel; Index++)
+            {
+                ConvResult = Adc_Ip_GetConvData(PhysicalHwUnitId, Index - Temp);
+                /* Assumption: the width of the register is less than 16 */
+                ConvResult = ConvResult << (NumsBitShift);
+#if (ADC_ENABLE_LIMIT_CHECK == STD_ON)
+                if (
+                        (TRUE == GroupPtr->bAdcGroupLimitcheck)
+#if (ADC_SETCHANNEL_API == STD_ON)
+                        || (TRUE == Adc_aRuntimeGroupChannel[Group].bAdcRuntimeGroupLimitcheck)
+#endif /* ADC_SETCHANNEL_API == STD_ON */
+                   )
+                {
+#if (ADC_SETCHANNEL_API == STD_ON)
+                    HwChannel = Adc_aRuntimeGroupChannel[Group].pChannel[Index];
+#else
+                    HwChannel = Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].pAssignment[Index];
+#endif /* (ADC_SETCHANNEL_API == STD_ON) */
+                    /* ADC446, ADC447 */
+                    bFlag = Adc_Ipw_CheckConversionValuesInRange(ConvResult, Unit, HwChannel, u32CoreId);
+                    if (TRUE == bFlag)
+                    {
+                        Adc_Ipw_ReadData(GroupPtr, ResultIndex, GroupSamples, Index, ConvResult);
+                        Adc_aGroupStatus[Group].bLimitCheckFailed = FALSE;
+                    }
+                    else
+                    {
+                        Adc_aGroupStatus[Group].eAlreadyConverted = ADC_ALREADY_CONVERTED;
+                        Adc_aGroupStatus[Group].bLimitCheckFailed = TRUE;
+
+                        Status = E_NOT_OK;
+                        break;
+                    }
+                }
+                else
+                {
+                    Adc_Ipw_ReadData(GroupPtr, ResultIndex, GroupSamples, Index, ConvResult);
+                }
+#else
+                Adc_Ipw_ReadData(GroupPtr, ResultIndex, GroupSamples, Index, ConvResult);
+#endif /* ADC_ENABLE_LIMIT_CHECK == STD_ON */
+            }
+        }
+        else
+        {
+            Status = (Std_ReturnType)E_NOT_OK;
+        }
+    }
+
+    return Status;
+}
+
+#if (ADC_ENABLE_LIMIT_CHECK == STD_ON)
+/**
+* @brief          This function handles the case where conversion check fails
+* @details        This function stop all ongoing conversions, clears channel
+*                 configurations and conversion complete flag if the one shot
+*                 mode is selected, but reconfigures hardware if continuous mode
+*                 is selected for the group.
+*
+*
+* @param[in]      Unit          Adc Logical Unit Id
+* @param[in]      Group         Selected group Id
+* @param[in]      GroupPtr      Pointer to group config
+*
+* @return         void
+*/
+static inline void Adc_Ipw_HandleConversionCheckFail
+(
+    Adc_HwUnitType Unit,
+    Adc_GroupType Group,
+    const Adc_GroupConfigurationType * GroupPtr,
+    uint32 u32CoreId
+)
+{
+    uint8 Channel;
+    Adc_Ip_ChanConfigType ChannelConfig;
+    Adc_HwUnitType PhysicalHwUnitId = Adc_pCfgPtr[u32CoreId]->pAdcIpwConfig->aAdcPhysicalId[Unit];
+
+    if (ADC_CONV_MODE_ONESHOT == GroupPtr->eMode)
+    {
+        /* Stop and clear all internal channels */
+        for (Channel = 0U; Channel < Adc_aUnitStatus[Unit].u8Sc1Used; Channel++)
+        {
+            ChannelConfig.ChnIdx = Channel;
+            ChannelConfig.Channel = ADC_IP_INPUTCHAN_DISABLED;
+            ChannelConfig.InterruptEnable = FALSE;
+            Adc_Ip_ConfigChannel(PhysicalHwUnitId, &ChannelConfig);
+        }
+    }
+    /* Group configured as continuous will be re-configured*/
+    else
+    {
+        Adc_aGroupStatus[Group].CurrentChannel = 0U;
+        Adc_Ipw_ConfigureConversion(Unit, Group, PDB_ADC_IP_SOFTWARE_TRIGGER, 1U, u32CoreId);
+    }
+}
+#endif /* (ADC_ENABLE_LIMIT_CHECK == STD_ON) */
+
+#if (ADC_SETCHANNEL_API == STD_ON)
+/**
+* @brief          This function reconfigures runtime updated channels
+* @details        This function reconfigures runtime updated channels
+*
+* @param[in]      Unit          Adc Logical Unit Id
+* @param[in]      GroupPtr      Selected group pointer
+* @param[in]      NumChannel    Calculated number of channels within range of SC1 registers
+* @param[in]      u32CoreId     Current CoreID
+*
+* @return         void
+*/
+static inline void Adc_Ipw_ConfigureRuntimeChannels
+(
+    Adc_HwUnitType Unit,
+    const Adc_GroupConfigurationType * GroupPtr,
+    uint8 NumChannel,
+    uint32 CoreId
+)
+{
+    Adc_GroupType Group = GroupPtr->GroupId;
+
+    Adc_aGroupStatus[Group].CurrentChannel = 0U;
+    Adc_aGroupStatus[Group].ResultIndex = 0U;
+
+#ifdef ADC_DMA_SUPPORTED
+    /* Not required to check u8AdcWithoutDma == FALSE in DMA notification handler */
+    if ((ADC_DMA == Adc_pCfgPtr[CoreId]->pAdcIpwConfig->Mapping.u8Adc_DmaInterruptSoftware[Unit]))
+    {
+        if((uint8)STD_OFF == GroupPtr->u8AdcExtDMAChanEnable)
+        {
+            /* Configure for DMA transfer, starting from first sample, consider both Optimize DMA stream and normal DMA scenarios */
+            Adc_Ipw_StartDmaOperation(Unit, Group, NumChannel, CoreId);
+        }
+
+        /* Reconfigure DMA transfer */
+#if (ADC_HW_TRIGGER_API == STD_ON)
+        Adc_Ipw_ConfigureDmaConversion(Unit, Group, GroupPtr->HwTriggerSource, NumChannel);
+#else
+        Adc_Ipw_ConfigureDmaConversion(Unit, Group, PDB_ADC_IP_SOFTWARE_TRIGGER, NumChannel);
+#endif
+    }
+    else
+#endif /* ADC_DMA_SUPPORTED */
+    {
+        /* Re-configure group channels and trigger PDB by software */
+#if (ADC_HW_TRIGGER_API == STD_ON)
+        Adc_Ipw_ConfigureConversion(Unit, Group, GroupPtr->HwTriggerSource, NumChannel, CoreId);
+#else
+        Adc_Ipw_ConfigureConversion(Unit, Group, PDB_ADC_IP_SOFTWARE_TRIGGER, NumChannel, CoreId);
+#endif
+    }
+
+    /* Reset runtime update status */
+    Adc_aRuntimeGroupChannel[Group].bRuntimeUpdated = FALSE;
+}
+#endif /* (ADC_SETCHANNEL_API == STD_ON) */
+
+#if (ADC_OPTIMIZE_ONESHOT_HW_TRIGGER == STD_OFF)
+/**
+* @brief          This function restarts a conversion
+* @details        This function restarts a conversion and reconfigure the
+*                 hardware if necessary
+*
+* @param[in]      Unit          Adc Logical Unit Id
+* @param[in]      Group         Selected group Id
+* @param[in]      u32CoreId     Current CoreID
+*
+* @return         void
+*/
+static inline void Adc_Ipw_RestartConversion
+(
+    Adc_HwUnitType Unit,
+    Adc_GroupType Group,
+    uint32 u32CoreId
+)
+{
+    const Adc_GroupType GroupIndex = Adc_pCfgPtr[u32CoreId]->pGroupIdToIndexMap[Group];
+#if ((ADC_SETCHANNEL_API == STD_ON) || defined(ADC_DMA_SUPPORTED))
+    /* Pointer to AdcGroup */
+    const Adc_GroupConfigurationType * GroupPtr = &(Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex]);
+#endif /* ((ADC_SETCHANNEL_API == STD_ON) || (defined(ADC_DMA_SUPPORTED)) */
+#ifdef ADC_DMA_SUPPORTED
+    const uint32 AdcDmaLogicChId = Adc_pCfgPtr[u32CoreId]->pAdcIpwConfig->Mapping.au8Adc_DmaChannel[Unit];
+    uint16 ResultIndex;
+#endif /*ADC_DMA_SUPPORTED*/
+
+    uint8 NumChannel;
+    Adc_ChannelIndexType ChannelCount;
+    Adc_HwUnitType PhysicalHwUnitId = Adc_pCfgPtr[u32CoreId]->pAdcIpwConfig->aAdcPhysicalId[Unit];
+
+#if (ADC_SETCHANNEL_API == STD_ON)
+    /* Get channel count in case of changing at runtime */
+    ChannelCount = Adc_aRuntimeGroupChannel[Group].ChannelCount;
+#else
+    /* Get channel count from configuration */
+    ChannelCount = Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].AssignedChannelCount;
+#endif /* (ADC_SETCHANNEL_API == STD_ON) */
+
+    /* Get left channel from channel count */
+    NumChannel = (uint8)ADC_IPW_CALCULATE_CHAN_NUMBER(ChannelCount);
+
+#if (ADC_SETCHANNEL_API == STD_ON)
+    /* Configure again Adc hardware unit in case of channels of group configured */
+    if (TRUE == Adc_aRuntimeGroupChannel[Group].bRuntimeUpdated)
+    {
+        Adc_Ipw_ConfigureRuntimeChannels(Unit, GroupPtr, NumChannel, u32CoreId);
+    }
+    else
+#endif  /* (ADC_SETCHANNEL_API == STD_ON) */
+    {
+#ifdef ADC_DMA_SUPPORTED
+#if (STD_ON == ADC_OPTIMIZE_DMA_STREAMING_GROUPS)
+        if (FALSE == GroupPtr->bAdcOptimizeDmaStream)
+#endif /*  (STD_ON == ADC_OPTIMIZE_DMA_STREAMING_GROUPS) */
+#endif /*ADC_DMA_SUPPORTED*/
+        {
+            /* Incase of the number of channels in group less than the SC1 register used then update group status and start Pdb */
+            if (ChannelCount <= ADC_MAX_CHAN_COUNT)
+            {
+                /* No need to re-configure channels if they are not changed */
+                /* End of chain interrupt (if used) is still in last channel (= ChannelCount) */
+                Adc_aGroupStatus[Group].CurrentChannel = ChannelCount;
+
+                /* Trigger PDB by software */
+                Pdb_Adc_Ip_SwTrigger(PhysicalHwUnitId);
+            }
+            /* Incase of the number of channels greater than max SC1 register, re-configure Adc hardware unit for the next conversion */
+            else
+            {
+                Adc_aGroupStatus[Group].CurrentChannel = 0U;
+#ifdef ADC_DMA_SUPPORTED
+                if (ADC_DMA == Adc_pCfgPtr[u32CoreId]->pAdcIpwConfig->Mapping.u8Adc_DmaInterruptSoftware[Unit])
+                {
+                    /* Dma need to be re-init for next result index */
+                    if ((uint8)STD_OFF == GroupPtr->u8AdcExtDMAChanEnable)
+                    {
+#if (ADC_ENABLE_GROUP_STREAMING_RESULTS_REORDER == STD_ON)
+                        if (TRUE == GroupPtr->bStreamResultGroupMultiSets)
+                        {
+                            ResultIndex = Adc_aGroupStatus[Group].ResultIndex * ChannelCount;
+                        }
+                        else
+#endif /* (ADC_ENABLE_GROUP_STREAMING_RESULTS_REORDER == STD_ON) */
+                        {
+                            ResultIndex = Adc_aGroupStatus[Group].ResultIndex;
+                        }
+
+                        /* Update DMA configuration for new samples */
+                        Adc_Ipw_UpdateDmaConfig((&(GroupPtr->pResultsBufferPtr[Group][ResultIndex])), AdcDmaLogicChId, NumChannel);
+                    }
+
+                    Adc_Ipw_ConfigureDmaConversion(Unit, Group, PDB_ADC_IP_SOFTWARE_TRIGGER, NumChannel);
+                }
+                else
+#endif /*ADC_DMA_SUPPORTED*/
+                {
+                    /* Re-configure other segment channels of groups And start next conversion*/
+                    Adc_Ipw_ConfigureConversion(Unit, Group, PDB_ADC_IP_SOFTWARE_TRIGGER, NumChannel, u32CoreId);
+                }
+            }
+        }
+    }
+}
+
+static inline uint32 Adc_Ipw_GetCurrentSampleCount
+(
+#if (STD_ON == ADC_OPTIMIZE_DMA_STREAMING_GROUPS)
+    Adc_GroupType Group,
+    Adc_HwUnitType Unit,
+    Adc_StreamNumSampleType GroupSamples,
+    uint32 u32CoreId
+#else
+    Adc_GroupType Group
+#endif /* (STD_ON == ADC_OPTIMIZE_DMA_STREAMING_GROUPS) */
+)
+{
+    Adc_StreamNumSampleType CurrentSampleCount;
+#ifdef ADC_DMA_SUPPORTED
+#if (STD_ON == ADC_OPTIMIZE_DMA_STREAMING_GROUPS)
+    uint32 CurrentIter = 0U;
+    const Adc_GroupType GroupIndex = Adc_pCfgPtr[u32CoreId]->pGroupIdToIndexMap[Group];
+    const Adc_Ipw_Config * const pAdcIpwConfigPtr = Adc_pCfgPtr[u32CoreId]->pAdcIpwConfig;
+    const uint32 u32AdcDmaLogicChId = (uint32) pAdcIpwConfigPtr->Mapping.au8Adc_DmaChannel[Unit];
+    const uint32 u32AdcCountingDmaLogicChId = (uint32) pAdcIpwConfigPtr->Mapping.au8Adc_CountingDmaChannel[Unit];
+#endif /* (STD_ON == ADC_OPTIMIZE_DMA_STREAMING_GROUPS) */
+#endif /* ADC_DMA_SUPPORTED */
+
+#ifdef ADC_DMA_SUPPORTED
+#if (STD_ON == ADC_OPTIMIZE_DMA_STREAMING_GROUPS)
+    if (TRUE == Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].bAdcOptimizeDmaStream)
+    {
+        if (1U < Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].AssignedChannelCount)
+        {
+            (void)Dma_Ip_GetLogicChannelParam(u32AdcCountingDmaLogicChId, DMA_IP_CH_GET_CURRENT_ITER_COUNT, &CurrentIter);
+        }
+        else
+        {
+            (void)Dma_Ip_GetLogicChannelParam(u32AdcDmaLogicChId, DMA_IP_CH_GET_CURRENT_ITER_COUNT, &CurrentIter);
+        }
+
+        /* This condition only occurs at half interrupt */
+        if ((Adc_StreamNumSampleType)CurrentIter != GroupSamples)
+        {
+            /* Re-calculate CurrentSampleCount because CITER decrements its value from GroupSamples to 1 */
+            CurrentSampleCount = GroupSamples - (Adc_StreamNumSampleType)CurrentIter;
+        }
+        else
+        {
+            /* When major loop completed, CITER roll back to be equal to GroupSamples so no need to re-calculate */
+            CurrentSampleCount = (Adc_StreamNumSampleType)CurrentIter;
+        }
+        Adc_aGroupStatus[Group].ResultIndex = CurrentSampleCount;
+    }
+    else
+#endif /* (STD_ON == ADC_OPTIMIZE_DMA_STREAMING_GROUPS) */
+#endif /* ADC_DMA_SUPPORTED */
+    {
+        CurrentSampleCount = Adc_aGroupStatus[Group].ResultIndex;
+    }
+
+    return CurrentSampleCount;
+}
+
+/**
+* @brief          This function update state of software conversion according to AutoSar diagrams
+* @details        This function update state of software conversion according to AutoSar diagrams
+*
+* @param[in]      Unit          Adc Logical Unit Id
+* @param[in]      Group         Selected group Id
+* @param[in]      GroupSamples  Number of samples
+* @param[in]      u32CoreId     Current CoreID
+*
+* @return         void
+*/
+static inline void Adc_Ipw_UpdateSoftwareGroupState
+(
+    Adc_HwUnitType Unit,
+    Adc_GroupType Group,
+    Adc_StreamNumSampleType GroupSamples,
+    uint32 u32CoreId
+)
+{
+    uint32 CurrentSampleCount;
+    const Adc_GroupType GroupIndex = Adc_pCfgPtr[u32CoreId]->pGroupIdToIndexMap[Group];
+#ifdef ADC_DMA_SUPPORTED
+    const Adc_Ipw_Config * const pAdcIpwConfigPtr = Adc_pCfgPtr[u32CoreId]->pAdcIpwConfig;
+    const uint32 u32AdcDmaLogicChId = (uint32) pAdcIpwConfigPtr->Mapping.au8Adc_DmaChannel[Unit];
+    Adc_HwUnitType PhysicalHwUnitId = pAdcIpwConfigPtr->aAdcPhysicalId[Unit];
+    Dma_Ip_LogicChannelScatterGatherListType LocTransferList[1U];
+#endif /* ADC_DMA_SUPPORTED */
+
+    /* At least once the group was converted */
+    /* It's already check for validation */
+    Adc_aGroupStatus[Group].eAlreadyConverted = ADC_ALREADY_CONVERTED;
+
+    /* Although updating eConversion is a RMW operation, it does not need an
+     * exclusive area because two simultaneous interrupts will not access the
+     * same areas e.g. the interrupt for ADC1 will not have the same group as
+     * an interrupt on ADC0 */
+    /* Change when configuration is ADC streaming access mode */
+    if (ADC_BUSY == Adc_aGroupStatus[Group].eConversion)
+    {
+        Adc_aGroupStatus[Group].eConversion = ADC_COMPLETED;
+    }
+
+#if (STD_ON == ADC_OPTIMIZE_DMA_STREAMING_GROUPS)
+    CurrentSampleCount = Adc_Ipw_GetCurrentSampleCount(Group, Unit, GroupSamples, u32CoreId);
+#else
+    CurrentSampleCount = Adc_Ipw_GetCurrentSampleCount(Group);
+#endif /* (STD_ON == ADC_OPTIMIZE_DMA_STREAMING_GROUPS) */
+
+    /* If buffer is full of samples */
+    if (CurrentSampleCount >= GroupSamples)
+    {
+        /* Change to stream complete according to AutoSar diagram */
+        Adc_aGroupStatus[Group].eConversion = ADC_STREAM_COMPLETED;
+
+        if ((ADC_STREAM_BUFFER_LINEAR == Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].eBufferMode) && \
+            (ADC_ACCESS_MODE_STREAMING == Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].eAccessMode) \
+           )
+        {
+#ifdef ADC_DMA_SUPPORTED
+            /* Not required to check u8AdcWithoutDma == FALSE, because u8AdcWithoutDma is only supported for SW normal triggered which cannot be ADC_ACCESS_MODE_STREAMING when DMA transfer selected for HW unit */
+            if (ADC_DMA == pAdcIpwConfigPtr->Mapping.u8Adc_DmaInterruptSoftware[Unit])
+            {
+                /* Disable ADC DMA Request */
+                Adc_Ip_DisableDma(PhysicalHwUnitId);
+            }
+#if (STD_ON == ADC_OPTIMIZE_DMA_STREAMING_GROUPS)
+            /* Because of PDB was configured as CONT MODE then need to disable */
+            if (TRUE == Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].bAdcOptimizeDmaStream)
+            {
+                Pdb_Adc_Ip_DisableAndClearPdb(PhysicalHwUnitId);
+            }
+#endif /*  (STD_ON == ADC_OPTIMIZE_DMA_STREAMING_GROUPS) */
+#endif /* ADC_DMA_SUPPORTED */
+            /* Update queue and execute new start conversion request from queue if available */
+            Adc_Ipw_UpdateQueue(Unit, u32CoreId);
+        }
+        else
+        {
+            /* ADC_ACCESS_MODE_STREAMING && ADC_STREAM_BUFFER_CIRCULAR */
+            if (ADC_CONV_MODE_CONTINUOUS == Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].eMode)
+            {
+                /* Restart new continuous conversion */
+                Adc_aGroupStatus[Group].ResultIndex = 0U;
+#ifdef ADC_DMA_SUPPORTED
+                /* TODO: Optimization: It's not necessary to reload the destination address in case of groups have 1 sample (continuous single access or continuous circular with 1 sample) since it's automatically reloaded by DLAST field*/
+                if (ADC_DMA == pAdcIpwConfigPtr->Mapping.u8Adc_DmaInterruptSoftware[Unit])
+                {
+                    if((uint8)STD_OFF == Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].u8AdcExtDMAChanEnable)
+                    {
+                        LocTransferList[0].Param = DMA_IP_CH_SET_DESTINATION_ADDRESS;
+                        LocTransferList[0].Value = (uint32)(&(Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].pResultsBufferPtr[Group][0U]));
+                        (void)Dma_Ip_SetLogicChannelTransferList(u32AdcDmaLogicChId, LocTransferList, 1U);
+                    }
+                }
+#endif /*ADC_DMA_SUPPORTED*/
+                Adc_Ipw_RestartConversion(Unit, Group, u32CoreId);
+            }
+            else
+            {
+                /* Update queue and execute new request from queue if available */
+                Adc_Ipw_UpdateQueue(Unit, u32CoreId);
+            }
+        }
+    }
+    else
+    {
+        /* Need to restart conversion until buffer is full */
+        Adc_Ipw_RestartConversion(Unit, Group, u32CoreId);
+    }
+
+#if (ADC_GRP_NOTIF_CAPABILITY == STD_ON)
+    /* Implement user notification function if available */
+    Adc_Ipw_CallNotification(Group, u32CoreId);
+#endif /* (ADC_GRP_NOTIF_CAPABILITY == STD_ON) */
+}
+
+#if (ADC_HW_TRIGGER_API == STD_ON)
+#ifdef ADC_DMA_SUPPORTED
+static inline void Adc_Ipw_CheckAndUpdateDmaHwGroupState
+(
+    Adc_HwUnitType Unit,
+    Adc_GroupType Group,
+    const uint32 u32AdcDmaLogicChId,
+    uint32 u32CoreId
+)
+{
+    const Adc_GroupType GroupIndex = Adc_pCfgPtr[u32CoreId]->pGroupIdToIndexMap[Group];
+    Dma_Ip_LogicChannelScatterGatherListType LocTransferList[1U];
+    /* ADC_ACCESS_MODE_STREAMING && ADC_STREAM_BUFFER_CIRCULAR */
+    if ((ADC_STREAM_BUFFER_CIRCULAR == Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].eBufferMode) && \
+        (ADC_ACCESS_MODE_STREAMING == Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].eAccessMode)
+        )
+    {
+        if (ADC_DMA == Adc_pCfgPtr[u32CoreId]->pAdcIpwConfig->Mapping.u8Adc_DmaInterruptSoftware[Unit])
+        {
+            if((uint8)STD_OFF == Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].u8AdcExtDMAChanEnable)
+            {
+                LocTransferList[0].Param = DMA_IP_CH_SET_DESTINATION_ADDRESS;
+                LocTransferList[0].Value = (uint32)(&(Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].pResultsBufferPtr[Group][0U]));
+                (void)Dma_Ip_SetLogicChannelTransferList(u32AdcDmaLogicChId, LocTransferList, 1U);
+            }
+        }
+    }
+}
+#endif /* ADC_DMA_SUPPORTED */
+
+/**
+* @brief          This function update state of hardware conversion according to AutoSar diagrams
+* @details        This function update state of hardware conversion according to AutoSar diagrams
+*
+* @param[in]      Unit          Adc Logical Unit Id
+* @param[in]      Group         Selected group Id
+* @param[in]      GroupSamples  Number of samples
+* @param[in]      u32CoreId     Current CoreID
+*
+* @return         void
+*/
+static inline void Adc_Ipw_UpdateHardwareGroupState
+(
+    Adc_HwUnitType Unit,
+    Adc_GroupType Group,
+    Adc_StreamNumSampleType GroupSamples,
+    uint32 u32CoreId
+)
+{
+    boolean NotificationCalled = FALSE;
+    uint32 CurrentSampleCount;
+    Adc_ChannelIndexType ChannelCount;
+    const Adc_GroupType GroupIndex = Adc_pCfgPtr[u32CoreId]->pGroupIdToIndexMap[Group];
+    const Adc_Ipw_Config * const pAdcIpwConfigPtr = Adc_pCfgPtr[u32CoreId]->pAdcIpwConfig;
+    Adc_HwUnitType PhysicalHwUnitId = pAdcIpwConfigPtr->aAdcPhysicalId[Unit];
+#ifdef ADC_DMA_SUPPORTED
+    const uint32 u32AdcDmaLogicChId = (uint32) pAdcIpwConfigPtr->Mapping.au8Adc_DmaChannel[Unit];
+#endif /* ADC_DMA_SUPPORTED */
+
+#if (ADC_SETCHANNEL_API == STD_ON)
+    ChannelCount = Adc_aRuntimeGroupChannel[Group].ChannelCount;
+#else
+    ChannelCount = Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].AssignedChannelCount;
+#endif
+
+    /* At least once the group was converted */
+    Adc_aGroupStatus[Group].eAlreadyConverted = ADC_ALREADY_CONVERTED;
+
+    /* Although updating eConversion is a RMW operation, it does not need an
+     * exclusive area because two simultaneous interrupts will not access the
+     * same areas e.g. the interrupt for ADC1 will not have the same group as
+     * an interrupt on ADC0 */
+    if (ADC_BUSY == Adc_aGroupStatus[Group].eConversion)
+    {
+        Adc_aGroupStatus[Group].eConversion = ADC_COMPLETED;
+    }
+
+#if (STD_ON == ADC_OPTIMIZE_DMA_STREAMING_GROUPS)
+    CurrentSampleCount = Adc_Ipw_GetCurrentSampleCount(Group, Unit, GroupSamples, u32CoreId);
+#else
+    CurrentSampleCount = Adc_Ipw_GetCurrentSampleCount(Group);
+#endif /* (STD_ON == ADC_OPTIMIZE_DMA_STREAMING_GROUPS) */
+
+    if (CurrentSampleCount >= GroupSamples)
+    {
+        Adc_aGroupStatus[Group].eConversion = ADC_STREAM_COMPLETED;
+
+        if ((ADC_STREAM_BUFFER_LINEAR == Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].eBufferMode) && \
+            (ADC_ACCESS_MODE_STREAMING == Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex].eAccessMode)
+           )
+        {
+            Adc_Ip_DisableChannelNotification(PhysicalHwUnitId, (Adc_aUnitStatus[Unit].u8Sc1Used - 1U));
+#ifdef ADC_DMA_SUPPORTED
+            /* Not required to check u8AdcWithoutDma == FALSE, because u8AdcWithoutDma is only supported for SW normal triggered which cannot be ADC_ACCESS_MODE_STREAMING when DMA transfer selected for HW unit */
+            if (ADC_DMA == pAdcIpwConfigPtr->Mapping.u8Adc_DmaInterruptSoftware[Unit])
+            {
+                /* Disable ADC DMA Request */
+                Adc_Ip_DisableDma(PhysicalHwUnitId);
+            }
+#endif /* ADC_DMA_SUPPORTED */
+#if (ADC_GRP_NOTIF_CAPABILITY == STD_ON)
+            Adc_Ipw_CallNotification(Group, u32CoreId);
+#endif /* (ADC_GRP_NOTIF_CAPABILITY == STD_ON) */
+            NotificationCalled = TRUE;
+        }
+        else
+        {
+            Adc_aGroupStatus[Group].ResultIndex = 0U;
+#ifdef ADC_DMA_SUPPORTED
+            Adc_Ipw_CheckAndUpdateDmaHwGroupState(Unit, Group, u32AdcDmaLogicChId, u32CoreId);
+#endif /* ADC_DMA_SUPPORTED */
+        }
+    }
+
+    if (NotificationCalled == FALSE)
+    {
+        /* Setting up to PDB HW trigger mode for each completed sample in case of configured channels > SC */
+        if ((ChannelCount > ADC_MAX_CHAN_COUNT)
+#if (ADC_SETCHANNEL_API == STD_ON)
+            || (TRUE == Adc_aRuntimeGroupChannel[Group].bRuntimeUpdated)
+#endif /* (ADC_SETCHANNEL_API == STD_ON) */
+        )
+        {
+            Adc_Ipw_StartHwTrigConversion(Unit, Group, u32CoreId);
+        }
+
+#if (ADC_GRP_NOTIF_CAPABILITY == STD_ON)
+        Adc_Ipw_CallNotification(Group, u32CoreId);
+#endif /* (ADC_GRP_NOTIF_CAPABILITY == STD_ON) */
+    }
+}
+#endif /* (ADC_HW_TRIGGER_API == STD_ON) */
+#endif  /* (ADC_OPTIMIZE_ONESHOT_HW_TRIGGER == STD_OFF) */
+
+/**
+* @brief          This function handles conversion ending routines
+* @details        This function handles conversion ending routines
+*
+* @param[in]      Unit                  Adc Logical Unit Id
+* @param[in]      Group                 Selected group Id
+* @param[in]      IsSoftwareConversion  Software or Hardware triggered conversion
+* @param[in]      u32CoreId             Current CoreID
+*
+* @return         void
+*/
+static inline void Adc_Ipw_EndConversion
+(
+    Adc_HwUnitType Unit,
+    Adc_GroupType Group,
+    boolean IsSoftwareConversion,
+    uint32 u32CoreId
+)
+{
+    const Adc_GroupType GroupIndex = Adc_pCfgPtr[u32CoreId]->pGroupIdToIndexMap[Group];
+    const Adc_GroupConfigurationType * GroupPtr; /* Pointer to AdcGroup */
+#if (ADC_OPTIMIZE_ONESHOT_HW_TRIGGER == STD_OFF)
+    Adc_ChannelIndexType NumChannel;
+    uint8 LeftChannel;
+#endif /* (ADC_OPTIMIZE_ONESHOT_HW_TRIGGER == STD_OFF) */
+#if ((ADC_SETCHANNEL_API == STD_ON) || ((ADC_SETCHANNEL_API == STD_OFF) && (ADC_OPTIMIZE_ONESHOT_HW_TRIGGER == STD_OFF)))
+    Adc_ChannelIndexType ChannelCount;
+#endif /* ((ADC_SETCHANNEL_API == STD_ON) || ((ADC_SETCHANNEL_API == STD_OFF) && (ADC_OPTIMIZE_ONESHOT_HW_TRIGGER == STD_OFF))) */
+
+
+    /* Get the group configuration */
+    GroupPtr = &(Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex]);
+
+#if (ADC_SETCHANNEL_API == STD_ON)
+    /* Channels configured at runtime */
+    ChannelCount = Adc_aRuntimeGroupChannel[Group].ChannelCount;
+
+    /* Check if channel was updated before interrupt of previous conversions */
+    if (TRUE == Adc_aRuntimeGroupChannel[Group].bRuntimeUpdated)
+    {
+        Adc_Ipw_ConfigureRuntimeChannels(Unit, GroupPtr, (uint8)ADC_IPW_CALCULATE_CHAN_NUMBER(ChannelCount), u32CoreId);
+    }
+    else
+#endif /* (ADC_SETCHANNEL_API == STD_ON) */
+    {
+        /* Limit checking */
+        if (Adc_Ipw_CheckConversionChannels(Unit, Group, GroupPtr->NumSamples, u32CoreId) == (Std_ReturnType)E_OK)
+        {
+#if (ADC_OPTIMIZE_ONESHOT_HW_TRIGGER == STD_OFF)
+            /* Following code will not be reduced when oneshot hardware trigger optimization is not enabled */
+
+#if (ADC_SETCHANNEL_API == STD_OFF)
+            /* Channels configured when initializing */
+            ChannelCount = GroupPtr->AssignedChannelCount;
+#endif /* (ADC_SETCHANNEL_API == STD_ON) */
+
+            /* More channels in group */
+            /* Both HW and SW groups are using PDB SW trigger mode to restart conversion when ChannelCount > Max SC registers */
+            if (Adc_aGroupStatus[Group].CurrentChannel < ChannelCount)
+            {
+                /* Get left channel */
+                NumChannel = ChannelCount - Adc_aGroupStatus[Group].CurrentChannel;
+
+                /* In case of left channels excess maximum allowed channels */
+                LeftChannel = (uint8)ADC_IPW_CALCULATE_CHAN_NUMBER(NumChannel);
+
+                /* Configure left channels and start more conversions */
+                Adc_Ipw_ConfigureConversion(Unit, Group, PDB_ADC_IP_SOFTWARE_TRIGGER, LeftChannel, u32CoreId);
+            }
+            /* All of channels converted */
+            else
+#endif
+            {
+#if (ADC_ENABLE_INITIAL_NOTIFICATION == STD_ON)
+            Adc_Ipw_CallExtraNotification(Group, u32CoreId);
+#endif /* (ADC_ENABLE_INITIAL_NOTIFICATION == STD_ON) */
+
+#if (ADC_OPTIMIZE_ONESHOT_HW_TRIGGER == STD_ON)
+                /* At least once the group was converted */
+                Adc_aGroupStatus[Group].eAlreadyConverted = ADC_ALREADY_CONVERTED;
+
+                Adc_aGroupStatus[Group].eConversion = ADC_STREAM_COMPLETED;
+
+#if (ADC_SETCHANNEL_API == STD_ON)
+                /* Check if channel was updated in Adc_Ipw_CallExtraNotification */ 
+                if (TRUE == Adc_aRuntimeGroupChannel[Group].bRuntimeUpdated)
+                {
+                    Adc_Ipw_ConfigureRuntimeChannels(Unit, GroupPtr, (uint8)ADC_IPW_CALCULATE_CHAN_NUMBER(ChannelCount), u32CoreId);
+                }
+#endif /* (ADC_SETCHANNEL_API == STD_ON) */
+#if (ADC_ENABLE_LIMIT_CHECK == STD_OFF)
+            (void)IsSoftwareConversion;
+#endif /* (ADC_ENABLE_LIMIT_CHECK == STD_OFF) */
+
+#if (ADC_GRP_NOTIF_CAPABILITY == STD_ON)
+                /* Check notification of a group and call the notification function if needed */
+                Adc_Ipw_CallNotification(Group, u32CoreId);
+#endif /* (ADC_GRP_NOTIF_CAPABILITY == STD_ON) */
+
+#else /* (ADC_OPTIMIZE_ONESHOT_HW_TRIGGER == STD_OFF) */
+
+                /* Although this is a RMW operation, it does not need an exclusive area because two
+                * simultaneous interrupts will not access the same areas e.g. the interrupt for
+                * ADC1 will not have the same group as an interrupt on ADC0 */
+                /* Increment ResultIndex with modulo 'NumSamples' to remember that another sample is completed */
+                Adc_aGroupStatus[Group].ResultIndex++;
+
+                /* Update state following AutoSar diagrams */
+                if (TRUE == IsSoftwareConversion)
+                {
+                    Adc_Ipw_UpdateSoftwareGroupState(Unit, Group, GroupPtr->NumSamples, u32CoreId);
+                }
+#if (ADC_HW_TRIGGER_API == STD_ON)
+                else
+                {
+                    Adc_Ipw_UpdateHardwareGroupState(Unit, Group, GroupPtr->NumSamples, u32CoreId);
+                }
+#endif  /* (ADC_HW_TRIGGER_API == STD_ON) */
+#endif  /* (ADC_OPTIMIZE_ONESHOT_HW_TRIGGER == STD_ON) */
+            }
+        }
+#if (ADC_ENABLE_LIMIT_CHECK == STD_ON)
+        else
+        {
+            if (TRUE == IsSoftwareConversion)
+            {
+                Adc_Ipw_HandleConversionCheckFail(Unit, Group, GroupPtr, u32CoreId);
+            }
+        }
+#endif /* (ADC_ENABLE_LIMIT_CHECK == STD_ON) */
+    }
+}
+
+#ifdef ADC_DMA_SUPPORTED
+/**
+* @brief          This function handles conversion ending routines incase of DMA Transfering
+* @details        This function handles conversion ending routines incase of DMA Transfering
+*
+* @param[in]      Unit                  Adc Logical Unit Id
+* @param[in]      Group                 Selected group Id
+* @param[in]      IsSoftwareConversion  Software or Hardware triggered conversion
+* @param[in]      u32CoreId             Current CoreID
+*
+* @return         void
+*/
+static inline void Adc_Ipw_EndDmaConversion
+(
+    Adc_HwUnitType Unit,
+    Adc_GroupType Group,
+    boolean IsSoftwareConversion,
+    uint32 u32CoreId
+)
+{
+    const Adc_GroupType GroupIndex = Adc_pCfgPtr[u32CoreId]->pGroupIdToIndexMap[Group];
+    const Adc_GroupConfigurationType * GroupPtr = &(Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex]); /* Pointer to AdcGroup */
+    const uint32 AdcDmaLogicChId = (uint32) Adc_pCfgPtr[u32CoreId]->pAdcIpwConfig->Mapping.au8Adc_DmaChannel[Unit];
+#if ((ADC_SETCHANNEL_API == STD_ON) || ((ADC_SETCHANNEL_API == STD_OFF) && (ADC_OPTIMIZE_ONESHOT_HW_TRIGGER == STD_OFF)))
+    Adc_ChannelIndexType ChannelCount;
+#endif /* ((ADC_SETCHANNEL_API == STD_ON) || ((ADC_SETCHANNEL_API == STD_OFF) && (ADC_OPTIMIZE_ONESHOT_HW_TRIGGER == STD_OFF))) */
+
+#if (ADC_SETCHANNEL_API == STD_ON)
+    /* Channels configured at runtime */
+    ChannelCount = Adc_aRuntimeGroupChannel[Group].ChannelCount;
+
+    /* Check if channel was updated before interrupt of previous conversions */
+    if (TRUE == Adc_aRuntimeGroupChannel[Group].bRuntimeUpdated)
+    {
+        Adc_Ipw_ConfigureRuntimeChannels(Unit, GroupPtr, (uint8)ADC_IPW_CALCULATE_CHAN_NUMBER(ChannelCount), u32CoreId);
+    }
+    else
+#endif /* (ADC_SETCHANNEL_API == STD_ON) */
+    {
+#if (ADC_ENABLE_LIMIT_CHECK == STD_ON)
+        if (Adc_Ipw_CheckGroupConvResultDma(GroupPtr, u32CoreId) == (Std_ReturnType)E_OK)
+#endif /* (ADC_ENABLE_LIMIT_CHECK == STD_ON) */
+        {
+
+#if (ADC_OPTIMIZE_ONESHOT_HW_TRIGGER == STD_OFF)
+            /* Following code will not be reduced when oneshot hardware trigger optimization is not enabled */
+
+#if (ADC_SETCHANNEL_API == STD_OFF)
+            /* Channels configured when initializing */
+            ChannelCount = GroupPtr->AssignedChannelCount;
+#endif /* (ADC_SETCHANNEL_API == STD_ON) */
+            /* More channels in group */
+            if (Adc_aGroupStatus[Group].CurrentChannel < ChannelCount)
+            {
+                Adc_Ipw_ContinueDmaConversion(Unit, Group, ChannelCount, AdcDmaLogicChId, u32CoreId);
+            }
+            /* All of channels converted */
+            else
+#endif /* (ADC_OPTIMIZE_ONESHOT_HW_TRIGGER == STD_OFF) */
+            {
+#if (ADC_ENABLE_INITIAL_NOTIFICATION == STD_ON)
+                Adc_Ipw_CallExtraNotification(Group, u32CoreId);
+#endif /* (ADC_ENABLE_INITIAL_NOTIFICATION == STD_ON) */
+
+#if (ADC_OPTIMIZE_ONESHOT_HW_TRIGGER == STD_ON)
+                /* At least once the group was converted */
+                Adc_aGroupStatus[Group].eAlreadyConverted = ADC_ALREADY_CONVERTED;
+
+                Adc_aGroupStatus[Group].eConversion = ADC_STREAM_COMPLETED;
+
+#if (ADC_SETCHANNEL_API == STD_ON)
+                /* Check if channel was updated in Adc_Ipw_CallExtraNotification */ 
+                if (TRUE == Adc_aRuntimeGroupChannel[Group].bRuntimeUpdated)
+                {
+                    Adc_Ipw_ConfigureRuntimeChannels(Unit, GroupPtr, (uint8)ADC_IPW_CALCULATE_CHAN_NUMBER(ChannelCount), u32CoreId);
+                }
+#endif /* (ADC_SETCHANNEL_API == STD_ON) */
+#if (ADC_ENABLE_LIMIT_CHECK == STD_OFF)
+            (void)IsSoftwareConversion;
+#endif /* (ADC_ENABLE_LIMIT_CHECK == STD_OFF) */
+
+#if (ADC_GRP_NOTIF_CAPABILITY == STD_ON)
+                /* Check notification of a group and call the notification function if needed */
+                Adc_Ipw_CallNotification(Group, u32CoreId);
+#endif /* (ADC_GRP_NOTIF_CAPABILITY == STD_ON) */
+
+#else /* (ADC_OPTIMIZE_ONESHOT_HW_TRIGGER == STD_OFF) */
+
+                /* Although this is a RMW operation, it does not need an exclusive area because two
+                * simultaneous interrupts will not access the same areas e.g. the interrupt for
+                * ADC1 will not have the same group as an interrupt on ADC0 */
+                /* Increment ResultIndex with modulo 'NumSamples' to remember that another sample is completed */
+                Adc_aGroupStatus[Group].ResultIndex++;
+
+                /* Update state following AutoSar diagrams */
+                if (TRUE == IsSoftwareConversion)
+                {
+                    Adc_Ipw_UpdateSoftwareGroupState(Unit, Group, GroupPtr->NumSamples, u32CoreId);
+                }
+#if (ADC_HW_TRIGGER_API == STD_ON)
+                else
+                {
+                    Adc_Ipw_UpdateHardwareGroupState(Unit, Group, GroupPtr->NumSamples, u32CoreId);
+                }
+#endif  /* (ADC_HW_TRIGGER_API == STD_ON) */
+#endif  /* (ADC_OPTIMIZE_ONESHOT_HW_TRIGGER == STD_ON) */
+
+                if (ADC_DMA == Adc_pCfgPtr[u32CoreId]->pAdcIpwConfig->Mapping.u8Adc_DmaInterruptSoftware[Unit])
+                {
+                    if((uint8)STD_OFF == GroupPtr->u8AdcExtDMAChanEnable)
+                    {
+                        /* DMA Hardware Request was disabled after transfer completed, to avoid overwriting any new results before this gets processed. Re-enable DMA here. */
+                        (void)Dma_Ip_SetLogicChannelCommand(AdcDmaLogicChId, DMA_IP_CH_SET_HARDWARE_REQUEST);
+                    }
+                }
+            }
+        }
+#if (ADC_ENABLE_LIMIT_CHECK == STD_ON)
+        else
+        {
+            if (TRUE == IsSoftwareConversion)
+            {
+                Adc_Ipw_HandleConversionCheckFail(Unit, Group, GroupPtr, u32CoreId);
+            }
+        }
+#endif /* (ADC_ENABLE_LIMIT_CHECK == STD_ON) */
+    }
+}
+
+#if (ADC_OPTIMIZE_ONESHOT_HW_TRIGGER == STD_OFF)
+/**
+* @brief          This function updates Dma configuration
+* @details        This function updates Dma configuration if number of configured channels
+*                 are greater than number of SC1 register
+*
+* @param[in]      DataPtr       Adc_ValueGroupType * DataPtr,
+* @param[in]      DmaLogicChId  Dma logical channel
+* @param[in]      NumChannel    Number of channel to be converted
+*
+* @return         void
+*/
+static inline void Adc_Ipw_UpdateDmaConfig
+(
+    const Adc_ValueGroupType * DataPtr,
+    const uint32 DmaLogicChId,
+    uint8 NumChannel
+)
+{
+    Dma_Ip_LogicChannelTransferListType LocTransferList[3U];
+
+    LocTransferList[0].Param = DMA_IP_CH_SET_DESTINATION_ADDRESS;
+    LocTransferList[0].Value = (uint32)(DataPtr);
+    LocTransferList[1].Param = DMA_IP_CH_SET_SOURCE_SIGNED_LAST_ADDR_ADJ;
+    LocTransferList[1].Value = ADC_IPW_GET_COMPLEMENT_OF_2((uint32)NumChannel << 2UL);
+    LocTransferList[2].Param = DMA_IP_CH_SET_MAJORLOOP_COUNT;
+    LocTransferList[2].Value = (uint32)NumChannel;
+
+    /* Setting for DMA transfer */
+    (void)Dma_Ip_SetLogicChannelTransferList(DmaLogicChId, LocTransferList, 3U);
+    (void)Dma_Ip_SetLogicChannelCommand(DmaLogicChId, DMA_IP_CH_SET_HARDWARE_REQUEST);
+}
+
+
+static inline void Adc_Ipw_ContinueDmaConversion
+(
+    Adc_HwUnitType Unit,
+    Adc_GroupType Group,
+    const Adc_ChannelIndexType ChannelCount,
+    const uint32 AdcDmaLogicChId,
+    uint32 u32CoreId
+)
+{
+    const Adc_GroupType GroupIndex = Adc_pCfgPtr[u32CoreId]->pGroupIdToIndexMap[Group];
+    const Adc_ChannelIndexType NumChannel = ChannelCount - Adc_aGroupStatus[Group].CurrentChannel;
+    /* In case of left channels excess maximum allowed channels */
+    const uint8 LeftChannel = (uint8)ADC_IPW_CALCULATE_CHAN_NUMBER(NumChannel);
+    const Adc_GroupConfigurationType * GroupPtr; /* Pointer to AdcGroup */
+    uint16 ResultIndex;
+
+    GroupPtr = &(Adc_pCfgPtr[u32CoreId]->pGroups[GroupIndex]);
+
+    if ((uint8)STD_OFF == GroupPtr->u8AdcExtDMAChanEnable)
+    {
+#if (ADC_ENABLE_GROUP_STREAMING_RESULTS_REORDER == STD_ON)
+        if (TRUE == GroupPtr->bStreamResultGroupMultiSets)
+        {
+            ResultIndex = (Adc_aGroupStatus[Group].ResultIndex * ChannelCount) + Adc_aGroupStatus[Group].CurrentChannel;
+        }
+        else
+#endif /* (ADC_ENABLE_GROUP_STREAMING_RESULTS_REORDER == STD_ON) */
+        {
+            ResultIndex = ((Adc_aGroupStatus[Group].CurrentChannel) * (GroupPtr->NumSamples)) + Adc_aGroupStatus[Group].ResultIndex;
+        }
+
+        /* Update DMA configuration for remaining channels */
+        Adc_Ipw_UpdateDmaConfig((&(GroupPtr->pResultsBufferPtr[Group][ResultIndex])), AdcDmaLogicChId, LeftChannel);
+    }
+
+    /* Configure left channels and start more conversions */
+    Adc_Ipw_ConfigureDmaConversion(Unit, Group, PDB_ADC_IP_SOFTWARE_TRIGGER, LeftChannel);
+
+}
+#endif  /* (ADC_OPTIMIZE_ONESHOT_HW_TRIGGER == STD_OFF) */
+
+#if (ADC_ENABLE_LIMIT_CHECK == STD_ON)
+/**
+* @brief          This function checks the conversion result when Limit Check and DMA are enabled.
+* @details        This function checks the conversion result when Limit Check and DMA are enabled.
+*
+* @param[in]      pGroupPtr         The Adc Group Pointer.
+* @param[in]      u32CoreId         Current CoreID
+*
+* @return         Std_ReturnType
+*
+*/
+static inline Std_ReturnType Adc_Ipw_CheckGroupConvResultDma
+(
+    const Adc_GroupConfigurationType * pGroupPtr,
+    uint32 u32CoreId
+)
+{
+    Std_ReturnType ReturnValue = (Std_ReturnType)E_OK;
+    const Adc_GroupType Group = pGroupPtr->GroupId;
+    const Adc_HwUnitType Unit = pGroupPtr->AdcLogicalUnitId;
+    Adc_ValueGroupType * pResultData = &(pGroupPtr->pResultsBufferPtr[Group][Adc_aGroupStatus[Group].ResultIndex]);
+    Adc_ChannelType HwChannel;
+#if (ADC_SETCHANNEL_API == STD_ON)
+    HwChannel = Adc_aRuntimeGroupChannel[Group].pChannel[0];
+#else
+    HwChannel = pGroupPtr->pAssignment[0];
+#endif /* (ADC_SETCHANNEL_API == STD_ON) */
+
+    if (
+            (TRUE == pGroupPtr->bAdcGroupLimitcheck)
+#if (ADC_SETCHANNEL_API == STD_ON)
+            || (TRUE == Adc_aRuntimeGroupChannel[Group].bAdcRuntimeGroupLimitcheck)
+#endif /* ADC_SETCHANNEL_API == STD_ON */
+       )
+    {
+        /* Assumption: because of SWS_Adc_00451, the number of channels configured for a group when limit checking is disabled, must be one.*/
+        if (FALSE == Adc_Ipw_CheckConversionValuesInRange(pResultData[0], Unit, HwChannel, u32CoreId))
+        {
+            /* SWS_Adc_00448 */
+            /* Return an error */
+            Adc_aGroupStatus[Group].eAlreadyConverted = ADC_ALREADY_CONVERTED;
+            Adc_aGroupStatus[Group].bLimitCheckFailed = TRUE;
+            pResultData[0] = 0U;
+            ReturnValue = (Std_ReturnType) E_NOT_OK;
+        }
+        else
+        {
+            Adc_aGroupStatus[Group].bLimitCheckFailed = FALSE;
+        }
+    }
+
+    return ReturnValue;
+}
+#endif /* (ADC_ENABLE_LIMIT_CHECK == STD_ON) */
+#endif /* ADC_DMA_SUPPORTED */
+
+
+/**
+* @brief          This function read conversion results
+* @details        This function read conversion results
+*
+* @param[in]      GroupPtr      Group Pointer
+* @param[in]      pResult       Pointer to conversion results
+* @param[in]      GroupSamples  Number of samples
+* @param[in]      Index         Current index of result
+* @param[in]      ConvResult    Conversion result
+*
+* @return         void
+*/
+static inline void Adc_Ipw_ReadData
+(
+    const Adc_GroupConfigurationType * GroupPtr,
+    Adc_ValueGroupType * pResult,
+    const Adc_StreamNumSampleType GroupSamples,
+    const Adc_ChannelIndexType Index,
+    const uint16 ConvResult
+)
+{
+#if (ADC_ENABLE_GROUP_STREAMING_RESULTS_REORDER == STD_ON)
+    if (FALSE == GroupPtr->bStreamResultGroupMultiSets)
+    {
+#endif /* (ADC_ENABLE_GROUP_STREAMING_RESULTS_REORDER == STD_ON) */
+        pResult[(Index * GroupSamples)] = ConvResult;
+        (void)GroupPtr;
+#if (ADC_ENABLE_GROUP_STREAMING_RESULTS_REORDER == STD_ON)
+    }
+    else
+    {
+        pResult[Index] = ConvResult;
+    }
+#endif /* (ADC_ENABLE_GROUP_STREAMING_RESULTS_REORDER == STD_ON) */
+}
+
+
+/**
+* @brief          This function handles the end conversion notification.
+* @details        This function handles the end conversion notification.
+*
+* @param[in]      PhysicalAdcUnit   ADC Hardware Unit
+*
+* @return         void
+*/
+static inline void Adc_Ipw_EndConversionNotification
+(
+    const Adc_HwUnitType PhysicalAdcUnit
+)
+{
+    /* Check that ADC unit is assigned to current core partition */
+    const volatile uint32 u32CoreId = Adc_GetCoreID();
+    const Adc_HwUnitType LogicalHwUnitId = Adc_pCfgPtr[u32CoreId]->pAdcIpwConfig->Mapping.aHwLogicalId[PhysicalAdcUnit];
+    const Adc_GroupType SwGroupId = Adc_aUnitStatus[LogicalHwUnitId].SwNormalQueue[0U];
+#if (ADC_HW_TRIGGER_API == STD_ON)
+    const Adc_GroupType HwGroupId = Adc_aUnitStatus[LogicalHwUnitId].OngoingHwGroup;
+#endif /* ADC_HW_TRIGGER_API == STD_ON */
+
+#if (ADC_HW_TRIGGER_API == STD_ON)
+    /* Check if requests are available in queue */
+    if (ADC_INVALID_HW_GROUP_ID != HwGroupId)
+    {
+#ifdef ADC_DMA_SUPPORTED
+        if (ADC_DMA == Adc_pCfgPtr[u32CoreId]->pAdcIpwConfig->Mapping.u8Adc_DmaInterruptSoftware[LogicalHwUnitId])
+        {
+            Adc_Ipw_EndDmaConversion(LogicalHwUnitId, HwGroupId, FALSE, u32CoreId);
+        }
+        else
+#endif /* ADC_DMA_SUPPORTED */
+        {
+            Adc_Ipw_EndConversion(LogicalHwUnitId, HwGroupId, FALSE, u32CoreId);
+        }
+    }
+    else
+#endif /* (ADC_HW_TRIGGER_API == STD_ON) */
+    if (Adc_aUnitStatus[LogicalHwUnitId].SwNormalQueueIndex > (Adc_QueueIndexType)0U)
+    {
+#ifdef ADC_DMA_SUPPORTED
+        if (ADC_DMA == Adc_pCfgPtr[u32CoreId]->pAdcIpwConfig->Mapping.u8Adc_DmaInterruptSoftware[LogicalHwUnitId])
+        {
+            Adc_Ipw_EndDmaConversion(LogicalHwUnitId, SwGroupId, TRUE, u32CoreId);
+        }
+        else
+#endif /* ADC_DMA_SUPPORTED */
+        {
+            Adc_Ipw_EndConversion(LogicalHwUnitId, SwGroupId, TRUE, u32CoreId);
+        }
+    }
+#if (ADC_HW_TRIGGER_API == STD_ON)
+    else
+    {
+        ; /* Empty else branch to avoid MISRA */
+    }
+#endif /* (ADC_HW_TRIGGER_API == STD_ON) */
+}
+
+/*==================================================================================================
+*                                   GLOBAL FUNCTION PROTOTYPES
+==================================================================================================*/
+/* IAR wants prototypes due to --require-prototypes */
+#ifdef ADC_UNIT_0_ISR_USED
+void Adc_Ipw_Adc0EndConversionNotification(const uint8 ControlChanIdx);
+#endif /* ADC_UNIT_0_ISR_USED */
+
+#ifdef ADC_UNIT_1_ISR_USED
+void Adc_Ipw_Adc1EndConversionNotification(const uint8 ControlChanIdx);
+#endif /* ADC_UNIT_1_ISR_USED */
+
+#ifdef ADC_DMA_SUPPORTED
+void Adc_Ipw_Adc0DmaTransferCompleteNotification(void);
+void Adc_Ipw_Adc1DmaTransferCompleteNotification(void);
+#endif /* ADC_DMA_SUPPORTED */
+
+/*==================================================================================================
+*                                       GLOBAL FUNCTIONS
+==================================================================================================*/
+
+/*==================================================================================================
+                                          ADC HW UNIT 0
+==================================================================================================*/
+#ifdef ADC_UNIT_0_ISR_USED
+/**
+* @brief          This function handles the ISR for the conversion done of
+*                 the ADC Hardware Unit 0.
+* @details        The function handles the ISR for the ADC Hardware Unit 0.
+*
+* @return         void
+*
+*/
+void Adc_Ipw_Adc0EndConversionNotification(const uint8 ControlChanIdx)
+{
+    const Adc_HwUnitType PhysicalAdcUnit = 0U;
+
+    (void)ControlChanIdx;
+
+    Adc_Ipw_EndConversionNotification(PhysicalAdcUnit);
+}
+#endif /* ADC_UNIT_0_ISR_USED */
+
+#ifdef ADC_DMA_SUPPORTED
+/**
+* @brief          This function implements the end of DMA transfer notification for
+*                 ADC Hardware Unit 0.
+* @details        This function implements the end of DMA transfer notification for
+*                 ADC Hardware Unit 0.
+*
+* @return         void
+*
+*/
+void Adc_Ipw_Adc0DmaTransferCompleteNotification(void)
+{
+    const Adc_HwUnitType PhysicalAdcUnit = 0U;
+
+    Adc_Ipw_EndConversionNotification(PhysicalAdcUnit);
+}
+#endif /* ADC_DMA_SUPPORTED */
+
+/*==================================================================================================
+                                          ADC HW UNIT 1
+==================================================================================================*/
+#ifdef ADC_UNIT_1_ISR_USED
+/**
+* @brief          This function handles the ISR for the conversion done of
+*                 the ADC Hardware Unit 1.
+* @details        The function handles the ISR for the ADC Hardware Unit 1.
+*
+* @return         void
+*
+*/
+void Adc_Ipw_Adc1EndConversionNotification(const uint8 ControlChanIdx)
+{
+    const Adc_HwUnitType PhysicalAdcUnit = 1U;
+
+    (void)ControlChanIdx;
+
+    Adc_Ipw_EndConversionNotification(PhysicalAdcUnit);
+}
+#endif /* ADC_UNIT_1_ISR_USED */
+
+#ifdef ADC_DMA_SUPPORTED
+/**
+* @brief          This function implements the end of DMA transfer notification for
+*                 ADC Hardware Unit 0.
+* @details        This function implements the end of DMA transfer notification for
+*                 ADC Hardware Unit 0.
+*
+* @return         void
+*
+*/
+void Adc_Ipw_Adc1DmaTransferCompleteNotification(void)
+{
+    const Adc_HwUnitType PhysicalAdcUnit = 1U;
+
+    Adc_Ipw_EndConversionNotification(PhysicalAdcUnit);
+}
+#endif /* ADC_DMA_SUPPORTED */
+#endif  /* (defined(ADC_UNIT_0_ISR_USED) || ... */
+
+#define ADC_STOP_SEC_CODE
+#include "Adc_MemMap.h"
+
+#ifdef __cplusplus
+}
+#endif
+
+/** @} */

+ 287 - 287
RTD/src/Det.c

@@ -1,287 +1,287 @@
-/*==================================================================================================
-*   Project              : RTD AUTOSAR 4.4
-*   Platform             : CORTEXM
-*   Peripheral           : 
-*   Dependencies         : none
-*
-*   Autosar Version      : 4.4.0
-*   Autosar Revision     : ASR_REL_4_4_REV_0000
-*   Autosar Conf.Variant :
-*   SW Version           : 1.0.0
-*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
-*
-*   (c) Copyright 2020-2021 NXP Semiconductors
-*   All Rights Reserved.
-*
-*   NXP Confidential. This software is owned or controlled by NXP and may only be
-*   used strictly in accordance with the applicable license terms. By expressly
-*   accepting such terms or by downloading, installing, activating and/or otherwise
-*   using the software, you are agreeing that you have read, and that you agree to
-*   comply with and are bound by, such license terms. If you do not agree to be
-*   bound by the applicable license terms, then you may not retain, install,
-*   activate or otherwise use the software.
-==================================================================================================*/
-
-/**
-*   @file Det.c
-*
-*   @addtogroup DET_MODULE
-*   @{
-*/
-
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-/*
-* @page misra_violations MISRA-C:2012 violations
-*
-* @section Det_c_REF_1
-* Violates MISRA 2012 Required Directive 4.10, Precautions shall be taken in order to prevent the contents of a header file being included more than once.
-* This violation is not fixed since the inclusion of <MA>_MemMap.h is as per AUTOSAR requirement [SWS_MemMap_00003].
-*
-* @section Det_c_REF_2
-* Violates MISRA 2012 Advisory Rule 20.1, #Include directives should only be preceded by preprocessor directives or comments.
-* <MA>_MemMap.h is included after each section define in order to set the current memory section as defined by AUTOSAR.
-*/
-
-/*==================================================================================================
-*                                         INCLUDE FILES
-* 1) system and project includes
-* 2) needed interfaces from external units
-* 3) internal and external interfaces from this unit
-==================================================================================================*/
-/**
-* @file           Det.c
-* @requirements   DET004
-*/
-#include "Mcal.h"
-#include "OsIf.h"
-#include "Det.h"
-
-/*==================================================================================================
-*                                        LOCAL MACROS
-==================================================================================================*/
-#define DET_VENDOR_ID_C                     43
-#define DET_AR_RELEASE_MAJOR_VERSION_C      4
-#define DET_AR_RELEASE_MINOR_VERSION_C      4
-#define DET_AR_RELEASE_REVISION_VERSION_C   0
-#define DET_SW_MAJOR_VERSION_C              1
-#define DET_SW_MINOR_VERSION_C              0
-#define DET_SW_PATCH_VERSION_C              0
-/*==================================================================================================
-*                                      FILE VERSION CHECKS
-==================================================================================================*/
-/* Check if source file and DET header file are of the same vendor */
-#if (DET_VENDOR_ID_C != DET_VENDOR_ID)
-    #error "Det.c and Det.h have different vendor ids"
-#endif
-
-/* Check if source file and DET header file are of the same Autosar version */
-#if ((DET_AR_RELEASE_MAJOR_VERSION_C != DET_AR_RELEASE_MAJOR_VERSION) || \
-     (DET_AR_RELEASE_MINOR_VERSION_C != DET_AR_RELEASE_MINOR_VERSION) || \
-     (DET_AR_RELEASE_REVISION_VERSION_C != DET_AR_RELEASE_REVISION_VERSION))
-  #error "AutoSar Version Numbers of Det.c and Det.h are different"
-#endif
-
-/* Check if source file and DET header file are of the same Software version */
-#if ((DET_SW_MAJOR_VERSION_C != DET_SW_MAJOR_VERSION) || \
-     (DET_SW_MINOR_VERSION_C != DET_SW_MINOR_VERSION) || \
-     (DET_SW_PATCH_VERSION_C != DET_SW_PATCH_VERSION))
-    #error "Software Version Numbers of Det.c and Det.h are different"
-#endif
-
-#ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
-    /* Check if DET source file and STD header file are of the same Autosar version */
-    #if ((DET_AR_RELEASE_MAJOR_VERSION_C != STD_AR_RELEASE_MAJOR_VERSION) || \
-        (DET_AR_RELEASE_MINOR_VERSION_C != STD_AR_RELEASE_MINOR_VERSION))
-        #error "AutoSar Version Numbers of Det.c and Std_Types.h are different"
-    #endif
-#endif
-/*==================================================================================================
-*                          LOCAL TYPEDEFS (STRUCTURES, UNIONS, ENUMS)
-==================================================================================================*/
-
-/*==================================================================================================
-*                                       LOCAL CONSTANTS
-==================================================================================================*/
-
-
-/*==================================================================================================
-*                                       LOCAL VARIABLES
-==================================================================================================*/
-
-
-/*==================================================================================================
-*                                       GLOBAL CONSTANTS
-==================================================================================================*/
-
-
-/*==================================================================================================
-*                                       GLOBAL VARIABLES
-==================================================================================================*/
-#define DET_START_SEC_VAR_CLEARED_8_NO_CACHEABLE
-/*
- * @violates @ref Det_c_REF_1 Precautions shall be taken in order to prevent the contents of a header file being included more than once
- * @violates @ref Det_c_REF_2 #Include directives should only be preceded by preprocessor directives or comments
- */
-#include "Det_MemMap.h"
-/* Variables to store last DET error */
-uint8 Det_InstanceId[DET_NO_ECU_CORES];                /**< @brief DET instance ID*/
-uint8 Det_ApiId[DET_NO_ECU_CORES];                     /**< @brief DET API ID*/
-uint8 Det_ErrorId[DET_NO_ECU_CORES];                   /**< @brief DET Error ID*/
-/* Variables to store last DET runtime error */
-uint8 Det_RuntimeInstanceId[DET_NO_ECU_CORES];         /**< @brief DET instance ID*/
-uint8 Det_RuntimeApiId[DET_NO_ECU_CORES];              /**< @brief DET API ID*/
-uint8 Det_RuntimeErrorId[DET_NO_ECU_CORES];            /**< @brief DET Error ID*/
-/* Variables to store last DET transient error */
-uint8 Det_TransientInstanceId[DET_NO_ECU_CORES];       /**< @brief DET instance ID*/
-uint8 Det_TransientApiId[DET_NO_ECU_CORES];            /**< @brief DET API ID*/
-uint8 Det_TransientFaultId[DET_NO_ECU_CORES];          /**< @brief DET Error ID*/
-#define DET_STOP_SEC_VAR_CLEARED_8_NO_CACHEABLE
-/*
- * @violates @ref Det_c_REF_1 Precautions shall be taken in order to prevent the contents of a header file being included more than once
- * @violates @ref Det_c_REF_2 #Include directives should only be preceded by preprocessor directives or comments
- */
-#include "Det_MemMap.h"
-
-#define DET_START_SEC_VAR_CLEARED_16_NO_CACHEABLE
-/*
- * @violates @ref Det_c_REF_1 Precautions shall be taken in order to prevent the contents of a header file being included more than once
- * @violates @ref Det_c_REF_2 #Include directives should only be preceded by preprocessor directives or comments
- */
-#include "Det_MemMap.h"
-uint16 Det_TransientModuleId[DET_NO_ECU_CORES];       /**< @brief DET module ID*/
-uint16 Det_ModuleId[DET_NO_ECU_CORES];       /**< @brief DET module ID*/
-uint16 Det_RuntimeModuleId[DET_NO_ECU_CORES];       /**< @brief DET module ID*/
-#define DET_STOP_SEC_VAR_CLEARED_16_NO_CACHEABLE
-/*
- * @violates @ref Det_c_REF_1 Precautions shall be taken in order to prevent the contents of a header file being included more than once
- * @violates @ref Det_c_REF_2 #Include directives should only be preceded by preprocessor directives or comments
- */
-#include "Det_MemMap.h"
-
-
-/*==================================================================================================
-*                                   LOCAL FUNCTION PROTOTYPES
-==================================================================================================*/
-
-
-/*==================================================================================================
-*                                       LOCAL FUNCTIONS
-==================================================================================================*/
-/* put all DET code into defined section */
-
-/*==================================================================================================
-*                                       GLOBAL FUNCTIONS
-==================================================================================================*/
-#define DET_START_SEC_CODE
-#include "Det_MemMap.h"
-
-/*================================================================================================*/
-/**
-* @brief          This function initializes the DET module.
-* @details        This is a function stub only. Functionality is void in this implementation
-*
-* @requirements   DET008
-*
-*/
-void Det_Init(void)
-{
-    
-}
-
-/*================================================================================================*/
-/** 
-* @brief   This function provides the service for reporting of development errors. 
-* @details This is a function stub only. It only loads the global IDs with the IDs of the latest error that occured
-*    
-* @param[in]     ModuleId    Module ID of Calling Module
-* @param[in]     InstanceId  Index of Module starting at 0
-* @param[in]     ApiId       ID of API with Error
-* @param[in]     ErrorId     ID of Error
-*
-* @requirement DET009
-*/
-Std_ReturnType Det_ReportError(uint16 ModuleId, uint8 InstanceId, uint8 ApiId, uint8 ErrorId)
-{
-    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
-    
-    Det_ModuleId[u32CoreId] = ModuleId; 
-    Det_InstanceId[u32CoreId] = InstanceId;
-    Det_ApiId[u32CoreId] = ApiId; 
-    Det_ErrorId[u32CoreId] = ErrorId;
-    
-    return E_OK;
-}
-
-/*================================================================================================*/
-/** 
-* @brief   This function provides the service for reporting of runtime errors. 
-* @details This is a function stub only. It only loads the global IDs with the IDs of the latest error that occured
-*    
-* @param[in]     ModuleId    Module ID of Calling Module
-* @param[in]     InstanceId  Index of Module starting at 0
-* @param[in]     ApiId       ID of API with Error
-* @param[in]     ErrorId     ID of Error
-*
-* @requirement SWS_Det_01001
-*/
-Std_ReturnType Det_ReportRuntimeError(uint16 ModuleId, uint8 InstanceId, uint8 ApiId, uint8 ErrorId)
-{
-    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
-    
-    Det_RuntimeModuleId[u32CoreId] = ModuleId; 
-    Det_RuntimeInstanceId[u32CoreId] = InstanceId;
-    Det_RuntimeApiId[u32CoreId] = ApiId; 
-    Det_RuntimeErrorId[u32CoreId] = ErrorId;
-    
-    return E_OK;
-}
-
-/*================================================================================================*/
-/** 
-* @brief   This function provides the service for reporting of transient errors. 
-* @details This is a function stub only. It only loads the global IDs with the IDs of the latest error that occured
-*    
-* @param[in]     ModuleId    Module ID of Calling Module
-* @param[in]     InstanceId  Index of Module starting at 0
-* @param[in]     ApiId       ID of API with Error
-* @param[in]     FaultId     ID of Fault
-*
-* @requirement SWS_Det_01001
-*/
-Std_ReturnType Det_ReportTransientFault(uint16 ModuleId, uint8 InstanceId, uint8 ApiId, uint8 FaultId)
-{
-    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
-    
-    Det_TransientModuleId[u32CoreId] = ModuleId; 
-    Det_TransientInstanceId[u32CoreId] = InstanceId;
-    Det_TransientApiId[u32CoreId] = ApiId; 
-    Det_TransientFaultId[u32CoreId] = FaultId;
-    
-    return E_OK;
-}
-
-/*================================================================================================*/
-/** 
-* @brief   This function provides the starting after the Det_Init has been called. 
-* @details This is a function stub only.  Det_Init and Det_Start shall always be available. 
-*          Functionality is void in this implementation
-*    
-* @requirement DET010   
-*/
-void Det_Start(void)
-{
-    
-}
-
-#define DET_STOP_SEC_CODE
-#include "Det_MemMap.h"
-
-#ifdef __cplusplus
-}
-#endif
-
-/** @} */
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : 
+*   Dependencies         : none
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_D2108_ASR_REL_4_4_REV_0000_20210810
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+
+/**
+*   @file Det.c
+*
+*   @addtogroup DET_MODULE
+*   @{
+*/
+
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+/*
+* @page misra_violations MISRA-C:2012 violations
+*
+* @section Det_c_REF_1
+* Violates MISRA 2012 Required Directive 4.10, Precautions shall be taken in order to prevent the contents of a header file being included more than once.
+* This violation is not fixed since the inclusion of <MA>_MemMap.h is as per AUTOSAR requirement [SWS_MemMap_00003].
+*
+* @section Det_c_REF_2
+* Violates MISRA 2012 Advisory Rule 20.1, #Include directives should only be preceded by preprocessor directives or comments.
+* <MA>_MemMap.h is included after each section define in order to set the current memory section as defined by AUTOSAR.
+*/
+
+/*==================================================================================================
+*                                         INCLUDE FILES
+* 1) system and project includes
+* 2) needed interfaces from external units
+* 3) internal and external interfaces from this unit
+==================================================================================================*/
+/**
+* @file           Det.c
+* @requirements   DET004
+*/
+#include "Mcal.h"
+#include "OsIf.h"
+#include "Det.h"
+
+/*==================================================================================================
+*                                        LOCAL MACROS
+==================================================================================================*/
+#define DET_VENDOR_ID_C                     43
+#define DET_AR_RELEASE_MAJOR_VERSION_C      4
+#define DET_AR_RELEASE_MINOR_VERSION_C      4
+#define DET_AR_RELEASE_REVISION_VERSION_C   0
+#define DET_SW_MAJOR_VERSION_C              1
+#define DET_SW_MINOR_VERSION_C              0
+#define DET_SW_PATCH_VERSION_C              0
+/*==================================================================================================
+*                                      FILE VERSION CHECKS
+==================================================================================================*/
+/* Check if source file and DET header file are of the same vendor */
+#if (DET_VENDOR_ID_C != DET_VENDOR_ID)
+    #error "Det.c and Det.h have different vendor ids"
+#endif
+
+/* Check if source file and DET header file are of the same Autosar version */
+#if ((DET_AR_RELEASE_MAJOR_VERSION_C != DET_AR_RELEASE_MAJOR_VERSION) || \
+     (DET_AR_RELEASE_MINOR_VERSION_C != DET_AR_RELEASE_MINOR_VERSION) || \
+     (DET_AR_RELEASE_REVISION_VERSION_C != DET_AR_RELEASE_REVISION_VERSION))
+  #error "AutoSar Version Numbers of Det.c and Det.h are different"
+#endif
+
+/* Check if source file and DET header file are of the same Software version */
+#if ((DET_SW_MAJOR_VERSION_C != DET_SW_MAJOR_VERSION) || \
+     (DET_SW_MINOR_VERSION_C != DET_SW_MINOR_VERSION) || \
+     (DET_SW_PATCH_VERSION_C != DET_SW_PATCH_VERSION))
+    #error "Software Version Numbers of Det.c and Det.h are different"
+#endif
+
+#ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
+    /* Check if DET source file and STD header file are of the same Autosar version */
+    #if ((DET_AR_RELEASE_MAJOR_VERSION_C != STD_AR_RELEASE_MAJOR_VERSION) || \
+        (DET_AR_RELEASE_MINOR_VERSION_C != STD_AR_RELEASE_MINOR_VERSION))
+        #error "AutoSar Version Numbers of Det.c and Std_Types.h are different"
+    #endif
+#endif
+/*==================================================================================================
+*                          LOCAL TYPEDEFS (STRUCTURES, UNIONS, ENUMS)
+==================================================================================================*/
+
+/*==================================================================================================
+*                                       LOCAL CONSTANTS
+==================================================================================================*/
+
+
+/*==================================================================================================
+*                                       LOCAL VARIABLES
+==================================================================================================*/
+
+
+/*==================================================================================================
+*                                       GLOBAL CONSTANTS
+==================================================================================================*/
+
+
+/*==================================================================================================
+*                                       GLOBAL VARIABLES
+==================================================================================================*/
+#define DET_START_SEC_VAR_CLEARED_8_NO_CACHEABLE
+/*
+ * @violates @ref Det_c_REF_1 Precautions shall be taken in order to prevent the contents of a header file being included more than once
+ * @violates @ref Det_c_REF_2 #Include directives should only be preceded by preprocessor directives or comments
+ */
+#include "Det_MemMap.h"
+/* Variables to store last DET error */
+uint8 Det_InstanceId[DET_NO_ECU_CORES];                /**< @brief DET instance ID*/
+uint8 Det_ApiId[DET_NO_ECU_CORES];                     /**< @brief DET API ID*/
+uint8 Det_ErrorId[DET_NO_ECU_CORES];                   /**< @brief DET Error ID*/
+/* Variables to store last DET runtime error */
+uint8 Det_RuntimeInstanceId[DET_NO_ECU_CORES];         /**< @brief DET instance ID*/
+uint8 Det_RuntimeApiId[DET_NO_ECU_CORES];              /**< @brief DET API ID*/
+uint8 Det_RuntimeErrorId[DET_NO_ECU_CORES];            /**< @brief DET Error ID*/
+/* Variables to store last DET transient error */
+uint8 Det_TransientInstanceId[DET_NO_ECU_CORES];       /**< @brief DET instance ID*/
+uint8 Det_TransientApiId[DET_NO_ECU_CORES];            /**< @brief DET API ID*/
+uint8 Det_TransientFaultId[DET_NO_ECU_CORES];          /**< @brief DET Error ID*/
+#define DET_STOP_SEC_VAR_CLEARED_8_NO_CACHEABLE
+/*
+ * @violates @ref Det_c_REF_1 Precautions shall be taken in order to prevent the contents of a header file being included more than once
+ * @violates @ref Det_c_REF_2 #Include directives should only be preceded by preprocessor directives or comments
+ */
+#include "Det_MemMap.h"
+
+#define DET_START_SEC_VAR_CLEARED_16_NO_CACHEABLE
+/*
+ * @violates @ref Det_c_REF_1 Precautions shall be taken in order to prevent the contents of a header file being included more than once
+ * @violates @ref Det_c_REF_2 #Include directives should only be preceded by preprocessor directives or comments
+ */
+#include "Det_MemMap.h"
+uint16 Det_TransientModuleId[DET_NO_ECU_CORES];       /**< @brief DET module ID*/
+uint16 Det_ModuleId[DET_NO_ECU_CORES];       /**< @brief DET module ID*/
+uint16 Det_RuntimeModuleId[DET_NO_ECU_CORES];       /**< @brief DET module ID*/
+#define DET_STOP_SEC_VAR_CLEARED_16_NO_CACHEABLE
+/*
+ * @violates @ref Det_c_REF_1 Precautions shall be taken in order to prevent the contents of a header file being included more than once
+ * @violates @ref Det_c_REF_2 #Include directives should only be preceded by preprocessor directives or comments
+ */
+#include "Det_MemMap.h"
+
+
+/*==================================================================================================
+*                                   LOCAL FUNCTION PROTOTYPES
+==================================================================================================*/
+
+
+/*==================================================================================================
+*                                       LOCAL FUNCTIONS
+==================================================================================================*/
+/* put all DET code into defined section */
+
+/*==================================================================================================
+*                                       GLOBAL FUNCTIONS
+==================================================================================================*/
+#define DET_START_SEC_CODE
+#include "Det_MemMap.h"
+
+/*================================================================================================*/
+/**
+* @brief          This function initializes the DET module.
+* @details        This is a function stub only. Functionality is void in this implementation
+*
+* @requirements   DET008
+*
+*/
+void Det_Init(void)
+{
+    
+}
+
+/*================================================================================================*/
+/** 
+* @brief   This function provides the service for reporting of development errors. 
+* @details This is a function stub only. It only loads the global IDs with the IDs of the latest error that occured
+*    
+* @param[in]     ModuleId    Module ID of Calling Module
+* @param[in]     InstanceId  Index of Module starting at 0
+* @param[in]     ApiId       ID of API with Error
+* @param[in]     ErrorId     ID of Error
+*
+* @requirement DET009
+*/
+Std_ReturnType Det_ReportError(uint16 ModuleId, uint8 InstanceId, uint8 ApiId, uint8 ErrorId)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+    
+    Det_ModuleId[u32CoreId] = ModuleId; 
+    Det_InstanceId[u32CoreId] = InstanceId;
+    Det_ApiId[u32CoreId] = ApiId; 
+    Det_ErrorId[u32CoreId] = ErrorId;
+    
+    return E_OK;
+}
+
+/*================================================================================================*/
+/** 
+* @brief   This function provides the service for reporting of runtime errors. 
+* @details This is a function stub only. It only loads the global IDs with the IDs of the latest error that occured
+*    
+* @param[in]     ModuleId    Module ID of Calling Module
+* @param[in]     InstanceId  Index of Module starting at 0
+* @param[in]     ApiId       ID of API with Error
+* @param[in]     ErrorId     ID of Error
+*
+* @requirement SWS_Det_01001
+*/
+Std_ReturnType Det_ReportRuntimeError(uint16 ModuleId, uint8 InstanceId, uint8 ApiId, uint8 ErrorId)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+    
+    Det_RuntimeModuleId[u32CoreId] = ModuleId; 
+    Det_RuntimeInstanceId[u32CoreId] = InstanceId;
+    Det_RuntimeApiId[u32CoreId] = ApiId; 
+    Det_RuntimeErrorId[u32CoreId] = ErrorId;
+    
+    return E_OK;
+}
+
+/*================================================================================================*/
+/** 
+* @brief   This function provides the service for reporting of transient errors. 
+* @details This is a function stub only. It only loads the global IDs with the IDs of the latest error that occured
+*    
+* @param[in]     ModuleId    Module ID of Calling Module
+* @param[in]     InstanceId  Index of Module starting at 0
+* @param[in]     ApiId       ID of API with Error
+* @param[in]     FaultId     ID of Fault
+*
+* @requirement SWS_Det_01001
+*/
+Std_ReturnType Det_ReportTransientFault(uint16 ModuleId, uint8 InstanceId, uint8 ApiId, uint8 FaultId)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+    
+    Det_TransientModuleId[u32CoreId] = ModuleId; 
+    Det_TransientInstanceId[u32CoreId] = InstanceId;
+    Det_TransientApiId[u32CoreId] = ApiId; 
+    Det_TransientFaultId[u32CoreId] = FaultId;
+    
+    return E_OK;
+}
+
+/*================================================================================================*/
+/** 
+* @brief   This function provides the starting after the Det_Init has been called. 
+* @details This is a function stub only.  Det_Init and Det_Start shall always be available. 
+*          Functionality is void in this implementation
+*    
+* @requirement DET010   
+*/
+void Det_Start(void)
+{
+    
+}
+
+#define DET_STOP_SEC_CODE
+#include "Det_MemMap.h"
+
+#ifdef __cplusplus
+}
+#endif
+
+/** @} */

+ 244 - 244
RTD/src/Det_stub.c

@@ -1,244 +1,244 @@
-/*==================================================================================================
-*   Project              : RTD AUTOSAR 4.4
-*   Platform             : CORTEXM
-*   Peripheral           : 
-*   Dependencies         : none
-*
-*   Autosar Version      : 4.4.0
-*   Autosar Revision     : ASR_REL_4_4_REV_0000
-*   Autosar Conf.Variant :
-*   SW Version           : 1.0.0
-*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
-*
-*   (c) Copyright 2020-2021 NXP Semiconductors
-*   All Rights Reserved.
-*
-*   NXP Confidential. This software is owned or controlled by NXP and may only be
-*   used strictly in accordance with the applicable license terms. By expressly
-*   accepting such terms or by downloading, installing, activating and/or otherwise
-*   using the software, you are agreeing that you have read, and that you agree to
-*   comply with and are bound by, such license terms. If you do not agree to be
-*   bound by the applicable license terms, then you may not retain, install,
-*   activate or otherwise use the software.
-==================================================================================================*/
-
-/**
-*   @file Det_stub.c
-*
-*   @addtogroup DET_MODULE
-*   @{
-*/
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-/*==================================================================================================
-*                                        INCLUDE FILES
-* 1) system and project includes
-* 2) needed interfaces from external units
-* 3) internal and external interfaces from this unit
-==================================================================================================*/
-#include "Mcal.h"
-#include "OsIf.h"
-#include "Det_stub.h"
-
-/*==================================================================================================
-*                          LOCAL TYPEDEFS (STRUCTURES, UNIONS, ENUMS)
-==================================================================================================*/
-
-
-/*==================================================================================================
-*                                       LOCAL MACROS
-==================================================================================================*/
-
-
-/*==================================================================================================
-*                                      LOCAL CONSTANTS
-==================================================================================================*/
-
-
-/*==================================================================================================
-*                                      LOCAL VARIABLES
-==================================================================================================*/
-
-
-/*==================================================================================================
-*                                      GLOBAL CONSTANTS
-==================================================================================================*/
-
-
-/*==================================================================================================
-*                                      GLOBAL VARIABLES
-==================================================================================================*/
-
-/*==================================================================================================
-*                                   LOCAL FUNCTION PROTOTYPES
-==================================================================================================*/
-
-
-/*==================================================================================================
-*                                       LOCAL FUNCTIONS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                       GLOBAL FUNCTIONS
-==================================================================================================*/
-#define DET_START_SEC_CODE
-#include "Det_MemMap.h"
-
-/*================================================================================================*/
-/**
-* @brief            Tests if an expected error has been reported to DET
-* @details          Tests if an expected error has been reported to DET
-* 
-* @param[in]        ModuleId - ID of the module reporting the error
-* @param[in]        InstanceId - ID of the Instance reporting the error
-* @param[in]        APIId - ID of the API where the error has been generated from
-* @param[in]        ErrorId - Error Code
-
-* @return           boolean - true in case expected error has been found
-*
-*/
-boolean Det_TestLastReportError(uint16 ModuleId, uint8 InstanceId, uint8 ApiId, uint8 ErrorId) {
-	boolean result = FALSE;
-    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
-    
-    result = (Det_ModuleId[u32CoreId] == ModuleId) && (Det_InstanceId[u32CoreId] == InstanceId) && 
-                     (Det_ApiId[u32CoreId] == ApiId) && (Det_ErrorId[u32CoreId] == ErrorId);
-    
-	Det_ModuleId[u32CoreId] = 0;
-	Det_InstanceId[u32CoreId] = 0;
-	Det_ApiId[u32CoreId] = 0;
-	Det_ErrorId[u32CoreId] = 0;
-	
-	return result;
-}
-
-
-/*================================================================================================*/
-/**
-* @brief            Tests if an expected error has been reported to DET
-* @details          Tests if an expected error has been reported to DET
-* 
-* @param[in]        ModuleId - ID of the module reporting the error
-* @param[in]        InstanceId - ID of the Instance reporting the error
-* @param[in]        APIId - ID of the API where the error has been generated from
-* @param[in]        ErrorId - Error Code
-
-* @return           boolean - true in case expected error has been found
-*
-*/
-boolean Det_TestLastReportRuntimeError(uint16 ModuleId, uint8 InstanceId, uint8 ApiId, uint8 ErrorId) {
-	boolean result = FALSE;
-    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
-    
-    result = (Det_RuntimeModuleId[u32CoreId] == ModuleId) && (Det_RuntimeInstanceId[u32CoreId] == InstanceId) && 
-                     (Det_RuntimeApiId[u32CoreId] == ApiId) && (Det_RuntimeErrorId[u32CoreId] == ErrorId);
-    
-	Det_RuntimeModuleId[u32CoreId] = 0;
-	Det_RuntimeInstanceId[u32CoreId] = 0;
-	Det_RuntimeApiId[u32CoreId] = 0;
-	Det_RuntimeErrorId[u32CoreId] = 0;
-	
-	return result;
-}
-
-/*================================================================================================*/
-/**
-* @brief            Tests if an expected error has been reported to DET
-* @details          Tests if an expected error has been reported to DET
-* 
-* @param[in]        ModuleId - ID of the module reporting the error
-* @param[in]        InstanceId - ID of the Instance reporting the error
-* @param[in]        APIId - ID of the API where the error has been generated from
-* @param[in]        ErrorId - Error Code
-
-* @return           boolean - true in case expected error has been found
-*
-*/
-boolean Det_TestLastReportTransientFault(uint16 ModuleId, uint8 InstanceId, uint8 ApiId, uint8 FaultId) {
-	boolean result = FALSE;
-    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
-    
-    result = (Det_TransientModuleId[u32CoreId] == ModuleId) && (Det_TransientInstanceId[u32CoreId] == InstanceId) && 
-                     (Det_TransientApiId[u32CoreId] == ApiId) && (Det_TransientFaultId[u32CoreId] == FaultId);
-    
-	Det_TransientModuleId[u32CoreId] = 0;
-	Det_TransientInstanceId[u32CoreId] = 0;
-	Det_TransientApiId[u32CoreId] = 0;
-	Det_TransientFaultId[u32CoreId] = 0;
-	
-	return result;
-}
-/*================================================================================================*/
-/**
-* @brief            Tests if an error has been reported to DET
-* @details          Tests if an error has been reported to DET
-* 
-* @return           boolean - true in case of NO error has been reported to DET
-*
-*/
-boolean Det_TestNoError(void) {
-	boolean result = FALSE;
-    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
-    
-    result = Det_ModuleId[u32CoreId] || Det_InstanceId[u32CoreId] || Det_ApiId[u32CoreId] || Det_ErrorId[u32CoreId];
-    
-	Det_ModuleId[u32CoreId] = 0;
-	Det_InstanceId[u32CoreId] = 0;
-	Det_ApiId[u32CoreId] = 0;
-	Det_ErrorId[u32CoreId] = 0;
-	return !result;
-}
-
-/*================================================================================================*/
-/**
-* @brief            Tests if an runtime error has been reported to DET
-* @details          Tests if an runtime error has been reported to DET
-* 
-* @return           boolean - true in case of NO error has been reported to DET
-*
-*/
-boolean Det_TestNoRuntimeError(void) {
-	boolean result = FALSE;
-    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
-    
-    result = Det_RuntimeModuleId[u32CoreId] || Det_RuntimeInstanceId[u32CoreId] || Det_RuntimeApiId[u32CoreId] || Det_RuntimeErrorId[u32CoreId];
-    
-	Det_RuntimeModuleId[u32CoreId] = 0;
-	Det_RuntimeInstanceId[u32CoreId] = 0;
-	Det_RuntimeApiId[u32CoreId] = 0;
-	Det_RuntimeErrorId[u32CoreId] = 0;
-	return !result;
-}
-
-/*================================================================================================*/
-/**
-* @brief            Tests if an transient error has been reported to DET
-* @details          Tests if an transient error has been reported to DET
-* 
-* @return           boolean - true in case of NO error has been reported to DET
-*
-*/
-boolean Det_TestNoTransientFault(void) {
-	boolean result = FALSE;
-    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
-    
-    result = Det_TransientModuleId[u32CoreId] || Det_TransientInstanceId[u32CoreId] || Det_TransientApiId[u32CoreId] || Det_TransientFaultId[u32CoreId];
-    
-	Det_TransientModuleId[u32CoreId] = 0;
-	Det_TransientInstanceId[u32CoreId] = 0;
-	Det_TransientApiId[u32CoreId] = 0;
-	Det_TransientFaultId[u32CoreId] = 0;
-	return !result;
-}
-
-#define DET_STOP_SEC_CODE
-#include "Det_MemMap.h"
-
-#ifdef __cplusplus
-}
-#endif
-
-/** @} */
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : 
+*   Dependencies         : none
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_D2108_ASR_REL_4_4_REV_0000_20210810
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+
+/**
+*   @file Det_stub.c
+*
+*   @addtogroup DET_MODULE
+*   @{
+*/
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+/*==================================================================================================
+*                                        INCLUDE FILES
+* 1) system and project includes
+* 2) needed interfaces from external units
+* 3) internal and external interfaces from this unit
+==================================================================================================*/
+#include "Mcal.h"
+#include "OsIf.h"
+#include "Det_stub.h"
+
+/*==================================================================================================
+*                          LOCAL TYPEDEFS (STRUCTURES, UNIONS, ENUMS)
+==================================================================================================*/
+
+
+/*==================================================================================================
+*                                       LOCAL MACROS
+==================================================================================================*/
+
+
+/*==================================================================================================
+*                                      LOCAL CONSTANTS
+==================================================================================================*/
+
+
+/*==================================================================================================
+*                                      LOCAL VARIABLES
+==================================================================================================*/
+
+
+/*==================================================================================================
+*                                      GLOBAL CONSTANTS
+==================================================================================================*/
+
+
+/*==================================================================================================
+*                                      GLOBAL VARIABLES
+==================================================================================================*/
+
+/*==================================================================================================
+*                                   LOCAL FUNCTION PROTOTYPES
+==================================================================================================*/
+
+
+/*==================================================================================================
+*                                       LOCAL FUNCTIONS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                       GLOBAL FUNCTIONS
+==================================================================================================*/
+#define DET_START_SEC_CODE
+#include "Det_MemMap.h"
+
+/*================================================================================================*/
+/**
+* @brief            Tests if an expected error has been reported to DET
+* @details          Tests if an expected error has been reported to DET
+* 
+* @param[in]        ModuleId - ID of the module reporting the error
+* @param[in]        InstanceId - ID of the Instance reporting the error
+* @param[in]        APIId - ID of the API where the error has been generated from
+* @param[in]        ErrorId - Error Code
+
+* @return           boolean - true in case expected error has been found
+*
+*/
+boolean Det_TestLastReportError(uint16 ModuleId, uint8 InstanceId, uint8 ApiId, uint8 ErrorId) {
+	boolean result = FALSE;
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+    
+    result = (Det_ModuleId[u32CoreId] == ModuleId) && (Det_InstanceId[u32CoreId] == InstanceId) && 
+                     (Det_ApiId[u32CoreId] == ApiId) && (Det_ErrorId[u32CoreId] == ErrorId);
+    
+	Det_ModuleId[u32CoreId] = 0;
+	Det_InstanceId[u32CoreId] = 0;
+	Det_ApiId[u32CoreId] = 0;
+	Det_ErrorId[u32CoreId] = 0;
+	
+	return result;
+}
+
+
+/*================================================================================================*/
+/**
+* @brief            Tests if an expected error has been reported to DET
+* @details          Tests if an expected error has been reported to DET
+* 
+* @param[in]        ModuleId - ID of the module reporting the error
+* @param[in]        InstanceId - ID of the Instance reporting the error
+* @param[in]        APIId - ID of the API where the error has been generated from
+* @param[in]        ErrorId - Error Code
+
+* @return           boolean - true in case expected error has been found
+*
+*/
+boolean Det_TestLastReportRuntimeError(uint16 ModuleId, uint8 InstanceId, uint8 ApiId, uint8 ErrorId) {
+	boolean result = FALSE;
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+    
+    result = (Det_RuntimeModuleId[u32CoreId] == ModuleId) && (Det_RuntimeInstanceId[u32CoreId] == InstanceId) && 
+                     (Det_RuntimeApiId[u32CoreId] == ApiId) && (Det_RuntimeErrorId[u32CoreId] == ErrorId);
+    
+	Det_RuntimeModuleId[u32CoreId] = 0;
+	Det_RuntimeInstanceId[u32CoreId] = 0;
+	Det_RuntimeApiId[u32CoreId] = 0;
+	Det_RuntimeErrorId[u32CoreId] = 0;
+	
+	return result;
+}
+
+/*================================================================================================*/
+/**
+* @brief            Tests if an expected error has been reported to DET
+* @details          Tests if an expected error has been reported to DET
+* 
+* @param[in]        ModuleId - ID of the module reporting the error
+* @param[in]        InstanceId - ID of the Instance reporting the error
+* @param[in]        APIId - ID of the API where the error has been generated from
+* @param[in]        ErrorId - Error Code
+
+* @return           boolean - true in case expected error has been found
+*
+*/
+boolean Det_TestLastReportTransientFault(uint16 ModuleId, uint8 InstanceId, uint8 ApiId, uint8 FaultId) {
+	boolean result = FALSE;
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+    
+    result = (Det_TransientModuleId[u32CoreId] == ModuleId) && (Det_TransientInstanceId[u32CoreId] == InstanceId) && 
+                     (Det_TransientApiId[u32CoreId] == ApiId) && (Det_TransientFaultId[u32CoreId] == FaultId);
+    
+	Det_TransientModuleId[u32CoreId] = 0;
+	Det_TransientInstanceId[u32CoreId] = 0;
+	Det_TransientApiId[u32CoreId] = 0;
+	Det_TransientFaultId[u32CoreId] = 0;
+	
+	return result;
+}
+/*================================================================================================*/
+/**
+* @brief            Tests if an error has been reported to DET
+* @details          Tests if an error has been reported to DET
+* 
+* @return           boolean - true in case of NO error has been reported to DET
+*
+*/
+boolean Det_TestNoError(void) {
+	boolean result = FALSE;
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+    
+    result = Det_ModuleId[u32CoreId] || Det_InstanceId[u32CoreId] || Det_ApiId[u32CoreId] || Det_ErrorId[u32CoreId];
+    
+	Det_ModuleId[u32CoreId] = 0;
+	Det_InstanceId[u32CoreId] = 0;
+	Det_ApiId[u32CoreId] = 0;
+	Det_ErrorId[u32CoreId] = 0;
+	return !result;
+}
+
+/*================================================================================================*/
+/**
+* @brief            Tests if an runtime error has been reported to DET
+* @details          Tests if an runtime error has been reported to DET
+* 
+* @return           boolean - true in case of NO error has been reported to DET
+*
+*/
+boolean Det_TestNoRuntimeError(void) {
+	boolean result = FALSE;
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+    
+    result = Det_RuntimeModuleId[u32CoreId] || Det_RuntimeInstanceId[u32CoreId] || Det_RuntimeApiId[u32CoreId] || Det_RuntimeErrorId[u32CoreId];
+    
+	Det_RuntimeModuleId[u32CoreId] = 0;
+	Det_RuntimeInstanceId[u32CoreId] = 0;
+	Det_RuntimeApiId[u32CoreId] = 0;
+	Det_RuntimeErrorId[u32CoreId] = 0;
+	return !result;
+}
+
+/*================================================================================================*/
+/**
+* @brief            Tests if an transient error has been reported to DET
+* @details          Tests if an transient error has been reported to DET
+* 
+* @return           boolean - true in case of NO error has been reported to DET
+*
+*/
+boolean Det_TestNoTransientFault(void) {
+	boolean result = FALSE;
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+    
+    result = Det_TransientModuleId[u32CoreId] || Det_TransientInstanceId[u32CoreId] || Det_TransientApiId[u32CoreId] || Det_TransientFaultId[u32CoreId];
+    
+	Det_TransientModuleId[u32CoreId] = 0;
+	Det_TransientInstanceId[u32CoreId] = 0;
+	Det_TransientApiId[u32CoreId] = 0;
+	Det_TransientFaultId[u32CoreId] = 0;
+	return !result;
+}
+
+#define DET_STOP_SEC_CODE
+#include "Det_MemMap.h"
+
+#ifdef __cplusplus
+}
+#endif
+
+/** @} */

+ 350 - 350
RTD/src/OsIf_Timer.c

@@ -1,350 +1,350 @@
-/*==================================================================================================
-* Project : RTD AUTOSAR 4.4
-* Platform : CORTEXM
-* Peripheral : S32K14X
-* Dependencies : none
-*
-* Autosar Version : 4.4.0
-* Autosar Revision : ASR_REL_4_4_REV_0000
-* Autosar Conf.Variant :
-* SW Version : 1.0.0
-* Build Version : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
-*
-* (c) Copyright 2020-2021 NXP Semiconductors
-* All Rights Reserved.
-*
-* NXP Confidential. This software is owned or controlled by NXP and may only be
-* used strictly in accordance with the applicable license terms. By expressly
-* accepting such terms or by downloading, installing, activating and/or otherwise
-* using the software, you are agreeing that you have read, and that you agree to
-* comply with and are bound by, such license terms. If you do not agree to be
-* bound by the applicable license terms, then you may not retain, install,
-* activate or otherwise use the software.
-==================================================================================================*/
-
-/**
-*   @file
-*
-*   @addtogroup osif_drv
-*   @{
-*/
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-/*==================================================================================================
-*                                          INCLUDE FILES
-* 1) system and project includes
-* 2) needed interfaces from external units
-* 3) internal and external interfaces from this unit
-==================================================================================================*/
-#include "OsIf.h"
-#include "OsIf_Cfg.h"
-#include "OsIf_Cfg_TypesDef.h"
-
-#if (OSIF_USE_SYSTEM_TIMER == STD_ON)
-/* Defines the Hw Timer functions to be implemented in OS-specific environments */
-#include "OsIf_Timer_System.h"
-#endif /* (OSIF_USE_SYSTEM_TIMER == STD_ON) */
-
-#if (OSIF_USE_CUSTOM_TIMER == STD_ON)
-/* API functions to be implemented by user */
-#include "OsIf_Timer_Custom.h"
-#endif /* (OSIF_USE_CUSTOM_TIMER == STD_ON) */
-
-/*==================================================================================================
-*                                 SOURCE FILE VERSION INFORMATION
-==================================================================================================*/
-#define OSIF_TIMER_VENDOR_ID_C                    43
-#define OSIF_TIMER_AR_RELEASE_MAJOR_VERSION_C     4
-#define OSIF_TIMER_AR_RELEASE_MINOR_VERSION_C     4
-#define OSIF_TIMER_AR_RELEASE_REVISION_VERSION_C  0
-#define OSIF_TIMER_SW_MAJOR_VERSION_C             1
-#define OSIF_TIMER_SW_MINOR_VERSION_C             0
-#define OSIF_TIMER_SW_PATCH_VERSION_C             0
-
-/*==================================================================================================
-*                                       FILE VERSION CHECKS
-==================================================================================================*/
-/* Checks against OsIf.h */
-#if (OSIF_TIMER_VENDOR_ID_C != OSIF_VENDOR_ID)
-    #error "OsIf_Timer.c and OsIf.h have different vendor ids"
-#endif
-#if ((OSIF_TIMER_AR_RELEASE_MAJOR_VERSION_C    != OSIF_AR_RELEASE_MAJOR_VERSION) || \
-     (OSIF_TIMER_AR_RELEASE_MINOR_VERSION_C    != OSIF_AR_RELEASE_MINOR_VERSION) || \
-     (OSIF_TIMER_AR_RELEASE_REVISION_VERSION_C != OSIF_AR_RELEASE_REVISION_VERSION))
-    #error "AUTOSAR Version Numbers of OsIf_Timer.c and OsIf.h are different"
-#endif
-#if ((OSIF_TIMER_SW_MAJOR_VERSION_C != OSIF_SW_MAJOR_VERSION) || \
-     (OSIF_TIMER_SW_MINOR_VERSION_C != OSIF_SW_MINOR_VERSION) || \
-     (OSIF_TIMER_SW_PATCH_VERSION_C != OSIF_SW_PATCH_VERSION) \
-    )
-    #error "Software Version Numbers of OsIf_Timer.c and OsIf.h are different"
-#endif
-
-/* Checks against OsIf_Cfg.h */
-#if (OSIF_TIMER_VENDOR_ID_C != OSIF_CFG_VENDOR_ID)
-    #error "OsIf_Timer.c and OsIf_Cfg.h have different vendor ids"
-#endif
-#if ((OSIF_TIMER_AR_RELEASE_MAJOR_VERSION_C    != OSIF_CFG_AR_RELEASE_MAJOR_VERSION) || \
-     (OSIF_TIMER_AR_RELEASE_MINOR_VERSION_C    != OSIF_CFG_AR_RELEASE_MINOR_VERSION) || \
-     (OSIF_TIMER_AR_RELEASE_REVISION_VERSION_C != OSIF_CFG_AR_RELEASE_REVISION_VERSION))
-    #error "AUTOSAR Version Numbers of OsIf_Timer.c and OsIf_Cfg.h are different"
-#endif
-#if ((OSIF_TIMER_SW_MAJOR_VERSION_C != OSIF_CFG_SW_MAJOR_VERSION) || \
-     (OSIF_TIMER_SW_MINOR_VERSION_C != OSIF_CFG_SW_MINOR_VERSION) || \
-     (OSIF_TIMER_SW_PATCH_VERSION_C != OSIF_CFG_SW_PATCH_VERSION) \
-    )
-    #error "Software Version Numbers of OsIf_Timer.c and OsIf_Cfg.h are different"
-#endif
-
-/* Checks against OsIf_Cfg_TypesDef.h */
-#if (OSIF_TIMER_VENDOR_ID_C != OSIF_CFG_TYPESDEF_VENDOR_ID)
-    #error "OsIf_Timer.c and OsIf_Cfg_TypesDef.h have different vendor ids"
-#endif
-#if ((OSIF_TIMER_AR_RELEASE_MAJOR_VERSION_C    != OSIF_CFG_TYPESDEF_AR_RELEASE_MAJOR_VERSION) || \
-     (OSIF_TIMER_AR_RELEASE_MINOR_VERSION_C    != OSIF_CFG_TYPESDEF_AR_RELEASE_MINOR_VERSION) || \
-     (OSIF_TIMER_AR_RELEASE_REVISION_VERSION_C != OSIF_CFG_TYPESDEF_AR_RELEASE_REVISION_VERSION))
-    #error "AUTOSAR Version Numbers of OsIf_Timer_System.c and OsIf_Cfg_TypesDef.h are different"
-#endif
-#if ((OSIF_TIMER_SW_MAJOR_VERSION_C != OSIF_CFG_TYPESDEF_SW_MAJOR_VERSION) || \
-     (OSIF_TIMER_SW_MINOR_VERSION_C != OSIF_CFG_TYPESDEF_SW_MINOR_VERSION) || \
-     (OSIF_TIMER_SW_PATCH_VERSION_C != OSIF_CFG_TYPESDEF_SW_PATCH_VERSION) \
-    )
-    #error "Software Version Numbers of OsIf_Timer.c and OsIf_Cfg_TypesDef.h are different"
-#endif
-
-#if (OSIF_USE_SYSTEM_TIMER == STD_ON)
-/* Checks against OsIf_Timer_System.h */
-#if (OSIF_TIMER_VENDOR_ID_C != OSIF_TIMER_SYSTEM_VENDOR_ID)
-    #error "OsIf_Timer.c and OsIf_Timer_System.h have different vendor ids"
-#endif
-#if ((OSIF_TIMER_AR_RELEASE_MAJOR_VERSION_C    != OSIF_TIMER_SYSTEM_AR_RELEASE_MAJOR_VERSION) || \
-     (OSIF_TIMER_AR_RELEASE_MINOR_VERSION_C    != OSIF_TIMER_SYSTEM_AR_RELEASE_MINOR_VERSION) || \
-     (OSIF_TIMER_AR_RELEASE_REVISION_VERSION_C != OSIF_TIMER_SYSTEM_AR_RELEASE_REVISION_VERSION))
-    #error "AUTOSAR Version Numbers of OsIf_Timer.c and OsIf_Timer_System.h are different"
-#endif
-#if ((OSIF_TIMER_SW_MAJOR_VERSION_C != OSIF_TIMER_SYSTEM_SW_MAJOR_VERSION) || \
-     (OSIF_TIMER_SW_MINOR_VERSION_C != OSIF_TIMER_SYSTEM_SW_MINOR_VERSION) || \
-     (OSIF_TIMER_SW_PATCH_VERSION_C != OSIF_TIMER_SYSTEM_SW_PATCH_VERSION) \
-    )
-    #error "Software Version Numbers of OsIf_Timer.c and OsIf_Timer_System.h are different"
-#endif
-#endif /* (OSIF_USE_SYSTEM_TIMER == STD_ON) */
-
-#if (OSIF_USE_CUSTOM_TIMER == STD_ON)
-/* Checks against OsIf_Timer_Custom.h */
-#if (OSIF_TIMER_VENDOR_ID_C != OSIF_TIMER_CUSTOM_VENDOR_ID)
-    #error "OsIf_Timer.c and OsIf_Timer_Custom.h have different vendor ids"
-#endif
-#if ((OSIF_TIMER_AR_RELEASE_MAJOR_VERSION_C    != OSIF_TIMER_CUSTOM_AR_RELEASE_MAJOR_VERSION) || \
-     (OSIF_TIMER_AR_RELEASE_MINOR_VERSION_C    != OSIF_TIMER_CUSTOM_AR_RELEASE_MINOR_VERSION) || \
-     (OSIF_TIMER_AR_RELEASE_REVISION_VERSION_C != OSIF_TIMER_CUSTOM_AR_RELEASE_REVISION_VERSION))
-    #error "AUTOSAR Version Numbers of OsIf_Timer.c and OsIf_Timer_Custom.h are different"
-#endif
-#if ((OSIF_TIMER_SW_MAJOR_VERSION_C != OSIF_TIMER_CUSTOM_SW_MAJOR_VERSION) || \
-     (OSIF_TIMER_SW_MINOR_VERSION_C != OSIF_TIMER_CUSTOM_SW_MINOR_VERSION) || \
-     (OSIF_TIMER_SW_PATCH_VERSION_C != OSIF_TIMER_CUSTOM_SW_PATCH_VERSION) \
-    )
-    #error "Software Version Numbers of OsIf_Timer.c and OsIf_Timer_Custom.h are different"
-#endif
-#endif /* (OSIF_USE_CUSTOM_TIMER == STD_ON) */
-
-/*==================================================================================================
-*                           LOCAL TYPEDEFS (STRUCTURES, UNIONS, ENUMS)
-==================================================================================================*/
-
-/*==================================================================================================
-*                                          LOCAL MACROS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                         LOCAL CONSTANTS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                         LOCAL VARIABLES
-==================================================================================================*/
-
-/*==================================================================================================
-*                                        GLOBAL CONSTANTS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                        GLOBAL VARIABLES
-==================================================================================================*/
-
-/*==================================================================================================
-*                                    LOCAL FUNCTION PROTOTYPES
-==================================================================================================*/
-#define BASE_START_SEC_CODE
-#include "Base_MemMap.h"
-
-static inline uint32 OsIf_Timer_Dummy_GetCounter(void);
-static inline uint32 OsIf_Timer_Dummy_GetElapsed(const uint32 * const CurrentRef);
-static inline void OsIf_Timer_Dummy_SetTimerFrequency(uint32 Freq);
-static inline uint32 OsIf_Timer_Dummy_MicrosToTicks(uint32 Micros);
-
-#define BASE_STOP_SEC_CODE
-#include "Base_MemMap.h"
-/*==================================================================================================
-*                                         LOCAL FUNCTIONS
-==================================================================================================*/
-#define BASE_START_SEC_CODE
-#include "Base_MemMap.h"
-
-static inline uint32 OsIf_Timer_Dummy_GetCounter(void)
-{
-    return 0u;
-}
-
-static inline uint32 OsIf_Timer_Dummy_GetElapsed(const uint32 * const CurrentRef)
-{
-    (void)CurrentRef;
-    return 1u;
-}
-
-static inline void OsIf_Timer_Dummy_SetTimerFrequency(uint32 Freq)
-{
-    (void)Freq;
-}
-
-static inline uint32 OsIf_Timer_Dummy_MicrosToTicks(uint32 Micros)
-{
-    return Micros;
-}
-
-#define BASE_STOP_SEC_CODE
-#include "Base_MemMap.h"
-/*==================================================================================================
-*                                        GLOBAL FUNCTIONS
-==================================================================================================*/
-#define BASE_START_SEC_CODE
-#include "Base_MemMap.h"
-
-/* @implements OsIf_Init_Activity */
-void OsIf_Init(const void* Config)
-{
-
-#if (STD_ON == OSIF_DEV_ERROR_DETECT)
-    if (Config != NULL_PTR)
-    {
-        #if defined(USING_OS_AUTOSAROS)
-        (void)Det_ReportError(OSIF_MODULE_ID, OSIF_DRIVER_INSTANCE, OSIF_SID_INIT, OSIF_E_INIT_FAILED);
-        #else
-        OSIF_DEV_ASSERT(FALSE);
-        #endif
-    }
-#else
-    (void)Config;
-#endif
-
-#if (OSIF_USE_SYSTEM_TIMER == STD_ON)
-    OsIf_Timer_System_Init();
-#endif
-#if (OSIF_USE_CUSTOM_TIMER == STD_ON)
-    OsIf_Timer_Custom_Init();
-#endif
-}
-
-/* @implements OsIf_GetCounter_Activity */
-uint32 OsIf_GetCounter(OsIf_CounterType SelectedCounter)
-{
-    uint32 Value = 0u;
-    switch (SelectedCounter){
-        case OSIF_COUNTER_DUMMY:
-            Value = OsIf_Timer_Dummy_GetCounter();
-            break;
-#if (OSIF_USE_SYSTEM_TIMER == STD_ON)
-        case OSIF_COUNTER_SYSTEM:
-            Value = OsIf_Timer_System_GetCounter();
-            break;
-#endif
-#if (OSIF_USE_CUSTOM_TIMER == STD_ON)
-        case OSIF_COUNTER_CUSTOM:
-            Value = OsIf_Timer_Custom_GetCounter();
-            break;
-#endif
-        default: /* impossible */ break;
-    }
-    return Value;
-}
-
-
-/* @implements OsIf_GetElapsed_Activity */
-uint32 OsIf_GetElapsed(uint32 * const CurrentRef, OsIf_CounterType SelectedCounter)
-{
-    uint32 Value = 0u;
-    switch (SelectedCounter){
-        case OSIF_COUNTER_DUMMY:
-            Value = OsIf_Timer_Dummy_GetElapsed(CurrentRef);
-            break;
-#if (OSIF_USE_SYSTEM_TIMER == STD_ON)
-        case OSIF_COUNTER_SYSTEM:
-            Value = OsIf_Timer_System_GetElapsed(CurrentRef);
-            break;
-#endif
-#if (OSIF_USE_CUSTOM_TIMER == STD_ON)
-        case OSIF_COUNTER_CUSTOM:
-            Value = OsIf_Timer_Custom_GetElapsed(CurrentRef);
-            break;
-#endif
-        default: /* impossible */ break;
-    }
-    return Value;
-}
-
-
-/* @implements OsIf_SetTimerFrequency_Activity */
-void OsIf_SetTimerFrequency(uint32 Freq, OsIf_CounterType SelectedCounter)
-{
-    switch (SelectedCounter){
-        case OSIF_COUNTER_DUMMY:
-            OsIf_Timer_Dummy_SetTimerFrequency(Freq);
-            break;
-#if (OSIF_USE_SYSTEM_TIMER == STD_ON)
-        case OSIF_COUNTER_SYSTEM:
-            OsIf_Timer_System_SetTimerFrequency(Freq);
-            break;
-#endif
-#if (OSIF_USE_CUSTOM_TIMER == STD_ON)
-        case OSIF_COUNTER_CUSTOM:
-            OsIf_Timer_Custom_SetTimerFrequency(Freq);
-            break;
-#endif
-        default: /* impossible */ break;
-    }
-}
-
-/* @implements OsIf_MicrosToTicks_Activity */
-uint32 OsIf_MicrosToTicks(uint32 Micros, OsIf_CounterType SelectedCounter)
-{
-    uint32 Value = 0u;
-    switch (SelectedCounter){
-        case OSIF_COUNTER_DUMMY:
-            Value = OsIf_Timer_Dummy_MicrosToTicks(Micros);
-            break;
-#if (OSIF_USE_SYSTEM_TIMER == STD_ON)
-        case OSIF_COUNTER_SYSTEM:
-            Value = OsIf_Timer_System_MicrosToTicks(Micros);
-            break;
-#endif
-#if (OSIF_USE_CUSTOM_TIMER == STD_ON)
-        case OSIF_COUNTER_CUSTOM:
-            Value = OsIf_Timer_Custom_MicrosToTicks(Micros);
-            break;
-#endif
-        default: /* impossible */ break;
-    }
-    return Value;
-}
-
-#define BASE_STOP_SEC_CODE
-#include "Base_MemMap.h"
-
-#ifdef __cplusplus
-}
-#endif
-
-/** @} */
+/*==================================================================================================
+* Project : RTD AUTOSAR 4.4
+* Platform : CORTEXM
+* Peripheral : S32K14X
+* Dependencies : none
+*
+* Autosar Version : 4.4.0
+* Autosar Revision : ASR_REL_4_4_REV_0000
+* Autosar Conf.Variant :
+* SW Version : 1.0.0
+* Build Version : S32K1_RTD_1_0_0_D2108_ASR_REL_4_4_REV_0000_20210810
+*
+* (c) Copyright 2020-2021 NXP Semiconductors
+* All Rights Reserved.
+*
+* NXP Confidential. This software is owned or controlled by NXP and may only be
+* used strictly in accordance with the applicable license terms. By expressly
+* accepting such terms or by downloading, installing, activating and/or otherwise
+* using the software, you are agreeing that you have read, and that you agree to
+* comply with and are bound by, such license terms. If you do not agree to be
+* bound by the applicable license terms, then you may not retain, install,
+* activate or otherwise use the software.
+==================================================================================================*/
+
+/**
+*   @file
+*
+*   @addtogroup osif_drv
+*   @{
+*/
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+/*==================================================================================================
+*                                          INCLUDE FILES
+* 1) system and project includes
+* 2) needed interfaces from external units
+* 3) internal and external interfaces from this unit
+==================================================================================================*/
+#include "OsIf.h"
+#include "OsIf_Cfg.h"
+#include "OsIf_Cfg_TypesDef.h"
+
+#if (OSIF_USE_SYSTEM_TIMER == STD_ON)
+/* Defines the Hw Timer functions to be implemented in OS-specific environments */
+#include "OsIf_Timer_System.h"
+#endif /* (OSIF_USE_SYSTEM_TIMER == STD_ON) */
+
+#if (OSIF_USE_CUSTOM_TIMER == STD_ON)
+/* API functions to be implemented by user */
+#include "OsIf_Timer_Custom.h"
+#endif /* (OSIF_USE_CUSTOM_TIMER == STD_ON) */
+
+/*==================================================================================================
+*                                 SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+#define OSIF_TIMER_VENDOR_ID_C                    43
+#define OSIF_TIMER_AR_RELEASE_MAJOR_VERSION_C     4
+#define OSIF_TIMER_AR_RELEASE_MINOR_VERSION_C     4
+#define OSIF_TIMER_AR_RELEASE_REVISION_VERSION_C  0
+#define OSIF_TIMER_SW_MAJOR_VERSION_C             1
+#define OSIF_TIMER_SW_MINOR_VERSION_C             0
+#define OSIF_TIMER_SW_PATCH_VERSION_C             0
+
+/*==================================================================================================
+*                                       FILE VERSION CHECKS
+==================================================================================================*/
+/* Checks against OsIf.h */
+#if (OSIF_TIMER_VENDOR_ID_C != OSIF_VENDOR_ID)
+    #error "OsIf_Timer.c and OsIf.h have different vendor ids"
+#endif
+#if ((OSIF_TIMER_AR_RELEASE_MAJOR_VERSION_C    != OSIF_AR_RELEASE_MAJOR_VERSION) || \
+     (OSIF_TIMER_AR_RELEASE_MINOR_VERSION_C    != OSIF_AR_RELEASE_MINOR_VERSION) || \
+     (OSIF_TIMER_AR_RELEASE_REVISION_VERSION_C != OSIF_AR_RELEASE_REVISION_VERSION))
+    #error "AUTOSAR Version Numbers of OsIf_Timer.c and OsIf.h are different"
+#endif
+#if ((OSIF_TIMER_SW_MAJOR_VERSION_C != OSIF_SW_MAJOR_VERSION) || \
+     (OSIF_TIMER_SW_MINOR_VERSION_C != OSIF_SW_MINOR_VERSION) || \
+     (OSIF_TIMER_SW_PATCH_VERSION_C != OSIF_SW_PATCH_VERSION) \
+    )
+    #error "Software Version Numbers of OsIf_Timer.c and OsIf.h are different"
+#endif
+
+/* Checks against OsIf_Cfg.h */
+#if (OSIF_TIMER_VENDOR_ID_C != OSIF_CFG_VENDOR_ID)
+    #error "OsIf_Timer.c and OsIf_Cfg.h have different vendor ids"
+#endif
+#if ((OSIF_TIMER_AR_RELEASE_MAJOR_VERSION_C    != OSIF_CFG_AR_RELEASE_MAJOR_VERSION) || \
+     (OSIF_TIMER_AR_RELEASE_MINOR_VERSION_C    != OSIF_CFG_AR_RELEASE_MINOR_VERSION) || \
+     (OSIF_TIMER_AR_RELEASE_REVISION_VERSION_C != OSIF_CFG_AR_RELEASE_REVISION_VERSION))
+    #error "AUTOSAR Version Numbers of OsIf_Timer.c and OsIf_Cfg.h are different"
+#endif
+#if ((OSIF_TIMER_SW_MAJOR_VERSION_C != OSIF_CFG_SW_MAJOR_VERSION) || \
+     (OSIF_TIMER_SW_MINOR_VERSION_C != OSIF_CFG_SW_MINOR_VERSION) || \
+     (OSIF_TIMER_SW_PATCH_VERSION_C != OSIF_CFG_SW_PATCH_VERSION) \
+    )
+    #error "Software Version Numbers of OsIf_Timer.c and OsIf_Cfg.h are different"
+#endif
+
+/* Checks against OsIf_Cfg_TypesDef.h */
+#if (OSIF_TIMER_VENDOR_ID_C != OSIF_CFG_TYPESDEF_VENDOR_ID)
+    #error "OsIf_Timer.c and OsIf_Cfg_TypesDef.h have different vendor ids"
+#endif
+#if ((OSIF_TIMER_AR_RELEASE_MAJOR_VERSION_C    != OSIF_CFG_TYPESDEF_AR_RELEASE_MAJOR_VERSION) || \
+     (OSIF_TIMER_AR_RELEASE_MINOR_VERSION_C    != OSIF_CFG_TYPESDEF_AR_RELEASE_MINOR_VERSION) || \
+     (OSIF_TIMER_AR_RELEASE_REVISION_VERSION_C != OSIF_CFG_TYPESDEF_AR_RELEASE_REVISION_VERSION))
+    #error "AUTOSAR Version Numbers of OsIf_Timer_System.c and OsIf_Cfg_TypesDef.h are different"
+#endif
+#if ((OSIF_TIMER_SW_MAJOR_VERSION_C != OSIF_CFG_TYPESDEF_SW_MAJOR_VERSION) || \
+     (OSIF_TIMER_SW_MINOR_VERSION_C != OSIF_CFG_TYPESDEF_SW_MINOR_VERSION) || \
+     (OSIF_TIMER_SW_PATCH_VERSION_C != OSIF_CFG_TYPESDEF_SW_PATCH_VERSION) \
+    )
+    #error "Software Version Numbers of OsIf_Timer.c and OsIf_Cfg_TypesDef.h are different"
+#endif
+
+#if (OSIF_USE_SYSTEM_TIMER == STD_ON)
+/* Checks against OsIf_Timer_System.h */
+#if (OSIF_TIMER_VENDOR_ID_C != OSIF_TIMER_SYSTEM_VENDOR_ID)
+    #error "OsIf_Timer.c and OsIf_Timer_System.h have different vendor ids"
+#endif
+#if ((OSIF_TIMER_AR_RELEASE_MAJOR_VERSION_C    != OSIF_TIMER_SYSTEM_AR_RELEASE_MAJOR_VERSION) || \
+     (OSIF_TIMER_AR_RELEASE_MINOR_VERSION_C    != OSIF_TIMER_SYSTEM_AR_RELEASE_MINOR_VERSION) || \
+     (OSIF_TIMER_AR_RELEASE_REVISION_VERSION_C != OSIF_TIMER_SYSTEM_AR_RELEASE_REVISION_VERSION))
+    #error "AUTOSAR Version Numbers of OsIf_Timer.c and OsIf_Timer_System.h are different"
+#endif
+#if ((OSIF_TIMER_SW_MAJOR_VERSION_C != OSIF_TIMER_SYSTEM_SW_MAJOR_VERSION) || \
+     (OSIF_TIMER_SW_MINOR_VERSION_C != OSIF_TIMER_SYSTEM_SW_MINOR_VERSION) || \
+     (OSIF_TIMER_SW_PATCH_VERSION_C != OSIF_TIMER_SYSTEM_SW_PATCH_VERSION) \
+    )
+    #error "Software Version Numbers of OsIf_Timer.c and OsIf_Timer_System.h are different"
+#endif
+#endif /* (OSIF_USE_SYSTEM_TIMER == STD_ON) */
+
+#if (OSIF_USE_CUSTOM_TIMER == STD_ON)
+/* Checks against OsIf_Timer_Custom.h */
+#if (OSIF_TIMER_VENDOR_ID_C != OSIF_TIMER_CUSTOM_VENDOR_ID)
+    #error "OsIf_Timer.c and OsIf_Timer_Custom.h have different vendor ids"
+#endif
+#if ((OSIF_TIMER_AR_RELEASE_MAJOR_VERSION_C    != OSIF_TIMER_CUSTOM_AR_RELEASE_MAJOR_VERSION) || \
+     (OSIF_TIMER_AR_RELEASE_MINOR_VERSION_C    != OSIF_TIMER_CUSTOM_AR_RELEASE_MINOR_VERSION) || \
+     (OSIF_TIMER_AR_RELEASE_REVISION_VERSION_C != OSIF_TIMER_CUSTOM_AR_RELEASE_REVISION_VERSION))
+    #error "AUTOSAR Version Numbers of OsIf_Timer.c and OsIf_Timer_Custom.h are different"
+#endif
+#if ((OSIF_TIMER_SW_MAJOR_VERSION_C != OSIF_TIMER_CUSTOM_SW_MAJOR_VERSION) || \
+     (OSIF_TIMER_SW_MINOR_VERSION_C != OSIF_TIMER_CUSTOM_SW_MINOR_VERSION) || \
+     (OSIF_TIMER_SW_PATCH_VERSION_C != OSIF_TIMER_CUSTOM_SW_PATCH_VERSION) \
+    )
+    #error "Software Version Numbers of OsIf_Timer.c and OsIf_Timer_Custom.h are different"
+#endif
+#endif /* (OSIF_USE_CUSTOM_TIMER == STD_ON) */
+
+/*==================================================================================================
+*                           LOCAL TYPEDEFS (STRUCTURES, UNIONS, ENUMS)
+==================================================================================================*/
+
+/*==================================================================================================
+*                                          LOCAL MACROS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                         LOCAL CONSTANTS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                         LOCAL VARIABLES
+==================================================================================================*/
+
+/*==================================================================================================
+*                                        GLOBAL CONSTANTS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                        GLOBAL VARIABLES
+==================================================================================================*/
+
+/*==================================================================================================
+*                                    LOCAL FUNCTION PROTOTYPES
+==================================================================================================*/
+#define BASE_START_SEC_CODE
+#include "Base_MemMap.h"
+
+static inline uint32 OsIf_Timer_Dummy_GetCounter(void);
+static inline uint32 OsIf_Timer_Dummy_GetElapsed(const uint32 * const CurrentRef);
+static inline void OsIf_Timer_Dummy_SetTimerFrequency(uint32 Freq);
+static inline uint32 OsIf_Timer_Dummy_MicrosToTicks(uint32 Micros);
+
+#define BASE_STOP_SEC_CODE
+#include "Base_MemMap.h"
+/*==================================================================================================
+*                                         LOCAL FUNCTIONS
+==================================================================================================*/
+#define BASE_START_SEC_CODE
+#include "Base_MemMap.h"
+
+static inline uint32 OsIf_Timer_Dummy_GetCounter(void)
+{
+    return 0u;
+}
+
+static inline uint32 OsIf_Timer_Dummy_GetElapsed(const uint32 * const CurrentRef)
+{
+    (void)CurrentRef;
+    return 1u;
+}
+
+static inline void OsIf_Timer_Dummy_SetTimerFrequency(uint32 Freq)
+{
+    (void)Freq;
+}
+
+static inline uint32 OsIf_Timer_Dummy_MicrosToTicks(uint32 Micros)
+{
+    return Micros;
+}
+
+#define BASE_STOP_SEC_CODE
+#include "Base_MemMap.h"
+/*==================================================================================================
+*                                        GLOBAL FUNCTIONS
+==================================================================================================*/
+#define BASE_START_SEC_CODE
+#include "Base_MemMap.h"
+
+/* @implements OsIf_Init_Activity */
+void OsIf_Init(const void* Config)
+{
+
+#if (STD_ON == OSIF_DEV_ERROR_DETECT)
+    if (Config != NULL_PTR)
+    {
+        #if defined(USING_OS_AUTOSAROS)
+        (void)Det_ReportError(OSIF_MODULE_ID, OSIF_DRIVER_INSTANCE, OSIF_SID_INIT, OSIF_E_INIT_FAILED);
+        #else
+        OSIF_DEV_ASSERT(FALSE);
+        #endif
+    }
+#else
+    (void)Config;
+#endif
+
+#if (OSIF_USE_SYSTEM_TIMER == STD_ON)
+    OsIf_Timer_System_Init();
+#endif
+#if (OSIF_USE_CUSTOM_TIMER == STD_ON)
+    OsIf_Timer_Custom_Init();
+#endif
+}
+
+/* @implements OsIf_GetCounter_Activity */
+uint32 OsIf_GetCounter(OsIf_CounterType SelectedCounter)
+{
+    uint32 Value = 0u;
+    switch (SelectedCounter){
+        case OSIF_COUNTER_DUMMY:
+            Value = OsIf_Timer_Dummy_GetCounter();
+            break;
+#if (OSIF_USE_SYSTEM_TIMER == STD_ON)
+        case OSIF_COUNTER_SYSTEM:
+            Value = OsIf_Timer_System_GetCounter();
+            break;
+#endif
+#if (OSIF_USE_CUSTOM_TIMER == STD_ON)
+        case OSIF_COUNTER_CUSTOM:
+            Value = OsIf_Timer_Custom_GetCounter();
+            break;
+#endif
+        default: /* impossible */ break;
+    }
+    return Value;
+}
+
+
+/* @implements OsIf_GetElapsed_Activity */
+uint32 OsIf_GetElapsed(uint32 * const CurrentRef, OsIf_CounterType SelectedCounter)
+{
+    uint32 Value = 0u;
+    switch (SelectedCounter){
+        case OSIF_COUNTER_DUMMY:
+            Value = OsIf_Timer_Dummy_GetElapsed(CurrentRef);
+            break;
+#if (OSIF_USE_SYSTEM_TIMER == STD_ON)
+        case OSIF_COUNTER_SYSTEM:
+            Value = OsIf_Timer_System_GetElapsed(CurrentRef);
+            break;
+#endif
+#if (OSIF_USE_CUSTOM_TIMER == STD_ON)
+        case OSIF_COUNTER_CUSTOM:
+            Value = OsIf_Timer_Custom_GetElapsed(CurrentRef);
+            break;
+#endif
+        default: /* impossible */ break;
+    }
+    return Value;
+}
+
+
+/* @implements OsIf_SetTimerFrequency_Activity */
+void OsIf_SetTimerFrequency(uint32 Freq, OsIf_CounterType SelectedCounter)
+{
+    switch (SelectedCounter){
+        case OSIF_COUNTER_DUMMY:
+            OsIf_Timer_Dummy_SetTimerFrequency(Freq);
+            break;
+#if (OSIF_USE_SYSTEM_TIMER == STD_ON)
+        case OSIF_COUNTER_SYSTEM:
+            OsIf_Timer_System_SetTimerFrequency(Freq);
+            break;
+#endif
+#if (OSIF_USE_CUSTOM_TIMER == STD_ON)
+        case OSIF_COUNTER_CUSTOM:
+            OsIf_Timer_Custom_SetTimerFrequency(Freq);
+            break;
+#endif
+        default: /* impossible */ break;
+    }
+}
+
+/* @implements OsIf_MicrosToTicks_Activity */
+uint32 OsIf_MicrosToTicks(uint32 Micros, OsIf_CounterType SelectedCounter)
+{
+    uint32 Value = 0u;
+    switch (SelectedCounter){
+        case OSIF_COUNTER_DUMMY:
+            Value = OsIf_Timer_Dummy_MicrosToTicks(Micros);
+            break;
+#if (OSIF_USE_SYSTEM_TIMER == STD_ON)
+        case OSIF_COUNTER_SYSTEM:
+            Value = OsIf_Timer_System_MicrosToTicks(Micros);
+            break;
+#endif
+#if (OSIF_USE_CUSTOM_TIMER == STD_ON)
+        case OSIF_COUNTER_CUSTOM:
+            Value = OsIf_Timer_Custom_MicrosToTicks(Micros);
+            break;
+#endif
+        default: /* impossible */ break;
+    }
+    return Value;
+}
+
+#define BASE_STOP_SEC_CODE
+#include "Base_MemMap.h"
+
+#ifdef __cplusplus
+}
+#endif
+
+/** @} */

+ 464 - 464
RTD/src/OsIf_Timer_System.c

@@ -1,464 +1,464 @@
-/*==================================================================================================
-* Project : RTD AUTOSAR 4.4
-* Platform : CORTEXM
-* Peripheral : S32K14X
-* Dependencies : none
-*
-* Autosar Version : 4.4.0
-* Autosar Revision : ASR_REL_4_4_REV_0000
-* Autosar Conf.Variant :
-* SW Version : 1.0.0
-* Build Version : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
-*
-* (c) Copyright 2020-2021 NXP Semiconductors
-* All Rights Reserved.
-*
-* NXP Confidential. This software is owned or controlled by NXP and may only be
-* used strictly in accordance with the applicable license terms. By expressly
-* accepting such terms or by downloading, installing, activating and/or otherwise
-* using the software, you are agreeing that you have read, and that you agree to
-* comply with and are bound by, such license terms. If you do not agree to be
-* bound by the applicable license terms, then you may not retain, install,
-* activate or otherwise use the software.
-==================================================================================================*/
-
-/**
-*   @file
-*
-*   @addtogroup osif_drv
-*   @{
-*/
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-/*==================================================================================================
-*                                          INCLUDE FILES
-* 1) system and project includes
-* 2) needed interfaces from external units
-* 3) internal and external interfaces from this unit
-==================================================================================================*/
-#include "OsIf.h"
-#include "OsIf_Cfg.h"
-#include "OsIf_Cfg_TypesDef.h"
-#include "OsIf_Timer_System.h"
-
-#if (OSIF_USE_SYSTEM_TIMER == STD_ON)
-
-#if defined(USING_OS_AUTOSAROS)
-#include "Os.h"
-#elif defined(USING_OS_FREERTOS)
-#include "FreeRTOSConfig.h"
-#else
-    /* Baremetal, make sure USING_OS_BAREMETAL is defined */
-#ifndef USING_OS_BAREMETAL
-#define USING_OS_BAREMETAL
-#endif /* ifndef USING_OS_BAREMETAL */
-#endif /* defined(USING_OS_AUTOSAROS) */
-
-/* Timer specific includes to define:
- - OsIf_Timer_System_Internal_Init
- - OsIf_Timer_System_Internal_GetCounter
- - OsIf_Timer_System_Internal_GetElapsed
- */
-#if defined(OSIF_USE_SYSTICK)
-#if (OSIF_USE_SYSTICK == STD_ON)
-#include "OsIf_Timer_System_Internal_Systick.h"
-#endif /* OSIF_USE_SYSTICK == STD_ON */
-#endif /* defined(OSIF_USE_SYSTICK) */
-
-/*==================================================================================================
-*                                 SOURCE FILE VERSION INFORMATION
-==================================================================================================*/
-#define OSIF_TIMER_SYSTEM_VENDOR_ID_C                    43
-#define OSIF_TIMER_SYSTEM_AR_RELEASE_MAJOR_VERSION_C     4
-#define OSIF_TIMER_SYSTEM_AR_RELEASE_MINOR_VERSION_C     4
-#define OSIF_TIMER_SYSTEM_AR_RELEASE_REVISION_VERSION_C  0
-#define OSIF_TIMER_SYSTEM_SW_MAJOR_VERSION_C             1
-#define OSIF_TIMER_SYSTEM_SW_MINOR_VERSION_C             0
-#define OSIF_TIMER_SYSTEM_SW_PATCH_VERSION_C             0
-
-/*==================================================================================================
-*                                       FILE VERSION CHECKS
-==================================================================================================*/
-/* Checks against OsIf.h */
-#if (OSIF_TIMER_SYSTEM_VENDOR_ID_C != OSIF_VENDOR_ID)
-    #error "OsIf_Timer_System.c and OsIf.h have different vendor ids"
-#endif
-#if ((OSIF_TIMER_SYSTEM_AR_RELEASE_MAJOR_VERSION_C    != OSIF_AR_RELEASE_MAJOR_VERSION) || \
-     (OSIF_TIMER_SYSTEM_AR_RELEASE_MINOR_VERSION_C    != OSIF_AR_RELEASE_MINOR_VERSION) || \
-     (OSIF_TIMER_SYSTEM_AR_RELEASE_REVISION_VERSION_C != OSIF_AR_RELEASE_REVISION_VERSION))
-    #error "AUTOSAR Version Numbers of OsIf_Timer_System.c and OsIf.h are different"
-#endif
-#if ((OSIF_TIMER_SYSTEM_SW_MAJOR_VERSION_C != OSIF_SW_MAJOR_VERSION) || \
-     (OSIF_TIMER_SYSTEM_SW_MINOR_VERSION_C != OSIF_SW_MINOR_VERSION) || \
-     (OSIF_TIMER_SYSTEM_SW_PATCH_VERSION_C != OSIF_SW_PATCH_VERSION) \
-    )
-    #error "Software Version Numbers of OsIf_Timer_System.c and OsIf.h are different"
-#endif
-
-/* Checks against OsIf_Cfg.h */
-#if (OSIF_TIMER_SYSTEM_VENDOR_ID_C != OSIF_CFG_VENDOR_ID)
-    #error "OsIf_Timer_System.c and OsIf_Cfg.h have different vendor ids"
-#endif
-#if ((OSIF_TIMER_SYSTEM_AR_RELEASE_MAJOR_VERSION_C    != OSIF_CFG_AR_RELEASE_MAJOR_VERSION) || \
-     (OSIF_TIMER_SYSTEM_AR_RELEASE_MINOR_VERSION_C    != OSIF_CFG_AR_RELEASE_MINOR_VERSION) || \
-     (OSIF_TIMER_SYSTEM_AR_RELEASE_REVISION_VERSION_C != OSIF_CFG_AR_RELEASE_REVISION_VERSION))
-    #error "AUTOSAR Version Numbers of OsIf_Timer_System.c and OsIf_Cfg.h are different"
-#endif
-#if ((OSIF_TIMER_SYSTEM_SW_MAJOR_VERSION_C != OSIF_CFG_SW_MAJOR_VERSION) || \
-     (OSIF_TIMER_SYSTEM_SW_MINOR_VERSION_C != OSIF_CFG_SW_MINOR_VERSION) || \
-     (OSIF_TIMER_SYSTEM_SW_PATCH_VERSION_C != OSIF_CFG_SW_PATCH_VERSION) \
-    )
-    #error "Software Version Numbers of OsIf_Timer_System.c and OsIf_Cfg.h are different"
-#endif
-
-/* Checks against OsIf_Cfg_TypesDef.h */
-#if (OSIF_TIMER_SYSTEM_VENDOR_ID_C != OSIF_CFG_TYPESDEF_VENDOR_ID)
-    #error "OsIf_Timer_System.c and OsIf_Cfg_TypesDef.h have different vendor ids"
-#endif
-#if ((OSIF_TIMER_SYSTEM_AR_RELEASE_MAJOR_VERSION_C    != OSIF_CFG_TYPESDEF_AR_RELEASE_MAJOR_VERSION) || \
-     (OSIF_TIMER_SYSTEM_AR_RELEASE_MINOR_VERSION_C    != OSIF_CFG_TYPESDEF_AR_RELEASE_MINOR_VERSION) || \
-     (OSIF_TIMER_SYSTEM_AR_RELEASE_REVISION_VERSION_C != OSIF_CFG_TYPESDEF_AR_RELEASE_REVISION_VERSION))
-    #error "AUTOSAR Version Numbers of OsIf_Timer_System.c and OsIf_Cfg_TypesDef.h are different"
-#endif
-#if ((OSIF_TIMER_SYSTEM_SW_MAJOR_VERSION_C != OSIF_CFG_TYPESDEF_SW_MAJOR_VERSION) || \
-     (OSIF_TIMER_SYSTEM_SW_MINOR_VERSION_C != OSIF_CFG_TYPESDEF_SW_MINOR_VERSION) || \
-     (OSIF_TIMER_SYSTEM_SW_PATCH_VERSION_C != OSIF_CFG_TYPESDEF_SW_PATCH_VERSION) \
-    )
-    #error "Software Version Numbers of OsIf_Timer_System.c and OsIf_Cfg_TypesDef.h are different"
-#endif
-
-/* Checks against OsIf_Timer_System.h */
-#if (OSIF_TIMER_SYSTEM_VENDOR_ID_C != OSIF_TIMER_SYSTEM_VENDOR_ID)
-    #error "OsIf_Timer_System.c and OsIf_Timer_System.h have different vendor ids"
-#endif
-#if ((OSIF_TIMER_SYSTEM_AR_RELEASE_MAJOR_VERSION_C    != OSIF_TIMER_SYSTEM_AR_RELEASE_MAJOR_VERSION) || \
-     (OSIF_TIMER_SYSTEM_AR_RELEASE_MINOR_VERSION_C    != OSIF_TIMER_SYSTEM_AR_RELEASE_MINOR_VERSION) || \
-     (OSIF_TIMER_SYSTEM_AR_RELEASE_REVISION_VERSION_C != OSIF_TIMER_SYSTEM_AR_RELEASE_REVISION_VERSION))
-    #error "AUTOSAR Version Numbers of OsIf_Timer_System.c and OsIf_Timer_System.h are different"
-#endif
-#if ((OSIF_TIMER_SYSTEM_SW_MAJOR_VERSION_C != OSIF_TIMER_SYSTEM_SW_MAJOR_VERSION) || \
-     (OSIF_TIMER_SYSTEM_SW_MINOR_VERSION_C != OSIF_TIMER_SYSTEM_SW_MINOR_VERSION) || \
-     (OSIF_TIMER_SYSTEM_SW_PATCH_VERSION_C != OSIF_TIMER_SYSTEM_SW_PATCH_VERSION) \
-    )
-    #error "Software Version Numbers of OsIf_Timer_System.c and OsIf_Timer_System.h are different"
-#endif
-
-#if OSIF_USE_SYSTICK == STD_ON
-/* Checks against OsIf_Timer_System_Internal_Systick.h */
-#if (OSIF_TIMER_SYSTEM_VENDOR_ID_C != OSIF_TIMER_SYSTEM_INTERNAL_SYSTICK_VENDOR_ID)
-    #error "OsIf_Timer_System.c and OsIf_Timer_System_Internal_Systick.h have different vendor ids"
-#endif
-#if ((OSIF_TIMER_SYSTEM_AR_RELEASE_MAJOR_VERSION_C    != OSIF_TIMER_SYSTEM_INTERNAL_SYSTICK_AR_RELEASE_MAJOR_VERSION) || \
-     (OSIF_TIMER_SYSTEM_AR_RELEASE_MINOR_VERSION_C    != OSIF_TIMER_SYSTEM_INTERNAL_SYSTICK_AR_RELEASE_MINOR_VERSION) || \
-     (OSIF_TIMER_SYSTEM_AR_RELEASE_REVISION_VERSION_C != OSIF_TIMER_SYSTEM_INTERNAL_SYSTICK_AR_RELEASE_REVISION_VERSION))
-    #error "AUTOSAR Version Numbers of OsIf_Timer_System.c and OsIf_Timer_System_Internal_Systick.h are different"
-#endif
-#if ((OSIF_TIMER_SYSTEM_SW_MAJOR_VERSION_C != OSIF_TIMER_SYSTEM_INTERNAL_SYSTICK_SW_MAJOR_VERSION) || \
-     (OSIF_TIMER_SYSTEM_SW_MINOR_VERSION_C != OSIF_TIMER_SYSTEM_INTERNAL_SYSTICK_SW_MINOR_VERSION) || \
-     (OSIF_TIMER_SYSTEM_SW_PATCH_VERSION_C != OSIF_TIMER_SYSTEM_INTERNAL_SYSTICK_SW_PATCH_VERSION) \
-    )
-    #error "Software Version Numbers of OsIf_Timer_System.c and OsIf_Timer_System_Internal_Systick.h are different"
-#endif
-#endif /* OSIF_USE_SYSTICK == STD_ON */
-
-#if defined(USING_OS_AUTOSAROS)
-/* Checks against Os.h */
-#ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
-    #if ((OSIF_TIMER_SYSTEM_AR_RELEASE_MAJOR_VERSION_C != OS_AR_RELEASE_MAJOR_VERSION) || \
-         (OSIF_TIMER_SYSTEM_AR_RELEASE_MINOR_VERSION_C != OS_AR_RELEASE_MINOR_VERSION))
-        #error "AutoSar Version Numbers of OsIf_Timer_System.c and Os.h are different"
-    #endif
-#endif
-#endif /* defined(USING_OS_AUTOSAROS) */
-
-/*==================================================================================================
-*                           LOCAL TYPEDEFS (STRUCTURES, UNIONS, ENUMS)
-==================================================================================================*/
-
-/*==================================================================================================
-*                                          LOCAL MACROS
-==================================================================================================*/
-#if (STD_ON == OSIF_ENABLE_USER_MODE_SUPPORT)
-    #define Trusted_OsIf_Timer_System_Internal_Init()                   OsIf_Trusted_Call(OsIf_Timer_System_Internal_Init)
-    #define Trusted_OsIf_Timer_System_Internal_GetCounter()             OsIf_Trusted_Call_Return(OsIf_Timer_System_Internal_GetCounter)
-    #define Trusted_OsIf_Timer_System_Internal_GetElapsed(CurrentRef)   OsIf_Trusted_Call_Return1param(OsIf_Timer_System_Internal_GetElapsed, (CurrentRef))
-#else
-    #define Trusted_OsIf_Timer_System_Internal_Init()                   OsIf_Timer_System_Internal_Init()
-    #define Trusted_OsIf_Timer_System_Internal_GetCounter()             OsIf_Timer_System_Internal_GetCounter()
-    #define Trusted_OsIf_Timer_System_Internal_GetElapsed(CurrentRef)   OsIf_Timer_System_Internal_GetElapsed(CurrentRef)
-#endif
-
-/*==================================================================================================
-*                                         LOCAL CONSTANTS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                         LOCAL VARIABLES
-==================================================================================================*/
-#define BASE_START_SEC_VAR_CLEARED_BOOLEAN
-#include "Base_MemMap.h"
-
-static boolean OsIf_abMdlInit[OSIF_MAX_COREIDX_SUPPORTED];
-
-#define BASE_STOP_SEC_VAR_CLEARED_BOOLEAN
-#include "Base_MemMap.h"
-
-#define BASE_START_SEC_VAR_CLEARED_UNSPECIFIED
-#include "Base_MemMap.h"
-
-static const OsIf_ConfigType *OsIf_apxInternalCfg[OSIF_MAX_COREIDX_SUPPORTED];
-
-#define BASE_STOP_SEC_VAR_CLEARED_UNSPECIFIED
-#include "Base_MemMap.h"
-
-#define BASE_START_SEC_VAR_CLEARED_32
-#include "Base_MemMap.h"
-
-static uint32 OsIf_au32InternalFrequencies[OSIF_MAX_COREIDX_SUPPORTED];
-
-#define BASE_STOP_SEC_VAR_CLEARED_32
-#include "Base_MemMap.h"
-/*==================================================================================================
-*                                        GLOBAL CONSTANTS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                        GLOBAL VARIABLES
-==================================================================================================*/
-#define BASE_START_SEC_CONFIG_DATA_UNSPECIFIED
-#include "Base_MemMap.h"
-
-extern const OsIf_ConfigType *const OsIf_apxPredefinedConfig[OSIF_MAX_COREIDX_SUPPORTED];
-
-#define BASE_STOP_SEC_CONFIG_DATA_UNSPECIFIED
-#include "Base_MemMap.h"
-/*==================================================================================================
-*                                    LOCAL FUNCTION PROTOTYPES
-==================================================================================================*/
-
-/*==================================================================================================
-*                                         LOCAL FUNCTIONS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                        GLOBAL FUNCTIONS
-==================================================================================================*/
-#define BASE_START_SEC_CODE
-#include "Base_MemMap.h"
-
-void OsIf_Timer_System_Init(void)
-{
-    uint32 CoreId = OsIf_GetCoreID();
-
-#if (STD_ON == OSIF_DEV_ERROR_DETECT)
-    if ((CoreId >= OSIF_MAX_COREIDX_SUPPORTED) || (NULL_PTR == OsIf_apxPredefinedConfig[CoreId]))
-    {
-        #if defined(USING_OS_AUTOSAROS)
-        (void)Det_ReportError(OSIF_MODULE_ID, OSIF_DRIVER_INSTANCE, OSIF_SID_INIT, OSIF_E_INV_CORE_IDX);
-        #else
-        OSIF_DEV_ASSERT(FALSE);
-        #endif
-    }
-#endif
-
-    OsIf_abMdlInit[CoreId] = TRUE;
-    (void)OsIf_abMdlInit[CoreId];
-    OsIf_apxInternalCfg[CoreId] = OsIf_apxPredefinedConfig[CoreId];
-#if !defined(USING_OS_FREERTOS)
-    OsIf_au32InternalFrequencies[CoreId] = OsIf_apxInternalCfg[CoreId]->counterFrequency;
-#endif
-
-#if defined(USING_OS_FREERTOS)
-    /* FreeRTOS */
-    OsIf_au32InternalFrequencies[CoreId] = configCPU_CLOCK_HZ;
-#elif defined(USING_OS_BAREMETAL)
-    /* Baremetal */
-    (void)CoreId;
-    Trusted_OsIf_Timer_System_Internal_Init();
-#endif
-}
-
-
-uint32 OsIf_Timer_System_GetCounter(void)
-{
-    uint32 Counter = 0u;
-    uint32 CoreId = OsIf_GetCoreID();
-
-#if STD_ON == OSIF_DEV_ERROR_DETECT
-    if (TRUE != OsIf_abMdlInit[CoreId])
-    {
-        #if defined(USING_OS_AUTOSAROS)
-        (void)Det_ReportError(OSIF_MODULE_ID, OSIF_DRIVER_INSTANCE, OSIF_SID_GETCOUNTER, OSIF_E_UNINIT);
-        #else
-        OSIF_DEV_ASSERT(FALSE);
-        #endif
-    }
-    else if ((CoreId >= OSIF_MAX_COREIDX_SUPPORTED) || (NULL_PTR == OsIf_apxInternalCfg[CoreId]))
-    {
-        #if defined(USING_OS_AUTOSAROS)
-        (void)Det_ReportError(OSIF_MODULE_ID, OSIF_DRIVER_INSTANCE, OSIF_SID_GETCOUNTER, OSIF_E_INV_CORE_IDX);
-        #else
-        OSIF_DEV_ASSERT(FALSE);
-        #endif
-    }
-    else
-    {
-#endif /* OSIF_DEV_ERROR_DETECT  */
-
-#if defined(USING_OS_AUTOSAROS)
-    StatusType Status;
-    TickType value;
-    Status = GetCounterValue(OsIf_apxInternalCfg[CoreId]->counterId, &value);
-    OSIF_DEV_ASSERT(Status == E_OK);
-    Counter = (uint32)value;
-#elif defined(USING_OS_FREERTOS) || defined(USING_OS_BAREMETAL)
-    /* FreeRTOS and Baremetal*/
-    (void)CoreId;
-    Counter = Trusted_OsIf_Timer_System_Internal_GetCounter();
-#endif
-
-#if STD_ON == OSIF_DEV_ERROR_DETECT
-    }
-#endif
-
-    return Counter;
-}
-
-
-uint32 OsIf_Timer_System_GetElapsed(uint32 * const CurrentRef)
-{
-    uint32 Elapsed = 0u;
-    uint32 CoreId = OsIf_GetCoreID();
-
-#if STD_ON == OSIF_DEV_ERROR_DETECT
-    if (TRUE != OsIf_abMdlInit[CoreId])
-    {
-        #if defined(USING_OS_AUTOSAROS)
-        (void)Det_ReportError(OSIF_MODULE_ID, OSIF_DRIVER_INSTANCE, OSIF_SID_GETELAPSED, OSIF_E_UNINIT);
-        #else
-        OSIF_DEV_ASSERT(FALSE);
-        #endif
-    }
-    else if ((CoreId >= OSIF_MAX_COREIDX_SUPPORTED) || (NULL_PTR == OsIf_apxInternalCfg[CoreId]))
-    {
-        #if defined(USING_OS_AUTOSAROS)
-        (void)Det_ReportError(OSIF_MODULE_ID, OSIF_DRIVER_INSTANCE, OSIF_SID_GETELAPSED, OSIF_E_INV_CORE_IDX);
-        #else
-        OSIF_DEV_ASSERT(FALSE);
-        #endif
-    }
-    else
-    {
-#endif /* OSIF_DEV_ERROR_DETECT  */
-
-#if defined(USING_OS_AUTOSAROS)
-    TickType ElapsedTickType;
-    StatusType Status;
-    Status = GetElapsedValue(OsIf_apxInternalCfg[CoreId]->counterId, (TickType*)CurrentRef, &ElapsedTickType);
-    OSIF_DEV_ASSERT(Status == E_OK);
-    Elapsed = (uint32)ElapsedTickType;
-#elif defined(USING_OS_FREERTOS) || defined(USING_OS_BAREMETAL)
-    /* FreeRTOS and Baremetal*/
-    (void)CoreId;
-    Elapsed = Trusted_OsIf_Timer_System_Internal_GetElapsed(CurrentRef);
-#endif
-
-#if STD_ON == OSIF_DEV_ERROR_DETECT
-    }
-#endif
-
-    return Elapsed;
-}
-
-
-void OsIf_Timer_System_SetTimerFrequency(uint32 Freq)
-{
-    uint32 CoreId = OsIf_GetCoreID();
-#if STD_ON == OSIF_DEV_ERROR_DETECT
-
-    if (TRUE != OsIf_abMdlInit[CoreId])
-    {
-        #if defined(USING_OS_AUTOSAROS)
-        (void)Det_ReportError(OSIF_MODULE_ID, OSIF_DRIVER_INSTANCE, OSIF_SID_SETTIMERFREQ, OSIF_E_UNINIT);
-        #else
-        OSIF_DEV_ASSERT(FALSE);
-        #endif
-    }
-    else if ((CoreId >= OSIF_MAX_COREIDX_SUPPORTED) || (NULL_PTR == OsIf_apxInternalCfg[CoreId]))
-    {
-        #if defined(USING_OS_AUTOSAROS)
-        (void)Det_ReportError(OSIF_MODULE_ID, OSIF_DRIVER_INSTANCE, OSIF_SID_SETTIMERFREQ, OSIF_E_INV_CORE_IDX);
-        #else
-        OSIF_DEV_ASSERT(FALSE);
-        #endif
-    }
-    else
-    {
-#endif /* OSIF_DEV_ERROR_DETECT  */
-
-#if defined(USING_OS_AUTOSAROS)
-    (void)CoreId;
-    (void)Freq;
-#elif defined(USING_OS_FREERTOS) || defined(USING_OS_BAREMETAL)
-    /* FreeRTOS and Baremetal*/
-    OsIf_au32InternalFrequencies[CoreId] = Freq;
-#endif
-
-#if STD_ON == OSIF_DEV_ERROR_DETECT
-    }
-#endif
-}
-
-
-uint32 OsIf_Timer_System_MicrosToTicks(uint32 Micros)
-{
-    uint64 interim;
-    uint32 ticks = 0u;
-    uint32 CoreId = OsIf_GetCoreID();
-
-#if STD_ON == OSIF_DEV_ERROR_DETECT
-    if (TRUE != OsIf_abMdlInit[CoreId])
-    {
-        #if defined(USING_OS_AUTOSAROS)
-        (void)Det_ReportError(OSIF_MODULE_ID, OSIF_DRIVER_INSTANCE, OSIF_SID_US2TICKS, OSIF_E_UNINIT);
-        #else
-        OSIF_DEV_ASSERT(FALSE);
-        #endif
-    }
-    else if ((CoreId >= OSIF_MAX_COREIDX_SUPPORTED) || (NULL_PTR == OsIf_apxInternalCfg[CoreId]))
-    {
-        #if defined(USING_OS_AUTOSAROS)
-        (void)Det_ReportError(OSIF_MODULE_ID, OSIF_DRIVER_INSTANCE, OSIF_SID_US2TICKS, OSIF_E_INV_CORE_IDX);
-        #else
-        OSIF_DEV_ASSERT(FALSE);
-        #endif
-    }
-    else
-    {
-#endif /* OSIF_DEV_ERROR_DETECT  */
-
-    interim = Micros * (uint64)OsIf_au32InternalFrequencies[CoreId];
-    interim /= 1000000u;
-    OSIF_DEV_ASSERT(interim <= 0xFFFFFFFFu); /* check that computed value fits in 32 bits */
-    ticks = (uint32)(interim & 0xFFFFFFFFu);
-
-#if STD_ON == OSIF_DEV_ERROR_DETECT
-    }
-#endif
-
-    return ticks;
-}
-
-#define BASE_STOP_SEC_CODE
-#include "Base_MemMap.h"
-
-#endif /* (OSIF_USE_SYSTEM_TIMER == STD_ON) */
-
-#ifdef __cplusplus
-}
-#endif
-
-/** @} */
+/*==================================================================================================
+* Project : RTD AUTOSAR 4.4
+* Platform : CORTEXM
+* Peripheral : S32K14X
+* Dependencies : none
+*
+* Autosar Version : 4.4.0
+* Autosar Revision : ASR_REL_4_4_REV_0000
+* Autosar Conf.Variant :
+* SW Version : 1.0.0
+* Build Version : S32K1_RTD_1_0_0_D2108_ASR_REL_4_4_REV_0000_20210810
+*
+* (c) Copyright 2020-2021 NXP Semiconductors
+* All Rights Reserved.
+*
+* NXP Confidential. This software is owned or controlled by NXP and may only be
+* used strictly in accordance with the applicable license terms. By expressly
+* accepting such terms or by downloading, installing, activating and/or otherwise
+* using the software, you are agreeing that you have read, and that you agree to
+* comply with and are bound by, such license terms. If you do not agree to be
+* bound by the applicable license terms, then you may not retain, install,
+* activate or otherwise use the software.
+==================================================================================================*/
+
+/**
+*   @file
+*
+*   @addtogroup osif_drv
+*   @{
+*/
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+/*==================================================================================================
+*                                          INCLUDE FILES
+* 1) system and project includes
+* 2) needed interfaces from external units
+* 3) internal and external interfaces from this unit
+==================================================================================================*/
+#include "OsIf.h"
+#include "OsIf_Cfg.h"
+#include "OsIf_Cfg_TypesDef.h"
+#include "OsIf_Timer_System.h"
+
+#if (OSIF_USE_SYSTEM_TIMER == STD_ON)
+
+#if defined(USING_OS_AUTOSAROS)
+#include "Os.h"
+#elif defined(USING_OS_FREERTOS)
+#include "FreeRTOSConfig.h"
+#else
+    /* Baremetal, make sure USING_OS_BAREMETAL is defined */
+#ifndef USING_OS_BAREMETAL
+#define USING_OS_BAREMETAL
+#endif /* ifndef USING_OS_BAREMETAL */
+#endif /* defined(USING_OS_AUTOSAROS) */
+
+/* Timer specific includes to define:
+ - OsIf_Timer_System_Internal_Init
+ - OsIf_Timer_System_Internal_GetCounter
+ - OsIf_Timer_System_Internal_GetElapsed
+ */
+#if defined(OSIF_USE_SYSTICK)
+#if (OSIF_USE_SYSTICK == STD_ON)
+#include "OsIf_Timer_System_Internal_Systick.h"
+#endif /* OSIF_USE_SYSTICK == STD_ON */
+#endif /* defined(OSIF_USE_SYSTICK) */
+
+/*==================================================================================================
+*                                 SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+#define OSIF_TIMER_SYSTEM_VENDOR_ID_C                    43
+#define OSIF_TIMER_SYSTEM_AR_RELEASE_MAJOR_VERSION_C     4
+#define OSIF_TIMER_SYSTEM_AR_RELEASE_MINOR_VERSION_C     4
+#define OSIF_TIMER_SYSTEM_AR_RELEASE_REVISION_VERSION_C  0
+#define OSIF_TIMER_SYSTEM_SW_MAJOR_VERSION_C             1
+#define OSIF_TIMER_SYSTEM_SW_MINOR_VERSION_C             0
+#define OSIF_TIMER_SYSTEM_SW_PATCH_VERSION_C             0
+
+/*==================================================================================================
+*                                       FILE VERSION CHECKS
+==================================================================================================*/
+/* Checks against OsIf.h */
+#if (OSIF_TIMER_SYSTEM_VENDOR_ID_C != OSIF_VENDOR_ID)
+    #error "OsIf_Timer_System.c and OsIf.h have different vendor ids"
+#endif
+#if ((OSIF_TIMER_SYSTEM_AR_RELEASE_MAJOR_VERSION_C    != OSIF_AR_RELEASE_MAJOR_VERSION) || \
+     (OSIF_TIMER_SYSTEM_AR_RELEASE_MINOR_VERSION_C    != OSIF_AR_RELEASE_MINOR_VERSION) || \
+     (OSIF_TIMER_SYSTEM_AR_RELEASE_REVISION_VERSION_C != OSIF_AR_RELEASE_REVISION_VERSION))
+    #error "AUTOSAR Version Numbers of OsIf_Timer_System.c and OsIf.h are different"
+#endif
+#if ((OSIF_TIMER_SYSTEM_SW_MAJOR_VERSION_C != OSIF_SW_MAJOR_VERSION) || \
+     (OSIF_TIMER_SYSTEM_SW_MINOR_VERSION_C != OSIF_SW_MINOR_VERSION) || \
+     (OSIF_TIMER_SYSTEM_SW_PATCH_VERSION_C != OSIF_SW_PATCH_VERSION) \
+    )
+    #error "Software Version Numbers of OsIf_Timer_System.c and OsIf.h are different"
+#endif
+
+/* Checks against OsIf_Cfg.h */
+#if (OSIF_TIMER_SYSTEM_VENDOR_ID_C != OSIF_CFG_VENDOR_ID)
+    #error "OsIf_Timer_System.c and OsIf_Cfg.h have different vendor ids"
+#endif
+#if ((OSIF_TIMER_SYSTEM_AR_RELEASE_MAJOR_VERSION_C    != OSIF_CFG_AR_RELEASE_MAJOR_VERSION) || \
+     (OSIF_TIMER_SYSTEM_AR_RELEASE_MINOR_VERSION_C    != OSIF_CFG_AR_RELEASE_MINOR_VERSION) || \
+     (OSIF_TIMER_SYSTEM_AR_RELEASE_REVISION_VERSION_C != OSIF_CFG_AR_RELEASE_REVISION_VERSION))
+    #error "AUTOSAR Version Numbers of OsIf_Timer_System.c and OsIf_Cfg.h are different"
+#endif
+#if ((OSIF_TIMER_SYSTEM_SW_MAJOR_VERSION_C != OSIF_CFG_SW_MAJOR_VERSION) || \
+     (OSIF_TIMER_SYSTEM_SW_MINOR_VERSION_C != OSIF_CFG_SW_MINOR_VERSION) || \
+     (OSIF_TIMER_SYSTEM_SW_PATCH_VERSION_C != OSIF_CFG_SW_PATCH_VERSION) \
+    )
+    #error "Software Version Numbers of OsIf_Timer_System.c and OsIf_Cfg.h are different"
+#endif
+
+/* Checks against OsIf_Cfg_TypesDef.h */
+#if (OSIF_TIMER_SYSTEM_VENDOR_ID_C != OSIF_CFG_TYPESDEF_VENDOR_ID)
+    #error "OsIf_Timer_System.c and OsIf_Cfg_TypesDef.h have different vendor ids"
+#endif
+#if ((OSIF_TIMER_SYSTEM_AR_RELEASE_MAJOR_VERSION_C    != OSIF_CFG_TYPESDEF_AR_RELEASE_MAJOR_VERSION) || \
+     (OSIF_TIMER_SYSTEM_AR_RELEASE_MINOR_VERSION_C    != OSIF_CFG_TYPESDEF_AR_RELEASE_MINOR_VERSION) || \
+     (OSIF_TIMER_SYSTEM_AR_RELEASE_REVISION_VERSION_C != OSIF_CFG_TYPESDEF_AR_RELEASE_REVISION_VERSION))
+    #error "AUTOSAR Version Numbers of OsIf_Timer_System.c and OsIf_Cfg_TypesDef.h are different"
+#endif
+#if ((OSIF_TIMER_SYSTEM_SW_MAJOR_VERSION_C != OSIF_CFG_TYPESDEF_SW_MAJOR_VERSION) || \
+     (OSIF_TIMER_SYSTEM_SW_MINOR_VERSION_C != OSIF_CFG_TYPESDEF_SW_MINOR_VERSION) || \
+     (OSIF_TIMER_SYSTEM_SW_PATCH_VERSION_C != OSIF_CFG_TYPESDEF_SW_PATCH_VERSION) \
+    )
+    #error "Software Version Numbers of OsIf_Timer_System.c and OsIf_Cfg_TypesDef.h are different"
+#endif
+
+/* Checks against OsIf_Timer_System.h */
+#if (OSIF_TIMER_SYSTEM_VENDOR_ID_C != OSIF_TIMER_SYSTEM_VENDOR_ID)
+    #error "OsIf_Timer_System.c and OsIf_Timer_System.h have different vendor ids"
+#endif
+#if ((OSIF_TIMER_SYSTEM_AR_RELEASE_MAJOR_VERSION_C    != OSIF_TIMER_SYSTEM_AR_RELEASE_MAJOR_VERSION) || \
+     (OSIF_TIMER_SYSTEM_AR_RELEASE_MINOR_VERSION_C    != OSIF_TIMER_SYSTEM_AR_RELEASE_MINOR_VERSION) || \
+     (OSIF_TIMER_SYSTEM_AR_RELEASE_REVISION_VERSION_C != OSIF_TIMER_SYSTEM_AR_RELEASE_REVISION_VERSION))
+    #error "AUTOSAR Version Numbers of OsIf_Timer_System.c and OsIf_Timer_System.h are different"
+#endif
+#if ((OSIF_TIMER_SYSTEM_SW_MAJOR_VERSION_C != OSIF_TIMER_SYSTEM_SW_MAJOR_VERSION) || \
+     (OSIF_TIMER_SYSTEM_SW_MINOR_VERSION_C != OSIF_TIMER_SYSTEM_SW_MINOR_VERSION) || \
+     (OSIF_TIMER_SYSTEM_SW_PATCH_VERSION_C != OSIF_TIMER_SYSTEM_SW_PATCH_VERSION) \
+    )
+    #error "Software Version Numbers of OsIf_Timer_System.c and OsIf_Timer_System.h are different"
+#endif
+
+#if OSIF_USE_SYSTICK == STD_ON
+/* Checks against OsIf_Timer_System_Internal_Systick.h */
+#if (OSIF_TIMER_SYSTEM_VENDOR_ID_C != OSIF_TIMER_SYSTEM_INTERNAL_SYSTICK_VENDOR_ID)
+    #error "OsIf_Timer_System.c and OsIf_Timer_System_Internal_Systick.h have different vendor ids"
+#endif
+#if ((OSIF_TIMER_SYSTEM_AR_RELEASE_MAJOR_VERSION_C    != OSIF_TIMER_SYSTEM_INTERNAL_SYSTICK_AR_RELEASE_MAJOR_VERSION) || \
+     (OSIF_TIMER_SYSTEM_AR_RELEASE_MINOR_VERSION_C    != OSIF_TIMER_SYSTEM_INTERNAL_SYSTICK_AR_RELEASE_MINOR_VERSION) || \
+     (OSIF_TIMER_SYSTEM_AR_RELEASE_REVISION_VERSION_C != OSIF_TIMER_SYSTEM_INTERNAL_SYSTICK_AR_RELEASE_REVISION_VERSION))
+    #error "AUTOSAR Version Numbers of OsIf_Timer_System.c and OsIf_Timer_System_Internal_Systick.h are different"
+#endif
+#if ((OSIF_TIMER_SYSTEM_SW_MAJOR_VERSION_C != OSIF_TIMER_SYSTEM_INTERNAL_SYSTICK_SW_MAJOR_VERSION) || \
+     (OSIF_TIMER_SYSTEM_SW_MINOR_VERSION_C != OSIF_TIMER_SYSTEM_INTERNAL_SYSTICK_SW_MINOR_VERSION) || \
+     (OSIF_TIMER_SYSTEM_SW_PATCH_VERSION_C != OSIF_TIMER_SYSTEM_INTERNAL_SYSTICK_SW_PATCH_VERSION) \
+    )
+    #error "Software Version Numbers of OsIf_Timer_System.c and OsIf_Timer_System_Internal_Systick.h are different"
+#endif
+#endif /* OSIF_USE_SYSTICK == STD_ON */
+
+#if defined(USING_OS_AUTOSAROS)
+/* Checks against Os.h */
+#ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
+    #if ((OSIF_TIMER_SYSTEM_AR_RELEASE_MAJOR_VERSION_C != OS_AR_RELEASE_MAJOR_VERSION) || \
+         (OSIF_TIMER_SYSTEM_AR_RELEASE_MINOR_VERSION_C != OS_AR_RELEASE_MINOR_VERSION))
+        #error "AutoSar Version Numbers of OsIf_Timer_System.c and Os.h are different"
+    #endif
+#endif
+#endif /* defined(USING_OS_AUTOSAROS) */
+
+/*==================================================================================================
+*                           LOCAL TYPEDEFS (STRUCTURES, UNIONS, ENUMS)
+==================================================================================================*/
+
+/*==================================================================================================
+*                                          LOCAL MACROS
+==================================================================================================*/
+#if (STD_ON == OSIF_ENABLE_USER_MODE_SUPPORT)
+    #define Trusted_OsIf_Timer_System_Internal_Init()                   OsIf_Trusted_Call(OsIf_Timer_System_Internal_Init)
+    #define Trusted_OsIf_Timer_System_Internal_GetCounter()             OsIf_Trusted_Call_Return(OsIf_Timer_System_Internal_GetCounter)
+    #define Trusted_OsIf_Timer_System_Internal_GetElapsed(CurrentRef)   OsIf_Trusted_Call_Return1param(OsIf_Timer_System_Internal_GetElapsed, (CurrentRef))
+#else
+    #define Trusted_OsIf_Timer_System_Internal_Init()                   OsIf_Timer_System_Internal_Init()
+    #define Trusted_OsIf_Timer_System_Internal_GetCounter()             OsIf_Timer_System_Internal_GetCounter()
+    #define Trusted_OsIf_Timer_System_Internal_GetElapsed(CurrentRef)   OsIf_Timer_System_Internal_GetElapsed(CurrentRef)
+#endif
+
+/*==================================================================================================
+*                                         LOCAL CONSTANTS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                         LOCAL VARIABLES
+==================================================================================================*/
+#define BASE_START_SEC_VAR_CLEARED_BOOLEAN
+#include "Base_MemMap.h"
+
+static boolean OsIf_abMdlInit[OSIF_MAX_COREIDX_SUPPORTED];
+
+#define BASE_STOP_SEC_VAR_CLEARED_BOOLEAN
+#include "Base_MemMap.h"
+
+#define BASE_START_SEC_VAR_CLEARED_UNSPECIFIED
+#include "Base_MemMap.h"
+
+static const OsIf_ConfigType *OsIf_apxInternalCfg[OSIF_MAX_COREIDX_SUPPORTED];
+
+#define BASE_STOP_SEC_VAR_CLEARED_UNSPECIFIED
+#include "Base_MemMap.h"
+
+#define BASE_START_SEC_VAR_CLEARED_32
+#include "Base_MemMap.h"
+
+static uint32 OsIf_au32InternalFrequencies[OSIF_MAX_COREIDX_SUPPORTED];
+
+#define BASE_STOP_SEC_VAR_CLEARED_32
+#include "Base_MemMap.h"
+/*==================================================================================================
+*                                        GLOBAL CONSTANTS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                        GLOBAL VARIABLES
+==================================================================================================*/
+#define BASE_START_SEC_CONFIG_DATA_UNSPECIFIED
+#include "Base_MemMap.h"
+
+extern const OsIf_ConfigType *const OsIf_apxPredefinedConfig[OSIF_MAX_COREIDX_SUPPORTED];
+
+#define BASE_STOP_SEC_CONFIG_DATA_UNSPECIFIED
+#include "Base_MemMap.h"
+/*==================================================================================================
+*                                    LOCAL FUNCTION PROTOTYPES
+==================================================================================================*/
+
+/*==================================================================================================
+*                                         LOCAL FUNCTIONS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                        GLOBAL FUNCTIONS
+==================================================================================================*/
+#define BASE_START_SEC_CODE
+#include "Base_MemMap.h"
+
+void OsIf_Timer_System_Init(void)
+{
+    uint32 CoreId = OsIf_GetCoreID();
+
+#if (STD_ON == OSIF_DEV_ERROR_DETECT)
+    if ((CoreId >= OSIF_MAX_COREIDX_SUPPORTED) || (NULL_PTR == OsIf_apxPredefinedConfig[CoreId]))
+    {
+        #if defined(USING_OS_AUTOSAROS)
+        (void)Det_ReportError(OSIF_MODULE_ID, OSIF_DRIVER_INSTANCE, OSIF_SID_INIT, OSIF_E_INV_CORE_IDX);
+        #else
+        OSIF_DEV_ASSERT(FALSE);
+        #endif
+    }
+#endif
+
+    OsIf_abMdlInit[CoreId] = TRUE;
+    (void)OsIf_abMdlInit[CoreId];
+    OsIf_apxInternalCfg[CoreId] = OsIf_apxPredefinedConfig[CoreId];
+#if !defined(USING_OS_FREERTOS)
+    OsIf_au32InternalFrequencies[CoreId] = OsIf_apxInternalCfg[CoreId]->counterFrequency;
+#endif
+
+#if defined(USING_OS_FREERTOS)
+    /* FreeRTOS */
+    OsIf_au32InternalFrequencies[CoreId] = configCPU_CLOCK_HZ;
+#elif defined(USING_OS_BAREMETAL)
+    /* Baremetal */
+    (void)CoreId;
+    Trusted_OsIf_Timer_System_Internal_Init();
+#endif
+}
+
+
+uint32 OsIf_Timer_System_GetCounter(void)
+{
+    uint32 Counter = 0u;
+    uint32 CoreId = OsIf_GetCoreID();
+
+#if STD_ON == OSIF_DEV_ERROR_DETECT
+    if (TRUE != OsIf_abMdlInit[CoreId])
+    {
+        #if defined(USING_OS_AUTOSAROS)
+        (void)Det_ReportError(OSIF_MODULE_ID, OSIF_DRIVER_INSTANCE, OSIF_SID_GETCOUNTER, OSIF_E_UNINIT);
+        #else
+        OSIF_DEV_ASSERT(FALSE);
+        #endif
+    }
+    else if ((CoreId >= OSIF_MAX_COREIDX_SUPPORTED) || (NULL_PTR == OsIf_apxInternalCfg[CoreId]))
+    {
+        #if defined(USING_OS_AUTOSAROS)
+        (void)Det_ReportError(OSIF_MODULE_ID, OSIF_DRIVER_INSTANCE, OSIF_SID_GETCOUNTER, OSIF_E_INV_CORE_IDX);
+        #else
+        OSIF_DEV_ASSERT(FALSE);
+        #endif
+    }
+    else
+    {
+#endif /* OSIF_DEV_ERROR_DETECT  */
+
+#if defined(USING_OS_AUTOSAROS)
+    StatusType Status;
+    TickType value;
+    Status = GetCounterValue(OsIf_apxInternalCfg[CoreId]->counterId, &value);
+    OSIF_DEV_ASSERT(Status == E_OK);
+    Counter = (uint32)value;
+#elif defined(USING_OS_FREERTOS) || defined(USING_OS_BAREMETAL)
+    /* FreeRTOS and Baremetal*/
+    (void)CoreId;
+    Counter = Trusted_OsIf_Timer_System_Internal_GetCounter();
+#endif
+
+#if STD_ON == OSIF_DEV_ERROR_DETECT
+    }
+#endif
+
+    return Counter;
+}
+
+
+uint32 OsIf_Timer_System_GetElapsed(uint32 * const CurrentRef)
+{
+    uint32 Elapsed = 0u;
+    uint32 CoreId = OsIf_GetCoreID();
+
+#if STD_ON == OSIF_DEV_ERROR_DETECT
+    if (TRUE != OsIf_abMdlInit[CoreId])
+    {
+        #if defined(USING_OS_AUTOSAROS)
+        (void)Det_ReportError(OSIF_MODULE_ID, OSIF_DRIVER_INSTANCE, OSIF_SID_GETELAPSED, OSIF_E_UNINIT);
+        #else
+        OSIF_DEV_ASSERT(FALSE);
+        #endif
+    }
+    else if ((CoreId >= OSIF_MAX_COREIDX_SUPPORTED) || (NULL_PTR == OsIf_apxInternalCfg[CoreId]))
+    {
+        #if defined(USING_OS_AUTOSAROS)
+        (void)Det_ReportError(OSIF_MODULE_ID, OSIF_DRIVER_INSTANCE, OSIF_SID_GETELAPSED, OSIF_E_INV_CORE_IDX);
+        #else
+        OSIF_DEV_ASSERT(FALSE);
+        #endif
+    }
+    else
+    {
+#endif /* OSIF_DEV_ERROR_DETECT  */
+
+#if defined(USING_OS_AUTOSAROS)
+    TickType ElapsedTickType;
+    StatusType Status;
+    Status = GetElapsedValue(OsIf_apxInternalCfg[CoreId]->counterId, (TickType*)CurrentRef, &ElapsedTickType);
+    OSIF_DEV_ASSERT(Status == E_OK);
+    Elapsed = (uint32)ElapsedTickType;
+#elif defined(USING_OS_FREERTOS) || defined(USING_OS_BAREMETAL)
+    /* FreeRTOS and Baremetal*/
+    (void)CoreId;
+    Elapsed = Trusted_OsIf_Timer_System_Internal_GetElapsed(CurrentRef);
+#endif
+
+#if STD_ON == OSIF_DEV_ERROR_DETECT
+    }
+#endif
+
+    return Elapsed;
+}
+
+
+void OsIf_Timer_System_SetTimerFrequency(uint32 Freq)
+{
+    uint32 CoreId = OsIf_GetCoreID();
+#if STD_ON == OSIF_DEV_ERROR_DETECT
+
+    if (TRUE != OsIf_abMdlInit[CoreId])
+    {
+        #if defined(USING_OS_AUTOSAROS)
+        (void)Det_ReportError(OSIF_MODULE_ID, OSIF_DRIVER_INSTANCE, OSIF_SID_SETTIMERFREQ, OSIF_E_UNINIT);
+        #else
+        OSIF_DEV_ASSERT(FALSE);
+        #endif
+    }
+    else if ((CoreId >= OSIF_MAX_COREIDX_SUPPORTED) || (NULL_PTR == OsIf_apxInternalCfg[CoreId]))
+    {
+        #if defined(USING_OS_AUTOSAROS)
+        (void)Det_ReportError(OSIF_MODULE_ID, OSIF_DRIVER_INSTANCE, OSIF_SID_SETTIMERFREQ, OSIF_E_INV_CORE_IDX);
+        #else
+        OSIF_DEV_ASSERT(FALSE);
+        #endif
+    }
+    else
+    {
+#endif /* OSIF_DEV_ERROR_DETECT  */
+
+#if defined(USING_OS_AUTOSAROS)
+    (void)CoreId;
+    (void)Freq;
+#elif defined(USING_OS_FREERTOS) || defined(USING_OS_BAREMETAL)
+    /* FreeRTOS and Baremetal*/
+    OsIf_au32InternalFrequencies[CoreId] = Freq;
+#endif
+
+#if STD_ON == OSIF_DEV_ERROR_DETECT
+    }
+#endif
+}
+
+
+uint32 OsIf_Timer_System_MicrosToTicks(uint32 Micros)
+{
+    uint64 interim;
+    uint32 ticks = 0u;
+    uint32 CoreId = OsIf_GetCoreID();
+
+#if STD_ON == OSIF_DEV_ERROR_DETECT
+    if (TRUE != OsIf_abMdlInit[CoreId])
+    {
+        #if defined(USING_OS_AUTOSAROS)
+        (void)Det_ReportError(OSIF_MODULE_ID, OSIF_DRIVER_INSTANCE, OSIF_SID_US2TICKS, OSIF_E_UNINIT);
+        #else
+        OSIF_DEV_ASSERT(FALSE);
+        #endif
+    }
+    else if ((CoreId >= OSIF_MAX_COREIDX_SUPPORTED) || (NULL_PTR == OsIf_apxInternalCfg[CoreId]))
+    {
+        #if defined(USING_OS_AUTOSAROS)
+        (void)Det_ReportError(OSIF_MODULE_ID, OSIF_DRIVER_INSTANCE, OSIF_SID_US2TICKS, OSIF_E_INV_CORE_IDX);
+        #else
+        OSIF_DEV_ASSERT(FALSE);
+        #endif
+    }
+    else
+    {
+#endif /* OSIF_DEV_ERROR_DETECT  */
+
+    interim = Micros * (uint64)OsIf_au32InternalFrequencies[CoreId];
+    interim /= 1000000u;
+    OSIF_DEV_ASSERT(interim <= 0xFFFFFFFFu); /* check that computed value fits in 32 bits */
+    ticks = (uint32)(interim & 0xFFFFFFFFu);
+
+#if STD_ON == OSIF_DEV_ERROR_DETECT
+    }
+#endif
+
+    return ticks;
+}
+
+#define BASE_STOP_SEC_CODE
+#include "Base_MemMap.h"
+
+#endif /* (OSIF_USE_SYSTEM_TIMER == STD_ON) */
+
+#ifdef __cplusplus
+}
+#endif
+
+/** @} */

+ 832 - 0
RTD/src/Pdb_Adc_Ip.c

@@ -0,0 +1,832 @@
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : ADC
+*   Dependencies         : none
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_D2108_ASR_REL_4_4_REV_0000_20210810
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+
+/**
+*   @file
+*
+*   @addtogroup pdb_adc_ip Pdb Adc IPL
+*   @{
+*/
+
+#include "Pdb_Adc_Ip.h"
+#include "Pdb_Adc_Ip_HwAccess.h"
+#include "SchM_Adc.h"
+#include "OsIf.h"
+
+#if (PDB_ADC_IP_DEV_ERROR_DETECT == STD_ON)
+#include "Devassert.h"
+#endif /* (PDB_ADC_IP_DEV_ERROR_DETECT == STD_ON) */
+
+#if (STD_ON == PDB_ADC_IP_ENABLE_USER_MODE_SUPPORT)
+    /* USER_MODE_REG_PROT_ENABLED is defined for Base sanity check in RegLockMacros.h */
+    #define USER_MODE_REG_PROT_ENABLED      (PDB_ADC_IP_ENABLE_USER_MODE_SUPPORT)
+    #include "RegLockMacros.h"
+#endif /* (STD_ON == PDB_ADC_IP_ENABLE_USER_MODE_SUPPORT) */
+
+/*******************************************************************************
+ *   Source file version information
+ ******************************************************************************/
+#define PDB_ADC_IP_VENDOR_ID_C                      43
+#define PDB_ADC_IP_AR_RELEASE_MAJOR_VERSION_C       4
+#define PDB_ADC_IP_AR_RELEASE_MINOR_VERSION_C       4
+#define PDB_ADC_IP_AR_RELEASE_REVISION_VERSION_C    0
+#define PDB_ADC_IP_SW_MAJOR_VERSION_C               1
+#define PDB_ADC_IP_SW_MINOR_VERSION_C               0
+#define PDB_ADC_IP_SW_PATCH_VERSION_C               0
+
+/*******************************************************************************
+ *   File version checks
+ ******************************************************************************/
+/* Check if Pdb_Adc_Ip.c file and Pdb_Adc_Ip.h file are of the same vendor */
+#if (PDB_ADC_IP_VENDOR_ID_C != PDB_ADC_IP_VENDOR_ID_H)
+    #error "Pdb_Adc_Ip.c and Pdb_Adc_Ip.h have different vendor ids"
+#endif
+
+/* Check if Pdb_Adc_Ip.c file and Pdb_Adc_Ip.h file are of the same Autosar version */
+#if ((PDB_ADC_IP_AR_RELEASE_MAJOR_VERSION_C != PDB_ADC_IP_AR_RELEASE_MAJOR_VERSION_H) || \
+     (PDB_ADC_IP_AR_RELEASE_MINOR_VERSION_C != PDB_ADC_IP_AR_RELEASE_MINOR_VERSION_H) || \
+     (PDB_ADC_IP_AR_RELEASE_REVISION_VERSION_C != PDB_ADC_IP_AR_RELEASE_REVISION_VERSION_H) \
+    )
+    #error "AutoSar Version Numbers of Pdb_Adc_Ip.c and Pdb_Adc_Ip.h are different"
+#endif
+
+/* Check if Pdb_Adc_Ip.c file and Pdb_Adc_Ip.h file are of the same Software version */
+#if ((PDB_ADC_IP_SW_MAJOR_VERSION_C != PDB_ADC_IP_SW_MAJOR_VERSION_H) || \
+     (PDB_ADC_IP_SW_MINOR_VERSION_C != PDB_ADC_IP_SW_MINOR_VERSION_H) || \
+     (PDB_ADC_IP_SW_PATCH_VERSION_C != PDB_ADC_IP_SW_PATCH_VERSION_H) \
+    )
+  #error "Software Version Numbers of Pdb_Adc_Ip.c and Pdb_Adc_Ip.h are different"
+#endif
+
+#if (PDB_ADC_IP_VENDOR_ID_C != PDB_ADC_IP_VENDOR_ID_HWACCESS_H)
+    #error "Pdb_Adc_Ip.c and Pdb_Adc_Ip_HwAccess.h have different vendor ids"
+#endif
+
+/* Check if Pdb_Adc_Ip.c file and Pdb_Adc_Ip_HwAccess.h file are of the same Autosar version */
+#if ((PDB_ADC_IP_AR_RELEASE_MAJOR_VERSION_C != PDB_ADC_IP_AR_RELEASE_MAJOR_VERSION_HWACCESS_H) || \
+     (PDB_ADC_IP_AR_RELEASE_MINOR_VERSION_C != PDB_ADC_IP_AR_RELEASE_MINOR_VERSION_HWACCESS_H) || \
+     (PDB_ADC_IP_AR_RELEASE_REVISION_VERSION_C != PDB_ADC_IP_AR_RELEASE_REVISION_VERSION_HWACCESS_H) \
+    )
+    #error "AutoSar Version Numbers of Pdb_Adc_Ip.c and Pdb_Adc_Ip_HwAccess.h are different"
+#endif
+
+/* Check if Pdb_Adc_Ip.c file and Pdb_Adc_Ip_HwAccess.h file are of the same Software version */
+#if ((PDB_ADC_IP_SW_MAJOR_VERSION_C != PDB_ADC_IP_SW_MAJOR_VERSION_HWACCESS_H) || \
+     (PDB_ADC_IP_SW_MINOR_VERSION_C != PDB_ADC_IP_SW_MINOR_VERSION_HWACCESS_H) || \
+     (PDB_ADC_IP_SW_PATCH_VERSION_C != PDB_ADC_IP_SW_PATCH_VERSION_HWACCESS_H) \
+    )
+  #error "Software Version Numbers of Pdb_Adc_Ip.c and Pdb_Adc_Ip_HwAccess.h are different"
+#endif
+
+#ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
+/* Check if Pdb_Adc_Ip.c file and OsIf.h file are of the same Autosar version */
+#if ((PDB_ADC_IP_AR_RELEASE_MAJOR_VERSION_C != OSIF_AR_RELEASE_MAJOR_VERSION) || \
+        (PDB_ADC_IP_AR_RELEASE_MINOR_VERSION_C != OSIF_AR_RELEASE_MINOR_VERSION)    \
+    )
+    #error "AutoSar Version Numbers of Pdb_Adc_Ip.c and OsIf.h are different"
+#endif
+
+#if (STD_ON == PDB_ADC_IP_ENABLE_USER_MODE_SUPPORT)
+    /* Checks against RegLockMacros.h */
+    #if ((PDB_ADC_IP_AR_RELEASE_MAJOR_VERSION_C != REGLOCKMACROS_AR_RELEASE_MAJOR_VERSION) || \
+         (PDB_ADC_IP_AR_RELEASE_MINOR_VERSION_C != REGLOCKMACROS_AR_RELEASE_MINOR_VERSION))
+        #error "AUTOSAR Version Numbers of Pdb_Adc_Ip.c and RegLockMacros.h are different"
+    #endif
+#endif /* (STD_ON == PDB_ADC_IP_ENABLE_USER_MODE_SUPPORT) */
+
+/* Check if Pdb_Adc_Ip.c and SchM_Adc.h are of the same Autosar version */
+#if ((PDB_ADC_IP_AR_RELEASE_MAJOR_VERSION_C != SCHM_ADC_AR_RELEASE_MAJOR_VERSION) || \
+     (PDB_ADC_IP_AR_RELEASE_MINOR_VERSION_C != SCHM_ADC_AR_RELEASE_MINOR_VERSION) \
+    )
+#error "AutoSar Version Numbers of Pdb_Adc_Ip.c and SchM_Adc.h are different"
+#endif
+
+#if (PDB_ADC_IP_DEV_ERROR_DETECT == STD_ON)
+ /* Check if Pdb_Adc_Ip.c and Devassert.h are of the same Autosar version */
+#if ((PDB_ADC_IP_AR_RELEASE_MAJOR_VERSION_C != DEVASSERT_AR_RELEASE_MAJOR_VERSION) || \
+     (PDB_ADC_IP_AR_RELEASE_MINOR_VERSION_C != DEVASSERT_AR_RELEASE_MINOR_VERSION) \
+    )
+    #error "AutoSar Version Numbers of Pdb_Adc_Ip.c and Devassert.h are different"
+#endif
+#endif /* (PDB_ADC_IP_DEV_ERROR_DETECT == STD_ON) */
+#endif /* DISABLE_MCAL_INTERMODULE_ASR_CHECK */
+
+/*******************************************************************************
+ * Pre-check
+ ******************************************************************************/
+#ifndef MCAL_ENABLE_USER_MODE_SUPPORT
+    #if (STD_ON == PDB_ADC_IP_ENABLE_USER_MODE_SUPPORT)
+        #error MCAL_ENABLE_USER_MODE_SUPPORT is not enabled. For running PDB in user mode the MCAL_ENABLE_USER_MODE_SUPPORT needs to be defined
+    #endif /* (STD_ON == PDB_ADC_IP_ENABLE_USER_MODE_SUPPORT) */
+#endif /* ifndef MCAL_ENABLE_USER_MODE_SUPPORT*/
+
+/*******************************************************************************
+ * Local function prototypes
+ ******************************************************************************/
+#define ADC_START_SEC_CODE
+#include "Adc_MemMap.h"
+
+static inline void PDB_ADC_ResetChannel(PDB_Type * const Base, const uint8 ChanIdx, const Pdb_Adc_Ip_PretriggersConfigType * PdbPretriggsConfig);
+
+#if  (STD_ON == FEATURE_PDB_HAS_INSTANCE_BACKTOBACK)
+static void PDB_ADC_ConfigInstanceBackToBack_TrustedCall(const boolean InstanceBackToBackEnable);
+static void PDB_ADC_ConfigInstanceBackToBack(const boolean InstanceBackToBackEnable);
+#endif /* (STD_ON == FEATURE_PDB_HAS_INSTANCE_BACKTOBACK) */
+
+#if  (STD_ON == FEATURE_PDB_HAS_INTERCHANNEL_BACKTOBACK)
+static void PDB_ADC_ConfigInterChannelBackToBack_TrustedCall(const uint32 Instance, const boolean InterChannelBackToBackEnable);
+static void PDB_ADC_ConfigInterChannelBackToBack(const uint32 Instance, const boolean InterChannelBackToBackEnable);
+#endif /* (STD_ON == FEATURE_PDB_HAS_INTERCHANNEL_BACKTOBACK) */
+
+#define ADC_STOP_SEC_CODE
+#include "Adc_MemMap.h"
+
+#define ADC_START_SEC_CONST_UNSPECIFIED
+#include "Adc_MemMap.h"
+
+/* Table of Base addresses for PDB instances. */
+static PDB_Type * const PdbBase[PDB_INSTANCE_COUNT] = IP_PDB_BASE_PTRS;
+
+#define ADC_STOP_SEC_CONST_UNSPECIFIED
+#include "Adc_MemMap.h"
+
+#define ADC_START_SEC_VAR_CLEARED_UNSPECIFIED
+#include "Adc_MemMap.h"
+/* Global state structure */
+static Pdb_Adc_Ip_StateStructType PdbAdcState[PDB_INSTANCE_COUNT];
+
+#define ADC_STOP_SEC_VAR_CLEARED_UNSPECIFIED
+#include "Adc_MemMap.h"
+
+#define ADC_START_SEC_CODE
+#include "Adc_MemMap.h"
+
+/*FUNCTION**********************************************************************
+*
+* Function Name : Pdb_Adc_Ip_Init
+* Description   : This function initializes the PDB counter, input triggers and
+* general pretrigger settings.
+* It resets PDB registers and enables the PDB clock. Therefore, it should be
+* called before any other operation. After it is initialized, the PDB can
+* act as a triggered timer, which enables other features in PDB module.
+*
+* @implements     Pdb_Adc_Ip_Init_Activity
+* END**************************************************************************/
+void Pdb_Adc_Ip_Init(const uint32 Instance, const Pdb_Adc_Ip_ConfigType * const Config)
+{
+#if (PDB_ADC_IP_DEV_ERROR_DETECT == STD_ON)
+    DevAssert(Instance < PDB_INSTANCE_COUNT);
+    DevAssert(Config != NULL_PTR);
+#endif /* (PDB_ADC_IP_DEV_ERROR_DETECT == STD_ON) */
+
+    PDB_Type * const Base = PdbBase[Instance];
+    uint8 ChannelIndex, PretriggerIndex;
+    uint32 Reg = 0u;
+
+    Reg |= PDB_SC_LDMOD(Config->LoadValueMode);
+    Reg |= PDB_SC_PRESCALER(Config->PrescalerDiv);
+    Reg |= PDB_SC_MULT(Config->ClkPreMultFactor);
+    Reg |= PDB_SC_TRGSEL(Config->TriggerSource);
+
+    if (Config->ContinuousModeEnable == TRUE)
+    {
+        Reg |= PDB_SC_CONT_MASK;
+    }
+    if (Config->DmaEnable == TRUE)
+    {
+        Reg |= PDB_SC_DMAEN_MASK;
+    }
+    if (Config->SeqErrNotification != NULL_PTR)
+    {
+        Reg |= PDB_SC_PDBEIE_MASK;
+    }
+
+    Base->SC = Reg;
+
+#if  (STD_ON == FEATURE_PDB_HAS_INSTANCE_BACKTOBACK)
+    PDB_ADC_ConfigInstanceBackToBack(Config->InstanceBackToBackEnable);
+#endif /* (STD_ON == FEATURE_PDB_HAS_INSTANCE_BACKTOBACK) */
+#if  (STD_ON == FEATURE_PDB_HAS_INTERCHANNEL_BACKTOBACK)
+    PDB_ADC_ConfigInterChannelBackToBack(Instance, Config->InterChannelBackToBackEnable);
+#endif /* (STD_ON == FEATURE_PDB_HAS_INTERCHANNEL_BACKTOBACK) */
+
+    Pdb_Adc_Ip_SetModulus(Instance, Config->ModValue);
+
+    if ((Config->NumChans > 0u) && (Config->ChanConfigs != NULL_PTR))
+    {
+        for (ChannelIndex = 0u; ChannelIndex < Config->NumChans; ChannelIndex++)
+        {
+            const Pdb_Adc_Ip_ChanConfigType * ChanConfig = &(Config->ChanConfigs[ChannelIndex]);
+            Pdb_Adc_HwAcc_ConfigAdcPretriggers(Base, ChanConfig->ChnIdx, &(ChanConfig->PretriggersConfig));
+            for (PretriggerIndex = 0u; PretriggerIndex < PDB_DLY_COUNT; PretriggerIndex++)
+            {
+                Pdb_Adc_Ip_SetAdcPretriggerDelayValue(Instance, ChanConfig->ChnIdx, PretriggerIndex, ChanConfig->PretriggerDelays[PretriggerIndex]);
+            }
+        }
+    }
+
+    Pdb_Adc_Ip_Enable(Instance);
+
+    /* Modulus and pretrigger delay values require call to LoadRegValues */
+    Pdb_Adc_Ip_LoadRegValues(Instance);
+
+    PdbAdcState[Instance].SeqErrNotification = Config->SeqErrNotification;
+    PdbAdcState[Instance].Init = TRUE;
+}
+
+/*FUNCTION**********************************************************************
+*
+* Function Name : Pdb_Adc_Ip_DeInit
+* Description   : This function resets the PDB internal registers to default values.
+*
+* When the PDB module is not used. Calling this function would shut down the
+* PDB module and reduce the power consumption.
+*
+* Note: instance back to back configuration is common between PDB instances 0 and 1
+* (configures the same register even if configured for either PDB instance)
+* This function disables it, so affects all other instances.
+*
+* @implements     Pdb_Adc_Ip_Deinit_Activity
+* END**************************************************************************/
+void Pdb_Adc_Ip_DeInit(const uint32 Instance)
+{
+#if (PDB_ADC_IP_DEV_ERROR_DETECT == STD_ON)
+    DevAssert(Instance < PDB_INSTANCE_COUNT);
+#endif /* (PDB_ADC_IP_DEV_ERROR_DETECT == STD_ON) */
+
+    Pdb_Adc_Ip_ConfigType DefaultConfig;
+    Pdb_Adc_Ip_ChanConfigType ChanConfigs[PDB_CH_COUNT];
+    uint8 ChannelIndex, PretriggerIndex;
+
+    DefaultConfig.LoadValueMode = PDB_ADC_IP_LOAD_VAL_IMMEDIATELY;
+    DefaultConfig.PrescalerDiv = PDB_ADC_IP_CLK_PREDIV_BY_1;
+    DefaultConfig.ClkPreMultFactor = PDB_ADC_IP_CLK_PREMULT_FACT_AS_1;
+    DefaultConfig.TriggerSource = PDB_ADC_IP_TRIGGER_IN0;
+    DefaultConfig.ContinuousModeEnable = FALSE;
+    DefaultConfig.DmaEnable = FALSE;
+    DefaultConfig.ModValue = 0u;
+#if  (STD_ON == FEATURE_PDB_HAS_INSTANCE_BACKTOBACK)
+    DefaultConfig.InstanceBackToBackEnable = FALSE;
+    PDB_ADC_ConfigInstanceBackToBack(DefaultConfig.InstanceBackToBackEnable);
+#endif /* (STD_ON == FEATURE_PDB_HAS_INSTANCE_BACKTOBACK) */
+#if  (STD_ON == FEATURE_PDB_HAS_INTERCHANNEL_BACKTOBACK)
+    DefaultConfig.InterChannelBackToBackEnable = FALSE;
+    PDB_ADC_ConfigInterChannelBackToBack(Instance, DefaultConfig.InterChannelBackToBackEnable);
+#endif /* (STD_ON == FEATURE_PDB_HAS_INTERCHANNEL_BACKTOBACK) */
+
+    DefaultConfig.NumChans = PDB_CH_COUNT;
+    for (ChannelIndex = 0u; ChannelIndex < PDB_CH_COUNT; ChannelIndex++)
+    {
+        ChanConfigs[ChannelIndex].ChnIdx = ChannelIndex;
+        ChanConfigs[ChannelIndex].PretriggersConfig.EnableMask = 0u;
+        ChanConfigs[ChannelIndex].PretriggersConfig.EnableDelayMask = 0u;
+        ChanConfigs[ChannelIndex].PretriggersConfig.BackToBackEnableMask = 0u;
+        for (PretriggerIndex = 0u; PretriggerIndex < PDB_DLY_COUNT; PretriggerIndex++)
+        {
+            ChanConfigs[ChannelIndex].PretriggerDelays[PretriggerIndex] = 0u;
+        }
+    }
+    DefaultConfig.ChanConfigs = ChanConfigs;
+    DefaultConfig.SeqErrNotification = NULL_PTR;
+
+    Pdb_Adc_Ip_Init(Instance, &DefaultConfig);
+
+    Pdb_Adc_Ip_Disable(Instance);
+
+    PdbAdcState[Instance].Init = FALSE;
+}
+
+/*FUNCTION**********************************************************************
+*
+* Function Name : Pdb_Adc_Ip_Enable
+* Description   : This function enables the PDB module, counter is on.
+*
+* @implements     Pdb_Adc_Ip_Enable_Activity
+* END**************************************************************************/
+void Pdb_Adc_Ip_Enable(const uint32 Instance)
+{
+#if (PDB_ADC_IP_DEV_ERROR_DETECT == STD_ON)
+    DevAssert(Instance < PDB_INSTANCE_COUNT);
+#endif /* (PDB_ADC_IP_DEV_ERROR_DETECT == STD_ON) */
+
+    PDB_Type * const Base = PdbBase[Instance];
+
+    SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_34();
+    Base->SC |= PDB_SC_PDBEN_MASK;
+    SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_34();
+}
+
+/*FUNCTION**********************************************************************
+*
+* Function Name : Pdb_Adc_Ip_Disable
+* Description   : This function disables the PDB module, counter is off.
+*
+* @implements     Pdb_Adc_Ip_Disable_Activity
+* END**************************************************************************/
+void Pdb_Adc_Ip_Disable(const uint32 Instance)
+{
+#if (PDB_ADC_IP_DEV_ERROR_DETECT == STD_ON)
+    DevAssert(Instance < PDB_INSTANCE_COUNT);
+#endif /* (PDB_ADC_IP_DEV_ERROR_DETECT == STD_ON) */
+
+    PDB_Type * const Base = PdbBase[Instance];
+
+    SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_35();
+    Pdb_Adc_HwAcc_DisablePdb(Base);
+    SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_35();
+}
+
+/*FUNCTION**********************************************************************
+*
+* Function Name : Pdb_Adc_Ip_SetTriggerInput
+* Description   : This function sets the PDB trigger source.
+*
+* @implements     Pdb_Adc_Ip_SetTriggerInput_Activity
+* END**************************************************************************/
+void Pdb_Adc_Ip_SetTriggerInput(const uint32 Instance, const Pdb_Adc_Ip_TriggerSrcType TriggerSource)
+{
+#if (PDB_ADC_IP_DEV_ERROR_DETECT == STD_ON)
+    DevAssert(Instance < PDB_INSTANCE_COUNT);
+#endif /* (PDB_ADC_IP_DEV_ERROR_DETECT == STD_ON) */
+
+    PDB_Type * const Base = PdbBase[Instance];
+    uint32 SCReg;
+
+    SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_36();
+    SCReg = Base->SC;
+    SCReg &= ~(PDB_SC_TRGSEL_MASK);
+    SCReg |= PDB_SC_TRGSEL(TriggerSource);
+    Base->SC = SCReg;
+    SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_36();
+}
+
+/*FUNCTION**********************************************************************
+*
+* Function Name : Pdb_Adc_Ip_SetContinuousMode
+* Description   : This function sets the PDB mode to continuous or one shot.
+*
+* @implements     Pdb_Adc_Ip_SetContinuousMode_Activity
+* END**************************************************************************/
+void Pdb_Adc_Ip_SetContinuousMode(const uint32 Instance, const boolean State)
+{
+#if (PDB_ADC_IP_DEV_ERROR_DETECT == STD_ON)
+    DevAssert(Instance < PDB_INSTANCE_COUNT);
+#endif /* (PDB_ADC_IP_DEV_ERROR_DETECT == STD_ON) */
+
+    PDB_Type * const Base = PdbBase[Instance];
+
+    SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_37();
+    Pdb_Adc_HwAcc_SetContinuousMode(Base, State);
+    SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_37();
+}
+
+/*FUNCTION**********************************************************************
+*
+* Function Name : Pdb_Adc_Ip_SwTrigger
+* Description   : This function triggers the PDB with a software trigger.
+* When the PDB is set to use the software trigger as input, calling this function
+* triggers the PDB.
+*
+* @implements     Pdb_Adc_Ip_SwTrigger_Activity
+* END**************************************************************************/
+void Pdb_Adc_Ip_SwTrigger(const uint32 Instance)
+{
+#if (PDB_ADC_IP_DEV_ERROR_DETECT == STD_ON)
+    DevAssert(Instance < PDB_INSTANCE_COUNT);
+#endif /* (PDB_ADC_IP_DEV_ERROR_DETECT == STD_ON) */
+
+    PDB_Type * const Base = PdbBase[Instance];
+
+    SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_38();
+    Base->SC |= PDB_SC_SWTRIG_MASK;
+    SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_38();
+}
+
+/*FUNCTION**********************************************************************
+*
+* Function Name : Pdb_Adc_Ip_GetTimerValue
+* Description   : This function gets the current counter value.
+*
+* @implements     Pdb_Adc_Ip_GetTimerValue_Activity
+* END**************************************************************************/
+uint32 Pdb_Adc_Ip_GetTimerValue(const uint32 Instance)
+{
+#if (PDB_ADC_IP_DEV_ERROR_DETECT == STD_ON)
+    DevAssert(Instance < PDB_INSTANCE_COUNT);
+#endif /* (PDB_ADC_IP_DEV_ERROR_DETECT == STD_ON) */
+
+    const PDB_Type * const Base = PdbBase[Instance];
+
+    return ((Base->CNT & PDB_CNT_CNT_MASK) >> PDB_CNT_CNT_SHIFT);
+}
+
+/*FUNCTION**********************************************************************
+*
+* Function Name : Pdb_Adc_Ip_LoadRegValues
+* Description   : This function sets the LDOK bit.
+* Writing one to this bit updates the internal registers MOD, IDLY, CHnDLYm and
+* POyDLY with the values written to their buffers. The MOD, IDLY,
+* CHnDLYm and POyDLY take effect according to the load mode settings.
+*
+* After one is written to the LDOK bit, the values in the buffers of above mentioned
+* registers are not effective and cannot be written until the values in the
+* buffers are loaded into their internal registers. The moment when this happens
+* depends on the value of the LDMOD register. Only when this register is in it's
+* default state(0), the load operation will happen immediately. Please check the
+* reference manual for more information.
+* The LDOK can be written only when the the PDB is enabled or as alone with it. It is
+* automatically cleared either when the values in the buffers are loaded into the
+* internal registers or when the PDB is disabled.
+*
+* @implements     Pdb_Adc_Ip_LoadRegValues_Activity
+* END**************************************************************************/
+void Pdb_Adc_Ip_LoadRegValues(const uint32 Instance)
+{
+#if (PDB_ADC_IP_DEV_ERROR_DETECT == STD_ON)
+    DevAssert(Instance < PDB_INSTANCE_COUNT);
+#endif /* (PDB_ADC_IP_DEV_ERROR_DETECT == STD_ON) */
+
+    PDB_Type * const Base = PdbBase[Instance];
+
+#if (PDB_ADC_IP_DEV_ERROR_DETECT == STD_ON)
+    /* PDB must be enabled in order to load register values */
+    DevAssert((Base->SC & PDB_SC_PDBEN_MASK) != 0u);
+#endif /* (PDB_ADC_IP_DEV_ERROR_DETECT == STD_ON) */
+
+    SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_39();
+    Base->SC |= PDB_SC_LDOK_MASK;
+    SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_39();
+}
+
+/*FUNCTION**********************************************************************
+*
+* Function Name : Pdb_Adc_Ip_SetModulus
+* Description   : This function sets the PDB Modulus value.
+* When the counter reaches the setting value, it is automatically reset to zero.
+* When in continuous mode, the counter begins to increase again.
+* Note: This function writes in an internal buffer. Depending on the
+* value of the LDMOD register, it might be necessary to call
+* Pdb_Adc_Ip_LoadRegValues in order to update the value of the register.
+* The value of the register can be changed only when the PDB module is enabled.
+*
+* @implements     Pdb_Adc_Ip_SetModulus_Activity
+* END**************************************************************************/
+void Pdb_Adc_Ip_SetModulus(const uint32 Instance, const uint16 ModVal)
+{
+#if (PDB_ADC_IP_DEV_ERROR_DETECT == STD_ON)
+    DevAssert(Instance < PDB_INSTANCE_COUNT);
+#endif /* (PDB_ADC_IP_DEV_ERROR_DETECT == STD_ON) */
+
+    PDB_Type * const Base = PdbBase[Instance];
+    uint32 ModReg;
+
+    SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_48();
+    ModReg = Base->MOD;
+    ModReg &= ~(PDB_MOD_MOD_MASK);
+    ModReg |= PDB_MOD_MOD(ModVal);
+    Base->MOD = ModReg;
+    SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_48();
+}
+
+/*FUNCTION**********************************************************************
+*
+* Function Name : Pdb_Adc_Ip_ConfigAdcPretriggers
+* Description   : This function configures the back to back modes, delay enable
+* and output enable settings for all pretriggers on the selected channel.
+*
+* @implements     Pdb_Adc_Ip_ConfigAdcPretriggers_Activity
+* END**************************************************************************/
+void Pdb_Adc_Ip_ConfigAdcPretriggers(const uint32 Instance, const uint8 ChanIdx, const Pdb_Adc_Ip_PretriggersConfigType * const Config)
+{
+#if (PDB_ADC_IP_DEV_ERROR_DETECT == STD_ON)
+    DevAssert(Instance < PDB_INSTANCE_COUNT);
+    DevAssert(ChanIdx < PDB_CH_COUNT);
+    DevAssert(Config != NULL_PTR);
+#endif /* (PDB_ADC_IP_DEV_ERROR_DETECT == STD_ON) */
+    PDB_Type * const Base = PdbBase[Instance];
+
+    SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_41();
+    Pdb_Adc_HwAcc_ConfigAdcPretriggers(Base, ChanIdx, Config);
+    SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_41();
+}
+
+/*FUNCTION**********************************************************************
+*
+* Function Name : Pdb_Adc_Ip_GetAdcPretriggerFlags
+* Description   : This function gets all ADC pretrigger flags from the selected channel.
+*
+* @implements     Pdb_Adc_Ip_GetAdcPretriggerFlags_Activity
+* END**************************************************************************/
+uint32 Pdb_Adc_Ip_GetAdcPretriggerFlags(const uint32 Instance, const uint8 ChanIdx)
+{
+#if (PDB_ADC_IP_DEV_ERROR_DETECT == STD_ON)
+    DevAssert(Instance < PDB_INSTANCE_COUNT);
+    DevAssert(ChanIdx < PDB_CH_COUNT);
+#endif /* (PDB_ADC_IP_DEV_ERROR_DETECT == STD_ON) */
+
+    const PDB_Type * const Base = PdbBase[Instance];
+    uint32 Result;
+
+    Result = Base->CH[ChanIdx].S;
+    Result = (Result & PDB_S_CF_MASK) >> PDB_S_CF_SHIFT;
+
+    return Result;
+}
+
+/*FUNCTION**********************************************************************
+*
+* Function Name : Pdb_Adc_Ip_ClearAdcPretriggerFlags
+* Description   : This function clears the ADC pretrigger channel flags selected
+* by pretriggMask from channel channel.
+*
+* @implements     Pdb_Adc_Ip_ClearAdcPretriggerFlags_Activity
+* END**************************************************************************/
+void Pdb_Adc_Ip_ClearAdcPretriggerFlags(const uint32 Instance, const uint8 ChanIdx, const uint16 PretriggMask)
+{
+#if (PDB_ADC_IP_DEV_ERROR_DETECT == STD_ON)
+    DevAssert(Instance < PDB_INSTANCE_COUNT);
+    DevAssert(ChanIdx < PDB_CH_COUNT);
+#endif /* (PDB_ADC_IP_DEV_ERROR_DETECT == STD_ON) */
+
+    PDB_Type * const Base = PdbBase[Instance];
+
+    SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_46();
+    /* Write 0 to clear */
+    Pdb_Adc_HwAcc_ClearAdcPretriggerFlags(Base, ChanIdx, PretriggMask);
+    SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_46();
+}
+
+/*FUNCTION**********************************************************************
+*
+* Function Name : Pdb_Adc_Ip_SetAdcPretriggerBackToBack
+* Description   : This function sets back to back mode for the selected
+* pretrigger on the given channel.
+*
+* @implements     Pdb_Adc_Ip_SetAdcPretriggerBackToBack_Activity
+* END**************************************************************************/
+void Pdb_Adc_Ip_SetAdcPretriggerBackToBack(const uint32 Instance, const uint8 ChanIdx, const uint8 PretriggIdx, const boolean Value)
+{
+#if (PDB_ADC_IP_DEV_ERROR_DETECT == STD_ON)
+    DevAssert(Instance < PDB_INSTANCE_COUNT);
+    DevAssert(ChanIdx < PDB_CH_COUNT);
+    DevAssert(PretriggIdx < PDB_DLY_COUNT);
+#endif /* (PDB_ADC_IP_DEV_ERROR_DETECT == STD_ON) */
+
+    PDB_Type * const Base = PdbBase[Instance];
+    uint32 Mask = (uint32)1u << PretriggIdx;
+
+    Mask = PDB_C1_BB(Mask);
+    SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_42();
+    Pdb_Adc_HwAcc_SetAdcPretriggerMask(Base, ChanIdx, Mask, Value);
+    SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_42();
+}
+
+/*FUNCTION**********************************************************************
+*
+* Function Name : Pdb_Adc_Ip_SetAdcPretriggerEnable
+* Description   : This function enables or disables the selected pretrigger on
+* the given channel.
+*
+* @implements     Pdb_Adc_Ip_SetAdcPretriggerEnable_Activity
+* END**************************************************************************/
+void Pdb_Adc_Ip_SetAdcPretriggerEnable(const uint32 Instance, const uint8 ChanIdx, const uint8 PretriggIdx, const boolean Value)
+{
+#if (PDB_ADC_IP_DEV_ERROR_DETECT == STD_ON)
+    DevAssert(Instance < PDB_INSTANCE_COUNT);
+    DevAssert(ChanIdx < PDB_CH_COUNT);
+    DevAssert(PretriggIdx < PDB_DLY_COUNT);
+#endif /* (PDB_ADC_IP_DEV_ERROR_DETECT == STD_ON) */
+
+    PDB_Type * const Base = PdbBase[Instance];
+    uint32 Mask = (uint32)1u << PretriggIdx;
+
+    Mask = PDB_C1_EN(Mask);
+    SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_43();
+    Pdb_Adc_HwAcc_SetAdcPretriggerMask(Base, ChanIdx, Mask, Value);
+    SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_43();
+}
+
+/*FUNCTION**********************************************************************
+*
+* Function Name : Pdb_Adc_Ip_SetAdcPretriggerDelayEnable
+* Description   : This function sets the delay enable value for the selected
+* pretrigger on the given channel.
+*
+* @implements     Pdb_Adc_Ip_SetAdcPretriggerDelayEnable_Activity
+* END**************************************************************************/
+void Pdb_Adc_Ip_SetAdcPretriggerDelayEnable(const uint32 Instance, const uint8 ChanIdx, const uint8 PretriggIdx, const boolean Value)
+{
+#if (PDB_ADC_IP_DEV_ERROR_DETECT == STD_ON)
+    DevAssert(Instance < PDB_INSTANCE_COUNT);
+    DevAssert(ChanIdx < PDB_CH_COUNT);
+    DevAssert(PretriggIdx < PDB_DLY_COUNT);
+#endif /* (PDB_ADC_IP_DEV_ERROR_DETECT == STD_ON) */
+
+    PDB_Type * const Base = PdbBase[Instance];
+    uint32 Mask = (uint32)1u << PretriggIdx;
+
+    Mask = PDB_C1_TOS(Mask);
+    SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_44();
+    Pdb_Adc_HwAcc_SetAdcPretriggerMask(Base, ChanIdx, Mask, Value);
+    SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_44();
+}
+
+/*FUNCTION**********************************************************************
+*
+* Function Name : Pdb_Adc_Ip_SetAdcPretriggerDelayValue
+* Description   : This function sets the pretrigger delay value.
+* Note: This function writes in an internal buffer. Depending on the
+* value of the LDMOD register, it might be necessary to call
+* Pdb_Adc_Ip_LoadRegValues in order to update the value of the register.
+* The value of the register can be changed only when the PDB module is enabled.
+*
+* @implements     Pdb_Adc_Ip_SetAdcPretriggerDelayValue_Activity
+* END**************************************************************************/
+void Pdb_Adc_Ip_SetAdcPretriggerDelayValue(const uint32 Instance, const uint8 ChanIdx, const uint8 PretriggIdx, const uint16 DelayValue)
+{
+#if (PDB_ADC_IP_DEV_ERROR_DETECT == STD_ON)
+    DevAssert(Instance < PDB_INSTANCE_COUNT);
+    DevAssert(ChanIdx < PDB_CH_COUNT);
+    DevAssert(PretriggIdx < PDB_DLY_COUNT);
+#endif /* (PDB_ADC_IP_DEV_ERROR_DETECT == STD_ON) */
+
+    PDB_Type * const Base = PdbBase[Instance];
+
+    Base->CH[ChanIdx].DLY[PretriggIdx] = PDB_DLY_DLY(DelayValue);
+}
+
+/*FUNCTION**********************************************************************
+*
+* Function Name : Pdb_Adc_Ip_DisableAndClearPdb
+* Description   : This function disables PDB module and clears all channels
+* configuration and status registers.
+*
+* @implements     Pdb_Adc_Ip_DisableAndClearPdb_Activity
+* END**************************************************************************/
+void Pdb_Adc_Ip_DisableAndClearPdb(const uint32 Instance)
+{
+#if (PDB_ADC_IP_DEV_ERROR_DETECT == STD_ON)
+    DevAssert(Instance < PDB_INSTANCE_COUNT);
+#endif /* (PDB_ADC_IP_DEV_ERROR_DETECT == STD_ON) */
+
+    PDB_Type * const Base = PdbBase[Instance];
+    uint8 ChanIdx;
+    const Pdb_Adc_Ip_PretriggersConfigType PdbPretriggsConfig = { 0u, 0u, 0u };
+
+    SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_40();
+    Pdb_Adc_HwAcc_DisablePdb(Base);
+    Pdb_Adc_HwAcc_SetContinuousMode(Base, FALSE);
+    SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_40();
+
+    for (ChanIdx = 0U; ChanIdx < PDB_CH_COUNT; ChanIdx++)
+    {
+        PDB_ADC_ResetChannel(Base, ChanIdx, &PdbPretriggsConfig);
+    }
+}
+
+/*FUNCTION*********************************************************************
+ *
+ * Function Name : Pdb_Adc_Ip_IRQHandler
+ * Description   : Handles Pdb sequence error interrupt.
+ *
+ * @implements     Pdb_Adc_Ip_IRQHandler_Activity
+ *END*************************************************************************/
+/* The IAR build wants to see function prototypes */
+void Pdb_Adc_Ip_IRQHandler(const uint32 Instance);
+
+void Pdb_Adc_Ip_IRQHandler(const uint32 Instance)
+{
+#if (PDB_ADC_IP_DEV_ERROR_DETECT == STD_ON)
+    DevAssert(Instance < PDB_INSTANCE_COUNT);
+#endif /* (PDB_ADC_IP_DEV_ERROR_DETECT == STD_ON) */
+
+    PDB_Type * const Base = PdbBase[Instance];
+    uint8 ChanIdx;
+    uint16 SeqErrMask;
+
+    /* Check if the Pdb unit is initialized, if the interrupt is not NULL
+    * first since all channels use the same callback and if sequence error
+    * interrupt is enabled. */
+    if ((PdbAdcState[Instance].Init == TRUE) &&
+        (PdbAdcState[Instance].SeqErrNotification != NULL_PTR) &&
+        ((Base->SC & PDB_SC_PDBEIE_MASK) != 0u)\
+       )
+    {
+        for (ChanIdx = 0u; ChanIdx < PDB_CH_COUNT; ChanIdx++)
+        {
+            SeqErrMask = (uint16) ((Base->CH[ChanIdx].S & PDB_S_ERR_MASK) >> PDB_S_ERR_SHIFT);
+            if (SeqErrMask != 0u)
+            {
+                PdbAdcState[Instance].SeqErrNotification(ChanIdx, SeqErrMask);
+            }
+        }
+    }
+
+    for (ChanIdx = 0u; ChanIdx < PDB_CH_COUNT; ChanIdx++)
+    {
+        /* Clear all sequence error flags triggered from the current channel
+            * by writing 0 to raised bits. */
+        Base->CH[ChanIdx].S &= ~(PDB_S_ERR_MASK);
+    }
+}
+
+static inline void PDB_ADC_ResetChannel(PDB_Type * const Base, const uint8 ChanIdx, const Pdb_Adc_Ip_PretriggersConfigType * PdbPretriggsConfig)
+{
+    SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_45();
+    Pdb_Adc_HwAcc_ConfigAdcPretriggers(Base, ChanIdx, PdbPretriggsConfig);
+    SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_45();
+
+    SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_47();
+    Pdb_Adc_HwAcc_ClearAdcPretriggerFlags(Base, ChanIdx, 0xFFu);
+
+    /* Clear all sequence error flags. */
+    Base->CH[ChanIdx].S &= ~(PDB_S_ERR_MASK);
+    SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_47();
+}
+
+#if  (STD_ON == FEATURE_PDB_HAS_INSTANCE_BACKTOBACK)
+static void PDB_ADC_ConfigInstanceBackToBack_TrustedCall(const boolean InstanceBackToBackEnable)
+{
+    if(InstanceBackToBackEnable == TRUE)
+    {
+        IP_SIM->CHIPCTL |= SIM_CHIPCTL_PDB_BB_SEL_MASK;
+    }
+    else
+    {
+        IP_SIM->CHIPCTL &= ~SIM_CHIPCTL_PDB_BB_SEL_MASK;
+    }
+}
+
+static void PDB_ADC_ConfigInstanceBackToBack(const boolean InstanceBackToBackEnable)
+{
+#if (STD_ON == PDB_ADC_IP_ENABLE_USER_MODE_SUPPORT)
+    OsIf_Trusted_Call1param(PDB_ADC_ConfigInstanceBackToBack_TrustedCall,(InstanceBackToBackEnable));
+#else
+    PDB_ADC_ConfigInstanceBackToBack_TrustedCall(InstanceBackToBackEnable);
+#endif
+}
+#endif /* (STD_ON == FEATURE_PDB_HAS_INSTANCE_BACKTOBACK) */
+
+#if  (STD_ON == FEATURE_PDB_HAS_INTERCHANNEL_BACKTOBACK)
+static void PDB_ADC_ConfigInterChannelBackToBack_TrustedCall(const uint32 Instance, const boolean InterChannelBackToBackEnable)
+{
+    if(InterChannelBackToBackEnable == TRUE)
+    {
+        if (0U == Instance)
+        {
+            IP_SIM->CHIPCTL |= SIM_CHIPCTL_PDB_BB_SEL_1_MASK;
+        }
+        else
+        {
+            IP_SIM->CHIPCTL |= SIM_CHIPCTL_PDB_BB_SEL_2_MASK;
+        }
+    }
+    else
+    {
+        if (0U == Instance)
+        {
+            IP_SIM->CHIPCTL &= ~(SIM_CHIPCTL_PDB_BB_SEL_1_MASK);
+        }
+        else
+        {
+            IP_SIM->CHIPCTL &= ~(SIM_CHIPCTL_PDB_BB_SEL_2_MASK);
+        }
+        
+    }
+}
+
+static void PDB_ADC_ConfigInterChannelBackToBack(const uint32 Instance, const boolean InterChannelBackToBackEnable)
+{
+#if (STD_ON == PDB_ADC_IP_ENABLE_USER_MODE_SUPPORT)
+    OsIf_Trusted_Call2params(PDB_ADC_ConfigInterChannelBackToBack_TrustedCall,(Instance),(InterChannelBackToBackEnable));
+#else
+    PDB_ADC_ConfigInterChannelBackToBack_TrustedCall(Instance, InterChannelBackToBackEnable);
+#endif
+}
+#endif /* (STD_ON == FEATURE_PDB_HAS_INTERCHANNEL_BACKTOBACK) */
+
+#define ADC_STOP_SEC_CODE
+#include "Adc_MemMap.h"
+
+/** @} */

+ 111 - 0
RTD/src/Pdb_Adc_Ip_Isr.c

@@ -0,0 +1,111 @@
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : ADC
+*   Dependencies         : none
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_D2108_ASR_REL_4_4_REV_0000_20210810
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+
+/**
+*   @file
+*
+*   @addtogroup pdb_adc_ip Pdb Adc IPL
+*   @{
+*/
+
+#include "OsIf.h"
+#include "Mcal.h"
+#include "Pdb_Adc_Ip_CfgDefines.h"
+/*******************************************************************************
+ *   Source file version information
+ ******************************************************************************/
+#define PDB_ADC_IP_VENDOR_ID_ISR_C                      43
+#define PDB_ADC_IP_AR_RELEASE_MAJOR_VERSION_ISR_C       4
+#define PDB_ADC_IP_AR_RELEASE_MINOR_VERSION_ISR_C       4
+#define PDB_ADC_IP_AR_RELEASE_REVISION_VERSION_ISR_C    0
+#define PDB_ADC_IP_SW_MAJOR_VERSION_ISR_C               1
+#define PDB_ADC_IP_SW_MINOR_VERSION_ISR_C               0
+#define PDB_ADC_IP_SW_PATCH_VERSION_ISR_C               0
+/*******************************************************************************
+ *   File version checks
+ ******************************************************************************/
+#ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
+    /* Check if Pdb_Adc_Ip_Isr.c file and OsIf.h file are of the same Autosar version */
+    #if ((PDB_ADC_IP_AR_RELEASE_MAJOR_VERSION_ISR_C != OSIF_AR_RELEASE_MAJOR_VERSION) || \
+         (PDB_ADC_IP_AR_RELEASE_MINOR_VERSION_ISR_C != OSIF_AR_RELEASE_MINOR_VERSION)    \
+        )
+        #error "AutoSar Version Numbers of Pdb_Adc_Ip_Isr.c and OsIf.h are different"
+    #endif
+
+    /* Check if Pdb_Adc_Ip_Isr.c file and Mcal.h file are of the same Autosar version */
+    #if ((PDB_ADC_IP_AR_RELEASE_MAJOR_VERSION_ISR_C != MCAL_AR_RELEASE_MAJOR_VERSION) || \
+         (PDB_ADC_IP_AR_RELEASE_MINOR_VERSION_ISR_C != MCAL_AR_RELEASE_MINOR_VERSION)    \
+        )
+        #error "AutoSar Version Numbers of Pdb_Adc_Ip_Isr.c and Mcal.h are different"
+    #endif
+#endif /* DISABLE_MCAL_INTERMODULE_ASR_CHECK */
+
+/* Check if Pdb_Adc_Ip_Isr.c file and Pdb_Adc_Ip_CfgDefines.h file are of the same vendor */
+#if (PDB_ADC_IP_VENDOR_ID_ISR_C != PDB_ADC_IP_VENDOR_ID_CFGDEFINES_H)
+    #error "Pdb_Adc_Ip_Isr.c and Pdb_Adc_Ip_CfgDefines.h have different vendor ids"
+#endif
+
+/* Check if Pdb_Adc_Ip_Isr.c file and Pdb_Adc_Ip_CfgDefines.h file are of the same Autosar version */
+#if ((PDB_ADC_IP_AR_RELEASE_MAJOR_VERSION_ISR_C != PDB_ADC_IP_AR_RELEASE_MAJOR_VERSION_CFGDEFINES_H) || \
+     (PDB_ADC_IP_AR_RELEASE_MINOR_VERSION_ISR_C != PDB_ADC_IP_AR_RELEASE_MINOR_VERSION_CFGDEFINES_H) || \
+     (PDB_ADC_IP_AR_RELEASE_REVISION_VERSION_ISR_C != PDB_ADC_IP_AR_RELEASE_REVISION_VERSION_CFGDEFINES_H) \
+    )
+    #error "AutoSar Version Numbers of Pdb_Adc_Ip_Isr.c and Pdb_Adc_Ip_CfgDefines.h are different"
+#endif
+
+/* Check if Pdb_Adc_Ip_Isr.c file and Pdb_Adc_Ip_CfgDefines.h file are of the same Software version */
+#if ((PDB_ADC_IP_SW_MAJOR_VERSION_ISR_C != PDB_ADC_IP_SW_MAJOR_VERSION_CFGDEFINES_H) || \
+     (PDB_ADC_IP_SW_MINOR_VERSION_ISR_C != PDB_ADC_IP_SW_MINOR_VERSION_CFGDEFINES_H) || \
+     (PDB_ADC_IP_SW_PATCH_VERSION_ISR_C != PDB_ADC_IP_SW_PATCH_VERSION_CFGDEFINES_H) \
+    )
+  #error "Software Version Numbers of Pdb_Adc_Ip_Isr.c and Pdb_Adc_Ip_CfgDefines.h are different"
+#endif
+/******************************************************************************/
+#define ADC_START_SEC_CODE
+#include "Adc_MemMap.h"
+
+extern void Pdb_Adc_Ip_IRQHandler(const uint32 Instance);
+
+ISR(Pdb_0_Isr); /* IAR requires prototypes. */
+ISR(Pdb_0_Isr)
+{
+    Pdb_Adc_Ip_IRQHandler(0UL);
+
+    EXIT_INTERRUPT();
+}
+
+#if (PDB_INSTANCE_COUNT >= 1)
+ISR(Pdb_1_Isr); /* IAR requires prototypes. */
+ISR(Pdb_1_Isr)
+{
+    Pdb_Adc_Ip_IRQHandler(1UL);
+
+    EXIT_INTERRUPT();
+}
+#endif /* (PDB_INSTANCE_COUNT >= 1) */
+
+#define ADC_STOP_SEC_CODE
+#include "Adc_MemMap.h"
+
+/** @} */

+ 3197 - 0
RTD/src/SchM_Adc.c

@@ -0,0 +1,3197 @@
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : 
+*   Dependencies         : none
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_D2108_ASR_REL_4_4_REV_0000_20210810
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+
+/**
+*   @file
+*
+*   @addtogroup RTE_MODULE
+*   @{
+*/
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+/*==================================================================================================
+*                                         INCLUDE FILES
+* 1) system and project includes
+* 2) needed interfaces from external units
+* 3) internal and external interfaces from this unit
+==================================================================================================*/
+#include "Std_Types.h"
+#include "Mcal.h"
+#include "OsIf.h"
+#include "SchM_Adc.h"
+#ifdef MCAL_TESTING_ENVIRONMENT
+#include "EUnit.h" /* EUnit Test Suite */
+#endif
+
+/*==================================================================================================
+*                               SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+#define SCHM_ADC_AR_RELEASE_MAJOR_VERSION_C     4
+#define SCHM_ADC_AR_RELEASE_MINOR_VERSION_C     4
+#define SCHM_ADC_AR_RELEASE_REVISION_VERSION_C  0
+#define SCHM_ADC_SW_MAJOR_VERSION_C             1
+#define SCHM_ADC_SW_MINOR_VERSION_C             0
+#define SCHM_ADC_SW_PATCH_VERSION_C             0
+
+/*==================================================================================================
+*                                       LOCAL CONSTANTS
+==================================================================================================*/
+#ifdef MCAL_PLATFORM_ARM
+    #if (MCAL_PLATFORM_ARM == MCAL_ARM_AARCH64)
+        #define ISR_STATE_MASK     ((uint32)0x00000002UL)   /**< @brief DAIF bit I and F */
+    #elif  (MCAL_PLATFORM_ARM == MCAL_ARM_RARCH)
+        #define ISR_STATE_MASK     ((uint32)0x00000080UL)   /**< @brief CPSR bit I */
+    #else
+        #if ((defined MCAL_ENABLE_USER_MODE_SUPPORT)&&(!defined MCAL_PLATFORM_ARM_M0PLUS))
+            #define ISR_STATE_MASK     ((uint32)0x000000FFUL)   /**< @brief BASEPRI[7:0] mask */
+        #else
+            #define ISR_STATE_MASK     ((uint32)0x00000001UL)   /**< @brief PRIMASK bit 0 */
+        #endif
+    #endif 
+#else
+    #ifdef MCAL_PLATFORM_S12
+        #define ISR_STATE_MASK     ((uint32)0x00000010L)   /**< @brief I bit of CCR */
+    #else
+        #define ISR_STATE_MASK     ((uint32)0x00008000UL)   /**< @brief EE bit of MSR */
+    #endif
+#endif
+/*==================================================================================================
+*                                       LOCAL MACROS
+==================================================================================================*/
+#ifdef MCAL_PLATFORM_ARM
+    #if (MCAL_PLATFORM_ARM == MCAL_ARM_AARCH64)
+        #define ISR_ON(msr)            (uint32)(((uint32)(msr) & (uint32)(ISR_STATE_MASK)) != (uint32)3)
+    #elif  (MCAL_PLATFORM_ARM == MCAL_ARM_RARCH)
+        #define ISR_ON(msr)            (uint32)(((uint32)(msr) & (uint32)(ISR_STATE_MASK)) != (uint32)(ISR_STATE_MASK))
+    #else
+        #define ISR_ON(msr)            (uint32)(((uint32)(msr) & (uint32)(ISR_STATE_MASK)) == (uint32)0)
+    #endif    
+#else
+    #ifdef MCAL_PLATFORM_S12
+        #define ISR_ON(msr)            (uint32)(((uint32)(msr) & (uint32)(ISR_STATE_MASK)) == (uint32)0)
+    #else
+        #define ISR_ON(msr)            (uint32)((uint32)(msr) & (uint32)(ISR_STATE_MASK))
+    #endif
+#endif
+
+/*==================================================================================================
+*                                      FILE VERSION CHECKS
+==================================================================================================*/
+
+/*==================================================================================================
+*                          LOCAL TYPEDEFS (STRUCTURES, UNIONS, ENUMS)
+==================================================================================================*/
+
+
+/*==================================================================================================
+*                                       LOCAL VARIABLES
+==================================================================================================*/
+#define RTE_START_SEC_VAR_CLEARED_32_NO_CACHEABLE
+#include "Rte_MemMap.h"
+static volatile uint32 msr_ADC_EXCLUSIVE_AREA_00[NUMBER_OF_CORES];
+static volatile uint32 reentry_guard_ADC_EXCLUSIVE_AREA_00[NUMBER_OF_CORES];
+static volatile uint32 msr_ADC_EXCLUSIVE_AREA_01[NUMBER_OF_CORES];
+static volatile uint32 reentry_guard_ADC_EXCLUSIVE_AREA_01[NUMBER_OF_CORES];
+static volatile uint32 msr_ADC_EXCLUSIVE_AREA_02[NUMBER_OF_CORES];
+static volatile uint32 reentry_guard_ADC_EXCLUSIVE_AREA_02[NUMBER_OF_CORES];
+static volatile uint32 msr_ADC_EXCLUSIVE_AREA_03[NUMBER_OF_CORES];
+static volatile uint32 reentry_guard_ADC_EXCLUSIVE_AREA_03[NUMBER_OF_CORES];
+static volatile uint32 msr_ADC_EXCLUSIVE_AREA_04[NUMBER_OF_CORES];
+static volatile uint32 reentry_guard_ADC_EXCLUSIVE_AREA_04[NUMBER_OF_CORES];
+static volatile uint32 msr_ADC_EXCLUSIVE_AREA_05[NUMBER_OF_CORES];
+static volatile uint32 reentry_guard_ADC_EXCLUSIVE_AREA_05[NUMBER_OF_CORES];
+static volatile uint32 msr_ADC_EXCLUSIVE_AREA_06[NUMBER_OF_CORES];
+static volatile uint32 reentry_guard_ADC_EXCLUSIVE_AREA_06[NUMBER_OF_CORES];
+static volatile uint32 msr_ADC_EXCLUSIVE_AREA_10[NUMBER_OF_CORES];
+static volatile uint32 reentry_guard_ADC_EXCLUSIVE_AREA_10[NUMBER_OF_CORES];
+static volatile uint32 msr_ADC_EXCLUSIVE_AREA_11[NUMBER_OF_CORES];
+static volatile uint32 reentry_guard_ADC_EXCLUSIVE_AREA_11[NUMBER_OF_CORES];
+static volatile uint32 msr_ADC_EXCLUSIVE_AREA_12[NUMBER_OF_CORES];
+static volatile uint32 reentry_guard_ADC_EXCLUSIVE_AREA_12[NUMBER_OF_CORES];
+static volatile uint32 msr_ADC_EXCLUSIVE_AREA_13[NUMBER_OF_CORES];
+static volatile uint32 reentry_guard_ADC_EXCLUSIVE_AREA_13[NUMBER_OF_CORES];
+static volatile uint32 msr_ADC_EXCLUSIVE_AREA_14[NUMBER_OF_CORES];
+static volatile uint32 reentry_guard_ADC_EXCLUSIVE_AREA_14[NUMBER_OF_CORES];
+static volatile uint32 msr_ADC_EXCLUSIVE_AREA_15[NUMBER_OF_CORES];
+static volatile uint32 reentry_guard_ADC_EXCLUSIVE_AREA_15[NUMBER_OF_CORES];
+static volatile uint32 msr_ADC_EXCLUSIVE_AREA_16[NUMBER_OF_CORES];
+static volatile uint32 reentry_guard_ADC_EXCLUSIVE_AREA_16[NUMBER_OF_CORES];
+static volatile uint32 msr_ADC_EXCLUSIVE_AREA_17[NUMBER_OF_CORES];
+static volatile uint32 reentry_guard_ADC_EXCLUSIVE_AREA_17[NUMBER_OF_CORES];
+static volatile uint32 msr_ADC_EXCLUSIVE_AREA_18[NUMBER_OF_CORES];
+static volatile uint32 reentry_guard_ADC_EXCLUSIVE_AREA_18[NUMBER_OF_CORES];
+static volatile uint32 msr_ADC_EXCLUSIVE_AREA_19[NUMBER_OF_CORES];
+static volatile uint32 reentry_guard_ADC_EXCLUSIVE_AREA_19[NUMBER_OF_CORES];
+static volatile uint32 msr_ADC_EXCLUSIVE_AREA_20[NUMBER_OF_CORES];
+static volatile uint32 reentry_guard_ADC_EXCLUSIVE_AREA_20[NUMBER_OF_CORES];
+static volatile uint32 msr_ADC_EXCLUSIVE_AREA_21[NUMBER_OF_CORES];
+static volatile uint32 reentry_guard_ADC_EXCLUSIVE_AREA_21[NUMBER_OF_CORES];
+static volatile uint32 msr_ADC_EXCLUSIVE_AREA_22[NUMBER_OF_CORES];
+static volatile uint32 reentry_guard_ADC_EXCLUSIVE_AREA_22[NUMBER_OF_CORES];
+static volatile uint32 msr_ADC_EXCLUSIVE_AREA_23[NUMBER_OF_CORES];
+static volatile uint32 reentry_guard_ADC_EXCLUSIVE_AREA_23[NUMBER_OF_CORES];
+static volatile uint32 msr_ADC_EXCLUSIVE_AREA_24[NUMBER_OF_CORES];
+static volatile uint32 reentry_guard_ADC_EXCLUSIVE_AREA_24[NUMBER_OF_CORES];
+static volatile uint32 msr_ADC_EXCLUSIVE_AREA_25[NUMBER_OF_CORES];
+static volatile uint32 reentry_guard_ADC_EXCLUSIVE_AREA_25[NUMBER_OF_CORES];
+static volatile uint32 msr_ADC_EXCLUSIVE_AREA_26[NUMBER_OF_CORES];
+static volatile uint32 reentry_guard_ADC_EXCLUSIVE_AREA_26[NUMBER_OF_CORES];
+static volatile uint32 msr_ADC_EXCLUSIVE_AREA_27[NUMBER_OF_CORES];
+static volatile uint32 reentry_guard_ADC_EXCLUSIVE_AREA_27[NUMBER_OF_CORES];
+static volatile uint32 msr_ADC_EXCLUSIVE_AREA_28[NUMBER_OF_CORES];
+static volatile uint32 reentry_guard_ADC_EXCLUSIVE_AREA_28[NUMBER_OF_CORES];
+static volatile uint32 msr_ADC_EXCLUSIVE_AREA_29[NUMBER_OF_CORES];
+static volatile uint32 reentry_guard_ADC_EXCLUSIVE_AREA_29[NUMBER_OF_CORES];
+static volatile uint32 msr_ADC_EXCLUSIVE_AREA_30[NUMBER_OF_CORES];
+static volatile uint32 reentry_guard_ADC_EXCLUSIVE_AREA_30[NUMBER_OF_CORES];
+static volatile uint32 msr_ADC_EXCLUSIVE_AREA_31[NUMBER_OF_CORES];
+static volatile uint32 reentry_guard_ADC_EXCLUSIVE_AREA_31[NUMBER_OF_CORES];
+static volatile uint32 msr_ADC_EXCLUSIVE_AREA_32[NUMBER_OF_CORES];
+static volatile uint32 reentry_guard_ADC_EXCLUSIVE_AREA_32[NUMBER_OF_CORES];
+static volatile uint32 msr_ADC_EXCLUSIVE_AREA_33[NUMBER_OF_CORES];
+static volatile uint32 reentry_guard_ADC_EXCLUSIVE_AREA_33[NUMBER_OF_CORES];
+static volatile uint32 msr_ADC_EXCLUSIVE_AREA_34[NUMBER_OF_CORES];
+static volatile uint32 reentry_guard_ADC_EXCLUSIVE_AREA_34[NUMBER_OF_CORES];
+static volatile uint32 msr_ADC_EXCLUSIVE_AREA_35[NUMBER_OF_CORES];
+static volatile uint32 reentry_guard_ADC_EXCLUSIVE_AREA_35[NUMBER_OF_CORES];
+static volatile uint32 msr_ADC_EXCLUSIVE_AREA_36[NUMBER_OF_CORES];
+static volatile uint32 reentry_guard_ADC_EXCLUSIVE_AREA_36[NUMBER_OF_CORES];
+static volatile uint32 msr_ADC_EXCLUSIVE_AREA_37[NUMBER_OF_CORES];
+static volatile uint32 reentry_guard_ADC_EXCLUSIVE_AREA_37[NUMBER_OF_CORES];
+static volatile uint32 msr_ADC_EXCLUSIVE_AREA_38[NUMBER_OF_CORES];
+static volatile uint32 reentry_guard_ADC_EXCLUSIVE_AREA_38[NUMBER_OF_CORES];
+static volatile uint32 msr_ADC_EXCLUSIVE_AREA_39[NUMBER_OF_CORES];
+static volatile uint32 reentry_guard_ADC_EXCLUSIVE_AREA_39[NUMBER_OF_CORES];
+static volatile uint32 msr_ADC_EXCLUSIVE_AREA_40[NUMBER_OF_CORES];
+static volatile uint32 reentry_guard_ADC_EXCLUSIVE_AREA_40[NUMBER_OF_CORES];
+static volatile uint32 msr_ADC_EXCLUSIVE_AREA_41[NUMBER_OF_CORES];
+static volatile uint32 reentry_guard_ADC_EXCLUSIVE_AREA_41[NUMBER_OF_CORES];
+static volatile uint32 msr_ADC_EXCLUSIVE_AREA_42[NUMBER_OF_CORES];
+static volatile uint32 reentry_guard_ADC_EXCLUSIVE_AREA_42[NUMBER_OF_CORES];
+static volatile uint32 msr_ADC_EXCLUSIVE_AREA_43[NUMBER_OF_CORES];
+static volatile uint32 reentry_guard_ADC_EXCLUSIVE_AREA_43[NUMBER_OF_CORES];
+static volatile uint32 msr_ADC_EXCLUSIVE_AREA_44[NUMBER_OF_CORES];
+static volatile uint32 reentry_guard_ADC_EXCLUSIVE_AREA_44[NUMBER_OF_CORES];
+static volatile uint32 msr_ADC_EXCLUSIVE_AREA_45[NUMBER_OF_CORES];
+static volatile uint32 reentry_guard_ADC_EXCLUSIVE_AREA_45[NUMBER_OF_CORES];
+static volatile uint32 msr_ADC_EXCLUSIVE_AREA_46[NUMBER_OF_CORES];
+static volatile uint32 reentry_guard_ADC_EXCLUSIVE_AREA_46[NUMBER_OF_CORES];
+static volatile uint32 msr_ADC_EXCLUSIVE_AREA_47[NUMBER_OF_CORES];
+static volatile uint32 reentry_guard_ADC_EXCLUSIVE_AREA_47[NUMBER_OF_CORES];
+static volatile uint32 msr_ADC_EXCLUSIVE_AREA_48[NUMBER_OF_CORES];
+static volatile uint32 reentry_guard_ADC_EXCLUSIVE_AREA_48[NUMBER_OF_CORES];
+static volatile uint32 msr_ADC_EXCLUSIVE_AREA_49[NUMBER_OF_CORES];
+static volatile uint32 reentry_guard_ADC_EXCLUSIVE_AREA_49[NUMBER_OF_CORES];
+static volatile uint32 msr_ADC_EXCLUSIVE_AREA_50[NUMBER_OF_CORES];
+static volatile uint32 reentry_guard_ADC_EXCLUSIVE_AREA_50[NUMBER_OF_CORES];
+static volatile uint32 msr_ADC_EXCLUSIVE_AREA_54[NUMBER_OF_CORES];
+static volatile uint32 reentry_guard_ADC_EXCLUSIVE_AREA_54[NUMBER_OF_CORES];
+static volatile uint32 msr_ADC_EXCLUSIVE_AREA_55[NUMBER_OF_CORES];
+static volatile uint32 reentry_guard_ADC_EXCLUSIVE_AREA_55[NUMBER_OF_CORES];
+static volatile uint32 msr_ADC_EXCLUSIVE_AREA_56[NUMBER_OF_CORES];
+static volatile uint32 reentry_guard_ADC_EXCLUSIVE_AREA_56[NUMBER_OF_CORES];
+static volatile uint32 msr_ADC_EXCLUSIVE_AREA_57[NUMBER_OF_CORES];
+static volatile uint32 reentry_guard_ADC_EXCLUSIVE_AREA_57[NUMBER_OF_CORES];
+static volatile uint32 msr_ADC_EXCLUSIVE_AREA_58[NUMBER_OF_CORES];
+static volatile uint32 reentry_guard_ADC_EXCLUSIVE_AREA_58[NUMBER_OF_CORES];
+static volatile uint32 msr_ADC_EXCLUSIVE_AREA_59[NUMBER_OF_CORES];
+static volatile uint32 reentry_guard_ADC_EXCLUSIVE_AREA_59[NUMBER_OF_CORES];
+static volatile uint32 msr_ADC_EXCLUSIVE_AREA_60[NUMBER_OF_CORES];
+static volatile uint32 reentry_guard_ADC_EXCLUSIVE_AREA_60[NUMBER_OF_CORES];
+static volatile uint32 msr_ADC_EXCLUSIVE_AREA_61[NUMBER_OF_CORES];
+static volatile uint32 reentry_guard_ADC_EXCLUSIVE_AREA_61[NUMBER_OF_CORES];
+static volatile uint32 msr_ADC_EXCLUSIVE_AREA_62[NUMBER_OF_CORES];
+static volatile uint32 reentry_guard_ADC_EXCLUSIVE_AREA_62[NUMBER_OF_CORES];
+static volatile uint32 msr_ADC_EXCLUSIVE_AREA_63[NUMBER_OF_CORES];
+static volatile uint32 reentry_guard_ADC_EXCLUSIVE_AREA_63[NUMBER_OF_CORES];
+static volatile uint32 msr_ADC_EXCLUSIVE_AREA_64[NUMBER_OF_CORES];
+static volatile uint32 reentry_guard_ADC_EXCLUSIVE_AREA_64[NUMBER_OF_CORES];
+static volatile uint32 msr_ADC_EXCLUSIVE_AREA_65[NUMBER_OF_CORES];
+static volatile uint32 reentry_guard_ADC_EXCLUSIVE_AREA_65[NUMBER_OF_CORES];
+static volatile uint32 msr_ADC_EXCLUSIVE_AREA_66[NUMBER_OF_CORES];
+static volatile uint32 reentry_guard_ADC_EXCLUSIVE_AREA_66[NUMBER_OF_CORES];
+static volatile uint32 msr_ADC_EXCLUSIVE_AREA_67[NUMBER_OF_CORES];
+static volatile uint32 reentry_guard_ADC_EXCLUSIVE_AREA_67[NUMBER_OF_CORES];
+static volatile uint32 msr_ADC_EXCLUSIVE_AREA_68[NUMBER_OF_CORES];
+static volatile uint32 reentry_guard_ADC_EXCLUSIVE_AREA_68[NUMBER_OF_CORES];
+static volatile uint32 msr_ADC_EXCLUSIVE_AREA_69[NUMBER_OF_CORES];
+static volatile uint32 reentry_guard_ADC_EXCLUSIVE_AREA_69[NUMBER_OF_CORES];
+static volatile uint32 msr_ADC_EXCLUSIVE_AREA_70[NUMBER_OF_CORES];
+static volatile uint32 reentry_guard_ADC_EXCLUSIVE_AREA_70[NUMBER_OF_CORES];
+static volatile uint32 msr_ADC_EXCLUSIVE_AREA_71[NUMBER_OF_CORES];
+static volatile uint32 reentry_guard_ADC_EXCLUSIVE_AREA_71[NUMBER_OF_CORES];
+static volatile uint32 msr_ADC_EXCLUSIVE_AREA_72[NUMBER_OF_CORES];
+static volatile uint32 reentry_guard_ADC_EXCLUSIVE_AREA_72[NUMBER_OF_CORES];
+static volatile uint32 msr_ADC_EXCLUSIVE_AREA_73[NUMBER_OF_CORES];
+static volatile uint32 reentry_guard_ADC_EXCLUSIVE_AREA_73[NUMBER_OF_CORES];
+
+#define RTE_STOP_SEC_VAR_CLEARED_32_NO_CACHEABLE
+#include "Rte_MemMap.h"
+/*==================================================================================================
+*                                       GLOBAL CONSTANTS
+==================================================================================================*/
+
+
+/*==================================================================================================
+*                                       GLOBAL VARIABLES
+==================================================================================================*/
+
+/*==================================================================================================
+*                                   LOCAL FUNCTION PROTOTYPES
+==================================================================================================*/
+
+#ifndef _COSMIC_C_S32K1XX_
+/*================================================================================================*/
+/** 
+* @brief   This function returns the MSR register value (32 bits). 
+* @details This function returns the MSR register value (32 bits). 
+*     
+* @param[in]     void        No input parameters
+* @return        uint32 msr  This function returns the MSR register value (32 bits). 
+* 
+* @pre  None
+* @post None
+* 
+*/
+uint32 Adc_schm_read_msr(void); 
+#endif /*ifndef _COSMIC_C_S32K1XX_*/
+/*==================================================================================================
+*                                       LOCAL FUNCTIONS
+==================================================================================================*/
+#define RTE_START_SEC_CODE
+#include "Rte_MemMap.h"
+
+#if (defined(_GREENHILLS_C_S32K1XX_) || defined(_CODEWARRIOR_C_S32K1XX_))
+/*================================================================================================*/
+/** 
+* @brief   This macro returns the MSR register value (32 bits). 
+* @details This macro function implementation returns the MSR register value in r3 (32 bits). 
+*     
+* @pre  None
+* @post None
+* 
+*/
+#ifdef MCAL_PLATFORM_ARM
+#if (MCAL_PLATFORM_ARM == MCAL_ARM_AARCH64)
+ASM_KEYWORD uint32 Adc_schm_read_msr(void)
+{
+    mrs x0, S3_3_c4_c2_1
+}
+#elif  (MCAL_PLATFORM_ARM == MCAL_ARM_RARCH)
+ASM_KEYWORD uint32 Adc_schm_read_msr(void)
+{
+    mrs r0, CPSR
+}
+#else
+ASM_KEYWORD uint32 Adc_schm_read_msr(void)
+{
+#if ((defined MCAL_ENABLE_USER_MODE_SUPPORT)&&(!defined MCAL_PLATFORM_ARM_M0PLUS))
+    mrs r0, BASEPRI
+#else
+    mrs r0, PRIMASK
+#endif
+}
+#endif
+#else
+#ifdef MCAL_PLATFORM_S12
+ASM_KEYWORD uint32 Adc_schm_read_msr(void)
+{
+   tfr ccr, d6
+}
+#else
+ASM_KEYWORD uint32 Adc_schm_read_msr(void)
+{
+    mfmsr r3
+}
+#endif
+#endif
+#endif /*#ifdef GHS||CW*/
+
+#ifdef _DIABDATA_C_S32K1XX_
+/** 
+* @brief   This function returns the MSR register value (32 bits). 
+* @details This function returns the MSR register value (32 bits). 
+*     
+* @param[in]     void        No input parameters
+* @return        uint32 msr  This function returns the MSR register value (32 bits). 
+* 
+* @pre  None
+* @post None
+* 
+*/
+#ifdef MCAL_PLATFORM_ARM
+uint32 Adc_schm_read_msr(void)
+{
+    register uint32 reg_tmp;
+    #if (MCAL_PLATFORM_ARM == MCAL_ARM_AARCH64)
+        __asm volatile( " mrs %x0, DAIF " : "=r" (reg_tmp) );
+    #elif  (MCAL_PLATFORM_ARM == MCAL_ARM_RARCH)
+        __asm volatile( " mrs %0, CPSR " : "=r" (reg_tmp) );
+    #else
+        #if ((defined MCAL_ENABLE_USER_MODE_SUPPORT)&&(!defined MCAL_PLATFORM_ARM_M0PLUS))
+        __asm volatile( " mrs %0, basepri " : "=r" (reg_tmp) );
+        #else
+        __asm volatile( " mrs %0, primask " : "=r" (reg_tmp) );
+        #endif
+    #endif
+    return (uint32)reg_tmp;
+}
+#else
+ASM_KEYWORD uint32 Adc_schm_read_msr(void)
+{
+    mfmsr r3
+}    
+#endif  /* MCAL_PLATFORM_ARM */
+
+#endif   /* _DIABDATA_C_S32K1XX_*/
+
+#ifdef _COSMIC_C_S32K1XX_
+/*================================================================================================*/
+/** 
+* @brief   This function returns the MSR register value (32 bits). 
+* @details This function returns the MSR register value (32 bits). 
+*     
+* @param[in]     void        No input parameters
+* @return        uint32 msr  This function returns the MSR register value (32 bits). 
+* 
+* @pre  None
+* @post None
+* 
+*/
+
+#ifdef MCAL_PLATFORM_S12
+    #define Adc_schm_read_msr()  ASM_KEYWORD("tfr ccr, d6")
+#else
+    #define Adc_schm_read_msr() ASM_KEYWORD("mfmsr r3")
+#endif
+
+#endif  /*Cosmic compiler only*/
+
+
+#ifdef _HITECH_C_S32K1XX_
+/*================================================================================================*/
+/** 
+* @brief   This function returns the MSR register value (32 bits). 
+* @details This function returns the MSR register value (32 bits). 
+*     
+* @param[in]     void        No input parameters
+* @return        uint32 msr  This function returns the MSR register value (32 bits). 
+* 
+* @pre  None
+* @post None
+* 
+*/
+uint32 Adc_schm_read_msr(void)
+{
+    uint32 result;
+    __asm volatile("mfmsr %0" : "=r" (result) :);
+    return result;
+}
+
+#endif  /*HighTec compiler only*/
+ /*================================================================================================*/
+#ifdef _LINARO_C_S32K1XX_
+/** 
+* @brief   This function returns the MSR register value (32 bits). 
+* @details This function returns the MSR register value (32 bits). 
+*     
+* @param[in]     void        No input parameters
+* @return        uint32 msr  This function returns the MSR register value (32 bits). 
+* 
+* @pre  None
+* @post None
+* 
+*/
+uint32 Adc_schm_read_msr(void)
+{
+    register uint32 reg_tmp;
+    #if (MCAL_PLATFORM_ARM == MCAL_ARM_AARCH64)
+        __asm volatile( " mrs %x0, DAIF " : "=r" (reg_tmp) );
+    #elif  (MCAL_PLATFORM_ARM == MCAL_ARM_RARCH)
+        __asm volatile( " mrs %0, CPSR " : "=r" (reg_tmp) );
+    #else
+        #if ((defined MCAL_ENABLE_USER_MODE_SUPPORT)&&(!defined MCAL_PLATFORM_ARM_M0PLUS))
+        __asm volatile( " mrs %0, basepri " : "=r" (reg_tmp) );
+        #else
+        __asm volatile( " mrs %0, primask " : "=r" (reg_tmp) );
+        #endif
+    #endif
+    return (uint32)reg_tmp;
+}
+#endif   /* _LINARO_C_S32K1XX_*/
+/*================================================================================================*/
+
+#ifdef _ARM_DS5_C_S32K1XX_
+/** 
+* @brief   This function returns the MSR register value (32 bits). 
+* @details This function returns the MSR register value (32 bits). 
+*     
+* @param[in]     void        No input parameters
+* @return        uint32 msr  This function returns the MSR register value (32 bits). 
+* 
+* @pre  None
+* @post None
+* 
+*/
+uint32 Adc_schm_read_msr(void)
+{
+    register uint32 reg_tmp;
+    #if (MCAL_PLATFORM_ARM == MCAL_ARM_AARCH64)
+        __asm volatile( " mrs %x0, DAIF " : "=r" (reg_tmp) );
+    #elif  (MCAL_PLATFORM_ARM == MCAL_ARM_RARCH)
+        __asm volatile( " mrs %0, CPSR " : "=r" (reg_tmp) );
+    #else
+        #if ((defined MCAL_ENABLE_USER_MODE_SUPPORT)&&(!defined MCAL_PLATFORM_ARM_M0PLUS))
+        __asm volatile( " mrs %0, basepri " : "=r" (reg_tmp) );
+        #else
+        __asm volatile( " mrs %0, primask " : "=r" (reg_tmp) );
+        #endif
+    #endif
+    return (uint32)reg_tmp;
+}
+#endif   /* _ARM_DS5_C_S32K1XX_ */
+
+#ifdef _IAR_C_S32K1XX_
+/** 
+* @brief   This function returns the MSR register value (32 bits). 
+* @details This function returns the MSR register value (32 bits). 
+*     
+* @param[in]     void        No input parameters
+* @return        uint32 msr  This function returns the MSR register value (32 bits). 
+* 
+* @pre  None
+* @post None
+* 
+*/
+uint32 Adc_schm_read_msr(void)
+{
+    register uint32 reg_tmp;
+
+#if ((defined MCAL_ENABLE_USER_MODE_SUPPORT)&&(!defined MCAL_PLATFORM_ARM_M0PLUS))
+   __asm volatile( " mrs %0, basepri " : "=r" (reg_tmp) );
+#else
+   __asm volatile( " mrs %0, primask " : "=r" (reg_tmp) );
+#endif
+
+    return (uint32)reg_tmp;
+}
+#endif   /* _IAR_C_S32K1XX_ */
+
+#define RTE_STOP_SEC_CODE
+#include "Rte_MemMap.h"
+
+/*==================================================================================================
+*                                        GLOBAL FUNCTIONS
+==================================================================================================*/
+#define RTE_START_SEC_CODE
+#include "Rte_MemMap.h"
+
+void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_00(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    if(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_00[u32CoreId])
+    {
+#if ((defined MCAL_ENABLE_USER_MODE_SUPPORT)&&(!defined MCAL_PLATFORM_ARM_M0PLUS))
+        msr_ADC_EXCLUSIVE_AREA_00[u32CoreId] = OsIf_Trusted_Call_Return(Adc_schm_read_msr);
+#else
+        msr_ADC_EXCLUSIVE_AREA_00[u32CoreId] = Adc_schm_read_msr();  /*read MSR (to store interrupts state)*/
+#endif /* MCAL_ENABLE_USER_MODE_SUPPORT */
+        if (ISR_ON(msr_ADC_EXCLUSIVE_AREA_00[u32CoreId])) /*if MSR[EE] = 0, skip calling Suspend/Resume AllInterrupts*/
+        {
+            OsIf_SuspendAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+            ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+        }
+    }
+    reentry_guard_ADC_EXCLUSIVE_AREA_00[u32CoreId]++;
+}
+
+void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_00(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    reentry_guard_ADC_EXCLUSIVE_AREA_00[u32CoreId]--;
+    if ((ISR_ON(msr_ADC_EXCLUSIVE_AREA_00[u32CoreId]))&&(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_00[u32CoreId]))         /*if interrupts were enabled*/
+    {
+        OsIf_ResumeAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+        ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+    }
+}
+
+void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_01(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    if(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_01[u32CoreId])
+    {
+#if ((defined MCAL_ENABLE_USER_MODE_SUPPORT)&&(!defined MCAL_PLATFORM_ARM_M0PLUS))
+        msr_ADC_EXCLUSIVE_AREA_01[u32CoreId] = OsIf_Trusted_Call_Return(Adc_schm_read_msr);
+#else
+        msr_ADC_EXCLUSIVE_AREA_01[u32CoreId] = Adc_schm_read_msr();  /*read MSR (to store interrupts state)*/
+#endif /* MCAL_ENABLE_USER_MODE_SUPPORT */
+        if (ISR_ON(msr_ADC_EXCLUSIVE_AREA_01[u32CoreId])) /*if MSR[EE] = 0, skip calling Suspend/Resume AllInterrupts*/
+        {
+            OsIf_SuspendAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+            ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+        }
+    }
+    reentry_guard_ADC_EXCLUSIVE_AREA_01[u32CoreId]++;
+}
+
+void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_01(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    reentry_guard_ADC_EXCLUSIVE_AREA_01[u32CoreId]--;
+    if ((ISR_ON(msr_ADC_EXCLUSIVE_AREA_01[u32CoreId]))&&(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_01[u32CoreId]))         /*if interrupts were enabled*/
+    {
+        OsIf_ResumeAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+        ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+    }
+}
+
+void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_02(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    if(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_02[u32CoreId])
+    {
+#if ((defined MCAL_ENABLE_USER_MODE_SUPPORT)&&(!defined MCAL_PLATFORM_ARM_M0PLUS))
+        msr_ADC_EXCLUSIVE_AREA_02[u32CoreId] = OsIf_Trusted_Call_Return(Adc_schm_read_msr);
+#else
+        msr_ADC_EXCLUSIVE_AREA_02[u32CoreId] = Adc_schm_read_msr();  /*read MSR (to store interrupts state)*/
+#endif /* MCAL_ENABLE_USER_MODE_SUPPORT */
+        if (ISR_ON(msr_ADC_EXCLUSIVE_AREA_02[u32CoreId])) /*if MSR[EE] = 0, skip calling Suspend/Resume AllInterrupts*/
+        {
+            OsIf_SuspendAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+            ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+        }
+    }
+    reentry_guard_ADC_EXCLUSIVE_AREA_02[u32CoreId]++;
+}
+
+void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_02(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    reentry_guard_ADC_EXCLUSIVE_AREA_02[u32CoreId]--;
+    if ((ISR_ON(msr_ADC_EXCLUSIVE_AREA_02[u32CoreId]))&&(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_02[u32CoreId]))         /*if interrupts were enabled*/
+    {
+        OsIf_ResumeAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+        ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+    }
+}
+
+void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_03(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    if(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_03[u32CoreId])
+    {
+#if ((defined MCAL_ENABLE_USER_MODE_SUPPORT)&&(!defined MCAL_PLATFORM_ARM_M0PLUS))
+        msr_ADC_EXCLUSIVE_AREA_03[u32CoreId] = OsIf_Trusted_Call_Return(Adc_schm_read_msr);
+#else
+        msr_ADC_EXCLUSIVE_AREA_03[u32CoreId] = Adc_schm_read_msr();  /*read MSR (to store interrupts state)*/
+#endif /* MCAL_ENABLE_USER_MODE_SUPPORT */
+        if (ISR_ON(msr_ADC_EXCLUSIVE_AREA_03[u32CoreId])) /*if MSR[EE] = 0, skip calling Suspend/Resume AllInterrupts*/
+        {
+            OsIf_SuspendAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+            ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+        }
+    }
+    reentry_guard_ADC_EXCLUSIVE_AREA_03[u32CoreId]++;
+}
+
+void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_03(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    reentry_guard_ADC_EXCLUSIVE_AREA_03[u32CoreId]--;
+    if ((ISR_ON(msr_ADC_EXCLUSIVE_AREA_03[u32CoreId]))&&(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_03[u32CoreId]))         /*if interrupts were enabled*/
+    {
+        OsIf_ResumeAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+        ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+    }
+}
+
+void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_04(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    if(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_04[u32CoreId])
+    {
+#if ((defined MCAL_ENABLE_USER_MODE_SUPPORT)&&(!defined MCAL_PLATFORM_ARM_M0PLUS))
+        msr_ADC_EXCLUSIVE_AREA_04[u32CoreId] = OsIf_Trusted_Call_Return(Adc_schm_read_msr);
+#else
+        msr_ADC_EXCLUSIVE_AREA_04[u32CoreId] = Adc_schm_read_msr();  /*read MSR (to store interrupts state)*/
+#endif /* MCAL_ENABLE_USER_MODE_SUPPORT */
+        if (ISR_ON(msr_ADC_EXCLUSIVE_AREA_04[u32CoreId])) /*if MSR[EE] = 0, skip calling Suspend/Resume AllInterrupts*/
+        {
+            OsIf_SuspendAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+            ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+        }
+    }
+    reentry_guard_ADC_EXCLUSIVE_AREA_04[u32CoreId]++;
+}
+
+void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_04(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    reentry_guard_ADC_EXCLUSIVE_AREA_04[u32CoreId]--;
+    if ((ISR_ON(msr_ADC_EXCLUSIVE_AREA_04[u32CoreId]))&&(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_04[u32CoreId]))         /*if interrupts were enabled*/
+    {
+        OsIf_ResumeAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+        ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+    }
+}
+
+void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_05(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    if(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_05[u32CoreId])
+    {
+#if ((defined MCAL_ENABLE_USER_MODE_SUPPORT)&&(!defined MCAL_PLATFORM_ARM_M0PLUS))
+        msr_ADC_EXCLUSIVE_AREA_05[u32CoreId] = OsIf_Trusted_Call_Return(Adc_schm_read_msr);
+#else
+        msr_ADC_EXCLUSIVE_AREA_05[u32CoreId] = Adc_schm_read_msr();  /*read MSR (to store interrupts state)*/
+#endif /* MCAL_ENABLE_USER_MODE_SUPPORT */
+        if (ISR_ON(msr_ADC_EXCLUSIVE_AREA_05[u32CoreId])) /*if MSR[EE] = 0, skip calling Suspend/Resume AllInterrupts*/
+        {
+            OsIf_SuspendAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+            ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+        }
+    }
+    reentry_guard_ADC_EXCLUSIVE_AREA_05[u32CoreId]++;
+}
+
+void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_05(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    reentry_guard_ADC_EXCLUSIVE_AREA_05[u32CoreId]--;
+    if ((ISR_ON(msr_ADC_EXCLUSIVE_AREA_05[u32CoreId]))&&(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_05[u32CoreId]))         /*if interrupts were enabled*/
+    {
+        OsIf_ResumeAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+        ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+    }
+}
+
+void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_06(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    if(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_06[u32CoreId])
+    {
+#if ((defined MCAL_ENABLE_USER_MODE_SUPPORT)&&(!defined MCAL_PLATFORM_ARM_M0PLUS))
+        msr_ADC_EXCLUSIVE_AREA_06[u32CoreId] = OsIf_Trusted_Call_Return(Adc_schm_read_msr);
+#else
+        msr_ADC_EXCLUSIVE_AREA_06[u32CoreId] = Adc_schm_read_msr();  /*read MSR (to store interrupts state)*/
+#endif /* MCAL_ENABLE_USER_MODE_SUPPORT */
+        if (ISR_ON(msr_ADC_EXCLUSIVE_AREA_06[u32CoreId])) /*if MSR[EE] = 0, skip calling Suspend/Resume AllInterrupts*/
+        {
+            OsIf_SuspendAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+            ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+        }
+    }
+    reentry_guard_ADC_EXCLUSIVE_AREA_06[u32CoreId]++;
+}
+
+void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_06(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    reentry_guard_ADC_EXCLUSIVE_AREA_06[u32CoreId]--;
+    if ((ISR_ON(msr_ADC_EXCLUSIVE_AREA_06[u32CoreId]))&&(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_06[u32CoreId]))         /*if interrupts were enabled*/
+    {
+        OsIf_ResumeAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+        ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+    }
+}
+
+void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_10(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    if(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_10[u32CoreId])
+    {
+#if ((defined MCAL_ENABLE_USER_MODE_SUPPORT)&&(!defined MCAL_PLATFORM_ARM_M0PLUS))
+        msr_ADC_EXCLUSIVE_AREA_10[u32CoreId] = OsIf_Trusted_Call_Return(Adc_schm_read_msr);
+#else
+        msr_ADC_EXCLUSIVE_AREA_10[u32CoreId] = Adc_schm_read_msr();  /*read MSR (to store interrupts state)*/
+#endif /* MCAL_ENABLE_USER_MODE_SUPPORT */
+        if (ISR_ON(msr_ADC_EXCLUSIVE_AREA_10[u32CoreId])) /*if MSR[EE] = 0, skip calling Suspend/Resume AllInterrupts*/
+        {
+            OsIf_SuspendAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+            ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+        }
+    }
+    reentry_guard_ADC_EXCLUSIVE_AREA_10[u32CoreId]++;
+}
+
+void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_10(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    reentry_guard_ADC_EXCLUSIVE_AREA_10[u32CoreId]--;
+    if ((ISR_ON(msr_ADC_EXCLUSIVE_AREA_10[u32CoreId]))&&(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_10[u32CoreId]))         /*if interrupts were enabled*/
+    {
+        OsIf_ResumeAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+        ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+    }
+}
+
+void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_11(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    if(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_11[u32CoreId])
+    {
+#if ((defined MCAL_ENABLE_USER_MODE_SUPPORT)&&(!defined MCAL_PLATFORM_ARM_M0PLUS))
+        msr_ADC_EXCLUSIVE_AREA_11[u32CoreId] = OsIf_Trusted_Call_Return(Adc_schm_read_msr);
+#else
+        msr_ADC_EXCLUSIVE_AREA_11[u32CoreId] = Adc_schm_read_msr();  /*read MSR (to store interrupts state)*/
+#endif /* MCAL_ENABLE_USER_MODE_SUPPORT */
+        if (ISR_ON(msr_ADC_EXCLUSIVE_AREA_11[u32CoreId])) /*if MSR[EE] = 0, skip calling Suspend/Resume AllInterrupts*/
+        {
+            OsIf_SuspendAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+            ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+        }
+    }
+    reentry_guard_ADC_EXCLUSIVE_AREA_11[u32CoreId]++;
+}
+
+void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_11(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    reentry_guard_ADC_EXCLUSIVE_AREA_11[u32CoreId]--;
+    if ((ISR_ON(msr_ADC_EXCLUSIVE_AREA_11[u32CoreId]))&&(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_11[u32CoreId]))         /*if interrupts were enabled*/
+    {
+        OsIf_ResumeAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+        ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+    }
+}
+
+void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_12(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    if(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_12[u32CoreId])
+    {
+#if ((defined MCAL_ENABLE_USER_MODE_SUPPORT)&&(!defined MCAL_PLATFORM_ARM_M0PLUS))
+        msr_ADC_EXCLUSIVE_AREA_12[u32CoreId] = OsIf_Trusted_Call_Return(Adc_schm_read_msr);
+#else
+        msr_ADC_EXCLUSIVE_AREA_12[u32CoreId] = Adc_schm_read_msr();  /*read MSR (to store interrupts state)*/
+#endif /* MCAL_ENABLE_USER_MODE_SUPPORT */
+        if (ISR_ON(msr_ADC_EXCLUSIVE_AREA_12[u32CoreId])) /*if MSR[EE] = 0, skip calling Suspend/Resume AllInterrupts*/
+        {
+            OsIf_SuspendAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+            ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+        }
+    }
+    reentry_guard_ADC_EXCLUSIVE_AREA_12[u32CoreId]++;
+}
+
+void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_12(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    reentry_guard_ADC_EXCLUSIVE_AREA_12[u32CoreId]--;
+    if ((ISR_ON(msr_ADC_EXCLUSIVE_AREA_12[u32CoreId]))&&(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_12[u32CoreId]))         /*if interrupts were enabled*/
+    {
+        OsIf_ResumeAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+        ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+    }
+}
+
+void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_13(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    if(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_13[u32CoreId])
+    {
+#if ((defined MCAL_ENABLE_USER_MODE_SUPPORT)&&(!defined MCAL_PLATFORM_ARM_M0PLUS))
+        msr_ADC_EXCLUSIVE_AREA_13[u32CoreId] = OsIf_Trusted_Call_Return(Adc_schm_read_msr);
+#else
+        msr_ADC_EXCLUSIVE_AREA_13[u32CoreId] = Adc_schm_read_msr();  /*read MSR (to store interrupts state)*/
+#endif /* MCAL_ENABLE_USER_MODE_SUPPORT */
+        if (ISR_ON(msr_ADC_EXCLUSIVE_AREA_13[u32CoreId])) /*if MSR[EE] = 0, skip calling Suspend/Resume AllInterrupts*/
+        {
+            OsIf_SuspendAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+            ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+        }
+    }
+    reentry_guard_ADC_EXCLUSIVE_AREA_13[u32CoreId]++;
+}
+
+void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_13(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    reentry_guard_ADC_EXCLUSIVE_AREA_13[u32CoreId]--;
+    if ((ISR_ON(msr_ADC_EXCLUSIVE_AREA_13[u32CoreId]))&&(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_13[u32CoreId]))         /*if interrupts were enabled*/
+    {
+        OsIf_ResumeAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+        ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+    }
+}
+
+void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_14(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    if(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_14[u32CoreId])
+    {
+#if ((defined MCAL_ENABLE_USER_MODE_SUPPORT)&&(!defined MCAL_PLATFORM_ARM_M0PLUS))
+        msr_ADC_EXCLUSIVE_AREA_14[u32CoreId] = OsIf_Trusted_Call_Return(Adc_schm_read_msr);
+#else
+        msr_ADC_EXCLUSIVE_AREA_14[u32CoreId] = Adc_schm_read_msr();  /*read MSR (to store interrupts state)*/
+#endif /* MCAL_ENABLE_USER_MODE_SUPPORT */
+        if (ISR_ON(msr_ADC_EXCLUSIVE_AREA_14[u32CoreId])) /*if MSR[EE] = 0, skip calling Suspend/Resume AllInterrupts*/
+        {
+            OsIf_SuspendAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+            ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+        }
+    }
+    reentry_guard_ADC_EXCLUSIVE_AREA_14[u32CoreId]++;
+}
+
+void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_14(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    reentry_guard_ADC_EXCLUSIVE_AREA_14[u32CoreId]--;
+    if ((ISR_ON(msr_ADC_EXCLUSIVE_AREA_14[u32CoreId]))&&(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_14[u32CoreId]))         /*if interrupts were enabled*/
+    {
+        OsIf_ResumeAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+        ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+    }
+}
+
+void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_15(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    if(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_15[u32CoreId])
+    {
+#if ((defined MCAL_ENABLE_USER_MODE_SUPPORT)&&(!defined MCAL_PLATFORM_ARM_M0PLUS))
+        msr_ADC_EXCLUSIVE_AREA_15[u32CoreId] = OsIf_Trusted_Call_Return(Adc_schm_read_msr);
+#else
+        msr_ADC_EXCLUSIVE_AREA_15[u32CoreId] = Adc_schm_read_msr();  /*read MSR (to store interrupts state)*/
+#endif /* MCAL_ENABLE_USER_MODE_SUPPORT */
+        if (ISR_ON(msr_ADC_EXCLUSIVE_AREA_15[u32CoreId])) /*if MSR[EE] = 0, skip calling Suspend/Resume AllInterrupts*/
+        {
+            OsIf_SuspendAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+            ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+        }
+    }
+    reentry_guard_ADC_EXCLUSIVE_AREA_15[u32CoreId]++;
+}
+
+void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_15(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    reentry_guard_ADC_EXCLUSIVE_AREA_15[u32CoreId]--;
+    if ((ISR_ON(msr_ADC_EXCLUSIVE_AREA_15[u32CoreId]))&&(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_15[u32CoreId]))         /*if interrupts were enabled*/
+    {
+        OsIf_ResumeAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+        ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+    }
+}
+
+void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_16(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    if(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_16[u32CoreId])
+    {
+#if ((defined MCAL_ENABLE_USER_MODE_SUPPORT)&&(!defined MCAL_PLATFORM_ARM_M0PLUS))
+        msr_ADC_EXCLUSIVE_AREA_16[u32CoreId] = OsIf_Trusted_Call_Return(Adc_schm_read_msr);
+#else
+        msr_ADC_EXCLUSIVE_AREA_16[u32CoreId] = Adc_schm_read_msr();  /*read MSR (to store interrupts state)*/
+#endif /* MCAL_ENABLE_USER_MODE_SUPPORT */
+        if (ISR_ON(msr_ADC_EXCLUSIVE_AREA_16[u32CoreId])) /*if MSR[EE] = 0, skip calling Suspend/Resume AllInterrupts*/
+        {
+            OsIf_SuspendAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+            ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+        }
+    }
+    reentry_guard_ADC_EXCLUSIVE_AREA_16[u32CoreId]++;
+}
+
+void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_16(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    reentry_guard_ADC_EXCLUSIVE_AREA_16[u32CoreId]--;
+    if ((ISR_ON(msr_ADC_EXCLUSIVE_AREA_16[u32CoreId]))&&(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_16[u32CoreId]))         /*if interrupts were enabled*/
+    {
+        OsIf_ResumeAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+        ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+    }
+}
+
+void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_17(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    if(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_17[u32CoreId])
+    {
+#if ((defined MCAL_ENABLE_USER_MODE_SUPPORT)&&(!defined MCAL_PLATFORM_ARM_M0PLUS))
+        msr_ADC_EXCLUSIVE_AREA_17[u32CoreId] = OsIf_Trusted_Call_Return(Adc_schm_read_msr);
+#else
+        msr_ADC_EXCLUSIVE_AREA_17[u32CoreId] = Adc_schm_read_msr();  /*read MSR (to store interrupts state)*/
+#endif /* MCAL_ENABLE_USER_MODE_SUPPORT */
+        if (ISR_ON(msr_ADC_EXCLUSIVE_AREA_17[u32CoreId])) /*if MSR[EE] = 0, skip calling Suspend/Resume AllInterrupts*/
+        {
+            OsIf_SuspendAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+            ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+        }
+    }
+    reentry_guard_ADC_EXCLUSIVE_AREA_17[u32CoreId]++;
+}
+
+void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_17(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    reentry_guard_ADC_EXCLUSIVE_AREA_17[u32CoreId]--;
+    if ((ISR_ON(msr_ADC_EXCLUSIVE_AREA_17[u32CoreId]))&&(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_17[u32CoreId]))         /*if interrupts were enabled*/
+    {
+        OsIf_ResumeAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+        ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+    }
+}
+
+void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_18(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    if(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_18[u32CoreId])
+    {
+#if ((defined MCAL_ENABLE_USER_MODE_SUPPORT)&&(!defined MCAL_PLATFORM_ARM_M0PLUS))
+        msr_ADC_EXCLUSIVE_AREA_18[u32CoreId] = OsIf_Trusted_Call_Return(Adc_schm_read_msr);
+#else
+        msr_ADC_EXCLUSIVE_AREA_18[u32CoreId] = Adc_schm_read_msr();  /*read MSR (to store interrupts state)*/
+#endif /* MCAL_ENABLE_USER_MODE_SUPPORT */
+        if (ISR_ON(msr_ADC_EXCLUSIVE_AREA_18[u32CoreId])) /*if MSR[EE] = 0, skip calling Suspend/Resume AllInterrupts*/
+        {
+            OsIf_SuspendAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+            ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+        }
+    }
+    reentry_guard_ADC_EXCLUSIVE_AREA_18[u32CoreId]++;
+}
+
+void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_18(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    reentry_guard_ADC_EXCLUSIVE_AREA_18[u32CoreId]--;
+    if ((ISR_ON(msr_ADC_EXCLUSIVE_AREA_18[u32CoreId]))&&(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_18[u32CoreId]))         /*if interrupts were enabled*/
+    {
+        OsIf_ResumeAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+        ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+    }
+}
+
+void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_19(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    if(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_19[u32CoreId])
+    {
+#if ((defined MCAL_ENABLE_USER_MODE_SUPPORT)&&(!defined MCAL_PLATFORM_ARM_M0PLUS))
+        msr_ADC_EXCLUSIVE_AREA_19[u32CoreId] = OsIf_Trusted_Call_Return(Adc_schm_read_msr);
+#else
+        msr_ADC_EXCLUSIVE_AREA_19[u32CoreId] = Adc_schm_read_msr();  /*read MSR (to store interrupts state)*/
+#endif /* MCAL_ENABLE_USER_MODE_SUPPORT */
+        if (ISR_ON(msr_ADC_EXCLUSIVE_AREA_19[u32CoreId])) /*if MSR[EE] = 0, skip calling Suspend/Resume AllInterrupts*/
+        {
+            OsIf_SuspendAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+            ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+        }
+    }
+    reentry_guard_ADC_EXCLUSIVE_AREA_19[u32CoreId]++;
+}
+
+void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_19(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    reentry_guard_ADC_EXCLUSIVE_AREA_19[u32CoreId]--;
+    if ((ISR_ON(msr_ADC_EXCLUSIVE_AREA_19[u32CoreId]))&&(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_19[u32CoreId]))         /*if interrupts were enabled*/
+    {
+        OsIf_ResumeAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+        ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+    }
+}
+
+void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_20(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    if(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_20[u32CoreId])
+    {
+#if ((defined MCAL_ENABLE_USER_MODE_SUPPORT)&&(!defined MCAL_PLATFORM_ARM_M0PLUS))
+        msr_ADC_EXCLUSIVE_AREA_20[u32CoreId] = OsIf_Trusted_Call_Return(Adc_schm_read_msr);
+#else
+        msr_ADC_EXCLUSIVE_AREA_20[u32CoreId] = Adc_schm_read_msr();  /*read MSR (to store interrupts state)*/
+#endif /* MCAL_ENABLE_USER_MODE_SUPPORT */
+        if (ISR_ON(msr_ADC_EXCLUSIVE_AREA_20[u32CoreId])) /*if MSR[EE] = 0, skip calling Suspend/Resume AllInterrupts*/
+        {
+            OsIf_SuspendAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+            ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+        }
+    }
+    reentry_guard_ADC_EXCLUSIVE_AREA_20[u32CoreId]++;
+}
+
+void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_20(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    reentry_guard_ADC_EXCLUSIVE_AREA_20[u32CoreId]--;
+    if ((ISR_ON(msr_ADC_EXCLUSIVE_AREA_20[u32CoreId]))&&(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_20[u32CoreId]))         /*if interrupts were enabled*/
+    {
+        OsIf_ResumeAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+        ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+    }
+}
+
+void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_21(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    if(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_21[u32CoreId])
+    {
+#if ((defined MCAL_ENABLE_USER_MODE_SUPPORT)&&(!defined MCAL_PLATFORM_ARM_M0PLUS))
+        msr_ADC_EXCLUSIVE_AREA_21[u32CoreId] = OsIf_Trusted_Call_Return(Adc_schm_read_msr);
+#else
+        msr_ADC_EXCLUSIVE_AREA_21[u32CoreId] = Adc_schm_read_msr();  /*read MSR (to store interrupts state)*/
+#endif /* MCAL_ENABLE_USER_MODE_SUPPORT */
+        if (ISR_ON(msr_ADC_EXCLUSIVE_AREA_21[u32CoreId])) /*if MSR[EE] = 0, skip calling Suspend/Resume AllInterrupts*/
+        {
+            OsIf_SuspendAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+            ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+        }
+    }
+    reentry_guard_ADC_EXCLUSIVE_AREA_21[u32CoreId]++;
+}
+
+void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_21(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    reentry_guard_ADC_EXCLUSIVE_AREA_21[u32CoreId]--;
+    if ((ISR_ON(msr_ADC_EXCLUSIVE_AREA_21[u32CoreId]))&&(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_21[u32CoreId]))         /*if interrupts were enabled*/
+    {
+        OsIf_ResumeAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+        ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+    }
+}
+
+void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_22(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    if(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_22[u32CoreId])
+    {
+#if ((defined MCAL_ENABLE_USER_MODE_SUPPORT)&&(!defined MCAL_PLATFORM_ARM_M0PLUS))
+        msr_ADC_EXCLUSIVE_AREA_22[u32CoreId] = OsIf_Trusted_Call_Return(Adc_schm_read_msr);
+#else
+        msr_ADC_EXCLUSIVE_AREA_22[u32CoreId] = Adc_schm_read_msr();  /*read MSR (to store interrupts state)*/
+#endif /* MCAL_ENABLE_USER_MODE_SUPPORT */
+        if (ISR_ON(msr_ADC_EXCLUSIVE_AREA_22[u32CoreId])) /*if MSR[EE] = 0, skip calling Suspend/Resume AllInterrupts*/
+        {
+            OsIf_SuspendAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+            ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+        }
+    }
+    reentry_guard_ADC_EXCLUSIVE_AREA_22[u32CoreId]++;
+}
+
+void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_22(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    reentry_guard_ADC_EXCLUSIVE_AREA_22[u32CoreId]--;
+    if ((ISR_ON(msr_ADC_EXCLUSIVE_AREA_22[u32CoreId]))&&(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_22[u32CoreId]))         /*if interrupts were enabled*/
+    {
+        OsIf_ResumeAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+        ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+    }
+}
+
+void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_23(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    if(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_23[u32CoreId])
+    {
+#if ((defined MCAL_ENABLE_USER_MODE_SUPPORT)&&(!defined MCAL_PLATFORM_ARM_M0PLUS))
+        msr_ADC_EXCLUSIVE_AREA_23[u32CoreId] = OsIf_Trusted_Call_Return(Adc_schm_read_msr);
+#else
+        msr_ADC_EXCLUSIVE_AREA_23[u32CoreId] = Adc_schm_read_msr();  /*read MSR (to store interrupts state)*/
+#endif /* MCAL_ENABLE_USER_MODE_SUPPORT */
+        if (ISR_ON(msr_ADC_EXCLUSIVE_AREA_23[u32CoreId])) /*if MSR[EE] = 0, skip calling Suspend/Resume AllInterrupts*/
+        {
+            OsIf_SuspendAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+            ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+        }
+    }
+    reentry_guard_ADC_EXCLUSIVE_AREA_23[u32CoreId]++;
+}
+
+void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_23(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    reentry_guard_ADC_EXCLUSIVE_AREA_23[u32CoreId]--;
+    if ((ISR_ON(msr_ADC_EXCLUSIVE_AREA_23[u32CoreId]))&&(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_23[u32CoreId]))         /*if interrupts were enabled*/
+    {
+        OsIf_ResumeAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+        ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+    }
+}
+
+void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_24(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    if(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_24[u32CoreId])
+    {
+#if ((defined MCAL_ENABLE_USER_MODE_SUPPORT)&&(!defined MCAL_PLATFORM_ARM_M0PLUS))
+        msr_ADC_EXCLUSIVE_AREA_24[u32CoreId] = OsIf_Trusted_Call_Return(Adc_schm_read_msr);
+#else
+        msr_ADC_EXCLUSIVE_AREA_24[u32CoreId] = Adc_schm_read_msr();  /*read MSR (to store interrupts state)*/
+#endif /* MCAL_ENABLE_USER_MODE_SUPPORT */
+        if (ISR_ON(msr_ADC_EXCLUSIVE_AREA_24[u32CoreId])) /*if MSR[EE] = 0, skip calling Suspend/Resume AllInterrupts*/
+        {
+            OsIf_SuspendAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+            ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+        }
+    }
+    reentry_guard_ADC_EXCLUSIVE_AREA_24[u32CoreId]++;
+}
+
+void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_24(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    reentry_guard_ADC_EXCLUSIVE_AREA_24[u32CoreId]--;
+    if ((ISR_ON(msr_ADC_EXCLUSIVE_AREA_24[u32CoreId]))&&(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_24[u32CoreId]))         /*if interrupts were enabled*/
+    {
+        OsIf_ResumeAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+        ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+    }
+}
+
+void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_25(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    if(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_25[u32CoreId])
+    {
+#if ((defined MCAL_ENABLE_USER_MODE_SUPPORT)&&(!defined MCAL_PLATFORM_ARM_M0PLUS))
+        msr_ADC_EXCLUSIVE_AREA_25[u32CoreId] = OsIf_Trusted_Call_Return(Adc_schm_read_msr);
+#else
+        msr_ADC_EXCLUSIVE_AREA_25[u32CoreId] = Adc_schm_read_msr();  /*read MSR (to store interrupts state)*/
+#endif /* MCAL_ENABLE_USER_MODE_SUPPORT */
+        if (ISR_ON(msr_ADC_EXCLUSIVE_AREA_25[u32CoreId])) /*if MSR[EE] = 0, skip calling Suspend/Resume AllInterrupts*/
+        {
+            OsIf_SuspendAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+            ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+        }
+    }
+    reentry_guard_ADC_EXCLUSIVE_AREA_25[u32CoreId]++;
+}
+
+void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_25(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    reentry_guard_ADC_EXCLUSIVE_AREA_25[u32CoreId]--;
+    if ((ISR_ON(msr_ADC_EXCLUSIVE_AREA_25[u32CoreId]))&&(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_25[u32CoreId]))         /*if interrupts were enabled*/
+    {
+        OsIf_ResumeAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+        ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+    }
+}
+
+void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_26(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    if(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_26[u32CoreId])
+    {
+#if ((defined MCAL_ENABLE_USER_MODE_SUPPORT)&&(!defined MCAL_PLATFORM_ARM_M0PLUS))
+        msr_ADC_EXCLUSIVE_AREA_26[u32CoreId] = OsIf_Trusted_Call_Return(Adc_schm_read_msr);
+#else
+        msr_ADC_EXCLUSIVE_AREA_26[u32CoreId] = Adc_schm_read_msr();  /*read MSR (to store interrupts state)*/
+#endif /* MCAL_ENABLE_USER_MODE_SUPPORT */
+        if (ISR_ON(msr_ADC_EXCLUSIVE_AREA_26[u32CoreId])) /*if MSR[EE] = 0, skip calling Suspend/Resume AllInterrupts*/
+        {
+            OsIf_SuspendAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+            ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+        }
+    }
+    reentry_guard_ADC_EXCLUSIVE_AREA_26[u32CoreId]++;
+}
+
+void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_26(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    reentry_guard_ADC_EXCLUSIVE_AREA_26[u32CoreId]--;
+    if ((ISR_ON(msr_ADC_EXCLUSIVE_AREA_26[u32CoreId]))&&(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_26[u32CoreId]))         /*if interrupts were enabled*/
+    {
+        OsIf_ResumeAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+        ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+    }
+}
+
+void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_27(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    if(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_27[u32CoreId])
+    {
+#if ((defined MCAL_ENABLE_USER_MODE_SUPPORT)&&(!defined MCAL_PLATFORM_ARM_M0PLUS))
+        msr_ADC_EXCLUSIVE_AREA_27[u32CoreId] = OsIf_Trusted_Call_Return(Adc_schm_read_msr);
+#else
+        msr_ADC_EXCLUSIVE_AREA_27[u32CoreId] = Adc_schm_read_msr();  /*read MSR (to store interrupts state)*/
+#endif /* MCAL_ENABLE_USER_MODE_SUPPORT */
+        if (ISR_ON(msr_ADC_EXCLUSIVE_AREA_27[u32CoreId])) /*if MSR[EE] = 0, skip calling Suspend/Resume AllInterrupts*/
+        {
+            OsIf_SuspendAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+            ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+        }
+    }
+    reentry_guard_ADC_EXCLUSIVE_AREA_27[u32CoreId]++;
+}
+
+void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_27(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    reentry_guard_ADC_EXCLUSIVE_AREA_27[u32CoreId]--;
+    if ((ISR_ON(msr_ADC_EXCLUSIVE_AREA_27[u32CoreId]))&&(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_27[u32CoreId]))         /*if interrupts were enabled*/
+    {
+        OsIf_ResumeAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+        ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+    }
+}
+
+void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_28(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    if(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_28[u32CoreId])
+    {
+#if ((defined MCAL_ENABLE_USER_MODE_SUPPORT)&&(!defined MCAL_PLATFORM_ARM_M0PLUS))
+        msr_ADC_EXCLUSIVE_AREA_28[u32CoreId] = OsIf_Trusted_Call_Return(Adc_schm_read_msr);
+#else
+        msr_ADC_EXCLUSIVE_AREA_28[u32CoreId] = Adc_schm_read_msr();  /*read MSR (to store interrupts state)*/
+#endif /* MCAL_ENABLE_USER_MODE_SUPPORT */
+        if (ISR_ON(msr_ADC_EXCLUSIVE_AREA_28[u32CoreId])) /*if MSR[EE] = 0, skip calling Suspend/Resume AllInterrupts*/
+        {
+            OsIf_SuspendAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+            ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+        }
+    }
+    reentry_guard_ADC_EXCLUSIVE_AREA_28[u32CoreId]++;
+}
+
+void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_28(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    reentry_guard_ADC_EXCLUSIVE_AREA_28[u32CoreId]--;
+    if ((ISR_ON(msr_ADC_EXCLUSIVE_AREA_28[u32CoreId]))&&(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_28[u32CoreId]))         /*if interrupts were enabled*/
+    {
+        OsIf_ResumeAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+        ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+    }
+}
+
+void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_29(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    if(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_29[u32CoreId])
+    {
+#if ((defined MCAL_ENABLE_USER_MODE_SUPPORT)&&(!defined MCAL_PLATFORM_ARM_M0PLUS))
+        msr_ADC_EXCLUSIVE_AREA_29[u32CoreId] = OsIf_Trusted_Call_Return(Adc_schm_read_msr);
+#else
+        msr_ADC_EXCLUSIVE_AREA_29[u32CoreId] = Adc_schm_read_msr();  /*read MSR (to store interrupts state)*/
+#endif /* MCAL_ENABLE_USER_MODE_SUPPORT */
+        if (ISR_ON(msr_ADC_EXCLUSIVE_AREA_29[u32CoreId])) /*if MSR[EE] = 0, skip calling Suspend/Resume AllInterrupts*/
+        {
+            OsIf_SuspendAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+            ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+        }
+    }
+    reentry_guard_ADC_EXCLUSIVE_AREA_29[u32CoreId]++;
+}
+
+void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_29(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    reentry_guard_ADC_EXCLUSIVE_AREA_29[u32CoreId]--;
+    if ((ISR_ON(msr_ADC_EXCLUSIVE_AREA_29[u32CoreId]))&&(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_29[u32CoreId]))         /*if interrupts were enabled*/
+    {
+        OsIf_ResumeAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+        ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+    }
+}
+
+void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_30(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    if(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_30[u32CoreId])
+    {
+#if ((defined MCAL_ENABLE_USER_MODE_SUPPORT)&&(!defined MCAL_PLATFORM_ARM_M0PLUS))
+        msr_ADC_EXCLUSIVE_AREA_30[u32CoreId] = OsIf_Trusted_Call_Return(Adc_schm_read_msr);
+#else
+        msr_ADC_EXCLUSIVE_AREA_30[u32CoreId] = Adc_schm_read_msr();  /*read MSR (to store interrupts state)*/
+#endif /* MCAL_ENABLE_USER_MODE_SUPPORT */
+        if (ISR_ON(msr_ADC_EXCLUSIVE_AREA_30[u32CoreId])) /*if MSR[EE] = 0, skip calling Suspend/Resume AllInterrupts*/
+        {
+            OsIf_SuspendAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+            ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+        }
+    }
+    reentry_guard_ADC_EXCLUSIVE_AREA_30[u32CoreId]++;
+}
+
+void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_30(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    reentry_guard_ADC_EXCLUSIVE_AREA_30[u32CoreId]--;
+    if ((ISR_ON(msr_ADC_EXCLUSIVE_AREA_30[u32CoreId]))&&(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_30[u32CoreId]))         /*if interrupts were enabled*/
+    {
+        OsIf_ResumeAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+        ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+    }
+}
+
+void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_31(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    if(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_31[u32CoreId])
+    {
+#if ((defined MCAL_ENABLE_USER_MODE_SUPPORT)&&(!defined MCAL_PLATFORM_ARM_M0PLUS))
+        msr_ADC_EXCLUSIVE_AREA_31[u32CoreId] = OsIf_Trusted_Call_Return(Adc_schm_read_msr);
+#else
+        msr_ADC_EXCLUSIVE_AREA_31[u32CoreId] = Adc_schm_read_msr();  /*read MSR (to store interrupts state)*/
+#endif /* MCAL_ENABLE_USER_MODE_SUPPORT */
+        if (ISR_ON(msr_ADC_EXCLUSIVE_AREA_31[u32CoreId])) /*if MSR[EE] = 0, skip calling Suspend/Resume AllInterrupts*/
+        {
+            OsIf_SuspendAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+            ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+        }
+    }
+    reentry_guard_ADC_EXCLUSIVE_AREA_31[u32CoreId]++;
+}
+
+void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_31(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    reentry_guard_ADC_EXCLUSIVE_AREA_31[u32CoreId]--;
+    if ((ISR_ON(msr_ADC_EXCLUSIVE_AREA_31[u32CoreId]))&&(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_31[u32CoreId]))         /*if interrupts were enabled*/
+    {
+        OsIf_ResumeAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+        ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+    }
+}
+
+void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_32(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    if(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_32[u32CoreId])
+    {
+#if ((defined MCAL_ENABLE_USER_MODE_SUPPORT)&&(!defined MCAL_PLATFORM_ARM_M0PLUS))
+        msr_ADC_EXCLUSIVE_AREA_32[u32CoreId] = OsIf_Trusted_Call_Return(Adc_schm_read_msr);
+#else
+        msr_ADC_EXCLUSIVE_AREA_32[u32CoreId] = Adc_schm_read_msr();  /*read MSR (to store interrupts state)*/
+#endif /* MCAL_ENABLE_USER_MODE_SUPPORT */
+        if (ISR_ON(msr_ADC_EXCLUSIVE_AREA_32[u32CoreId])) /*if MSR[EE] = 0, skip calling Suspend/Resume AllInterrupts*/
+        {
+            OsIf_SuspendAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+            ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+        }
+    }
+    reentry_guard_ADC_EXCLUSIVE_AREA_32[u32CoreId]++;
+}
+
+void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_32(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    reentry_guard_ADC_EXCLUSIVE_AREA_32[u32CoreId]--;
+    if ((ISR_ON(msr_ADC_EXCLUSIVE_AREA_32[u32CoreId]))&&(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_32[u32CoreId]))         /*if interrupts were enabled*/
+    {
+        OsIf_ResumeAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+        ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+    }
+}
+
+void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_33(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    if(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_33[u32CoreId])
+    {
+#if ((defined MCAL_ENABLE_USER_MODE_SUPPORT)&&(!defined MCAL_PLATFORM_ARM_M0PLUS))
+        msr_ADC_EXCLUSIVE_AREA_33[u32CoreId] = OsIf_Trusted_Call_Return(Adc_schm_read_msr);
+#else
+        msr_ADC_EXCLUSIVE_AREA_33[u32CoreId] = Adc_schm_read_msr();  /*read MSR (to store interrupts state)*/
+#endif /* MCAL_ENABLE_USER_MODE_SUPPORT */
+        if (ISR_ON(msr_ADC_EXCLUSIVE_AREA_33[u32CoreId])) /*if MSR[EE] = 0, skip calling Suspend/Resume AllInterrupts*/
+        {
+            OsIf_SuspendAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+            ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+        }
+    }
+    reentry_guard_ADC_EXCLUSIVE_AREA_33[u32CoreId]++;
+}
+
+void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_33(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    reentry_guard_ADC_EXCLUSIVE_AREA_33[u32CoreId]--;
+    if ((ISR_ON(msr_ADC_EXCLUSIVE_AREA_33[u32CoreId]))&&(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_33[u32CoreId]))         /*if interrupts were enabled*/
+    {
+        OsIf_ResumeAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+        ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+    }
+}
+
+void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_34(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    if(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_34[u32CoreId])
+    {
+#if ((defined MCAL_ENABLE_USER_MODE_SUPPORT)&&(!defined MCAL_PLATFORM_ARM_M0PLUS))
+        msr_ADC_EXCLUSIVE_AREA_34[u32CoreId] = OsIf_Trusted_Call_Return(Adc_schm_read_msr);
+#else
+        msr_ADC_EXCLUSIVE_AREA_34[u32CoreId] = Adc_schm_read_msr();  /*read MSR (to store interrupts state)*/
+#endif /* MCAL_ENABLE_USER_MODE_SUPPORT */
+        if (ISR_ON(msr_ADC_EXCLUSIVE_AREA_34[u32CoreId])) /*if MSR[EE] = 0, skip calling Suspend/Resume AllInterrupts*/
+        {
+            OsIf_SuspendAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+            ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+        }
+    }
+    reentry_guard_ADC_EXCLUSIVE_AREA_34[u32CoreId]++;
+}
+
+void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_34(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    reentry_guard_ADC_EXCLUSIVE_AREA_34[u32CoreId]--;
+    if ((ISR_ON(msr_ADC_EXCLUSIVE_AREA_34[u32CoreId]))&&(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_34[u32CoreId]))         /*if interrupts were enabled*/
+    {
+        OsIf_ResumeAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+        ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+    }
+}
+
+void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_35(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    if(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_35[u32CoreId])
+    {
+#if ((defined MCAL_ENABLE_USER_MODE_SUPPORT)&&(!defined MCAL_PLATFORM_ARM_M0PLUS))
+        msr_ADC_EXCLUSIVE_AREA_35[u32CoreId] = OsIf_Trusted_Call_Return(Adc_schm_read_msr);
+#else
+        msr_ADC_EXCLUSIVE_AREA_35[u32CoreId] = Adc_schm_read_msr();  /*read MSR (to store interrupts state)*/
+#endif /* MCAL_ENABLE_USER_MODE_SUPPORT */
+        if (ISR_ON(msr_ADC_EXCLUSIVE_AREA_35[u32CoreId])) /*if MSR[EE] = 0, skip calling Suspend/Resume AllInterrupts*/
+        {
+            OsIf_SuspendAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+            ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+        }
+    }
+    reentry_guard_ADC_EXCLUSIVE_AREA_35[u32CoreId]++;
+}
+
+void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_35(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    reentry_guard_ADC_EXCLUSIVE_AREA_35[u32CoreId]--;
+    if ((ISR_ON(msr_ADC_EXCLUSIVE_AREA_35[u32CoreId]))&&(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_35[u32CoreId]))         /*if interrupts were enabled*/
+    {
+        OsIf_ResumeAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+        ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+    }
+}
+
+void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_36(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    if(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_36[u32CoreId])
+    {
+#if ((defined MCAL_ENABLE_USER_MODE_SUPPORT)&&(!defined MCAL_PLATFORM_ARM_M0PLUS))
+        msr_ADC_EXCLUSIVE_AREA_36[u32CoreId] = OsIf_Trusted_Call_Return(Adc_schm_read_msr);
+#else
+        msr_ADC_EXCLUSIVE_AREA_36[u32CoreId] = Adc_schm_read_msr();  /*read MSR (to store interrupts state)*/
+#endif /* MCAL_ENABLE_USER_MODE_SUPPORT */
+        if (ISR_ON(msr_ADC_EXCLUSIVE_AREA_36[u32CoreId])) /*if MSR[EE] = 0, skip calling Suspend/Resume AllInterrupts*/
+        {
+            OsIf_SuspendAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+            ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+        }
+    }
+    reentry_guard_ADC_EXCLUSIVE_AREA_36[u32CoreId]++;
+}
+
+void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_36(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    reentry_guard_ADC_EXCLUSIVE_AREA_36[u32CoreId]--;
+    if ((ISR_ON(msr_ADC_EXCLUSIVE_AREA_36[u32CoreId]))&&(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_36[u32CoreId]))         /*if interrupts were enabled*/
+    {
+        OsIf_ResumeAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+        ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+    }
+}
+
+void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_37(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    if(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_37[u32CoreId])
+    {
+#if ((defined MCAL_ENABLE_USER_MODE_SUPPORT)&&(!defined MCAL_PLATFORM_ARM_M0PLUS))
+        msr_ADC_EXCLUSIVE_AREA_37[u32CoreId] = OsIf_Trusted_Call_Return(Adc_schm_read_msr);
+#else
+        msr_ADC_EXCLUSIVE_AREA_37[u32CoreId] = Adc_schm_read_msr();  /*read MSR (to store interrupts state)*/
+#endif /* MCAL_ENABLE_USER_MODE_SUPPORT */
+        if (ISR_ON(msr_ADC_EXCLUSIVE_AREA_37[u32CoreId])) /*if MSR[EE] = 0, skip calling Suspend/Resume AllInterrupts*/
+        {
+            OsIf_SuspendAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+            ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+        }
+    }
+    reentry_guard_ADC_EXCLUSIVE_AREA_37[u32CoreId]++;
+}
+
+void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_37(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    reentry_guard_ADC_EXCLUSIVE_AREA_37[u32CoreId]--;
+    if ((ISR_ON(msr_ADC_EXCLUSIVE_AREA_37[u32CoreId]))&&(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_37[u32CoreId]))         /*if interrupts were enabled*/
+    {
+        OsIf_ResumeAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+        ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+    }
+}
+
+void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_38(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    if(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_38[u32CoreId])
+    {
+#if ((defined MCAL_ENABLE_USER_MODE_SUPPORT)&&(!defined MCAL_PLATFORM_ARM_M0PLUS))
+        msr_ADC_EXCLUSIVE_AREA_38[u32CoreId] = OsIf_Trusted_Call_Return(Adc_schm_read_msr);
+#else
+        msr_ADC_EXCLUSIVE_AREA_38[u32CoreId] = Adc_schm_read_msr();  /*read MSR (to store interrupts state)*/
+#endif /* MCAL_ENABLE_USER_MODE_SUPPORT */
+        if (ISR_ON(msr_ADC_EXCLUSIVE_AREA_38[u32CoreId])) /*if MSR[EE] = 0, skip calling Suspend/Resume AllInterrupts*/
+        {
+            OsIf_SuspendAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+            ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+        }
+    }
+    reentry_guard_ADC_EXCLUSIVE_AREA_38[u32CoreId]++;
+}
+
+void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_38(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    reentry_guard_ADC_EXCLUSIVE_AREA_38[u32CoreId]--;
+    if ((ISR_ON(msr_ADC_EXCLUSIVE_AREA_38[u32CoreId]))&&(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_38[u32CoreId]))         /*if interrupts were enabled*/
+    {
+        OsIf_ResumeAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+        ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+    }
+}
+
+void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_39(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    if(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_39[u32CoreId])
+    {
+#if ((defined MCAL_ENABLE_USER_MODE_SUPPORT)&&(!defined MCAL_PLATFORM_ARM_M0PLUS))
+        msr_ADC_EXCLUSIVE_AREA_39[u32CoreId] = OsIf_Trusted_Call_Return(Adc_schm_read_msr);
+#else
+        msr_ADC_EXCLUSIVE_AREA_39[u32CoreId] = Adc_schm_read_msr();  /*read MSR (to store interrupts state)*/
+#endif /* MCAL_ENABLE_USER_MODE_SUPPORT */
+        if (ISR_ON(msr_ADC_EXCLUSIVE_AREA_39[u32CoreId])) /*if MSR[EE] = 0, skip calling Suspend/Resume AllInterrupts*/
+        {
+            OsIf_SuspendAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+            ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+        }
+    }
+    reentry_guard_ADC_EXCLUSIVE_AREA_39[u32CoreId]++;
+}
+
+void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_39(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    reentry_guard_ADC_EXCLUSIVE_AREA_39[u32CoreId]--;
+    if ((ISR_ON(msr_ADC_EXCLUSIVE_AREA_39[u32CoreId]))&&(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_39[u32CoreId]))         /*if interrupts were enabled*/
+    {
+        OsIf_ResumeAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+        ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+    }
+}
+
+void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_40(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    if(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_40[u32CoreId])
+    {
+#if ((defined MCAL_ENABLE_USER_MODE_SUPPORT)&&(!defined MCAL_PLATFORM_ARM_M0PLUS))
+        msr_ADC_EXCLUSIVE_AREA_40[u32CoreId] = OsIf_Trusted_Call_Return(Adc_schm_read_msr);
+#else
+        msr_ADC_EXCLUSIVE_AREA_40[u32CoreId] = Adc_schm_read_msr();  /*read MSR (to store interrupts state)*/
+#endif /* MCAL_ENABLE_USER_MODE_SUPPORT */
+        if (ISR_ON(msr_ADC_EXCLUSIVE_AREA_40[u32CoreId])) /*if MSR[EE] = 0, skip calling Suspend/Resume AllInterrupts*/
+        {
+            OsIf_SuspendAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+            ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+        }
+    }
+    reentry_guard_ADC_EXCLUSIVE_AREA_40[u32CoreId]++;
+}
+
+void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_40(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    reentry_guard_ADC_EXCLUSIVE_AREA_40[u32CoreId]--;
+    if ((ISR_ON(msr_ADC_EXCLUSIVE_AREA_40[u32CoreId]))&&(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_40[u32CoreId]))         /*if interrupts were enabled*/
+    {
+        OsIf_ResumeAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+        ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+    }
+}
+
+void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_41(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    if(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_41[u32CoreId])
+    {
+#if ((defined MCAL_ENABLE_USER_MODE_SUPPORT)&&(!defined MCAL_PLATFORM_ARM_M0PLUS))
+        msr_ADC_EXCLUSIVE_AREA_41[u32CoreId] = OsIf_Trusted_Call_Return(Adc_schm_read_msr);
+#else
+        msr_ADC_EXCLUSIVE_AREA_41[u32CoreId] = Adc_schm_read_msr();  /*read MSR (to store interrupts state)*/
+#endif /* MCAL_ENABLE_USER_MODE_SUPPORT */
+        if (ISR_ON(msr_ADC_EXCLUSIVE_AREA_41[u32CoreId])) /*if MSR[EE] = 0, skip calling Suspend/Resume AllInterrupts*/
+        {
+            OsIf_SuspendAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+            ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+        }
+    }
+    reentry_guard_ADC_EXCLUSIVE_AREA_41[u32CoreId]++;
+}
+
+void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_41(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    reentry_guard_ADC_EXCLUSIVE_AREA_41[u32CoreId]--;
+    if ((ISR_ON(msr_ADC_EXCLUSIVE_AREA_41[u32CoreId]))&&(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_41[u32CoreId]))         /*if interrupts were enabled*/
+    {
+        OsIf_ResumeAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+        ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+    }
+}
+
+void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_42(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    if(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_42[u32CoreId])
+    {
+#if ((defined MCAL_ENABLE_USER_MODE_SUPPORT)&&(!defined MCAL_PLATFORM_ARM_M0PLUS))
+        msr_ADC_EXCLUSIVE_AREA_42[u32CoreId] = OsIf_Trusted_Call_Return(Adc_schm_read_msr);
+#else
+        msr_ADC_EXCLUSIVE_AREA_42[u32CoreId] = Adc_schm_read_msr();  /*read MSR (to store interrupts state)*/
+#endif /* MCAL_ENABLE_USER_MODE_SUPPORT */
+        if (ISR_ON(msr_ADC_EXCLUSIVE_AREA_42[u32CoreId])) /*if MSR[EE] = 0, skip calling Suspend/Resume AllInterrupts*/
+        {
+            OsIf_SuspendAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+            ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+        }
+    }
+    reentry_guard_ADC_EXCLUSIVE_AREA_42[u32CoreId]++;
+}
+
+void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_42(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    reentry_guard_ADC_EXCLUSIVE_AREA_42[u32CoreId]--;
+    if ((ISR_ON(msr_ADC_EXCLUSIVE_AREA_42[u32CoreId]))&&(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_42[u32CoreId]))         /*if interrupts were enabled*/
+    {
+        OsIf_ResumeAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+        ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+    }
+}
+
+void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_43(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    if(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_43[u32CoreId])
+    {
+#if ((defined MCAL_ENABLE_USER_MODE_SUPPORT)&&(!defined MCAL_PLATFORM_ARM_M0PLUS))
+        msr_ADC_EXCLUSIVE_AREA_43[u32CoreId] = OsIf_Trusted_Call_Return(Adc_schm_read_msr);
+#else
+        msr_ADC_EXCLUSIVE_AREA_43[u32CoreId] = Adc_schm_read_msr();  /*read MSR (to store interrupts state)*/
+#endif /* MCAL_ENABLE_USER_MODE_SUPPORT */
+        if (ISR_ON(msr_ADC_EXCLUSIVE_AREA_43[u32CoreId])) /*if MSR[EE] = 0, skip calling Suspend/Resume AllInterrupts*/
+        {
+            OsIf_SuspendAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+            ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+        }
+    }
+    reentry_guard_ADC_EXCLUSIVE_AREA_43[u32CoreId]++;
+}
+
+void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_43(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    reentry_guard_ADC_EXCLUSIVE_AREA_43[u32CoreId]--;
+    if ((ISR_ON(msr_ADC_EXCLUSIVE_AREA_43[u32CoreId]))&&(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_43[u32CoreId]))         /*if interrupts were enabled*/
+    {
+        OsIf_ResumeAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+        ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+    }
+}
+
+void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_44(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    if(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_44[u32CoreId])
+    {
+#if ((defined MCAL_ENABLE_USER_MODE_SUPPORT)&&(!defined MCAL_PLATFORM_ARM_M0PLUS))
+        msr_ADC_EXCLUSIVE_AREA_44[u32CoreId] = OsIf_Trusted_Call_Return(Adc_schm_read_msr);
+#else
+        msr_ADC_EXCLUSIVE_AREA_44[u32CoreId] = Adc_schm_read_msr();  /*read MSR (to store interrupts state)*/
+#endif /* MCAL_ENABLE_USER_MODE_SUPPORT */
+        if (ISR_ON(msr_ADC_EXCLUSIVE_AREA_44[u32CoreId])) /*if MSR[EE] = 0, skip calling Suspend/Resume AllInterrupts*/
+        {
+            OsIf_SuspendAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+            ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+        }
+    }
+    reentry_guard_ADC_EXCLUSIVE_AREA_44[u32CoreId]++;
+}
+
+void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_44(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    reentry_guard_ADC_EXCLUSIVE_AREA_44[u32CoreId]--;
+    if ((ISR_ON(msr_ADC_EXCLUSIVE_AREA_44[u32CoreId]))&&(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_44[u32CoreId]))         /*if interrupts were enabled*/
+    {
+        OsIf_ResumeAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+        ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+    }
+}
+
+void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_45(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    if(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_45[u32CoreId])
+    {
+#if ((defined MCAL_ENABLE_USER_MODE_SUPPORT)&&(!defined MCAL_PLATFORM_ARM_M0PLUS))
+        msr_ADC_EXCLUSIVE_AREA_45[u32CoreId] = OsIf_Trusted_Call_Return(Adc_schm_read_msr);
+#else
+        msr_ADC_EXCLUSIVE_AREA_45[u32CoreId] = Adc_schm_read_msr();  /*read MSR (to store interrupts state)*/
+#endif /* MCAL_ENABLE_USER_MODE_SUPPORT */
+        if (ISR_ON(msr_ADC_EXCLUSIVE_AREA_45[u32CoreId])) /*if MSR[EE] = 0, skip calling Suspend/Resume AllInterrupts*/
+        {
+            OsIf_SuspendAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+            ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+        }
+    }
+    reentry_guard_ADC_EXCLUSIVE_AREA_45[u32CoreId]++;
+}
+
+void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_45(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    reentry_guard_ADC_EXCLUSIVE_AREA_45[u32CoreId]--;
+    if ((ISR_ON(msr_ADC_EXCLUSIVE_AREA_45[u32CoreId]))&&(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_45[u32CoreId]))         /*if interrupts were enabled*/
+    {
+        OsIf_ResumeAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+        ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+    }
+}
+
+void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_46(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    if(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_46[u32CoreId])
+    {
+#if ((defined MCAL_ENABLE_USER_MODE_SUPPORT)&&(!defined MCAL_PLATFORM_ARM_M0PLUS))
+        msr_ADC_EXCLUSIVE_AREA_46[u32CoreId] = OsIf_Trusted_Call_Return(Adc_schm_read_msr);
+#else
+        msr_ADC_EXCLUSIVE_AREA_46[u32CoreId] = Adc_schm_read_msr();  /*read MSR (to store interrupts state)*/
+#endif /* MCAL_ENABLE_USER_MODE_SUPPORT */
+        if (ISR_ON(msr_ADC_EXCLUSIVE_AREA_46[u32CoreId])) /*if MSR[EE] = 0, skip calling Suspend/Resume AllInterrupts*/
+        {
+            OsIf_SuspendAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+            ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+        }
+    }
+    reentry_guard_ADC_EXCLUSIVE_AREA_46[u32CoreId]++;
+}
+
+void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_46(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    reentry_guard_ADC_EXCLUSIVE_AREA_46[u32CoreId]--;
+    if ((ISR_ON(msr_ADC_EXCLUSIVE_AREA_46[u32CoreId]))&&(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_46[u32CoreId]))         /*if interrupts were enabled*/
+    {
+        OsIf_ResumeAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+        ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+    }
+}
+
+void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_47(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    if(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_47[u32CoreId])
+    {
+#if ((defined MCAL_ENABLE_USER_MODE_SUPPORT)&&(!defined MCAL_PLATFORM_ARM_M0PLUS))
+        msr_ADC_EXCLUSIVE_AREA_47[u32CoreId] = OsIf_Trusted_Call_Return(Adc_schm_read_msr);
+#else
+        msr_ADC_EXCLUSIVE_AREA_47[u32CoreId] = Adc_schm_read_msr();  /*read MSR (to store interrupts state)*/
+#endif /* MCAL_ENABLE_USER_MODE_SUPPORT */
+        if (ISR_ON(msr_ADC_EXCLUSIVE_AREA_47[u32CoreId])) /*if MSR[EE] = 0, skip calling Suspend/Resume AllInterrupts*/
+        {
+            OsIf_SuspendAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+            ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+        }
+    }
+    reentry_guard_ADC_EXCLUSIVE_AREA_47[u32CoreId]++;
+}
+
+void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_47(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    reentry_guard_ADC_EXCLUSIVE_AREA_47[u32CoreId]--;
+    if ((ISR_ON(msr_ADC_EXCLUSIVE_AREA_47[u32CoreId]))&&(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_47[u32CoreId]))         /*if interrupts were enabled*/
+    {
+        OsIf_ResumeAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+        ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+    }
+}
+
+void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_48(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    if(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_48[u32CoreId])
+    {
+#if ((defined MCAL_ENABLE_USER_MODE_SUPPORT)&&(!defined MCAL_PLATFORM_ARM_M0PLUS))
+        msr_ADC_EXCLUSIVE_AREA_48[u32CoreId] = OsIf_Trusted_Call_Return(Adc_schm_read_msr);
+#else
+        msr_ADC_EXCLUSIVE_AREA_48[u32CoreId] = Adc_schm_read_msr();  /*read MSR (to store interrupts state)*/
+#endif /* MCAL_ENABLE_USER_MODE_SUPPORT */
+        if (ISR_ON(msr_ADC_EXCLUSIVE_AREA_48[u32CoreId])) /*if MSR[EE] = 0, skip calling Suspend/Resume AllInterrupts*/
+        {
+            OsIf_SuspendAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+            ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+        }
+    }
+    reentry_guard_ADC_EXCLUSIVE_AREA_48[u32CoreId]++;
+}
+
+void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_48(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    reentry_guard_ADC_EXCLUSIVE_AREA_48[u32CoreId]--;
+    if ((ISR_ON(msr_ADC_EXCLUSIVE_AREA_48[u32CoreId]))&&(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_48[u32CoreId]))         /*if interrupts were enabled*/
+    {
+        OsIf_ResumeAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+        ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+    }
+}
+
+void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_49(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    if(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_49[u32CoreId])
+    {
+#if ((defined MCAL_ENABLE_USER_MODE_SUPPORT)&&(!defined MCAL_PLATFORM_ARM_M0PLUS))
+        msr_ADC_EXCLUSIVE_AREA_49[u32CoreId] = OsIf_Trusted_Call_Return(Adc_schm_read_msr);
+#else
+        msr_ADC_EXCLUSIVE_AREA_49[u32CoreId] = Adc_schm_read_msr();  /*read MSR (to store interrupts state)*/
+#endif /* MCAL_ENABLE_USER_MODE_SUPPORT */
+        if (ISR_ON(msr_ADC_EXCLUSIVE_AREA_49[u32CoreId])) /*if MSR[EE] = 0, skip calling Suspend/Resume AllInterrupts*/
+        {
+            OsIf_SuspendAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+            ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+        }
+    }
+    reentry_guard_ADC_EXCLUSIVE_AREA_49[u32CoreId]++;
+}
+
+void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_49(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    reentry_guard_ADC_EXCLUSIVE_AREA_49[u32CoreId]--;
+    if ((ISR_ON(msr_ADC_EXCLUSIVE_AREA_49[u32CoreId]))&&(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_49[u32CoreId]))         /*if interrupts were enabled*/
+    {
+        OsIf_ResumeAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+        ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+    }
+}
+
+void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_50(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    if(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_50[u32CoreId])
+    {
+#if ((defined MCAL_ENABLE_USER_MODE_SUPPORT)&&(!defined MCAL_PLATFORM_ARM_M0PLUS))
+        msr_ADC_EXCLUSIVE_AREA_50[u32CoreId] = OsIf_Trusted_Call_Return(Adc_schm_read_msr);
+#else
+        msr_ADC_EXCLUSIVE_AREA_50[u32CoreId] = Adc_schm_read_msr();  /*read MSR (to store interrupts state)*/
+#endif /* MCAL_ENABLE_USER_MODE_SUPPORT */
+        if (ISR_ON(msr_ADC_EXCLUSIVE_AREA_50[u32CoreId])) /*if MSR[EE] = 0, skip calling Suspend/Resume AllInterrupts*/
+        {
+            OsIf_SuspendAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+            ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+        }
+    }
+    reentry_guard_ADC_EXCLUSIVE_AREA_50[u32CoreId]++;
+}
+
+void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_50(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    reentry_guard_ADC_EXCLUSIVE_AREA_50[u32CoreId]--;
+    if ((ISR_ON(msr_ADC_EXCLUSIVE_AREA_50[u32CoreId]))&&(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_50[u32CoreId]))         /*if interrupts were enabled*/
+    {
+        OsIf_ResumeAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+        ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+    }
+}
+
+void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_54(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    if(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_54[u32CoreId])
+    {
+#if ((defined MCAL_ENABLE_USER_MODE_SUPPORT)&&(!defined MCAL_PLATFORM_ARM_M0PLUS))
+        msr_ADC_EXCLUSIVE_AREA_54[u32CoreId] = OsIf_Trusted_Call_Return(Adc_schm_read_msr);
+#else
+        msr_ADC_EXCLUSIVE_AREA_54[u32CoreId] = Adc_schm_read_msr();  /*read MSR (to store interrupts state)*/
+#endif /* MCAL_ENABLE_USER_MODE_SUPPORT */
+        if (ISR_ON(msr_ADC_EXCLUSIVE_AREA_54[u32CoreId])) /*if MSR[EE] = 0, skip calling Suspend/Resume AllInterrupts*/
+        {
+            OsIf_SuspendAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+            ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+        }
+    }
+    reentry_guard_ADC_EXCLUSIVE_AREA_54[u32CoreId]++;
+}
+
+void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_54(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    reentry_guard_ADC_EXCLUSIVE_AREA_54[u32CoreId]--;
+    if ((ISR_ON(msr_ADC_EXCLUSIVE_AREA_54[u32CoreId]))&&(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_54[u32CoreId]))         /*if interrupts were enabled*/
+    {
+        OsIf_ResumeAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+        ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+    }
+}
+
+void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_55(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    if(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_55[u32CoreId])
+    {
+#if ((defined MCAL_ENABLE_USER_MODE_SUPPORT)&&(!defined MCAL_PLATFORM_ARM_M0PLUS))
+        msr_ADC_EXCLUSIVE_AREA_55[u32CoreId] = OsIf_Trusted_Call_Return(Adc_schm_read_msr);
+#else
+        msr_ADC_EXCLUSIVE_AREA_55[u32CoreId] = Adc_schm_read_msr();  /*read MSR (to store interrupts state)*/
+#endif /* MCAL_ENABLE_USER_MODE_SUPPORT */
+        if (ISR_ON(msr_ADC_EXCLUSIVE_AREA_55[u32CoreId])) /*if MSR[EE] = 0, skip calling Suspend/Resume AllInterrupts*/
+        {
+            OsIf_SuspendAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+            ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+        }
+    }
+    reentry_guard_ADC_EXCLUSIVE_AREA_55[u32CoreId]++;
+}
+
+void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_55(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    reentry_guard_ADC_EXCLUSIVE_AREA_55[u32CoreId]--;
+    if ((ISR_ON(msr_ADC_EXCLUSIVE_AREA_55[u32CoreId]))&&(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_55[u32CoreId]))         /*if interrupts were enabled*/
+    {
+        OsIf_ResumeAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+        ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+    }
+}
+
+void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_56(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    if(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_56[u32CoreId])
+    {
+#if ((defined MCAL_ENABLE_USER_MODE_SUPPORT)&&(!defined MCAL_PLATFORM_ARM_M0PLUS))
+        msr_ADC_EXCLUSIVE_AREA_56[u32CoreId] = OsIf_Trusted_Call_Return(Adc_schm_read_msr);
+#else
+        msr_ADC_EXCLUSIVE_AREA_56[u32CoreId] = Adc_schm_read_msr();  /*read MSR (to store interrupts state)*/
+#endif /* MCAL_ENABLE_USER_MODE_SUPPORT */
+        if (ISR_ON(msr_ADC_EXCLUSIVE_AREA_56[u32CoreId])) /*if MSR[EE] = 0, skip calling Suspend/Resume AllInterrupts*/
+        {
+            OsIf_SuspendAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+            ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+        }
+    }
+    reentry_guard_ADC_EXCLUSIVE_AREA_56[u32CoreId]++;
+}
+
+void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_56(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    reentry_guard_ADC_EXCLUSIVE_AREA_56[u32CoreId]--;
+    if ((ISR_ON(msr_ADC_EXCLUSIVE_AREA_56[u32CoreId]))&&(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_56[u32CoreId]))         /*if interrupts were enabled*/
+    {
+        OsIf_ResumeAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+        ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+    }
+}
+
+void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_57(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    if(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_57[u32CoreId])
+    {
+#if ((defined MCAL_ENABLE_USER_MODE_SUPPORT)&&(!defined MCAL_PLATFORM_ARM_M0PLUS))
+        msr_ADC_EXCLUSIVE_AREA_57[u32CoreId] = OsIf_Trusted_Call_Return(Adc_schm_read_msr);
+#else
+        msr_ADC_EXCLUSIVE_AREA_57[u32CoreId] = Adc_schm_read_msr();  /*read MSR (to store interrupts state)*/
+#endif /* MCAL_ENABLE_USER_MODE_SUPPORT */
+        if (ISR_ON(msr_ADC_EXCLUSIVE_AREA_57[u32CoreId])) /*if MSR[EE] = 0, skip calling Suspend/Resume AllInterrupts*/
+        {
+            OsIf_SuspendAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+            ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+        }
+    }
+    reentry_guard_ADC_EXCLUSIVE_AREA_57[u32CoreId]++;
+}
+
+void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_57(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    reentry_guard_ADC_EXCLUSIVE_AREA_57[u32CoreId]--;
+    if ((ISR_ON(msr_ADC_EXCLUSIVE_AREA_57[u32CoreId]))&&(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_57[u32CoreId]))         /*if interrupts were enabled*/
+    {
+        OsIf_ResumeAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+        ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+    }
+}
+
+void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_58(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    if(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_58[u32CoreId])
+    {
+#if ((defined MCAL_ENABLE_USER_MODE_SUPPORT)&&(!defined MCAL_PLATFORM_ARM_M0PLUS))
+        msr_ADC_EXCLUSIVE_AREA_58[u32CoreId] = OsIf_Trusted_Call_Return(Adc_schm_read_msr);
+#else
+        msr_ADC_EXCLUSIVE_AREA_58[u32CoreId] = Adc_schm_read_msr();  /*read MSR (to store interrupts state)*/
+#endif /* MCAL_ENABLE_USER_MODE_SUPPORT */
+        if (ISR_ON(msr_ADC_EXCLUSIVE_AREA_58[u32CoreId])) /*if MSR[EE] = 0, skip calling Suspend/Resume AllInterrupts*/
+        {
+            OsIf_SuspendAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+            ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+        }
+    }
+    reentry_guard_ADC_EXCLUSIVE_AREA_58[u32CoreId]++;
+}
+
+void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_58(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    reentry_guard_ADC_EXCLUSIVE_AREA_58[u32CoreId]--;
+    if ((ISR_ON(msr_ADC_EXCLUSIVE_AREA_58[u32CoreId]))&&(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_58[u32CoreId]))         /*if interrupts were enabled*/
+    {
+        OsIf_ResumeAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+        ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+    }
+}
+
+void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_59(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    if(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_59[u32CoreId])
+    {
+#if ((defined MCAL_ENABLE_USER_MODE_SUPPORT)&&(!defined MCAL_PLATFORM_ARM_M0PLUS))
+        msr_ADC_EXCLUSIVE_AREA_59[u32CoreId] = OsIf_Trusted_Call_Return(Adc_schm_read_msr);
+#else
+        msr_ADC_EXCLUSIVE_AREA_59[u32CoreId] = Adc_schm_read_msr();  /*read MSR (to store interrupts state)*/
+#endif /* MCAL_ENABLE_USER_MODE_SUPPORT */
+        if (ISR_ON(msr_ADC_EXCLUSIVE_AREA_59[u32CoreId])) /*if MSR[EE] = 0, skip calling Suspend/Resume AllInterrupts*/
+        {
+            OsIf_SuspendAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+            ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+        }
+    }
+    reentry_guard_ADC_EXCLUSIVE_AREA_59[u32CoreId]++;
+}
+
+void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_59(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    reentry_guard_ADC_EXCLUSIVE_AREA_59[u32CoreId]--;
+    if ((ISR_ON(msr_ADC_EXCLUSIVE_AREA_59[u32CoreId]))&&(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_59[u32CoreId]))         /*if interrupts were enabled*/
+    {
+        OsIf_ResumeAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+        ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+    }
+}
+
+void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_60(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    if(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_60[u32CoreId])
+    {
+#if ((defined MCAL_ENABLE_USER_MODE_SUPPORT)&&(!defined MCAL_PLATFORM_ARM_M0PLUS))
+        msr_ADC_EXCLUSIVE_AREA_60[u32CoreId] = OsIf_Trusted_Call_Return(Adc_schm_read_msr);
+#else
+        msr_ADC_EXCLUSIVE_AREA_60[u32CoreId] = Adc_schm_read_msr();  /*read MSR (to store interrupts state)*/
+#endif /* MCAL_ENABLE_USER_MODE_SUPPORT */
+        if (ISR_ON(msr_ADC_EXCLUSIVE_AREA_60[u32CoreId])) /*if MSR[EE] = 0, skip calling Suspend/Resume AllInterrupts*/
+        {
+            OsIf_SuspendAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+            ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+        }
+    }
+    reentry_guard_ADC_EXCLUSIVE_AREA_60[u32CoreId]++;
+}
+
+void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_60(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    reentry_guard_ADC_EXCLUSIVE_AREA_60[u32CoreId]--;
+    if ((ISR_ON(msr_ADC_EXCLUSIVE_AREA_60[u32CoreId]))&&(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_60[u32CoreId]))         /*if interrupts were enabled*/
+    {
+        OsIf_ResumeAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+        ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+    }
+}
+
+void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_61(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    if(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_61[u32CoreId])
+    {
+#if ((defined MCAL_ENABLE_USER_MODE_SUPPORT)&&(!defined MCAL_PLATFORM_ARM_M0PLUS))
+        msr_ADC_EXCLUSIVE_AREA_61[u32CoreId] = OsIf_Trusted_Call_Return(Adc_schm_read_msr);
+#else
+        msr_ADC_EXCLUSIVE_AREA_61[u32CoreId] = Adc_schm_read_msr();  /*read MSR (to store interrupts state)*/
+#endif /* MCAL_ENABLE_USER_MODE_SUPPORT */
+        if (ISR_ON(msr_ADC_EXCLUSIVE_AREA_61[u32CoreId])) /*if MSR[EE] = 0, skip calling Suspend/Resume AllInterrupts*/
+        {
+            OsIf_SuspendAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+            ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+        }
+    }
+    reentry_guard_ADC_EXCLUSIVE_AREA_61[u32CoreId]++;
+}
+
+void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_61(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    reentry_guard_ADC_EXCLUSIVE_AREA_61[u32CoreId]--;
+    if ((ISR_ON(msr_ADC_EXCLUSIVE_AREA_61[u32CoreId]))&&(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_61[u32CoreId]))         /*if interrupts were enabled*/
+    {
+        OsIf_ResumeAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+        ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+    }
+}
+
+void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_62(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    if(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_62[u32CoreId])
+    {
+#if ((defined MCAL_ENABLE_USER_MODE_SUPPORT)&&(!defined MCAL_PLATFORM_ARM_M0PLUS))
+        msr_ADC_EXCLUSIVE_AREA_62[u32CoreId] = OsIf_Trusted_Call_Return(Adc_schm_read_msr);
+#else
+        msr_ADC_EXCLUSIVE_AREA_62[u32CoreId] = Adc_schm_read_msr();  /*read MSR (to store interrupts state)*/
+#endif /* MCAL_ENABLE_USER_MODE_SUPPORT */
+        if (ISR_ON(msr_ADC_EXCLUSIVE_AREA_62[u32CoreId])) /*if MSR[EE] = 0, skip calling Suspend/Resume AllInterrupts*/
+        {
+            OsIf_SuspendAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+            ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+        }
+    }
+    reentry_guard_ADC_EXCLUSIVE_AREA_62[u32CoreId]++;
+}
+
+void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_62(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    reentry_guard_ADC_EXCLUSIVE_AREA_62[u32CoreId]--;
+    if ((ISR_ON(msr_ADC_EXCLUSIVE_AREA_62[u32CoreId]))&&(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_62[u32CoreId]))         /*if interrupts were enabled*/
+    {
+        OsIf_ResumeAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+        ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+    }
+}
+
+void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_63(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    if(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_63[u32CoreId])
+    {
+#if ((defined MCAL_ENABLE_USER_MODE_SUPPORT)&&(!defined MCAL_PLATFORM_ARM_M0PLUS))
+        msr_ADC_EXCLUSIVE_AREA_63[u32CoreId] = OsIf_Trusted_Call_Return(Adc_schm_read_msr);
+#else
+        msr_ADC_EXCLUSIVE_AREA_63[u32CoreId] = Adc_schm_read_msr();  /*read MSR (to store interrupts state)*/
+#endif /* MCAL_ENABLE_USER_MODE_SUPPORT */
+        if (ISR_ON(msr_ADC_EXCLUSIVE_AREA_63[u32CoreId])) /*if MSR[EE] = 0, skip calling Suspend/Resume AllInterrupts*/
+        {
+            OsIf_SuspendAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+            ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+        }
+    }
+    reentry_guard_ADC_EXCLUSIVE_AREA_63[u32CoreId]++;
+}
+
+void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_63(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    reentry_guard_ADC_EXCLUSIVE_AREA_63[u32CoreId]--;
+    if ((ISR_ON(msr_ADC_EXCLUSIVE_AREA_63[u32CoreId]))&&(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_63[u32CoreId]))         /*if interrupts were enabled*/
+    {
+        OsIf_ResumeAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+        ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+    }
+}
+
+void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_64(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    if(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_64[u32CoreId])
+    {
+#if ((defined MCAL_ENABLE_USER_MODE_SUPPORT)&&(!defined MCAL_PLATFORM_ARM_M0PLUS))
+        msr_ADC_EXCLUSIVE_AREA_64[u32CoreId] = OsIf_Trusted_Call_Return(Adc_schm_read_msr);
+#else
+        msr_ADC_EXCLUSIVE_AREA_64[u32CoreId] = Adc_schm_read_msr();  /*read MSR (to store interrupts state)*/
+#endif /* MCAL_ENABLE_USER_MODE_SUPPORT */
+        if (ISR_ON(msr_ADC_EXCLUSIVE_AREA_64[u32CoreId])) /*if MSR[EE] = 0, skip calling Suspend/Resume AllInterrupts*/
+        {
+            OsIf_SuspendAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+            ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+        }
+    }
+    reentry_guard_ADC_EXCLUSIVE_AREA_64[u32CoreId]++;
+}
+
+void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_64(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    reentry_guard_ADC_EXCLUSIVE_AREA_64[u32CoreId]--;
+    if ((ISR_ON(msr_ADC_EXCLUSIVE_AREA_64[u32CoreId]))&&(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_64[u32CoreId]))         /*if interrupts were enabled*/
+    {
+        OsIf_ResumeAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+        ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+    }
+}
+
+void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_65(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    if(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_65[u32CoreId])
+    {
+#if ((defined MCAL_ENABLE_USER_MODE_SUPPORT)&&(!defined MCAL_PLATFORM_ARM_M0PLUS))
+        msr_ADC_EXCLUSIVE_AREA_65[u32CoreId] = OsIf_Trusted_Call_Return(Adc_schm_read_msr);
+#else
+        msr_ADC_EXCLUSIVE_AREA_65[u32CoreId] = Adc_schm_read_msr();  /*read MSR (to store interrupts state)*/
+#endif /* MCAL_ENABLE_USER_MODE_SUPPORT */
+        if (ISR_ON(msr_ADC_EXCLUSIVE_AREA_65[u32CoreId])) /*if MSR[EE] = 0, skip calling Suspend/Resume AllInterrupts*/
+        {
+            OsIf_SuspendAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+            ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+        }
+    }
+    reentry_guard_ADC_EXCLUSIVE_AREA_65[u32CoreId]++;
+}
+
+void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_65(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    reentry_guard_ADC_EXCLUSIVE_AREA_65[u32CoreId]--;
+    if ((ISR_ON(msr_ADC_EXCLUSIVE_AREA_65[u32CoreId]))&&(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_65[u32CoreId]))         /*if interrupts were enabled*/
+    {
+        OsIf_ResumeAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+        ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+    }
+}
+
+void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_66(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    if(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_66[u32CoreId])
+    {
+#if ((defined MCAL_ENABLE_USER_MODE_SUPPORT)&&(!defined MCAL_PLATFORM_ARM_M0PLUS))
+        msr_ADC_EXCLUSIVE_AREA_66[u32CoreId] = OsIf_Trusted_Call_Return(Adc_schm_read_msr);
+#else
+        msr_ADC_EXCLUSIVE_AREA_66[u32CoreId] = Adc_schm_read_msr();  /*read MSR (to store interrupts state)*/
+#endif /* MCAL_ENABLE_USER_MODE_SUPPORT */
+        if (ISR_ON(msr_ADC_EXCLUSIVE_AREA_66[u32CoreId])) /*if MSR[EE] = 0, skip calling Suspend/Resume AllInterrupts*/
+        {
+            OsIf_SuspendAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+            ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+        }
+    }
+    reentry_guard_ADC_EXCLUSIVE_AREA_66[u32CoreId]++;
+}
+
+void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_66(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    reentry_guard_ADC_EXCLUSIVE_AREA_66[u32CoreId]--;
+    if ((ISR_ON(msr_ADC_EXCLUSIVE_AREA_66[u32CoreId]))&&(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_66[u32CoreId]))         /*if interrupts were enabled*/
+    {
+        OsIf_ResumeAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+        ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+    }
+}
+
+void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_67(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    if(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_67[u32CoreId])
+    {
+#if ((defined MCAL_ENABLE_USER_MODE_SUPPORT)&&(!defined MCAL_PLATFORM_ARM_M0PLUS))
+        msr_ADC_EXCLUSIVE_AREA_67[u32CoreId] = OsIf_Trusted_Call_Return(Adc_schm_read_msr);
+#else
+        msr_ADC_EXCLUSIVE_AREA_67[u32CoreId] = Adc_schm_read_msr();  /*read MSR (to store interrupts state)*/
+#endif /* MCAL_ENABLE_USER_MODE_SUPPORT */
+        if (ISR_ON(msr_ADC_EXCLUSIVE_AREA_67[u32CoreId])) /*if MSR[EE] = 0, skip calling Suspend/Resume AllInterrupts*/
+        {
+            OsIf_SuspendAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+            ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+        }
+    }
+    reentry_guard_ADC_EXCLUSIVE_AREA_67[u32CoreId]++;
+}
+
+void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_67(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    reentry_guard_ADC_EXCLUSIVE_AREA_67[u32CoreId]--;
+    if ((ISR_ON(msr_ADC_EXCLUSIVE_AREA_67[u32CoreId]))&&(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_67[u32CoreId]))         /*if interrupts were enabled*/
+    {
+        OsIf_ResumeAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+        ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+    }
+}
+
+void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_68(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    if(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_68[u32CoreId])
+    {
+#if ((defined MCAL_ENABLE_USER_MODE_SUPPORT)&&(!defined MCAL_PLATFORM_ARM_M0PLUS))
+        msr_ADC_EXCLUSIVE_AREA_68[u32CoreId] = OsIf_Trusted_Call_Return(Adc_schm_read_msr);
+#else
+        msr_ADC_EXCLUSIVE_AREA_68[u32CoreId] = Adc_schm_read_msr();  /*read MSR (to store interrupts state)*/
+#endif /* MCAL_ENABLE_USER_MODE_SUPPORT */
+        if (ISR_ON(msr_ADC_EXCLUSIVE_AREA_68[u32CoreId])) /*if MSR[EE] = 0, skip calling Suspend/Resume AllInterrupts*/
+        {
+            OsIf_SuspendAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+            ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+        }
+    }
+    reentry_guard_ADC_EXCLUSIVE_AREA_68[u32CoreId]++;
+}
+
+void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_68(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    reentry_guard_ADC_EXCLUSIVE_AREA_68[u32CoreId]--;
+    if ((ISR_ON(msr_ADC_EXCLUSIVE_AREA_68[u32CoreId]))&&(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_68[u32CoreId]))         /*if interrupts were enabled*/
+    {
+        OsIf_ResumeAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+        ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+    }
+}
+
+void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_69(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    if(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_69[u32CoreId])
+    {
+#if ((defined MCAL_ENABLE_USER_MODE_SUPPORT)&&(!defined MCAL_PLATFORM_ARM_M0PLUS))
+        msr_ADC_EXCLUSIVE_AREA_69[u32CoreId] = OsIf_Trusted_Call_Return(Adc_schm_read_msr);
+#else
+        msr_ADC_EXCLUSIVE_AREA_69[u32CoreId] = Adc_schm_read_msr();  /*read MSR (to store interrupts state)*/
+#endif /* MCAL_ENABLE_USER_MODE_SUPPORT */
+        if (ISR_ON(msr_ADC_EXCLUSIVE_AREA_69[u32CoreId])) /*if MSR[EE] = 0, skip calling Suspend/Resume AllInterrupts*/
+        {
+            OsIf_SuspendAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+            ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+        }
+    }
+    reentry_guard_ADC_EXCLUSIVE_AREA_69[u32CoreId]++;
+}
+
+void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_69(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    reentry_guard_ADC_EXCLUSIVE_AREA_69[u32CoreId]--;
+    if ((ISR_ON(msr_ADC_EXCLUSIVE_AREA_69[u32CoreId]))&&(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_69[u32CoreId]))         /*if interrupts were enabled*/
+    {
+        OsIf_ResumeAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+        ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+    }
+}
+
+void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_70(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    if(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_70[u32CoreId])
+    {
+#if ((defined MCAL_ENABLE_USER_MODE_SUPPORT)&&(!defined MCAL_PLATFORM_ARM_M0PLUS))
+        msr_ADC_EXCLUSIVE_AREA_70[u32CoreId] = OsIf_Trusted_Call_Return(Adc_schm_read_msr);
+#else
+        msr_ADC_EXCLUSIVE_AREA_70[u32CoreId] = Adc_schm_read_msr();  /*read MSR (to store interrupts state)*/
+#endif /* MCAL_ENABLE_USER_MODE_SUPPORT */
+        if (ISR_ON(msr_ADC_EXCLUSIVE_AREA_70[u32CoreId])) /*if MSR[EE] = 0, skip calling Suspend/Resume AllInterrupts*/
+        {
+            OsIf_SuspendAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+            ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+        }
+    }
+    reentry_guard_ADC_EXCLUSIVE_AREA_70[u32CoreId]++;
+}
+
+void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_70(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    reentry_guard_ADC_EXCLUSIVE_AREA_70[u32CoreId]--;
+    if ((ISR_ON(msr_ADC_EXCLUSIVE_AREA_70[u32CoreId]))&&(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_70[u32CoreId]))         /*if interrupts were enabled*/
+    {
+        OsIf_ResumeAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+        ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+    }
+}
+
+void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_71(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    if(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_71[u32CoreId])
+    {
+#if ((defined MCAL_ENABLE_USER_MODE_SUPPORT)&&(!defined MCAL_PLATFORM_ARM_M0PLUS))
+        msr_ADC_EXCLUSIVE_AREA_71[u32CoreId] = OsIf_Trusted_Call_Return(Adc_schm_read_msr);
+#else
+        msr_ADC_EXCLUSIVE_AREA_71[u32CoreId] = Adc_schm_read_msr();  /*read MSR (to store interrupts state)*/
+#endif /* MCAL_ENABLE_USER_MODE_SUPPORT */
+        if (ISR_ON(msr_ADC_EXCLUSIVE_AREA_71[u32CoreId])) /*if MSR[EE] = 0, skip calling Suspend/Resume AllInterrupts*/
+        {
+            OsIf_SuspendAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+            ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+        }
+    }
+    reentry_guard_ADC_EXCLUSIVE_AREA_71[u32CoreId]++;
+}
+
+void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_71(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    reentry_guard_ADC_EXCLUSIVE_AREA_71[u32CoreId]--;
+    if ((ISR_ON(msr_ADC_EXCLUSIVE_AREA_71[u32CoreId]))&&(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_71[u32CoreId]))         /*if interrupts were enabled*/
+    {
+        OsIf_ResumeAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+        ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+    }
+}
+
+void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_72(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    if(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_72[u32CoreId])
+    {
+#if ((defined MCAL_ENABLE_USER_MODE_SUPPORT)&&(!defined MCAL_PLATFORM_ARM_M0PLUS))
+        msr_ADC_EXCLUSIVE_AREA_72[u32CoreId] = OsIf_Trusted_Call_Return(Adc_schm_read_msr);
+#else
+        msr_ADC_EXCLUSIVE_AREA_72[u32CoreId] = Adc_schm_read_msr();  /*read MSR (to store interrupts state)*/
+#endif /* MCAL_ENABLE_USER_MODE_SUPPORT */
+        if (ISR_ON(msr_ADC_EXCLUSIVE_AREA_72[u32CoreId])) /*if MSR[EE] = 0, skip calling Suspend/Resume AllInterrupts*/
+        {
+            OsIf_SuspendAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+            ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+        }
+    }
+    reentry_guard_ADC_EXCLUSIVE_AREA_72[u32CoreId]++;
+}
+
+void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_72(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    reentry_guard_ADC_EXCLUSIVE_AREA_72[u32CoreId]--;
+    if ((ISR_ON(msr_ADC_EXCLUSIVE_AREA_72[u32CoreId]))&&(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_72[u32CoreId]))         /*if interrupts were enabled*/
+    {
+        OsIf_ResumeAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+        ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+    }
+}
+
+void SchM_Enter_Adc_ADC_EXCLUSIVE_AREA_73(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    if(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_73[u32CoreId])
+    {
+#if ((defined MCAL_ENABLE_USER_MODE_SUPPORT)&&(!defined MCAL_PLATFORM_ARM_M0PLUS))
+        msr_ADC_EXCLUSIVE_AREA_73[u32CoreId] = OsIf_Trusted_Call_Return(Adc_schm_read_msr);
+#else
+        msr_ADC_EXCLUSIVE_AREA_73[u32CoreId] = Adc_schm_read_msr();  /*read MSR (to store interrupts state)*/
+#endif /* MCAL_ENABLE_USER_MODE_SUPPORT */
+        if (ISR_ON(msr_ADC_EXCLUSIVE_AREA_73[u32CoreId])) /*if MSR[EE] = 0, skip calling Suspend/Resume AllInterrupts*/
+        {
+            OsIf_SuspendAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+            ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+        }
+    }
+    reentry_guard_ADC_EXCLUSIVE_AREA_73[u32CoreId]++;
+}
+
+void SchM_Exit_Adc_ADC_EXCLUSIVE_AREA_73(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    reentry_guard_ADC_EXCLUSIVE_AREA_73[u32CoreId]--;
+    if ((ISR_ON(msr_ADC_EXCLUSIVE_AREA_73[u32CoreId]))&&(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_73[u32CoreId]))         /*if interrupts were enabled*/
+    {
+        OsIf_ResumeAllInterrupts();
+#ifdef _ARM_DS5_C_S32K1XX_
+        ASM_KEYWORD(" nop ");/* Compiler fix - forces the CSPID instruction to be generated with -02, -Ospace are selected*/
+#endif
+    }
+}
+
+
+#ifdef MCAL_TESTING_ENVIRONMENT
+/** 
+@brief   This function checks that all entered exclusive areas were also exited. 
+@details This function checks that all entered exclusive areas were also exited. The check
+         is done by verifying that all reentry_guard_* static variables are back to the
+         zero value.
+    
+@param[in]     void       No input parameters
+@return        void       This function does not return a value. Test asserts are used instead. 
+
+@pre  None
+@post None
+
+@remarks Covers 
+@remarks Implements 
+*/
+void SchM_Check_adc(void)
+{
+    uint32 u32CoreId = (uint32)OsIf_GetCoreID();
+
+    EU_ASSERT(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_00[u32CoreId]);
+    reentry_guard_ADC_EXCLUSIVE_AREA_00[u32CoreId] = 0UL; /*reset reentry_guard_ADC_EXCLUSIVE_AREA_00 for the next test in the suite*/
+
+    EU_ASSERT(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_01[u32CoreId]);
+    reentry_guard_ADC_EXCLUSIVE_AREA_01[u32CoreId] = 0UL; /*reset reentry_guard_ADC_EXCLUSIVE_AREA_01 for the next test in the suite*/
+
+    EU_ASSERT(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_02[u32CoreId]);
+    reentry_guard_ADC_EXCLUSIVE_AREA_02[u32CoreId] = 0UL; /*reset reentry_guard_ADC_EXCLUSIVE_AREA_02 for the next test in the suite*/
+
+    EU_ASSERT(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_03[u32CoreId]);
+    reentry_guard_ADC_EXCLUSIVE_AREA_03[u32CoreId] = 0UL; /*reset reentry_guard_ADC_EXCLUSIVE_AREA_03 for the next test in the suite*/
+
+    EU_ASSERT(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_04[u32CoreId]);
+    reentry_guard_ADC_EXCLUSIVE_AREA_04[u32CoreId] = 0UL; /*reset reentry_guard_ADC_EXCLUSIVE_AREA_04 for the next test in the suite*/
+
+    EU_ASSERT(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_05[u32CoreId]);
+    reentry_guard_ADC_EXCLUSIVE_AREA_05[u32CoreId] = 0UL; /*reset reentry_guard_ADC_EXCLUSIVE_AREA_05 for the next test in the suite*/
+
+    EU_ASSERT(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_06[u32CoreId]);
+    reentry_guard_ADC_EXCLUSIVE_AREA_06[u32CoreId] = 0UL; /*reset reentry_guard_ADC_EXCLUSIVE_AREA_06 for the next test in the suite*/
+
+    EU_ASSERT(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_10[u32CoreId]);
+    reentry_guard_ADC_EXCLUSIVE_AREA_10[u32CoreId] = 0UL; /*reset reentry_guard_ADC_EXCLUSIVE_AREA_10 for the next test in the suite*/
+
+    EU_ASSERT(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_11[u32CoreId]);
+    reentry_guard_ADC_EXCLUSIVE_AREA_11[u32CoreId] = 0UL; /*reset reentry_guard_ADC_EXCLUSIVE_AREA_11 for the next test in the suite*/
+
+    EU_ASSERT(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_12[u32CoreId]);
+    reentry_guard_ADC_EXCLUSIVE_AREA_12[u32CoreId] = 0UL; /*reset reentry_guard_ADC_EXCLUSIVE_AREA_12 for the next test in the suite*/
+
+    EU_ASSERT(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_13[u32CoreId]);
+    reentry_guard_ADC_EXCLUSIVE_AREA_13[u32CoreId] = 0UL; /*reset reentry_guard_ADC_EXCLUSIVE_AREA_13 for the next test in the suite*/
+
+    EU_ASSERT(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_14[u32CoreId]);
+    reentry_guard_ADC_EXCLUSIVE_AREA_14[u32CoreId] = 0UL; /*reset reentry_guard_ADC_EXCLUSIVE_AREA_14 for the next test in the suite*/
+
+    EU_ASSERT(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_15[u32CoreId]);
+    reentry_guard_ADC_EXCLUSIVE_AREA_15[u32CoreId] = 0UL; /*reset reentry_guard_ADC_EXCLUSIVE_AREA_15 for the next test in the suite*/
+
+    EU_ASSERT(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_16[u32CoreId]);
+    reentry_guard_ADC_EXCLUSIVE_AREA_16[u32CoreId] = 0UL; /*reset reentry_guard_ADC_EXCLUSIVE_AREA_16 for the next test in the suite*/
+
+    EU_ASSERT(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_17[u32CoreId]);
+    reentry_guard_ADC_EXCLUSIVE_AREA_17[u32CoreId] = 0UL; /*reset reentry_guard_ADC_EXCLUSIVE_AREA_17 for the next test in the suite*/
+
+    EU_ASSERT(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_18[u32CoreId]);
+    reentry_guard_ADC_EXCLUSIVE_AREA_18[u32CoreId] = 0UL; /*reset reentry_guard_ADC_EXCLUSIVE_AREA_18 for the next test in the suite*/
+
+    EU_ASSERT(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_19[u32CoreId]);
+    reentry_guard_ADC_EXCLUSIVE_AREA_19[u32CoreId] = 0UL; /*reset reentry_guard_ADC_EXCLUSIVE_AREA_19 for the next test in the suite*/
+
+    EU_ASSERT(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_20[u32CoreId]);
+    reentry_guard_ADC_EXCLUSIVE_AREA_20[u32CoreId] = 0UL; /*reset reentry_guard_ADC_EXCLUSIVE_AREA_20 for the next test in the suite*/
+
+    EU_ASSERT(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_21[u32CoreId]);
+    reentry_guard_ADC_EXCLUSIVE_AREA_21[u32CoreId] = 0UL; /*reset reentry_guard_ADC_EXCLUSIVE_AREA_21 for the next test in the suite*/
+
+    EU_ASSERT(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_22[u32CoreId]);
+    reentry_guard_ADC_EXCLUSIVE_AREA_22[u32CoreId] = 0UL; /*reset reentry_guard_ADC_EXCLUSIVE_AREA_22 for the next test in the suite*/
+
+    EU_ASSERT(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_23[u32CoreId]);
+    reentry_guard_ADC_EXCLUSIVE_AREA_23[u32CoreId] = 0UL; /*reset reentry_guard_ADC_EXCLUSIVE_AREA_23 for the next test in the suite*/
+
+    EU_ASSERT(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_24[u32CoreId]);
+    reentry_guard_ADC_EXCLUSIVE_AREA_24[u32CoreId] = 0UL; /*reset reentry_guard_ADC_EXCLUSIVE_AREA_24 for the next test in the suite*/
+
+    EU_ASSERT(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_25[u32CoreId]);
+    reentry_guard_ADC_EXCLUSIVE_AREA_25[u32CoreId] = 0UL; /*reset reentry_guard_ADC_EXCLUSIVE_AREA_25 for the next test in the suite*/
+
+    EU_ASSERT(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_26[u32CoreId]);
+    reentry_guard_ADC_EXCLUSIVE_AREA_26[u32CoreId] = 0UL; /*reset reentry_guard_ADC_EXCLUSIVE_AREA_26 for the next test in the suite*/
+
+    EU_ASSERT(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_27[u32CoreId]);
+    reentry_guard_ADC_EXCLUSIVE_AREA_27[u32CoreId] = 0UL; /*reset reentry_guard_ADC_EXCLUSIVE_AREA_27 for the next test in the suite*/
+
+    EU_ASSERT(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_28[u32CoreId]);
+    reentry_guard_ADC_EXCLUSIVE_AREA_28[u32CoreId] = 0UL; /*reset reentry_guard_ADC_EXCLUSIVE_AREA_28 for the next test in the suite*/
+
+    EU_ASSERT(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_29[u32CoreId]);
+    reentry_guard_ADC_EXCLUSIVE_AREA_29[u32CoreId] = 0UL; /*reset reentry_guard_ADC_EXCLUSIVE_AREA_29 for the next test in the suite*/
+
+    EU_ASSERT(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_30[u32CoreId]);
+    reentry_guard_ADC_EXCLUSIVE_AREA_30[u32CoreId] = 0UL; /*reset reentry_guard_ADC_EXCLUSIVE_AREA_30 for the next test in the suite*/
+
+    EU_ASSERT(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_31[u32CoreId]);
+    reentry_guard_ADC_EXCLUSIVE_AREA_31[u32CoreId] = 0UL; /*reset reentry_guard_ADC_EXCLUSIVE_AREA_31 for the next test in the suite*/
+
+    EU_ASSERT(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_32[u32CoreId]);
+    reentry_guard_ADC_EXCLUSIVE_AREA_32[u32CoreId] = 0UL; /*reset reentry_guard_ADC_EXCLUSIVE_AREA_32 for the next test in the suite*/
+
+    EU_ASSERT(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_33[u32CoreId]);
+    reentry_guard_ADC_EXCLUSIVE_AREA_33[u32CoreId] = 0UL; /*reset reentry_guard_ADC_EXCLUSIVE_AREA_33 for the next test in the suite*/
+
+    EU_ASSERT(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_34[u32CoreId]);
+    reentry_guard_ADC_EXCLUSIVE_AREA_34[u32CoreId] = 0UL; /*reset reentry_guard_ADC_EXCLUSIVE_AREA_34 for the next test in the suite*/
+
+    EU_ASSERT(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_35[u32CoreId]);
+    reentry_guard_ADC_EXCLUSIVE_AREA_35[u32CoreId] = 0UL; /*reset reentry_guard_ADC_EXCLUSIVE_AREA_35 for the next test in the suite*/
+
+    EU_ASSERT(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_36[u32CoreId]);
+    reentry_guard_ADC_EXCLUSIVE_AREA_36[u32CoreId] = 0UL; /*reset reentry_guard_ADC_EXCLUSIVE_AREA_36 for the next test in the suite*/
+
+    EU_ASSERT(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_37[u32CoreId]);
+    reentry_guard_ADC_EXCLUSIVE_AREA_37[u32CoreId] = 0UL; /*reset reentry_guard_ADC_EXCLUSIVE_AREA_37 for the next test in the suite*/
+
+    EU_ASSERT(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_38[u32CoreId]);
+    reentry_guard_ADC_EXCLUSIVE_AREA_38[u32CoreId] = 0UL; /*reset reentry_guard_ADC_EXCLUSIVE_AREA_38 for the next test in the suite*/
+
+    EU_ASSERT(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_39[u32CoreId]);
+    reentry_guard_ADC_EXCLUSIVE_AREA_39[u32CoreId] = 0UL; /*reset reentry_guard_ADC_EXCLUSIVE_AREA_39 for the next test in the suite*/
+
+    EU_ASSERT(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_40[u32CoreId]);
+    reentry_guard_ADC_EXCLUSIVE_AREA_40[u32CoreId] = 0UL; /*reset reentry_guard_ADC_EXCLUSIVE_AREA_40 for the next test in the suite*/
+
+    EU_ASSERT(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_41[u32CoreId]);
+    reentry_guard_ADC_EXCLUSIVE_AREA_41[u32CoreId] = 0UL; /*reset reentry_guard_ADC_EXCLUSIVE_AREA_41 for the next test in the suite*/
+
+    EU_ASSERT(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_42[u32CoreId]);
+    reentry_guard_ADC_EXCLUSIVE_AREA_42[u32CoreId] = 0UL; /*reset reentry_guard_ADC_EXCLUSIVE_AREA_42 for the next test in the suite*/
+
+    EU_ASSERT(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_43[u32CoreId]);
+    reentry_guard_ADC_EXCLUSIVE_AREA_43[u32CoreId] = 0UL; /*reset reentry_guard_ADC_EXCLUSIVE_AREA_43 for the next test in the suite*/
+
+    EU_ASSERT(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_44[u32CoreId]);
+    reentry_guard_ADC_EXCLUSIVE_AREA_44[u32CoreId] = 0UL; /*reset reentry_guard_ADC_EXCLUSIVE_AREA_44 for the next test in the suite*/
+
+    EU_ASSERT(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_45[u32CoreId]);
+    reentry_guard_ADC_EXCLUSIVE_AREA_45[u32CoreId] = 0UL; /*reset reentry_guard_ADC_EXCLUSIVE_AREA_45 for the next test in the suite*/
+
+    EU_ASSERT(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_46[u32CoreId]);
+    reentry_guard_ADC_EXCLUSIVE_AREA_46[u32CoreId] = 0UL; /*reset reentry_guard_ADC_EXCLUSIVE_AREA_46 for the next test in the suite*/
+
+    EU_ASSERT(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_47[u32CoreId]);
+    reentry_guard_ADC_EXCLUSIVE_AREA_47[u32CoreId] = 0UL; /*reset reentry_guard_ADC_EXCLUSIVE_AREA_47 for the next test in the suite*/
+
+    EU_ASSERT(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_48[u32CoreId]);
+    reentry_guard_ADC_EXCLUSIVE_AREA_48[u32CoreId] = 0UL; /*reset reentry_guard_ADC_EXCLUSIVE_AREA_48 for the next test in the suite*/
+
+    EU_ASSERT(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_49[u32CoreId]);
+    reentry_guard_ADC_EXCLUSIVE_AREA_49[u32CoreId] = 0UL; /*reset reentry_guard_ADC_EXCLUSIVE_AREA_49 for the next test in the suite*/
+
+    EU_ASSERT(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_50[u32CoreId]);
+    reentry_guard_ADC_EXCLUSIVE_AREA_50[u32CoreId] = 0UL; /*reset reentry_guard_ADC_EXCLUSIVE_AREA_50 for the next test in the suite*/
+
+    EU_ASSERT(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_54[u32CoreId]);
+    reentry_guard_ADC_EXCLUSIVE_AREA_54[u32CoreId] = 0UL; /*reset reentry_guard_ADC_EXCLUSIVE_AREA_54 for the next test in the suite*/
+
+    EU_ASSERT(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_55[u32CoreId]);
+    reentry_guard_ADC_EXCLUSIVE_AREA_55[u32CoreId] = 0UL; /*reset reentry_guard_ADC_EXCLUSIVE_AREA_55 for the next test in the suite*/
+
+    EU_ASSERT(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_56[u32CoreId]);
+    reentry_guard_ADC_EXCLUSIVE_AREA_56[u32CoreId] = 0UL; /*reset reentry_guard_ADC_EXCLUSIVE_AREA_56 for the next test in the suite*/
+
+    EU_ASSERT(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_57[u32CoreId]);
+    reentry_guard_ADC_EXCLUSIVE_AREA_57[u32CoreId] = 0UL; /*reset reentry_guard_ADC_EXCLUSIVE_AREA_57 for the next test in the suite*/
+
+    EU_ASSERT(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_58[u32CoreId]);
+    reentry_guard_ADC_EXCLUSIVE_AREA_58[u32CoreId] = 0UL; /*reset reentry_guard_ADC_EXCLUSIVE_AREA_58 for the next test in the suite*/
+
+    EU_ASSERT(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_59[u32CoreId]);
+    reentry_guard_ADC_EXCLUSIVE_AREA_59[u32CoreId] = 0UL; /*reset reentry_guard_ADC_EXCLUSIVE_AREA_59 for the next test in the suite*/
+
+    EU_ASSERT(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_60[u32CoreId]);
+    reentry_guard_ADC_EXCLUSIVE_AREA_60[u32CoreId] = 0UL; /*reset reentry_guard_ADC_EXCLUSIVE_AREA_60 for the next test in the suite*/
+
+    EU_ASSERT(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_61[u32CoreId]);
+    reentry_guard_ADC_EXCLUSIVE_AREA_61[u32CoreId] = 0UL; /*reset reentry_guard_ADC_EXCLUSIVE_AREA_61 for the next test in the suite*/
+
+    EU_ASSERT(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_62[u32CoreId]);
+    reentry_guard_ADC_EXCLUSIVE_AREA_62[u32CoreId] = 0UL; /*reset reentry_guard_ADC_EXCLUSIVE_AREA_62 for the next test in the suite*/
+
+    EU_ASSERT(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_63[u32CoreId]);
+    reentry_guard_ADC_EXCLUSIVE_AREA_63[u32CoreId] = 0UL; /*reset reentry_guard_ADC_EXCLUSIVE_AREA_63 for the next test in the suite*/
+
+    EU_ASSERT(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_64[u32CoreId]);
+    reentry_guard_ADC_EXCLUSIVE_AREA_64[u32CoreId] = 0UL; /*reset reentry_guard_ADC_EXCLUSIVE_AREA_64 for the next test in the suite*/
+
+    EU_ASSERT(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_65[u32CoreId]);
+    reentry_guard_ADC_EXCLUSIVE_AREA_65[u32CoreId] = 0UL; /*reset reentry_guard_ADC_EXCLUSIVE_AREA_65 for the next test in the suite*/
+
+    EU_ASSERT(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_66[u32CoreId]);
+    reentry_guard_ADC_EXCLUSIVE_AREA_66[u32CoreId] = 0UL; /*reset reentry_guard_ADC_EXCLUSIVE_AREA_66 for the next test in the suite*/
+
+    EU_ASSERT(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_67[u32CoreId]);
+    reentry_guard_ADC_EXCLUSIVE_AREA_67[u32CoreId] = 0UL; /*reset reentry_guard_ADC_EXCLUSIVE_AREA_67 for the next test in the suite*/
+
+    EU_ASSERT(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_68[u32CoreId]);
+    reentry_guard_ADC_EXCLUSIVE_AREA_68[u32CoreId] = 0UL; /*reset reentry_guard_ADC_EXCLUSIVE_AREA_68 for the next test in the suite*/
+
+    EU_ASSERT(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_69[u32CoreId]);
+    reentry_guard_ADC_EXCLUSIVE_AREA_69[u32CoreId] = 0UL; /*reset reentry_guard_ADC_EXCLUSIVE_AREA_69 for the next test in the suite*/
+
+    EU_ASSERT(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_70[u32CoreId]);
+    reentry_guard_ADC_EXCLUSIVE_AREA_70[u32CoreId] = 0UL; /*reset reentry_guard_ADC_EXCLUSIVE_AREA_70 for the next test in the suite*/
+
+    EU_ASSERT(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_71[u32CoreId]);
+    reentry_guard_ADC_EXCLUSIVE_AREA_71[u32CoreId] = 0UL; /*reset reentry_guard_ADC_EXCLUSIVE_AREA_71 for the next test in the suite*/
+
+    EU_ASSERT(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_72[u32CoreId]);
+    reentry_guard_ADC_EXCLUSIVE_AREA_72[u32CoreId] = 0UL; /*reset reentry_guard_ADC_EXCLUSIVE_AREA_72 for the next test in the suite*/
+
+    EU_ASSERT(0UL == reentry_guard_ADC_EXCLUSIVE_AREA_73[u32CoreId]);
+    reentry_guard_ADC_EXCLUSIVE_AREA_73[u32CoreId] = 0UL; /*reset reentry_guard_ADC_EXCLUSIVE_AREA_73 for the next test in the suite*/
+
+
+}
+#endif /*MCAL_TESTING_ENVIRONMENT*/
+
+#define RTE_STOP_SEC_CODE
+#include "Rte_MemMap.h"
+
+#ifdef __cplusplus
+}
+#endif
+
+/** @} */

+ 190 - 0
S32K146_4G.mex

@@ -229,6 +229,16 @@
                   <data type="Version">1.0.0</data>
                </feature>
             </dependency>
+            <dependency resourceType="SWComponent" resourceId="platform.driver.adc" description="工具链/IDE工程中未找到adc。工程不会被编译!" problem_level="2" source="Peripherals">
+               <feature name="enabled" evaluation="equal">
+                  <data type="Boolean">true</data>
+               </feature>
+            </dependency>
+            <dependency resourceType="SWComponent" resourceId="platform.driver.adc" description="工具链/IDE工程不支持adc版本。所需值: ${required_value}, 实际值: ${actual_value}. 工程可能没有被正确编译。" problem_level="1" source="Peripherals">
+               <feature name="version" evaluation="equivalent">
+                  <data type="Version">1.0.0</data>
+               </feature>
+            </dependency>
          </dependencies>
          <peripherals_profile>
             <processor_version>0.0.0</processor_version>
@@ -421,6 +431,186 @@
                         </struct>
                      </config_set>
                   </instance>
+                  <instance name="Adc_1" uuid="e2559988-ec9c-4e49-8af2-682df979d4cb" type="Adc" type_id="Adc" mode="autosar" enabled="true" comment="" custom_name_enabled="false" editing_lock="false">
+                     <config_set name="Adc" quick_selection="defaultConfig">
+                        <setting name="Name" value="AdcUserCfg"/>
+                        <struct name="ConfigTimeSupport">
+                           <setting name="POST_BUILD_VARIANT_USED" value="false"/>
+                           <setting name="IMPLEMENTATION_CONFIG_VARIANT" value="VARIANT-POST-BUILD"/>
+                        </struct>
+                        <struct name="AdcConfigSet">
+                           <setting name="Name" value="AdcConfigSet"/>
+                           <array name="AdcHwUnit">
+                              <struct name="0">
+                                 <setting name="Name" value="AdcHwUnit_0"/>
+                                 <setting name="AdcHwUnitId" value="ADC0"/>
+                                 <setting name="AdcLogicalUnitId" value="0"/>
+                                 <setting name="AdcTransferType" value="ADC_INTERRUPT"/>
+                                 <array name="AdcDmaChannelId"/>
+                                 <array name="AdcCountingDmaChannelId"/>
+                                 <array name="AdcClockSource"/>
+                                 <array name="AdcPrescale"/>
+                                 <setting name="AdcAltPrescale" value="2"/>
+                                 <setting name="AdcCalibrationPrescale" value="8"/>
+                                 <setting name="AdcHwUnitUsrOffset" value="0"/>
+                                 <setting name="AdcHwUnitUsrGain" value="4"/>
+                                 <setting name="AdcHwUnitResolution" value="RESOLUTION_12"/>
+                                 <array name="AdcNormalConvTimings"/>
+                                 <array name="AdcAlternateConvTimings"/>
+                                 <struct name="PdbHwUnit">
+                                    <setting name="Name" value="PdbHwUnit"/>
+                                    <setting name="AdcPdbPrescalerDividerSelect" value="0"/>
+                                    <setting name="AdcPdbMultiplicationFactorSelect" value="0"/>
+                                    <setting name="AdcPdbCounterPeriod" value="65535"/>
+                                    <setting name="AdcPdbErrorNotification" value="NULL_PTR"/>
+                                 </struct>
+                                 <array name="AdcChannel">
+                                    <struct name="0">
+                                       <setting name="Name" value="AdcChannel_0"/>
+                                       <setting name="AdcLogicalChannelId" value="0"/>
+                                       <setting name="AdcChannelName" value="SE0_ADCH0"/>
+                                       <setting name="AdcChannelId" value="0"/>
+                                       <array name="AdcChannelConvTime"/>
+                                       <array name="AdcChannelLimitCheck"/>
+                                       <array name="AdcChannelHighLimit"/>
+                                       <array name="AdcChannelLowLimit"/>
+                                       <array name="AdcChannelRangeSelect"/>
+                                       <array name="AdcChannelRefVoltsrcHigh"/>
+                                       <array name="AdcChannelRefVoltsrcLow"/>
+                                       <array name="AdcChannelResolution"/>
+                                       <array name="AdcChannelSampTime"/>
+                                    </struct>
+                                 </array>
+                                 <array name="AdcGroup">
+                                    <struct name="0">
+                                       <setting name="Name" value="AdcGroup_0"/>
+                                       <setting name="AdcGroupAccessMode" value="ADC_ACCESS_MODE_SINGLE"/>
+                                       <setting name="AdcGroupConversionMode" value="ADC_CONV_MODE_ONESHOT"/>
+                                       <setting name="AdcGroupConversionType" value="ADC_CONV_TYPE_NORMAL"/>
+                                       <setting name="AdcGroupId" value="0"/>
+                                       <array name="AdcGroupPriority"/>
+                                       <array name="AdcGroupReplacement"/>
+                                       <setting name="AdcGroupTriggSrc" value="ADC_TRIGG_SRC_SW"/>
+                                       <setting name="AdcGroupHwTriggerSource" value=""/>
+                                       <array name="AdcHwTrigSignal"/>
+                                       <array name="AdcHwTrigTimer">
+                                          <setting name="0" value="10"/>
+                                       </array>
+                                       <array name="AdcNotification"/>
+                                       <setting name="AdcExtraNotification" value="NULL_PTR"/>
+                                       <setting name="AdcStreamingBufferMode" value="ADC_STREAM_BUFFER_LINEAR"/>
+                                       <setting name="AdcEnableOptimizeDmaStreamingGroups" value="false"/>
+                                       <setting name="AdcEnableHalfInterrupt" value="false"/>
+                                       <setting name="AdcStreamingNumSamples" value="1"/>
+                                       <setting name="AdcStreamResultGroup" value="false"/>
+                                       <setting name="AdcEnableChDisableChGroup" value="false"/>
+                                       <setting name="AdcWithoutInterrupts" value="false"/>
+                                       <setting name="AdcWithoutDma" value="false"/>
+                                       <setting name="AdcExtDMAChanEnable" value="false"/>
+                                       <setting name="AdcGroupInBacktoBackMode" value="true"/>
+                                       <setting name="AdcGroupUsesChannelDelays" value="false"/>
+                                       <setting name="AdcDelayNextPdb" value="0"/>
+                                       <setting name="AdcPdbPeriodContinuousMode" value="1000"/>
+                                       <array name="AdcChannelDelay"/>
+                                       <struct name="AdcGroupConversionConfiguration">
+                                          <setting name="Name" value="AdcGroupConversionConfiguration"/>
+                                          <setting name="AdcGroupHardwareAverageEnable" value="false"/>
+                                          <setting name="AdcGroupHardwareAverageSelect" value="SAMPLES_4"/>
+                                          <setting name="AdcGroupSampleTimeDuration" value="20"/>
+                                       </struct>
+                                       <struct name="AdcAlternateGroupConvTimings">
+                                          <setting name="Name" value="AdcAlternateGroupConvTimings"/>
+                                          <setting name="AdcGroupAltHardwareAverageEnable" value="false"/>
+                                          <setting name="AdcGroupAltHardwareAverageSelect" value="SAMPLES_4"/>
+                                          <setting name="AdcGroupAltSampleTimeDuration" value="1"/>
+                                       </struct>
+                                       <array name="AdcGroupDefinition">
+                                          <setting name="0" value="/Adc_1/AdcUserCfg/AdcConfigSet/AdcHwUnit_0/AdcChannel_0"/>
+                                       </array>
+                                       <array name="AdcGroupEcucPartitionRef"/>
+                                    </struct>
+                                 </array>
+                                 <array name="AdcHwUnitEcucPartitionRef"/>
+                              </struct>
+                           </array>
+                           <array name="AdcHwTrigger">
+                              <struct name="0">
+                                 <setting name="Name" value="AdcHwTrigger_0"/>
+                                 <setting name="AdcHwTrigSrc" value="TRIGGER_IN0"/>
+                              </struct>
+                           </array>
+                        </struct>
+                        <struct name="AdcGeneral">
+                           <setting name="Name" value="AdcGeneral"/>
+                           <setting name="AdcDeInitApi" value="true"/>
+                           <setting name="AdcDevErrorDetect" value="false"/>
+                           <setting name="AdcEnableLimitCheck" value="true"/>
+                           <setting name="AdcEnableQueuing" value="true"/>
+                           <setting name="AdcPriorityQueueMaxDepth" value="1"/>
+                           <setting name="AdcEnableStartStopGroupApi" value="true"/>
+                           <setting name="AdcGrpNotifCapability" value="true"/>
+                           <setting name="AdcHwTriggerApi" value="false"/>
+                           <setting name="AdcPriorityImplementation" value="ADC_PRIORITY_NONE"/>
+                           <setting name="AdcReadGroupApi" value="true"/>
+                           <setting name="AdcResultAlignment" value="ADC_ALIGN_RIGHT"/>
+                           <setting name="AdcVersionInfoApi" value="true"/>
+                           <array name="AdcLowPowerStatesSupport"/>
+                           <array name="AdcPowerStateAsynchTransitionMode"/>
+                           <array name="AdcEcucPartitionRef"/>
+                           <array name="AdcKernelEcucPartitionRef"/>
+                           <array name="AdcPowerStateConfig"/>
+                        </struct>
+                        <array name="AdcInterrupt">
+                           <struct name="0">
+                              <setting name="Name" value="AdcInterrupt_0"/>
+                              <setting name="AdcInterruptSource" value="ADC0_COCO"/>
+                              <setting name="AdcInterruptEnable" value="true"/>
+                           </struct>
+                        </array>
+                        <struct name="AdcPublishedInformation">
+                           <setting name="Name" value="AdcPublishedInformation"/>
+                           <setting name="AdcChannelValueSigned" value="false"/>
+                           <setting name="AdcGroupFirstChannelFixed" value="false"/>
+                           <setting name="AdcMaxChannelResolution" value="12"/>
+                        </struct>
+                        <struct name="CommonPublishedInformation">
+                           <setting name="Name" value="CommonPublishedInformation"/>
+                           <setting name="ArReleaseMajorVersion" value="4"/>
+                           <setting name="ArReleaseMinorVersion" value="4"/>
+                           <setting name="ArReleaseRevisionVersion" value="0"/>
+                           <setting name="ModuleId" value="123"/>
+                           <setting name="SwMajorVersion" value="1"/>
+                           <setting name="SwMinorVersion" value="0"/>
+                           <setting name="SwPatchVersion" value="0"/>
+                           <setting name="VendorApiInfix" value=""/>
+                           <setting name="VendorId" value="43"/>
+                        </struct>
+                        <struct name="AutosarExt">
+                           <setting name="Name" value="AutosarExt"/>
+                           <setting name="AdcTimeoutMethod" value="OSIF_COUNTER_DUMMY"/>
+                           <setting name="AdcTimeoutVal" value="10000"/>
+                           <setting name="AdcIplDevErrorDetect" value="false"/>
+                           <setting name="PdbDevErrorDetect" value="false"/>
+                           <setting name="AdcMulticoreSupport" value="false"/>
+                           <setting name="AdcEnableGroupDependentChannelNames" value="false"/>
+                           <setting name="AdcBypassAbortChainCheck" value="false"/>
+                           <setting name="AdcConvTimeOnce" value="false"/>
+                           <setting name="AdcOptimizeOneShotHwTriggerConversions" value="false"/>
+                           <setting name="AdcOptimizeDmaStreamingGroups" value="false"/>
+                           <setting name="AdcContinuousWithoutInterrupt" value="false"/>
+                           <setting name="AdcEnableChDisableChApi" value="false"/>
+                           <setting name="AdcEnableInitialNotification" value="false"/>
+                           <setting name="AdcEnableDmaTrasferMode" value="false"/>
+                           <setting name="AdcEnableUserModeSupport" value="false"/>
+                           <setting name="AdcEnableSimSupplyMonitor" value="false"/>
+                           <setting name="AdcEnableSetChannel" value="false"/>
+                           <setting name="AdcEnableDualClockMode" value="false"/>
+                           <setting name="AdcEnableCalibration" value="false"/>
+                           <setting name="AdcEnableReadRawDataApi" value="false"/>
+                           <setting name="AdcEnableGroupStreamingResultReorder" value="false"/>
+                        </struct>
+                     </config_set>
+                  </instance>
                </instances>
             </functional_group>
          </functional_groups>

+ 164 - 0
generate/include/Adc_Cfg.h

@@ -0,0 +1,164 @@
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : ADC
+*   Dependencies         : none
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+
+#ifndef ADC_CFG_H
+#define ADC_CFG_H
+
+/**
+*   @file
+*
+*   @addtogroup adc_driver_config Adc Driver Configuration
+*   @{
+*/
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+/*==================================================================================================
+*                                        INCLUDE FILES
+* 1) system and project includes
+* 2) needed interfaces from external units
+* 3) internal and external interfaces from this unit
+==================================================================================================*/
+#include "Adc_CfgDefines.h"
+#include "Adc_Types.h"
+#include "Adc_VS_0_PBcfg.h"
+
+/*==================================================================================================
+*                              SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+
+#define ADC_VENDOR_ID_CFG                       43
+#define ADC_AR_RELEASE_MAJOR_VERSION_CFG        4
+#define ADC_AR_RELEASE_MINOR_VERSION_CFG        4
+#define ADC_AR_RELEASE_REVISION_VERSION_CFG     0
+#define ADC_SW_MAJOR_VERSION_CFG                1
+#define ADC_SW_MINOR_VERSION_CFG                0
+#define ADC_SW_PATCH_VERSION_CFG                0
+
+/*==================================================================================================
+*                                     FILE VERSION CHECKS
+==================================================================================================*/
+
+/* Check if header file and Adc_CfgDefines header file are of the same vendor */
+#if (ADC_VENDOR_ID_CFG != ADC_VENDOR_ID_CFGDEFINES_H)
+    #error "Adc_Cfg.h and Adc_CfgDefines.h have different vendor ids"
+#endif
+
+/* Check if header file and Adc_CfgDefines header file are of the same Autosar version */
+#if ((ADC_AR_RELEASE_MAJOR_VERSION_CFG != ADC_AR_RELEASE_MAJOR_VERSION_CFGDEFINES_H) || \
+     (ADC_AR_RELEASE_MINOR_VERSION_CFG != ADC_AR_RELEASE_MINOR_VERSION_CFGDEFINES_H) || \
+     (ADC_AR_RELEASE_REVISION_VERSION_CFG != ADC_AR_RELEASE_REVISION_VERSION_CFGDEFINES_H) \
+    )
+    #error "AutoSar Version Numbers of Adc_Cfg.h and Adc_CfgDefines.h are different"
+#endif
+
+/* Check if header file and Adc Cfg header file are of the same Software version */
+#if ((ADC_SW_MAJOR_VERSION_CFG != ADC_SW_MAJOR_VERSION_CFGDEFINES_H) || \
+     (ADC_SW_MINOR_VERSION_CFG != ADC_SW_MINOR_VERSION_CFGDEFINES_H) || \
+     (ADC_SW_PATCH_VERSION_CFG != ADC_SW_PATCH_VERSION_CFGDEFINES_H) \
+    )
+    #error "Software Version Numbers of Adc_Cfg.h and Adc_CfgDefines.h are different"
+#endif
+
+/* Check if Adc_Cfg.h file and Adc_Types.h file are of the same vendor */
+#if (ADC_VENDOR_ID_CFG != ADC_VENDOR_ID_TYPES_H)
+    #error "Adc_Cfg.h and Adc_Types.h have different vendor ids"
+#endif
+
+/* Check if Adc_Cfg.h file and Adc_Types.h file are of the same Autosar version */
+#if ((ADC_AR_RELEASE_MAJOR_VERSION_CFG != ADC_AR_RELEASE_MAJOR_VERSION_TYPES_H) || \
+     (ADC_AR_RELEASE_MINOR_VERSION_CFG != ADC_AR_RELEASE_MINOR_VERSION_TYPES_H) || \
+     (ADC_AR_RELEASE_REVISION_VERSION_CFG != ADC_AR_RELEASE_REVISION_VERSION_TYPES_H) \
+    )
+    #error "AutoSar Version Numbers of Adc_Cfg.h and Adc_Types.h are different"
+#endif
+
+/* Check if Adc_Cfg.h file and Adc_Types.h file are of the same Software version */
+#if ((ADC_SW_MAJOR_VERSION_CFG != ADC_SW_MAJOR_VERSION_TYPES_H) || \
+     (ADC_SW_MINOR_VERSION_CFG != ADC_SW_MINOR_VERSION_TYPES_H) || \
+     (ADC_SW_PATCH_VERSION_CFG != ADC_SW_PATCH_VERSION_TYPES_H) \
+    )
+  #error "Software Version Numbers of Adc_Cfg.h and Adc_Types.h are different"
+#endif
+
+/* Check if source file and Adc configuration header file are of the same vendor */
+#if (ADC_VENDOR_ID_VS_0_PBCFG_H != ADC_VENDOR_ID_CFG)
+    #error "Adc_VS_0_PBcfg.h and Adc_Cfg.h have different vendor IDs"
+#endif
+/* Check if header file and Adc configuration header file are of the same Autosar version */
+#if ((ADC_AR_RELEASE_MAJOR_VERSION_VS_0_PBCFG_H != ADC_AR_RELEASE_MAJOR_VERSION_CFG) || \
+     (ADC_AR_RELEASE_MINOR_VERSION_VS_0_PBCFG_H != ADC_AR_RELEASE_MINOR_VERSION_CFG) || \
+     (ADC_AR_RELEASE_REVISION_VERSION_VS_0_PBCFG_H != ADC_AR_RELEASE_REVISION_VERSION_CFG) \
+    )
+    #error "AutoSar Version Numbers of Adc_VS_0_PBcfg.h and Adc_Cfg.h are different"
+#endif
+/* Check if header file and Adc configuration header file are of the same software version */
+#if ((ADC_SW_MAJOR_VERSION_VS_0_PBCFG_H != ADC_SW_MAJOR_VERSION_CFG) || \
+     (ADC_SW_MINOR_VERSION_VS_0_PBCFG_H != ADC_SW_MINOR_VERSION_CFG) || \
+     (ADC_SW_PATCH_VERSION_VS_0_PBCFG_H != ADC_SW_PATCH_VERSION_CFG) \
+    )
+    #error "Software Version Numbers of Adc_VS_0_PBcfg.h and Adc_Cfg.h are different"
+#endif
+
+/*==================================================================================================
+*                                          CONSTANTS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                      DEFINES AND MACROS
+==================================================================================================*/
+#define ADC_CONFIG_EXT \
+ ADC_CONFIG_VS_0_PB \
+
+
+/*==================================================================================================
+*                                             ENUMS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                STRUCTURES AND OTHER TYPEDEFS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                GLOBAL VARIABLE DECLARATIONS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                      LOCAL CONSTANTS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                    FUNCTION PROTOTYPES
+==================================================================================================*/
+
+#ifdef __cplusplus
+}
+#endif
+
+/** @} */
+
+#endif /* ADC_CFG_H */
+

+ 459 - 0
generate/include/Adc_CfgDefines.h

@@ -0,0 +1,459 @@
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : ADC
+*   Dependencies         : none
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+
+#ifndef ADC_CFGDEFINES_H
+#define ADC_CFGDEFINES_H
+
+/**
+*   @file
+*
+*   @addtogroup adc_driver_config Adc Driver Configuration
+*   @{
+*/
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+/*==================================================================================================
+*                                        INCLUDE FILES
+* 1) system and project includes
+* 2) needed interfaces from external units
+* 3) internal and external interfaces from this unit
+==================================================================================================*/
+
+/*==================================================================================================
+*                              SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+
+#define ADC_VENDOR_ID_CFGDEFINES_H                      43
+#define ADC_AR_RELEASE_MAJOR_VERSION_CFGDEFINES_H       4
+#define ADC_AR_RELEASE_MINOR_VERSION_CFGDEFINES_H       4
+#define ADC_AR_RELEASE_REVISION_VERSION_CFGDEFINES_H    0
+#define ADC_SW_MAJOR_VERSION_CFGDEFINES_H               1
+#define ADC_SW_MINOR_VERSION_CFGDEFINES_H               0
+#define ADC_SW_PATCH_VERSION_CFGDEFINES_H               0
+
+/*==================================================================================================
+*                                     FILE VERSION CHECKS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                          CONSTANTS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                      DEFINES AND MACROS
+==================================================================================================*/
+
+/**
+* @brief          CMR register not present on this platform.
+*/
+#define ADC_CMR_REGISTER_NOT_SUPPORTED
+
+/**
+* @brief          Specifies if Current channel is used
+*/
+#define ADC_CURRENT_CHANNEL_USED
+
+/**
+* @brief          Multicore feature is disabled on this platform.
+*/
+#define ADC_MULTICORE_SUPPORT               (STD_OFF)
+
+/**
+* @brief          Number of configured partitions.
+*/
+#define ADC_MAX_PARTITIONS                  (1U)
+
+/**
+* @brief          ADC unit 0 available
+*/
+#define ADC_UNIT_0                          (0U)
+
+/**
+* @brief          ADC unit 1 available
+*/
+#define ADC_UNIT_1                          (1U)
+
+
+/**
+* @brief           Adds/removes ((STD_ON)/(STD_OFF)) the services Adc_EnableHardwareTrigger() and Adc_DisableHardwareTrigger() from the code.
+*/
+#define ADC_HW_TRIGGER_API                  (STD_ON)
+
+/**
+* @brief           AdcSetHwUnitPowerMode api enabled/disabled ((STD_ON)/(STD_OFF)).
+*/
+#define ADC_SET_HW_UNIT_POWER_MODE_API                    (STD_OFF)
+
+/**
+* @brief           Enables or disables limit checking feature in the ADC driver.
+*/
+#define ADC_ENABLE_LIMIT_CHECK              (STD_OFF)
+
+/**
+* @brief           Group notification mechanism is/is not ((STD_ON)/(STD_OFF)) available at runtime.
+*/
+#define ADC_GRP_NOTIF_CAPABILITY            (STD_ON)
+
+/**
+* @brief           Type of prioritization mechanism ADC_PRIORITY_HW, ADC_PRIORITY_HW_SW and ADC_PRIORITY_NONE.
+*/
+/* SWS_Adc_00522 */
+#define ADC_PRIORITY_HW                     (0U)
+#define ADC_PRIORITY_HW_SW                  (1U)
+#define ADC_PRIORITY_NONE                   (2U)
+
+/**
+* @brief           Priority implementation.
+*/
+#define ADC_PRIORITY_IMPLEMENTATION         (ADC_PRIORITY_NONE)
+
+/**
+* @brief           Type of alignment mechanism ADC_ALIGN_RIGHT, ADC_ALIGN_LEFT.
+*/
+/* SWS_Adc_00525 */
+#define ADC_ALIGN_RIGHT                     (0U)
+#define ADC_ALIGN_LEFT                      (1U)
+
+/**
+* @brief           Result Alignment.
+*/
+#define ADC_RESULT_ALIGNMENT                (ADC_ALIGN_RIGHT)
+
+/**
+* @brief         This is a timeout value which is used to wait until
+*                  - the conversion is not aborted.
+*                  - ADC hardware is not entered in power down state.
+*                  - ADC hardware is not entered in idle state.
+*/
+#define ADC_TIMEOUT_COUNTER                 (100000UL)
+
+/**
+* @brief           Specifies for reducing the number of interrupts for streaming groups
+*/
+#define ADC_OPTIMIZE_DMA_STREAMING_GROUPS   (STD_OFF)
+
+
+
+/**
+* @brief           Specifies to optimize conversions for hw triggered, one shot group.
+*/
+#define ADC_OPTIMIZE_ONESHOT_HW_TRIGGER     (STD_OFF)
+
+/**
+* @brief           Specifies to configure BCTU/CTU list at initialization for ctu hardware trigger mode groups.
+*/
+#define ADC_CTU_HW_TRIGGER_OPTIMIZATION     (STD_OFF)
+
+/**
+ * @brief   Define the number of maximum hardware unit configured
+ */
+#define ADC_MAX_HW_UNITS_CFG                      (1U)
+
+/**
+* @brief           Add/Remove Autosar Extension Adc_EnableChannel() and Adc_DisableChannel() api.
+*/
+#define ADC_ENABLE_CH_DISABLE_CH_NONAUTO_API      (STD_OFF)
+
+/**
+* @brief           Get injected conversion status api enabled/disabled (STD_ON/STD_OFF).
+*/
+#define ADC_GET_INJECTED_CONVERSION_STATUS_API    (STD_OFF)
+
+/**
+* @brief           Adc transfer type.
+*/
+#ifdef ADC_DMA_SUPPORTED
+#define ADC_DMA                             (0U)
+#endif /* ADC_DMA_SUPPORTED */
+#define ADC_INTERRUPT                       (1U)
+
+/**
+* @brief          Add/Remove Autosar Extension Adc_SetClockMode().
+*/
+#define ADC_DUAL_CLOCK_MODE                       (STD_OFF)
+
+/**
+* @brief          Add/remove ((STD_ON)/(STD_OFF)) the service Adc_Calibration() from the code.
+*/
+#define ADC_CALIBRATION                           (STD_ON)
+
+/**
+* @brief          Add/remove ((STD_ON)/(STD_OFF)) the service Adc_SetChannel() from the code.
+*/
+#define ADC_SETCHANNEL_API                        (STD_OFF)
+
+/**
+* @brief          Extra group notification mechanism is/is not ((STD_ON)/(STD_OFF)) available at runtime.
+*/
+#define ADC_ENABLE_INITIAL_NOTIFICATION           (STD_OFF)
+
+/**
+* @brief          Add/remove ((STD_ON)/(STD_OFF)) the service Adc_SelfTest() from the code.
+*/
+#define ADC_SELF_TEST                             (STD_OFF)
+
+/**
+* @brief           ADC Configure Threshold enabled/disabled (STD_ON/STD_OFF).
+*/
+#define ADC_ENABLE_CONFIGURE_THRESHOLD_NONAUTO_API  (STD_OFF)
+
+/**
+* @brief           Switch to enable/disable the API for the CPR_RTD_00056, CPR_RTD_00057, CPR_RTD_00058, CPR_RTD_00059 and CPR_RTD_00060.
+*/
+#define ADC_CTU_CONTROL_MODE_EXTRA_APIS           (STD_OFF)
+
+/**
+* @brief           This switch is used to enable the hardware trigger Autosar Extension API for the CPR_RTD_00037, CPR_RTD_00038, CPR_RTD_00039, CPR_RTD_00040, CPR_RTD_00041.
+*/
+#define ADC_ENABLE_CTUTRIG_NONAUTO_API            (STD_OFF)
+
+/**
+* @brief           Switch to enable/disable the API for the CPR-MCAL-726, CPR-MCAL-727, CPR-MCAL-728.
+*/
+#define ADC_ENABLE_CTU_CONTROL_MODE_API           (STD_OFF)
+
+/**
+* @brief           Switch to enable/disable the API for Tempsense.
+*/
+#define ADC_ENABLE_TEMPSENSE_API                  (STD_OFF)
+#define ADC_POWER_ON_TEMPSENSE                    (STD_OFF)
+
+/**
+* @brief           Enable the read of raw data API (CPR_RTD_00508).
+*/
+#define ADC_ENABLE_READ_RAW_DATA_API              (STD_OFF)
+
+/**
+* @brief           Enable Group Streaming Result as multiple set.
+*/
+#define ADC_ENABLE_GROUP_STREAMING_RESULTS_REORDER (STD_OFF)
+
+/**
+* @brief IRQ definition
+*/
+
+#define ADC_UNIT_1_ISR_USED
+
+/**
+* @brief           max queue depth configured across all configset.
+*/
+#define ADC_QUEUE_MAX_DEPTH_MAX             (1U)
+
+/**
+* @brief           max number of groups configured across all configset.
+*/
+#define ADC_MAX_GROUPS                      (2U)
+
+/**
+* @brief           Invalid Hardware group ID to determine there is no ongoing hardware group
+*/
+#define ADC_INVALID_HW_GROUP_ID             (0xFFFFU)
+
+#ifdef ADC_DMA_SUPPORTED
+/**
+* @brief           Maximum number of channels across all hardware units.
+*/
+#define ADC_MAX_CHANNEL_PER_HW_UNIT         (7U)
+#endif /* ADC_DMA_SUPPORTED */
+
+/**
+* @brief           Software injected conversion use
+*/
+#define ADC_SOFTWARE_INJECTED_CONVERSIONS_USED    (STD_OFF)
+
+/**
+* @brief          Configuration Precompile variant.
+* @details        Configuration Precompile variant.
+*/
+#define ADC_PRECOMPILE_SUPPORT                    (STD_OFF)
+
+/**
+* @brief          Development error detection enabled/disabled ((STD_ON)/(STD_OFF)).
+*/
+#define ADC_DEV_ERROR_DETECT                      (STD_ON)
+
+/**
+* @brief          Add/remove ((STD_ON)/(STD_OFF)) the service Adc_GetVersionInfo() from the code.
+*/
+#define ADC_VERSION_INFO_API                      (STD_ON)
+
+/**
+* @brief          Add/remove ((STD_ON)/(STD_OFF)) the service Adc_DeInit() from the code.
+*/
+#define ADC_DEINIT_API                            (STD_ON)
+
+/**
+* @brief          Add/remove ((STD_ON)/(STD_OFF)) the services Adc_StartGroupConversion()and Adc_StopGroupConversion() from the code.
+*/
+#define ADC_ENABLE_START_STOP_GROUP_API           (STD_ON)
+
+/**
+* @brief          Add/Remove the services Adc_ReadGroup() from the code.
+*/
+#define ADC_READ_GROUP_API                        (STD_ON)
+
+/**
+* @brief          Add/Remove One time setting of Conversion time registers from Init() function.
+*/
+#define ADC_SET_ADC_CONV_TIME_ONCE                (STD_OFF)
+
+/**
+* @brief   Switch to enable that power state mode is supported
+*
+*/
+#define ADC_POWER_STATE_SUPPORTED                 (STD_OFF)
+
+#if (ADC_POWER_STATE_SUPPORTED == STD_ON)
+/**
+* @brief   Enable/Disable the asynchronous power mode
+*
+*/
+#define ADC_POWER_STATE_ASYNCH_MODE_SUPPORTED     (STD_OFF)
+#endif /* (ADC_POWER_STATE_SUPPORTED == STD_ON) */
+
+/**
+* @brief           This switch is used to enable the queue.
+*/
+#define ADC_ENABLE_QUEUING                        (STD_ON)
+
+/**
+* @brief           This switch is used to enable the Autosar Extension ADC performance optimization feature.
+*/
+#define ADC_BYPASS_ABORT_CHAIN_CHECK              (STD_OFF)
+
+/**
+* @brief           Symbolic names of ADC Hardware units.
+* @details         Values generated are the ADC Logical Unit ID selected from configurator.
+*                  These defines are recommended to be used with any ADC driver API that takes as input parameter Adc Unit.
+*/
+#define AdcHwUnit_0                               (0U)
+
+/**
+* @brief          Adc channel id.
+*/
+#define ADC_ID_CHANNEL_U8(Id)                     (Id)
+
+/**
+* @brief          macros to simplify access to structures.
+* @details        Streaming number of samples
+*/
+#define ADC_STREAMING_NUM_SAMPLES(num)            (num)
+
+/**
+* @brief          Adc group priority.
+*/
+#define ADC_GROUP_PRIORITY(Priority)              (Priority)
+
+/**
+* @brief           AUTOSAR Symbolic names of channels on all HW units with encoded value.
+* @details         Bit fields [12-15]:  HW unit physical id
+*                  Bit fields [0-11]:   Logical id of channel in HW unit (used in Adc_EnableChannel()/Adc_DisableChannel())
+*/
+#define Adc1_VREFH                       (0x1000U)
+#define Adc1_BANDGAP                       (0x1001U)
+#define Adc1_VREFL                       (0x1002U)
+#define PTB13_ADC1_SE8_MCU_CC1                       (0x1003U)
+#define PTB12_ADC1_SE7_MCU_TP1                       (0x1004U)
+#define PTD4_ADC1_SE6_MCU_TP2                       (0x1005U)
+#define PTE6_ADC1_SE11_MCU_SYS_TP                       (0x1006U)
+
+/**
+* @brief          Definitions used for extracting the ADC Logical Unit Id and logical id of channels in each unit from equivalent channel symbolic name
+*/
+#if (ADC_ENABLE_CH_DISABLE_CH_NONAUTO_API == STD_ON)
+#define ADC_CHANNEL_SYMBOLIC_NAME_MASK_CHANNEL_ID_U16           (0xFFFU)
+#define ADC_CHANNEL_SYMBOLIC_NAME_SHIFT_HW_UNIT_ID_U16          (12U)
+#endif /* (ADC_ENABLE_CH_DISABLE_CH_NONAUTO_API == STD_ON) */
+
+/**
+* @brief           Autosar Extension symbolic names of channels per groups, on all HW units, with value set to channel index in the group.
+*/
+#define AdcGroupSoftwareOneShot_Adc1_VREFH                   (0U)
+#define AdcGroupSoftwareOneShot_Adc1_BANDGAP                   (1U)
+#define AdcGroupSoftwareOneShot_Adc1_VREFL                   (2U)
+#define AdcGroupSoftwareOneShot_PTE6_ADC1_SE11_MCU_SYS_TP                   (3U)
+#define AdcGroupSoftwareOneShot_PTD4_ADC1_SE6_MCU_TP2                   (4U)
+#define AdcGroupSoftwareOneShot_PTB12_ADC1_SE7_MCU_TP1                   (5U)
+#define AdcGroupSoftwareOneShot_PTB13_ADC1_SE8_MCU_CC1                   (6U)
+#define AdcGroupHardwareOneShot_Adc1_VREFH                   (0U)
+#define AdcGroupHardwareOneShot_Adc1_BANDGAP                   (1U)
+#define AdcGroupHardwareOneShot_Adc1_VREFL                   (2U)
+#define AdcGroupHardwareOneShot_PTE6_ADC1_SE11_MCU_SYS_TP                   (3U)
+#define AdcGroupHardwareOneShot_PTD4_ADC1_SE6_MCU_TP2                   (4U)
+#define AdcGroupHardwareOneShot_PTB12_ADC1_SE7_MCU_TP1                   (5U)
+#define AdcGroupHardwareOneShot_PTB13_ADC1_SE8_MCU_CC1                   (6U)
+
+/**
+* @brief           Symbolic names of groups.
+*/
+
+#define AdcGroupSoftwareOneShot                                (0U)
+#define AdcGroupHardwareOneShot                                (1U)
+
+/**
+* @brief           Symbolic names of groups - ecuc 2108 compliant.
+*/
+
+#define AdcConf_AdcGroup_AdcGroupSoftwareOneShot               (0U)
+#define AdcConf_AdcGroup_AdcGroupHardwareOneShot               (1U)
+
+/**
+* @brief          ADC Global Validation.
+*/
+#define ADC_VALIDATE_GLOBAL_CALL         (ADC_DEV_ERROR_DETECT)
+#define ADC_VALIDATE_CALL_AND_GROUP      (ADC_DEV_ERROR_DETECT)
+#define ADC_VALIDATE_CALL_AND_UNIT       (ADC_DEV_ERROR_DETECT)
+#define ADC_VALIDATE_PARAMS              (ADC_DEV_ERROR_DETECT)
+#define ADC_VALIDATE_NOTIFY_CAPABILITY   (ADC_DEV_ERROR_DETECT)
+
+/*==================================================================================================
+*                                             ENUMS
+==================================================================================================*/
+
+
+/*==================================================================================================
+*                                STRUCTURES AND OTHER TYPEDEFS
+==================================================================================================*/
+
+
+/*==================================================================================================
+*                                GLOBAL VARIABLE DECLARATIONS
+==================================================================================================*/
+
+
+/*==================================================================================================
+*                                    FUNCTION PROTOTYPES
+==================================================================================================*/
+
+#ifdef __cplusplus
+}
+#endif
+
+/** @} */
+
+#endif /* ADC_CFGDEFINES_H */
+

+ 140 - 0
generate/include/Adc_Ip_Cfg.h

@@ -0,0 +1,140 @@
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : ADC
+*   Dependencies         : none
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+
+#ifndef ADC_IP_CFG_H
+#define ADC_IP_CFG_H
+
+/**
+*   @file
+*
+*   @addtogroup adc_ip_config Adc IPL Configuration
+*   @{
+*/
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+/*==================================================================================================
+*                                        INCLUDE FILES
+* 1) system and project includes
+* 2) needed interfaces from external units
+* 3) internal and external interfaces from this unit
+==================================================================================================*/
+#include "Adc_Ip_Types.h"
+#include "Adc_Ip_VS_0_PBcfg.h"
+
+/*==================================================================================================
+*                              SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+
+#define ADC_IP_VENDOR_ID_CFG_H                      43
+#define ADC_IP_AR_RELEASE_MAJOR_VERSION_CFG_H       4
+#define ADC_IP_AR_RELEASE_MINOR_VERSION_CFG_H       4
+#define ADC_IP_AR_RELEASE_REVISION_VERSION_CFG_H    0
+#define ADC_IP_SW_MAJOR_VERSION_CFG_H               1
+#define ADC_IP_SW_MINOR_VERSION_CFG_H               0
+#define ADC_IP_SW_PATCH_VERSION_CFG_H               0
+
+/*==================================================================================================
+*                                     FILE VERSION CHECKS
+==================================================================================================*/
+/* Check if Adc_Ip_Cfg.h file and Adc_Ip_Types.h file are of the same vendor */
+#if (ADC_IP_VENDOR_ID_CFG_H != ADC_IP_VENDOR_ID_TYPES_H)
+    #error "Adc_Ip_Cfg.h and Adc_Ip_Types.h have different vendor ids"
+#endif
+
+/* Check if Adc_Ip_Cfg.h file and Adc_Ip_Types.h file are of the same Autosar version */
+#if ((ADC_IP_AR_RELEASE_MAJOR_VERSION_CFG_H != ADC_IP_AR_RELEASE_MAJOR_VERSION_TYPES_H) || \
+     (ADC_IP_AR_RELEASE_MINOR_VERSION_CFG_H != ADC_IP_AR_RELEASE_MINOR_VERSION_TYPES_H) || \
+     (ADC_IP_AR_RELEASE_REVISION_VERSION_CFG_H != ADC_IP_AR_RELEASE_REVISION_VERSION_TYPES_H) \
+    )
+    #error "AutoSar Version Numbers of Adc_Ip_Cfg.h and Adc_Ip_Types.h are different"
+#endif
+
+/* Check if Adc_Ip_Cfg.h file and Adc_Ip_Types.h file are of the same Software version */
+#if ((ADC_IP_SW_MAJOR_VERSION_CFG_H != ADC_IP_SW_MAJOR_VERSION_TYPES_H) || \
+     (ADC_IP_SW_MINOR_VERSION_CFG_H != ADC_IP_SW_MINOR_VERSION_TYPES_H) || \
+     (ADC_IP_SW_PATCH_VERSION_CFG_H != ADC_IP_SW_PATCH_VERSION_TYPES_H) \
+    )
+  #error "Software Version Numbers of Adc_Ip_Cfg.h and Adc_Ip_Types.h are different"
+#endif
+
+/* Check if Adc_Ip_Cfg.h file and Adc_Ip_VS_0_PBcfg.h file are of the same vendor */
+#if (ADC_IP_VENDOR_ID_CFG_H != ADC_IP_VENDOR_ID_VS_0_PBCFG_H)
+    #error "Adc_Ip_Cfg.h and Adc_Ip_VS_0_PBcfg.h have different vendor ids"
+#endif
+
+/* Check if Adc_Ip_Cfg.h file and Adc_Ip_VS_0_PBcfg.h file are of the same Autosar version */
+#if ((ADC_IP_AR_RELEASE_MAJOR_VERSION_CFG_H != ADC_IP_AR_RELEASE_MAJOR_VERSION_VS_0_PBCFG_H) || \
+     (ADC_IP_AR_RELEASE_MINOR_VERSION_CFG_H != ADC_IP_AR_RELEASE_MINOR_VERSION_VS_0_PBCFG_H) || \
+     (ADC_IP_AR_RELEASE_REVISION_VERSION_CFG_H != ADC_IP_AR_RELEASE_REVISION_VERSION_VS_0_PBCFG_H) \
+    )
+    #error "AutoSar Version Numbers of Adc_Ip_Cfg.h and Adc_Ip_VS_0_PBcfg.h are different"
+#endif
+
+/* Check if Adc_Ip_Cfg.h file and Adc_Ip_VS_0_PBcfg.h file are of the same Software version */
+#if ((ADC_IP_SW_MAJOR_VERSION_CFG_H != ADC_IP_SW_MAJOR_VERSION_VS_0_PBCFG_H) || \
+     (ADC_IP_SW_MINOR_VERSION_CFG_H != ADC_IP_SW_MINOR_VERSION_VS_0_PBCFG_H) || \
+     (ADC_IP_SW_PATCH_VERSION_CFG_H != ADC_IP_SW_PATCH_VERSION_VS_0_PBCFG_H) \
+    )
+  #error "Software Version Numbers of Adc_Ip_Cfg.h and Adc_Ip_VS_0_PBcfg.h are different"
+#endif
+
+/*==================================================================================================
+*                                          CONSTANTS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                      DEFINES AND MACROS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                             ENUMS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                STRUCTURES AND OTHER TYPEDEFS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                GLOBAL VARIABLE DECLARATIONS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                      LOCAL CONSTANTS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                    FUNCTION PROTOTYPES
+==================================================================================================*/
+
+#ifdef __cplusplus
+}
+#endif
+
+/** @} */
+
+#endif /* ADC_IP_CFG_H */
+

+ 159 - 0
generate/include/Adc_Ip_CfgDefines.h

@@ -0,0 +1,159 @@
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : ADC
+*   Dependencies         : none
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+
+#ifndef ADC_IP_CFGDEFINES_H
+#define ADC_IP_CFGDEFINES_H
+
+/**
+*   @file
+*
+*   @addtogroup adc_ip_config Adc IPL Configuration
+*   @{
+*/
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+/*==================================================================================================
+*                                         INCLUDE FILES
+* 1) system and project includes
+* 2) needed interfaces from external units
+* 3) internal and external interfaces from this unit
+==================================================================================================*/
+
+/* Important Note: The header warapper file depends on header platform and can not be used independently.
+*  Do not change #include order in this file */
+#include "S32K146_ADC.h"
+#include "S32K146_SIM.h"
+#include "Adc_Ip_HeaderWrapper_S32K14x_Extended.h"
+#include "OsIf.h"
+
+/*==================================================================================================
+*                                SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+#define ADC_IP_VENDOR_ID_CFGDEFINES_H                      43
+#define ADC_IP_AR_RELEASE_MAJOR_VERSION_CFGDEFINES_H       4
+#define ADC_IP_AR_RELEASE_MINOR_VERSION_CFGDEFINES_H       4
+#define ADC_IP_AR_RELEASE_REVISION_VERSION_CFGDEFINES_H    0
+#define ADC_IP_SW_MAJOR_VERSION_CFGDEFINES_H               1
+#define ADC_IP_SW_MINOR_VERSION_CFGDEFINES_H               0
+#define ADC_IP_SW_PATCH_VERSION_CFGDEFINES_H               0
+/*==================================================================================================
+*                                      FILE VERSION CHECKS
+==================================================================================================*/
+
+/* Check if Adc_Ip_CfgDefines.h file and Adc_Ip_HeaderWrapper_S32K14x_Extended.h file are of the same vendor */
+#if (ADC_IP_VENDOR_ID_CFGDEFINES_H != ADC_IP_VENDOR_ID_HEADERWRAPPER_S32K14X_EXTENDED_H)
+    #error "Adc_Ip_CfgDefines.h and Adc_Ip_HeaderWrapper_S32K14x_Extended.h have different vendor ids"
+#endif
+
+/* Check if Adc_Ip_CfgDefines.h file and Adc_Ip_HeaderWrapper_S32K14x_Extended.h file are of the same Autosar version */
+#if ((ADC_IP_AR_RELEASE_MAJOR_VERSION_CFGDEFINES_H != ADC_IP_AR_RELEASE_MAJOR_VERSION_HEADERWRAPPER_S32K14X_EXTENDED_H) || \
+     (ADC_IP_AR_RELEASE_MINOR_VERSION_CFGDEFINES_H != ADC_IP_AR_RELEASE_MINOR_VERSION_HEADERWRAPPER_S32K14X_EXTENDED_H) || \
+     (ADC_IP_AR_RELEASE_REVISION_VERSION_CFGDEFINES_H != ADC_IP_AR_RELEASE_REVISION_VERSION_HEADERWRAPPER_S32K14X_EXTENDED_H) \
+    )
+    #error "AutoSar Version Numbers of Adc_Ip_CfgDefines.h and Adc_Ip_HeaderWrapper_S32K14x_Extended.h are different"
+#endif
+
+/* Check if Adc_Ip_CfgDefines.h file and Adc_Ip_HeaderWrapper_S32K14x_Extended.h file are of the same Software version */
+#if ((ADC_IP_SW_MAJOR_VERSION_CFGDEFINES_H != ADC_IP_SW_MAJOR_VERSION_HEADERWRAPPER_S32K14X_EXTENDED_H) || \
+     (ADC_IP_SW_MINOR_VERSION_CFGDEFINES_H != ADC_IP_SW_MINOR_VERSION_HEADERWRAPPER_S32K14X_EXTENDED_H) || \
+     (ADC_IP_SW_PATCH_VERSION_CFGDEFINES_H != ADC_IP_SW_PATCH_VERSION_HEADERWRAPPER_S32K14X_EXTENDED_H) \
+    )
+  #error "Software Version Numbers of Adc_Ip_CfgDefines.h and Adc_Ip_HeaderWrapper_S32K14x_Extended.h are different"
+#endif
+
+#ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
+/* Check AutoSar version */
+#if ((ADC_IP_AR_RELEASE_MAJOR_VERSION_CFGDEFINES_H != OSIF_AR_RELEASE_MAJOR_VERSION) || \
+     (ADC_IP_AR_RELEASE_MINOR_VERSION_CFGDEFINES_H != OSIF_AR_RELEASE_MINOR_VERSION)    \
+    )
+    #error "AutoSar Version Numbers of Adc_Ip_CfgDefines.h and OsIf.h are different"
+#endif
+#endif /* DISABLE_MCAL_INTERMODULE_ASR_CHECK */
+/*==================================================================================================
+*                          LOCAL TYPEDEFS (STRUCTURES, UNIONS, ENUMS)
+==================================================================================================*/
+
+/*==================================================================================================
+*                                        LOCAL MACROS
+==================================================================================================*/
+
+#define ADC_IP_DEV_ERROR_DETECT                (STD_OFF)
+#define ADC_IP_TIMEOUT_TYPE                    (OSIF_COUNTER_DUMMY)
+#define ADC_IP_TIMEOUT_VAL                     (100000UL)
+#define ADC_IP_ENABLE_USER_MODE_SUPPORT        (STD_OFF)
+#define ADC_IP_SUPPLY_MONITORING_ENABLED       (STD_OFF)
+#define ADC_IP_ENABLE_SIM_SOURCE_SELECTION     (STD_OFF)
+
+/*! @brief ADC default Sample Time from RM */
+#define ADC_IP_DEFAULT_SAMPLE_TIME             (0x0CU)
+/*! @brief ADC default User Gain from RM */
+#define ADC_IP_DEFAULT_USER_GAIN               (0x04U)
+
+/*! @brief ADC Max external channel ID */
+#define FEATURE_ADC_MAX_EXT_CHAN_ID            (15U)
+/*! @brief ADC has external channels */
+#define FEATURE_ADC_HAS_CHANNEL_2              (1U)
+#define FEATURE_ADC_HAS_CHANNEL_8              (1U)
+#define FEATURE_ADC_HAS_CHANNEL_9              (1U)
+
+
+/*==================================================================================================
+*                                       LOCAL CONSTANTS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                       LOCAL VARIABLES
+==================================================================================================*/
+
+/*==================================================================================================
+*                                       GLOBAL CONSTANTS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                       GLOBAL VARIABLES
+==================================================================================================*/
+
+/*==================================================================================================
+*                                   LOCAL FUNCTION PROTOTYPES
+==================================================================================================*/
+
+/*==================================================================================================
+*                                       LOCAL FUNCTIONS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                       GLOBAL FUNCTIONS
+==================================================================================================*/
+
+#ifdef __cplusplus
+}
+#endif
+
+/** @} */
+
+#endif /* ADC_IP_CFGDEFINES_H */
+

+ 118 - 0
generate/include/Adc_Ip_VS_0_PBcfg.h

@@ -0,0 +1,118 @@
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : ADC
+*   Dependencies         : none
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+
+#ifndef ADC_IP_VS_0_PBCFG_H
+#define ADC_IP_VS_0_PBCFG_H
+
+/**
+*   @file
+*
+*   @addtogroup adc_ip_config Adc IPL Configuration
+*   @{
+*/
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+/*==================================================================================================
+*                                        INCLUDE FILES
+* 1) system and project includes
+* 2) needed interfaces from external units
+* 3) internal and external interfaces from this unit
+==================================================================================================*/
+#include "Adc_Ip_Types.h"
+
+/*==================================================================================================
+*                              SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+#define ADC_IP_VENDOR_ID_VS_0_PBCFG_H                     43
+#define ADC_IP_AR_RELEASE_MAJOR_VERSION_VS_0_PBCFG_H      4
+#define ADC_IP_AR_RELEASE_MINOR_VERSION_VS_0_PBCFG_H      4
+#define ADC_IP_AR_RELEASE_REVISION_VERSION_VS_0_PBCFG_H   0
+#define ADC_IP_SW_MAJOR_VERSION_VS_0_PBCFG_H              1
+#define ADC_IP_SW_MINOR_VERSION_VS_0_PBCFG_H              0
+#define ADC_IP_SW_PATCH_VERSION_VS_0_PBCFG_H              0
+
+/*==================================================================================================
+*                                     FILE VERSION CHECKS
+==================================================================================================*/
+/* Check if Adc_Ip_VS_0_PBcfg.h file and Adc_Ip_Types.h file are of the same vendor */
+#if (ADC_IP_VENDOR_ID_VS_0_PBCFG_H != ADC_IP_VENDOR_ID_TYPES_H)
+    #error "Adc_Ip_VS_0_PBcfg.h and Adc_Ip_Types.h have different vendor ids"
+#endif
+
+/* Check if Adc_Ip_VS_0_PBcfg.h file and Adc_Ip_Types.h file are of the same Autosar version */
+#if ((ADC_IP_AR_RELEASE_MAJOR_VERSION_VS_0_PBCFG_H != ADC_IP_AR_RELEASE_MAJOR_VERSION_TYPES_H) || \
+     (ADC_IP_AR_RELEASE_MINOR_VERSION_VS_0_PBCFG_H != ADC_IP_AR_RELEASE_MINOR_VERSION_TYPES_H) || \
+     (ADC_IP_AR_RELEASE_REVISION_VERSION_VS_0_PBCFG_H != ADC_IP_AR_RELEASE_REVISION_VERSION_TYPES_H) \
+    )
+    #error "AutoSar Version Numbers of Adc_Ip_VS_0_PBcfg.h and Adc_Ip_Types.h are different"
+#endif
+
+/* Check if Adc_Ip_VS_0_PBcfg.h file and Adc_Ip_Types.h file are of the same Software version */
+#if ((ADC_IP_SW_MAJOR_VERSION_VS_0_PBCFG_H != ADC_IP_SW_MAJOR_VERSION_TYPES_H) || \
+     (ADC_IP_SW_MINOR_VERSION_VS_0_PBCFG_H != ADC_IP_SW_MINOR_VERSION_TYPES_H) || \
+     (ADC_IP_SW_PATCH_VERSION_VS_0_PBCFG_H != ADC_IP_SW_PATCH_VERSION_TYPES_H) \
+    )
+  #error "Software Version Numbers of Adc_Ip_VS_0_PBcfg.h and Adc_Ip_Types.h are different"
+#endif
+
+/*==================================================================================================
+*                                          CONSTANTS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                      DEFINES AND MACROS
+==================================================================================================*/
+
+#define ADC_START_SEC_CODE
+#include "Adc_MemMap.h"
+
+void Adc_Ipw_Adc1EndConversionNotification(const uint8 ControlChanIdx);
+
+#define ADC_STOP_SEC_CODE
+#include "Adc_MemMap.h"
+
+#define ADC_START_SEC_CONFIG_DATA_UNSPECIFIED
+#include "Adc_MemMap.h"
+
+/**
+* @brief          ADC Ip Config for Logical ID 0 corresponding to the ADC1 configuration variant VS_0.
+*/
+extern const Adc_Ip_ConfigType AdcIpConfig_0_VS_0;
+
+
+
+#define ADC_STOP_SEC_CONFIG_DATA_UNSPECIFIED
+#include "Adc_MemMap.h"
+
+#ifdef __cplusplus
+}
+#endif
+
+/** @} */
+
+#endif /* ADC_IP_VS_0_PBCFG_H */
+

+ 141 - 0
generate/include/Adc_Ipw_Cfg.h

@@ -0,0 +1,141 @@
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : ADC
+*   Dependencies         : none
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+
+#ifndef ADC_IPW_CFG_H
+#define ADC_IPW_CFG_H
+
+/**
+*   @file
+*
+*   @addtogroup adc_ipw_config Adc Ipw Configuration
+*   @{
+*/
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+/*==================================================================================================
+*                                        INCLUDE FILES
+* 1) system and project includes
+* 2) needed interfaces from external units
+* 3) internal and external interfaces from this unit
+==================================================================================================*/
+
+#include "Adc_Ipw_Types.h"
+#include "Adc_Ipw_VS_0_PBcfg.h"
+
+/*==================================================================================================
+*                              SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+
+#define ADC_VENDOR_ID_IPW_CFG_H                      43
+#define ADC_AR_RELEASE_MAJOR_VERSION_IPW_CFG_H       4
+#define ADC_AR_RELEASE_MINOR_VERSION_IPW_CFG_H       4
+#define ADC_AR_RELEASE_REVISION_VERSION_IPW_CFG_H    0
+#define ADC_SW_MAJOR_VERSION_IPW_CFG_H               1
+#define ADC_SW_MINOR_VERSION_IPW_CFG_H               0
+#define ADC_SW_PATCH_VERSION_IPW_CFG_H               0
+
+/*==================================================================================================
+*                                     FILE VERSION CHECKS
+==================================================================================================*/
+/* Check if Adc_Ipw_Cfg.h file and Adc_Ipw_Types.h file are of the same vendor */
+#if (ADC_VENDOR_ID_IPW_CFG_H != ADC_VENDOR_ID_IPW_TYPES_H)
+    #error "Adc_Ipw_Cfg.h and Adc_Ipw_Types.h have different vendor ids"
+#endif
+
+/* Check if Adc_Ipw_Cfg.h file and Adc_Ipw_Types.h file are of the same Autosar version */
+#if ((ADC_AR_RELEASE_MAJOR_VERSION_IPW_CFG_H != ADC_AR_RELEASE_MAJOR_VERSION_IPW_TYPES_H) || \
+     (ADC_AR_RELEASE_MINOR_VERSION_IPW_CFG_H != ADC_AR_RELEASE_MINOR_VERSION_IPW_TYPES_H) || \
+     (ADC_AR_RELEASE_REVISION_VERSION_IPW_CFG_H != ADC_AR_RELEASE_REVISION_VERSION_IPW_TYPES_H) \
+    )
+    #error "AutoSar Version Numbers of Adc_Ipw_Cfg.h and Adc_Ipw_Types.h are different"
+#endif
+
+/* Check if Adc_Ipw_Cfg.h file and Adc_Ipw_Types.h file are of the same Software version */
+#if ((ADC_SW_MAJOR_VERSION_IPW_CFG_H != ADC_SW_MAJOR_VERSION_IPW_TYPES_H) || \
+     (ADC_SW_MINOR_VERSION_IPW_CFG_H != ADC_SW_MINOR_VERSION_IPW_TYPES_H) || \
+     (ADC_SW_PATCH_VERSION_IPW_CFG_H != ADC_SW_PATCH_VERSION_IPW_TYPES_H) \
+    )
+  #error "Software Version Numbers of Adc_Ipw_Cfg.h and Adc_Ipw_Types.h are different"
+#endif
+
+/* Check if Adc_Ipw_Cfg.h file and Adc_Ipw_VS_0_PBcfg.h file are of the same vendor */
+#if (ADC_VENDOR_ID_IPW_CFG_H != ADC_VENDOR_ID_IPW_VS_0_PBCFG_H)
+    #error "Adc_Ipw_Cfg.h and Adc_Ipw_VS_0_PBcfg.h have different vendor ids"
+#endif
+
+/* Check if Adc_Ipw_Cfg.h file and Adc_Ipw_VS_0_PBcfg.h file are of the same Autosar version */
+#if ((ADC_AR_RELEASE_MAJOR_VERSION_IPW_CFG_H != ADC_AR_RELEASE_MAJOR_VERSION_IPW_VS_0_PBCFG_H) || \
+     (ADC_AR_RELEASE_MINOR_VERSION_IPW_CFG_H != ADC_AR_RELEASE_MINOR_VERSION_IPW_VS_0_PBCFG_H) || \
+     (ADC_AR_RELEASE_REVISION_VERSION_IPW_CFG_H != ADC_AR_RELEASE_REVISION_VERSION_IPW_VS_0_PBCFG_H) \
+    )
+    #error "AutoSar Version Numbers of Adc_Ipw_Cfg.h and Adc_Ipw_VS_0_PBcfg.h are different"
+#endif
+
+/* Check if Adc_Ipw_Cfg.h file and Adc_Ipw_VS_0_PBcfg.h file are of the same Software version */
+#if ((ADC_SW_MAJOR_VERSION_IPW_CFG_H != ADC_SW_MAJOR_VERSION_IPW_VS_0_PBCFG_H) || \
+     (ADC_SW_MINOR_VERSION_IPW_CFG_H != ADC_SW_MINOR_VERSION_IPW_VS_0_PBCFG_H) || \
+     (ADC_SW_PATCH_VERSION_IPW_CFG_H != ADC_SW_PATCH_VERSION_IPW_VS_0_PBCFG_H) \
+    )
+  #error "Software Version Numbers of Adc_Ipw_Cfg.h and Adc_Ipw_VS_0_PBcfg.h are different"
+#endif
+
+/*==================================================================================================
+*                                          CONSTANTS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                      DEFINES AND MACROS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                             ENUMS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                STRUCTURES AND OTHER TYPEDEFS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                GLOBAL VARIABLE DECLARATIONS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                      LOCAL CONSTANTS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                    FUNCTION PROTOTYPES
+==================================================================================================*/
+
+#ifdef __cplusplus
+}
+#endif
+
+/** @} */
+
+#endif /* ADC_IPW_CFG_H */
+

+ 100 - 0
generate/include/Adc_Ipw_CfgDefines.h

@@ -0,0 +1,100 @@
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : ADC
+*   Dependencies         : none
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+
+#ifndef ADC_IPW_CFGDEFINES_H
+#define ADC_IPW_CFGDEFINES_H
+
+/**
+*   @file
+*
+*   @addtogroup adc_ipw_config Adc Ipw Configuration
+*   @{
+*/
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+/*==================================================================================================
+*                                        INCLUDE FILES
+* 1) system and project includes
+* 2) needed interfaces from external units
+* 3) internal and external interfaces from this unit
+==================================================================================================*/
+
+/*==================================================================================================
+*                              SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+
+#define ADC_VENDOR_ID_IPW_CFGDEFINES_H                     43
+#define ADC_AR_RELEASE_MAJOR_VERSION_IPW_CFGDEFINES_H      4
+#define ADC_AR_RELEASE_MINOR_VERSION_IPW_CFGDEFINES_H      4
+#define ADC_AR_RELEASE_REVISION_VERSION_IPW_CFGDEFINES_H   0
+#define ADC_SW_MAJOR_VERSION_IPW_CFGDEFINES_H              1
+#define ADC_SW_MINOR_VERSION_IPW_CFGDEFINES_H              0
+#define ADC_SW_PATCH_VERSION_IPW_CFGDEFINES_H              0
+
+/*==================================================================================================
+*                              DEFINES AND MACROS
+==================================================================================================*/
+#define ADC_IPW_INVALID_LOGICAL_UNIT_ID     (0xFFU)
+
+#define ADC_IPW_INVALID_DMA_CHANNEL_ID      (0xFFU)
+
+#define ADC_IPW_INVALID_TRANSFER_TYPE       (0xFFU)
+
+/**
+ * @brief          Max number of ADC Hw units.
+ */
+#define ADC_MAX_HW_UNITS                    (2U)
+
+
+/**
+* @brief           PDB available/unavailable (STD_ON/STD_OFF).
+*/
+#define ADC_PDB_AVAILABLE                   (STD_ON)
+
+/**
+* @brief           BCTU available/unavailable (STD_ON/STD_OFF).
+*/
+#define ADC_BCTU_AVAILABLE                  (STD_OFF)
+
+/**
+* @brief           CTU available/unavailable (STD_ON/STD_OFF).
+*/
+#define ADC_CTU_AVAILABLE                   (STD_OFF)
+
+/**
+* @brief           ADC hardware is supported CALSTAT register
+*/
+#define ADC_CALSTAT_AVAILABLE               (STD_OFF)
+
+#ifdef __cplusplus
+}
+#endif
+
+/** @} */
+
+#endif /* ADC_IPW_CFGDEFINES_H */
+

+ 136 - 0
generate/include/Adc_Ipw_VS_0_PBcfg.h

@@ -0,0 +1,136 @@
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : ADC
+*   Dependencies         : none
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+
+#ifndef ADC_IPW_VS_0_PBCFG_H
+#define ADC_IPW_VS_0_PBCFG_H
+
+/**
+*   @file
+*
+*   @addtogroup adc_ipw_config Adc Ipw Configuration
+*   @{
+*/
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+/*==================================================================================================
+*                                        INCLUDE FILES
+* 1) system and project includes
+* 2) needed interfaces from external units
+* 3) internal and external interfaces from this unit
+==================================================================================================*/
+
+#include "Adc_Ipw_Types.h"
+
+/*==================================================================================================
+*                              SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+
+#define ADC_VENDOR_ID_IPW_VS_0_PBCFG_H                       43
+#define ADC_AR_RELEASE_MAJOR_VERSION_IPW_VS_0_PBCFG_H        4
+#define ADC_AR_RELEASE_MINOR_VERSION_IPW_VS_0_PBCFG_H        4
+#define ADC_AR_RELEASE_REVISION_VERSION_IPW_VS_0_PBCFG_H     0
+#define ADC_SW_MAJOR_VERSION_IPW_VS_0_PBCFG_H                1
+#define ADC_SW_MINOR_VERSION_IPW_VS_0_PBCFG_H                0
+#define ADC_SW_PATCH_VERSION_IPW_VS_0_PBCFG_H                0
+
+/*==================================================================================================
+*                                     FILE VERSION CHECKS
+==================================================================================================*/
+/* Check vendor id */
+#if (ADC_VENDOR_ID_IPW_VS_0_PBCFG_H != ADC_VENDOR_ID_IPW_TYPES_H)
+    #error "Adc_Ipw_VS_0_PBcfg.h and Adc_Ipw_Types.h have different vendor ids"
+#endif
+
+/* Check Autosar version */
+#if ((ADC_AR_RELEASE_MAJOR_VERSION_IPW_VS_0_PBCFG_H != ADC_AR_RELEASE_MAJOR_VERSION_IPW_TYPES_H) || \
+     (ADC_AR_RELEASE_MINOR_VERSION_IPW_VS_0_PBCFG_H != ADC_AR_RELEASE_MINOR_VERSION_IPW_TYPES_H) || \
+     (ADC_AR_RELEASE_REVISION_VERSION_IPW_VS_0_PBCFG_H != ADC_AR_RELEASE_REVISION_VERSION_IPW_TYPES_H) \
+    )
+    #error "AutoSar Version Numbers of Adc_Ipw_VS_0_PBcfg.h and Adc_Ipw_Types.h are different"
+#endif
+
+/* Check Software version */
+#if ((ADC_SW_MAJOR_VERSION_IPW_VS_0_PBCFG_H != ADC_SW_MAJOR_VERSION_IPW_TYPES_H) || \
+     (ADC_SW_MINOR_VERSION_IPW_VS_0_PBCFG_H != ADC_SW_MINOR_VERSION_IPW_TYPES_H) || \
+     (ADC_SW_PATCH_VERSION_IPW_VS_0_PBCFG_H != ADC_SW_PATCH_VERSION_IPW_TYPES_H) \
+    )
+  #error "Software Version Numbers of Adc_Ipw_VS_0_PBcfg.h and Adc_Ipw_Types.h are different"
+#endif
+
+/*==================================================================================================
+*                              STRUCTURES AND OTHER TYPEDEFS
+==================================================================================================*/
+
+#define ADC_START_SEC_CONFIG_DATA_UNSPECIFIED
+#include "Adc_MemMap.h"
+
+/**
+* @brief          Adc Ipw Config configuration variant VS_0.
+*/
+extern const Adc_Ipw_Config AdcIpwCfg_VS_0;
+
+/**
+* @brief          ADC Ipw Group 0 Config VS_0.
+*/
+extern const Adc_Ipw_GroupConfig AdcIpwGroupConfig_0_VS_0;
+
+/**
+* @brief          ADC Ipw Group 1 Config VS_0.
+*/
+extern const Adc_Ipw_GroupConfig AdcIpwGroupConfig_1_VS_0;
+
+
+#define ADC_STOP_SEC_CONFIG_DATA_UNSPECIFIED
+#include "Adc_MemMap.h"
+
+/*==================================================================================================
+*                                       GLOBAL FUNCTIONS
+==================================================================================================*/
+
+#define ADC_START_SEC_CODE
+#include "Adc_MemMap.h"
+
+
+/**
+* @brief         ADC Notification functions.
+* @details       ADC Nofification functions defined inside the Plugin.
+*
+*/
+extern void Notification_0(void);
+extern void Notification_1(void);
+
+#define ADC_STOP_SEC_CODE
+#include "Adc_MemMap.h"
+
+#ifdef __cplusplus
+}
+#endif
+
+/** @} */
+
+#endif /* ADC_IPW_VS_0_PBCFG_H */
+

+ 116 - 0
generate/include/Adc_VS_0_PBcfg.h

@@ -0,0 +1,116 @@
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : ADC
+*   Dependencies         : none
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+
+#ifndef ADC_VS_0_PBCFG_H
+#define ADC_VS_0_PBCFG_H
+
+/**
+*   @file
+*
+*   @addtogroup adc_driver_config Adc Driver Configuration
+*   @{
+*/
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+/*==================================================================================================
+*                                        INCLUDE FILES
+* 1) system and project includes
+* 2) needed interfaces from external units
+* 3) internal and external interfaces from this unit
+==================================================================================================*/
+
+#include "Adc_Types.h"
+
+/*==================================================================================================
+*                              SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+
+#define ADC_VENDOR_ID_VS_0_PBCFG_H                      43
+#define ADC_AR_RELEASE_MAJOR_VERSION_VS_0_PBCFG_H       4
+#define ADC_AR_RELEASE_MINOR_VERSION_VS_0_PBCFG_H       4
+#define ADC_AR_RELEASE_REVISION_VERSION_VS_0_PBCFG_H    0
+#define ADC_SW_MAJOR_VERSION_VS_0_PBCFG_H               1
+#define ADC_SW_MINOR_VERSION_VS_0_PBCFG_H               0
+#define ADC_SW_PATCH_VERSION_VS_0_PBCFG_H               0
+
+/*==================================================================================================
+*                                     FILE VERSION CHECKS
+==================================================================================================*/
+
+/* Check if Adc Configuration header file and Adc Types header file are of the same vendor */
+#if (ADC_VENDOR_ID_VS_0_PBCFG_H != ADC_VENDOR_ID_TYPES_H)
+    #error "Adc_VS_0_PBcfg.h and Adc_Types.h have different vendor ids"
+#endif
+
+/* Check if Adc Configuration header file and Adc Types header file are of the same Autosar version */
+#if ((ADC_AR_RELEASE_MAJOR_VERSION_VS_0_PBCFG_H != ADC_AR_RELEASE_MAJOR_VERSION_TYPES_H) || \
+     (ADC_AR_RELEASE_MINOR_VERSION_VS_0_PBCFG_H != ADC_AR_RELEASE_MINOR_VERSION_TYPES_H) || \
+     (ADC_AR_RELEASE_REVISION_VERSION_VS_0_PBCFG_H != ADC_AR_RELEASE_REVISION_VERSION_TYPES_H) \
+    )
+    #error "AutoSar Version Numbers of Adc_VS_0_PBcfg.h and Adc_Types.h are different"
+#endif
+
+/* Check if Adc Configuration header file and Adc Types header file are of the same Software version */
+#if ((ADC_SW_MAJOR_VERSION_VS_0_PBCFG_H != ADC_SW_MAJOR_VERSION_TYPES_H) || \
+     (ADC_SW_MINOR_VERSION_VS_0_PBCFG_H != ADC_SW_MINOR_VERSION_TYPES_H) || \
+     (ADC_SW_PATCH_VERSION_VS_0_PBCFG_H != ADC_SW_PATCH_VERSION_TYPES_H) \
+    )
+  #error "Software Version Numbers of Adc_VS_0_PBcfg.h and Adc_Types.h are different"
+#endif
+/*==================================================================================================
+*                                          CONSTANTS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                      DEFINES AND MACROS
+==================================================================================================*/
+
+#define ADC_CONFIG_VS_0_PB \
+ extern const Adc_ConfigType Adc_Config_VS_0;\
+
+/**
+* @brief           Number of channels configured for each group.
+*
+*/
+
+#define ADC_CFGSET_VS_0_GROUP_0_CHANNELS      (7U)
+#define ADC_CFGSET_VS_0_GROUP_1_CHANNELS      (7U)
+
+/**
+* @brief          Total number of groups in Config.
+*
+*/
+#define ADC_GROUPS_VS_0                       (2U)
+
+#ifdef __cplusplus
+}
+#endif
+
+/** @} */
+
+#endif /* ADC_VS_0_PBCFG_H */
+

+ 275 - 275
generate/include/CDD_Mcl_Cfg.h

@@ -1,275 +1,275 @@
-/*==================================================================================================
-*   Project              : RTD AUTOSAR 4.4
-*   Platform             : CORTEXM
-*   Peripheral           : DMA,CACHE,TRGMUX,FLEXIO
-*   Dependencies         : none
-*
-*   Autosar Version      : 4.4.0
-*   Autosar Revision     : ASR_REL_4_4_REV_0000
-*   Autosar Conf.Variant :
-*   SW Version           : 1.0.0
-*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
-*
-*   (c) Copyright 2020-2021 NXP Semiconductors
-*   All Rights Reserved.
-*
-*   NXP Confidential. This software is owned or controlled by NXP and may only be
-*   used strictly in accordance with the applicable license terms. By expressly
-*   accepting such terms or by downloading, installing, activating and/or otherwise
-*   using the software, you are agreeing that you have read, and that you agree to
-*   comply with and are bound by, such license terms. If you do not agree to be
-*   bound by the applicable license terms, then you may not retain, install,
-*   activate or otherwise use the software.
-==================================================================================================*/
-
-#ifndef CDD_MCL_CFG_H_
-#define CDD_MCL_CFG_H_
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-/**
-* @page misra_violations MISRA-C:2012 violations
-**/
-
-/*==================================================================================================
-                                         INCLUDE FILES
- 1) system and project includes
- 2) needed interfaces from external units
- 3) internal and external interfaces from this unit
-==================================================================================================*/
-#include "Mcl_Types.h"
-#include "Mcal.h"
-#include "Dma_Ip_Cfg.h"
-#include "Trgmux_Ip_Cfg.h"
-#include "Flexio_Mcl_Ip_Cfg.h"
-
-
-
-#include "CDD_Mcl_VS_0_PBcfg.h"
-
-
-
-/*==================================================================================================
-                               SOURCE FILE VERSION INFORMATION
-==================================================================================================*/
-#define CDD_MCL_CFG_VENDOR_ID_H                       43
-#define CDD_MCL_CFG_AR_RELEASE_MAJOR_VERSION_H        4
-#define CDD_MCL_CFG_AR_RELEASE_MINOR_VERSION_H        4
-#define CDD_MCL_CFG_AR_RELEASE_REVISION_VERSION_H     0
-#define CDD_MCL_CFG_SW_MAJOR_VERSION_H                1
-#define CDD_MCL_CFG_SW_MINOR_VERSION_H                0
-#define CDD_MCL_CFG_SW_PATCH_VERSION_H                0
-/*==================================================================================================
-                                      FILE VERSION CHECKS
-==================================================================================================*/
-#ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
-/* Check if header file and Mcal header file are of the same Autosar version */
-#if ((CDD_MCL_CFG_AR_RELEASE_MAJOR_VERSION_H != MCAL_AR_RELEASE_MAJOR_VERSION) || \
-     (CDD_MCL_CFG_AR_RELEASE_MINOR_VERSION_H != MCAL_AR_RELEASE_MINOR_VERSION))
-    #error "AutoSar Version Numbers of CDD_Mcl_Cfg.h and Mcal.h are different"
-#endif
-#endif
-
-/* Check if header file and Mcl_Types.h file are of the same vendor */
-#if (CDD_MCL_CFG_VENDOR_ID_H != MCL_TYPES_VENDOR_ID_H)
-    #error "CDD_Mcl_Cfg.h and Mcl_Types.h have different vendor ids"
-#endif
-
-/* Check if header file and Mcl_Types.h file are of the same Autosar version */
-#if ((CDD_MCL_CFG_AR_RELEASE_MAJOR_VERSION_H != MCL_TYPES_AR_RELEASE_MAJOR_VERSION_H) || \
-     (CDD_MCL_CFG_AR_RELEASE_MINOR_VERSION_H != MCL_TYPES_AR_RELEASE_MINOR_VERSION_H) || \
-     (CDD_MCL_CFG_AR_RELEASE_REVISION_VERSION_H != MCL_TYPES_AR_RELEASE_REVISION_VERSION_H) \
-    )
-    #error "AutoSar Version Numbers of CDD_Mcl_Cfg.h and Mcl_Types.h are different"
-#endif
-
-/* Check if header file and Mcl_Types.h file are of the same Software version */
-#if ((CDD_MCL_CFG_SW_MAJOR_VERSION_H != MCL_TYPES_SW_MAJOR_VERSION_H) || \
-     (CDD_MCL_CFG_SW_MINOR_VERSION_H != MCL_TYPES_SW_MINOR_VERSION_H) || \
-     (CDD_MCL_CFG_SW_PATCH_VERSION_H != MCL_TYPES_SW_PATCH_VERSION_H) \
-    )
-    #error "Software Version Numbers of CDD_Mcl_Cfg.h and Mcl_Types.h are different"
-#endif
-
-/* Check if header file and Dma_Ip_Cfg.h file are of the same vendor */
-#if (CDD_MCL_CFG_VENDOR_ID_H != DMA_IP_CFG_VENDOR_ID_H)
-    #error "CDD_Mcl_Cfg.h and Dma_Ip_Cfg.h have different vendor ids"
-#endif
-
-/* Check if header file and Dma_Ip_Cfg.h file are of the same Autosar version */
-#if ((CDD_MCL_CFG_AR_RELEASE_MAJOR_VERSION_H != DMA_IP_CFG_AR_RELEASE_MAJOR_VERSION_H) || \
-     (CDD_MCL_CFG_AR_RELEASE_MINOR_VERSION_H != DMA_IP_CFG_AR_RELEASE_MINOR_VERSION_H) || \
-     (CDD_MCL_CFG_AR_RELEASE_REVISION_VERSION_H != DMA_IP_CFG_AR_RELEASE_REVISION_VERSION_H) \
-    )
-    #error "AutoSar Version Numbers of CDD_Mcl_Cfg.h and Dma_Ip_Cfg.h are different"
-#endif
-
-/* Check if header file and Dma_Ip_Cfg.h file are of the same Software version */
-#if ((CDD_MCL_CFG_SW_MAJOR_VERSION_H != DMA_IP_CFG_SW_MAJOR_VERSION_H) || \
-     (CDD_MCL_CFG_SW_MINOR_VERSION_H != DMA_IP_CFG_SW_MINOR_VERSION_H) || \
-     (CDD_MCL_CFG_SW_PATCH_VERSION_H != DMA_IP_CFG_SW_PATCH_VERSION_H) \
-    )
-    #error "Software Version Numbers of CDD_Mcl_Cfg.h and Dma_Ip_Cfg.h are different"
-#endif
-
-/* Check if header file and Trgmux_Ip_Cfg.h file are of the same vendor */
-#if (CDD_MCL_CFG_VENDOR_ID_H != TRGMUX_IP_CFG_VENDOR_ID_H)
-    #error "CDD_Mcl_Cfg.h and Trgmux_Ip_Cfg.h have different vendor ids"
-#endif
-
-/* Check if header file and Trgmux_Ip_Cfg.h file are of the same Autosar version */
-#if ((CDD_MCL_CFG_AR_RELEASE_MAJOR_VERSION_H != TRGMUX_IP_CFG_AR_RELEASE_MAJOR_VERSION_H) || \
-     (CDD_MCL_CFG_AR_RELEASE_MINOR_VERSION_H != TRGMUX_IP_CFG_AR_RELEASE_MINOR_VERSION_H) || \
-     (CDD_MCL_CFG_AR_RELEASE_REVISION_VERSION_H != TRGMUX_IP_CFG_AR_RELEASE_REVISION_VERSION_H) \
-    )
-    #error "AutoSar Version Numbers of CDD_Mcl_Cfg.h and Trgmux_Ip_Cfg.h are different"
-#endif
-
-/* Check if header file and Trgmux_Ip_Cfg.h file are of the same Software version */
-#if ((CDD_MCL_CFG_SW_MAJOR_VERSION_H != TRGMUX_IP_CFG_SW_MAJOR_VERSION_H) || \
-     (CDD_MCL_CFG_SW_MINOR_VERSION_H != TRGMUX_IP_CFG_SW_MINOR_VERSION_H) || \
-     (CDD_MCL_CFG_SW_PATCH_VERSION_H != TRGMUX_IP_CFG_SW_PATCH_VERSION_H) \
-    )
-    #error "Software Version Numbers of CDD_Mcl_Cfg.h and Trgmux_Ip_Cfg.h are different"
-#endif
-
-/* Check if header file and Flexio_Mcl_Ip_Cfg.h file are of the same vendor */
-#if (CDD_MCL_CFG_VENDOR_ID_H != FLEXIO_MCL_IP_CFG_VENDOR_ID_H)
-    #error "CDD_Mcl_Cfg.h and Flexio_Mcl_Ip_Cfg.h have different vendor ids"
-#endif
-
-/* Check if header file and Flexio_Mcl_Ip_Cfg.h file are of the same Autosar version */
-#if ((CDD_MCL_CFG_AR_RELEASE_MAJOR_VERSION_H != FLEXIO_MCL_IP_CFG_AR_RELEASE_MAJOR_VERSION_H) || \
-     (CDD_MCL_CFG_AR_RELEASE_MINOR_VERSION_H != FLEXIO_MCL_IP_CFG_AR_RELEASE_MINOR_VERSION_H) || \
-     (CDD_MCL_CFG_AR_RELEASE_REVISION_VERSION_H != FLEXIO_MCL_IP_CFG_AR_RELEASE_REVISION_VERSION_H) \
-    )
-    #error "AutoSar Version Numbers of CDD_Mcl_Cfg.h and Flexio_Mcl_Ip_Cfg.h are different"
-#endif
-
-/* Check if header file and Flexio_Mcl_Ip_Cfg.h file are of the same Software version */
-#if ((CDD_MCL_CFG_SW_MAJOR_VERSION_H != FLEXIO_MCL_IP_CFG_SW_MAJOR_VERSION_H) || \
-     (CDD_MCL_CFG_SW_MINOR_VERSION_H != FLEXIO_MCL_IP_CFG_SW_MINOR_VERSION_H) || \
-     (CDD_MCL_CFG_SW_PATCH_VERSION_H != FLEXIO_MCL_IP_CFG_SW_PATCH_VERSION_H) \
-    )
-    #error "Software Version Numbers of CDD_Mcl_Cfg.h and Flexio_Mcl_Ip_Cfg.h are different"
-#endif
-
-/* Check if header file and CDD_Mcl_VS_0_PBcfg.h file are of the same vendor */
-#if (CDD_MCL_CFG_VENDOR_ID_H != CDD_MCL_VS_0_PBCFG_VENDOR_ID_H)
-    #error "CDD_Mcl_Cfg.h and CDD_Mcl_VS_0_PBcfg.h have different vendor ids"
-#endif
-
-/* Check if header file and CDD_Mcl_VS_0_PBcfg.h file are of the same Autosar version */
-#if ((CDD_MCL_CFG_AR_RELEASE_MAJOR_VERSION_H != CDD_MCL_VS_0_PBCFG_AR_RELEASE_MAJOR_VERSION_H) || \
-     (CDD_MCL_CFG_AR_RELEASE_MINOR_VERSION_H != CDD_MCL_VS_0_PBCFG_AR_RELEASE_MINOR_VERSION_H) || \
-     (CDD_MCL_CFG_AR_RELEASE_REVISION_VERSION_H != CDD_MCL_VS_0_PBCFG_AR_RELEASE_REVISION_VERSION_H) \
-    )
-    #error "AutoSar Version Numbers of CDD_Mcl_Cfg.h and CDD_Mcl_VS_0_PBcfg.h are different"
-#endif
-
-/* Check if header file and CDD_Mcl_VS_0_PBcfg.h file are of the same Software version */
-#if ((CDD_MCL_CFG_SW_MAJOR_VERSION_H != CDD_MCL_VS_0_PBCFG_SW_MAJOR_VERSION_H) || \
-     (CDD_MCL_CFG_SW_MINOR_VERSION_H != CDD_MCL_VS_0_PBCFG_SW_MINOR_VERSION_H) || \
-     (CDD_MCL_CFG_SW_PATCH_VERSION_H != CDD_MCL_VS_0_PBCFG_SW_PATCH_VERSION_H) \
-    )
-    #error "Software Version Numbers of CDD_Mcl_Cfg.h and CDD_Mcl_VS_0_PBcfg.h are different"
-#endif
-
-/*==================================================================================================
-                                           CONSTANTS
-==================================================================================================*/
-
-/*==================================================================================================
-                                       DEFINES AND MACROS
-==================================================================================================*/
-/*-----------------------------------------------/
-/  DEM & DET                                     /
-/-----------------------------------------------*/
-#define MCL_DEM_IS_AVAILABLE                       STD_OFF
-
-#define MCL_DET_IS_AVAILABLE                       STD_ON
-
-/*-----------------------------------------------/
-/  DMA                                           /
-/-----------------------------------------------*/
-#define MCL_DMA_CRC_IS_AVAILABLE                   DMA_IP_DMACRC_IS_AVAILABLE
-
-#define MCL_DMA_MASTER_ID_REPLICATION_IS_AVAILABLE DMA_IP_MASTER_ID_REPLICATION_IS_AVAILABLE
-
-#define MCL_DMA_BUFFERED_WRITES_IS_AVAILABLE       DMA_IP_BUFFERED_WRITES_IS_AVAILABLE
-
-#define MCL_DMA_STORE_DST_ADDR_IS_AVAILABLE        DMA_IP_STORE_DST_ADDR_IS_AVAILABLE
-
-#define MCL_DMA_END_OF_PACKET_SIGNAL_IS_AVAILABLE  DMA_IP_END_OF_PACKET_SIGNAL_IS_AVAILABLE
-
-#define MCL_DMA_PREEMPTION_IS_AVAILABLE            DMA_IP_PREEMPTION_IS_AVAILABLE
-
-#define MCL_DMA_DISABLE_PREEMPT_IS_AVAILABLE       DMA_IP_DISABLE_PREEMPT_IS_AVAILABLE
-
-/*-----------------------------------------------/
-/  CACHE                                         /
-/-----------------------------------------------*/
-
-/*-----------------------------------------------/
-/  TRGMUX                                        /
-/-----------------------------------------------*/
-
-/*-----------------------------------------------/
-/  EMIOS                                         /
-/-----------------------------------------------*/
-
-/*-----------------------------------------------/
-/  USERMODE                                      /
-/-----------------------------------------------*/
-#define MCL_USER_MODE_SUPPORT_IS_AVAILABLE         STD_OFF
-
-#ifndef MCAL_ENABLE_USER_MODE_SUPPORT
-    #if (STD_ON == MCL_USER_MODE_SUPPORT_IS_AVAILABLE)
-        #error MCAL_ENABLE_USER_MODE_SUPPORT is not enabled. For running Mcl in user mode, the MCAL_ENABLE_USER_MODE_SUPPORT needs to be defined
-    #endif /* (STD_ON == MCL_USER_MODE_SUPPORT_IS_AVAILABLE) */
-#endif /* ifndef MCAL_ENABLE_USER_MODE_SUPPORT */
-
-/*-----------------------------------------------/
-/  PRECOMPILE                                    /
-/-----------------------------------------------*/
-/* Mcl Pre Compile Switch */
-#define MCL_PRECOMPILE_SUPPORT                     STD_ON
-
-/*==================================================================================================
-                                             ENUMS
-==================================================================================================*/
-
-/*==================================================================================================
-                                 STRUCTURES AND OTHER TYPEDEFS
-==================================================================================================*/
-#if (MCL_DEM_IS_AVAILABLE == STD_ON)
-/**
-* @brief            DEM error reporting configuration.
-* @details          This structure contains information DEM error reporting
-*/
-typedef struct
-{
-    Mcal_DemErrorType Mcl_E_TimeoutFailureCfg;
-}Mcl_DemConfigType;
-#endif /* #if (MCL_DEM_IS_AVAILABLE == STD_ON) */
-
-
-/*==================================================================================================
-*                                GLOBAL VARIABLE DECLARATIONS
-==================================================================================================*/
-
-/*==================================================================================================
-                                     FUNCTION PROTOTYPES
-==================================================================================================*/
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif    /* CDD_MCL_CFG_H_ */
-
-/*==================================================================================================
- *                                        END OF FILE
-==================================================================================================*/
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : DMA,CACHE,TRGMUX,FLEXIO
+*   Dependencies         : none
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+
+#ifndef CDD_MCL_CFG_H_
+#define CDD_MCL_CFG_H_
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+/**
+* @page misra_violations MISRA-C:2012 violations
+**/
+
+/*==================================================================================================
+                                         INCLUDE FILES
+ 1) system and project includes
+ 2) needed interfaces from external units
+ 3) internal and external interfaces from this unit
+==================================================================================================*/
+#include "Mcl_Types.h"
+#include "Mcal.h"
+#include "Dma_Ip_Cfg.h"
+#include "Trgmux_Ip_Cfg.h"
+#include "Flexio_Mcl_Ip_Cfg.h"
+
+
+
+#include "CDD_Mcl_VS_0_PBcfg.h"
+
+
+
+/*==================================================================================================
+                               SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+#define CDD_MCL_CFG_VENDOR_ID_H                       43
+#define CDD_MCL_CFG_AR_RELEASE_MAJOR_VERSION_H        4
+#define CDD_MCL_CFG_AR_RELEASE_MINOR_VERSION_H        4
+#define CDD_MCL_CFG_AR_RELEASE_REVISION_VERSION_H     0
+#define CDD_MCL_CFG_SW_MAJOR_VERSION_H                1
+#define CDD_MCL_CFG_SW_MINOR_VERSION_H                0
+#define CDD_MCL_CFG_SW_PATCH_VERSION_H                0
+/*==================================================================================================
+                                      FILE VERSION CHECKS
+==================================================================================================*/
+#ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
+/* Check if header file and Mcal header file are of the same Autosar version */
+#if ((CDD_MCL_CFG_AR_RELEASE_MAJOR_VERSION_H != MCAL_AR_RELEASE_MAJOR_VERSION) || \
+     (CDD_MCL_CFG_AR_RELEASE_MINOR_VERSION_H != MCAL_AR_RELEASE_MINOR_VERSION))
+    #error "AutoSar Version Numbers of CDD_Mcl_Cfg.h and Mcal.h are different"
+#endif
+#endif
+
+/* Check if header file and Mcl_Types.h file are of the same vendor */
+#if (CDD_MCL_CFG_VENDOR_ID_H != MCL_TYPES_VENDOR_ID_H)
+    #error "CDD_Mcl_Cfg.h and Mcl_Types.h have different vendor ids"
+#endif
+
+/* Check if header file and Mcl_Types.h file are of the same Autosar version */
+#if ((CDD_MCL_CFG_AR_RELEASE_MAJOR_VERSION_H != MCL_TYPES_AR_RELEASE_MAJOR_VERSION_H) || \
+     (CDD_MCL_CFG_AR_RELEASE_MINOR_VERSION_H != MCL_TYPES_AR_RELEASE_MINOR_VERSION_H) || \
+     (CDD_MCL_CFG_AR_RELEASE_REVISION_VERSION_H != MCL_TYPES_AR_RELEASE_REVISION_VERSION_H) \
+    )
+    #error "AutoSar Version Numbers of CDD_Mcl_Cfg.h and Mcl_Types.h are different"
+#endif
+
+/* Check if header file and Mcl_Types.h file are of the same Software version */
+#if ((CDD_MCL_CFG_SW_MAJOR_VERSION_H != MCL_TYPES_SW_MAJOR_VERSION_H) || \
+     (CDD_MCL_CFG_SW_MINOR_VERSION_H != MCL_TYPES_SW_MINOR_VERSION_H) || \
+     (CDD_MCL_CFG_SW_PATCH_VERSION_H != MCL_TYPES_SW_PATCH_VERSION_H) \
+    )
+    #error "Software Version Numbers of CDD_Mcl_Cfg.h and Mcl_Types.h are different"
+#endif
+
+/* Check if header file and Dma_Ip_Cfg.h file are of the same vendor */
+#if (CDD_MCL_CFG_VENDOR_ID_H != DMA_IP_CFG_VENDOR_ID_H)
+    #error "CDD_Mcl_Cfg.h and Dma_Ip_Cfg.h have different vendor ids"
+#endif
+
+/* Check if header file and Dma_Ip_Cfg.h file are of the same Autosar version */
+#if ((CDD_MCL_CFG_AR_RELEASE_MAJOR_VERSION_H != DMA_IP_CFG_AR_RELEASE_MAJOR_VERSION_H) || \
+     (CDD_MCL_CFG_AR_RELEASE_MINOR_VERSION_H != DMA_IP_CFG_AR_RELEASE_MINOR_VERSION_H) || \
+     (CDD_MCL_CFG_AR_RELEASE_REVISION_VERSION_H != DMA_IP_CFG_AR_RELEASE_REVISION_VERSION_H) \
+    )
+    #error "AutoSar Version Numbers of CDD_Mcl_Cfg.h and Dma_Ip_Cfg.h are different"
+#endif
+
+/* Check if header file and Dma_Ip_Cfg.h file are of the same Software version */
+#if ((CDD_MCL_CFG_SW_MAJOR_VERSION_H != DMA_IP_CFG_SW_MAJOR_VERSION_H) || \
+     (CDD_MCL_CFG_SW_MINOR_VERSION_H != DMA_IP_CFG_SW_MINOR_VERSION_H) || \
+     (CDD_MCL_CFG_SW_PATCH_VERSION_H != DMA_IP_CFG_SW_PATCH_VERSION_H) \
+    )
+    #error "Software Version Numbers of CDD_Mcl_Cfg.h and Dma_Ip_Cfg.h are different"
+#endif
+
+/* Check if header file and Trgmux_Ip_Cfg.h file are of the same vendor */
+#if (CDD_MCL_CFG_VENDOR_ID_H != TRGMUX_IP_CFG_VENDOR_ID_H)
+    #error "CDD_Mcl_Cfg.h and Trgmux_Ip_Cfg.h have different vendor ids"
+#endif
+
+/* Check if header file and Trgmux_Ip_Cfg.h file are of the same Autosar version */
+#if ((CDD_MCL_CFG_AR_RELEASE_MAJOR_VERSION_H != TRGMUX_IP_CFG_AR_RELEASE_MAJOR_VERSION_H) || \
+     (CDD_MCL_CFG_AR_RELEASE_MINOR_VERSION_H != TRGMUX_IP_CFG_AR_RELEASE_MINOR_VERSION_H) || \
+     (CDD_MCL_CFG_AR_RELEASE_REVISION_VERSION_H != TRGMUX_IP_CFG_AR_RELEASE_REVISION_VERSION_H) \
+    )
+    #error "AutoSar Version Numbers of CDD_Mcl_Cfg.h and Trgmux_Ip_Cfg.h are different"
+#endif
+
+/* Check if header file and Trgmux_Ip_Cfg.h file are of the same Software version */
+#if ((CDD_MCL_CFG_SW_MAJOR_VERSION_H != TRGMUX_IP_CFG_SW_MAJOR_VERSION_H) || \
+     (CDD_MCL_CFG_SW_MINOR_VERSION_H != TRGMUX_IP_CFG_SW_MINOR_VERSION_H) || \
+     (CDD_MCL_CFG_SW_PATCH_VERSION_H != TRGMUX_IP_CFG_SW_PATCH_VERSION_H) \
+    )
+    #error "Software Version Numbers of CDD_Mcl_Cfg.h and Trgmux_Ip_Cfg.h are different"
+#endif
+
+/* Check if header file and Flexio_Mcl_Ip_Cfg.h file are of the same vendor */
+#if (CDD_MCL_CFG_VENDOR_ID_H != FLEXIO_MCL_IP_CFG_VENDOR_ID_H)
+    #error "CDD_Mcl_Cfg.h and Flexio_Mcl_Ip_Cfg.h have different vendor ids"
+#endif
+
+/* Check if header file and Flexio_Mcl_Ip_Cfg.h file are of the same Autosar version */
+#if ((CDD_MCL_CFG_AR_RELEASE_MAJOR_VERSION_H != FLEXIO_MCL_IP_CFG_AR_RELEASE_MAJOR_VERSION_H) || \
+     (CDD_MCL_CFG_AR_RELEASE_MINOR_VERSION_H != FLEXIO_MCL_IP_CFG_AR_RELEASE_MINOR_VERSION_H) || \
+     (CDD_MCL_CFG_AR_RELEASE_REVISION_VERSION_H != FLEXIO_MCL_IP_CFG_AR_RELEASE_REVISION_VERSION_H) \
+    )
+    #error "AutoSar Version Numbers of CDD_Mcl_Cfg.h and Flexio_Mcl_Ip_Cfg.h are different"
+#endif
+
+/* Check if header file and Flexio_Mcl_Ip_Cfg.h file are of the same Software version */
+#if ((CDD_MCL_CFG_SW_MAJOR_VERSION_H != FLEXIO_MCL_IP_CFG_SW_MAJOR_VERSION_H) || \
+     (CDD_MCL_CFG_SW_MINOR_VERSION_H != FLEXIO_MCL_IP_CFG_SW_MINOR_VERSION_H) || \
+     (CDD_MCL_CFG_SW_PATCH_VERSION_H != FLEXIO_MCL_IP_CFG_SW_PATCH_VERSION_H) \
+    )
+    #error "Software Version Numbers of CDD_Mcl_Cfg.h and Flexio_Mcl_Ip_Cfg.h are different"
+#endif
+
+/* Check if header file and CDD_Mcl_VS_0_PBcfg.h file are of the same vendor */
+#if (CDD_MCL_CFG_VENDOR_ID_H != CDD_MCL_VS_0_PBCFG_VENDOR_ID_H)
+    #error "CDD_Mcl_Cfg.h and CDD_Mcl_VS_0_PBcfg.h have different vendor ids"
+#endif
+
+/* Check if header file and CDD_Mcl_VS_0_PBcfg.h file are of the same Autosar version */
+#if ((CDD_MCL_CFG_AR_RELEASE_MAJOR_VERSION_H != CDD_MCL_VS_0_PBCFG_AR_RELEASE_MAJOR_VERSION_H) || \
+     (CDD_MCL_CFG_AR_RELEASE_MINOR_VERSION_H != CDD_MCL_VS_0_PBCFG_AR_RELEASE_MINOR_VERSION_H) || \
+     (CDD_MCL_CFG_AR_RELEASE_REVISION_VERSION_H != CDD_MCL_VS_0_PBCFG_AR_RELEASE_REVISION_VERSION_H) \
+    )
+    #error "AutoSar Version Numbers of CDD_Mcl_Cfg.h and CDD_Mcl_VS_0_PBcfg.h are different"
+#endif
+
+/* Check if header file and CDD_Mcl_VS_0_PBcfg.h file are of the same Software version */
+#if ((CDD_MCL_CFG_SW_MAJOR_VERSION_H != CDD_MCL_VS_0_PBCFG_SW_MAJOR_VERSION_H) || \
+     (CDD_MCL_CFG_SW_MINOR_VERSION_H != CDD_MCL_VS_0_PBCFG_SW_MINOR_VERSION_H) || \
+     (CDD_MCL_CFG_SW_PATCH_VERSION_H != CDD_MCL_VS_0_PBCFG_SW_PATCH_VERSION_H) \
+    )
+    #error "Software Version Numbers of CDD_Mcl_Cfg.h and CDD_Mcl_VS_0_PBcfg.h are different"
+#endif
+
+/*==================================================================================================
+                                           CONSTANTS
+==================================================================================================*/
+
+/*==================================================================================================
+                                       DEFINES AND MACROS
+==================================================================================================*/
+/*-----------------------------------------------/
+/  DEM & DET                                     /
+/-----------------------------------------------*/
+#define MCL_DEM_IS_AVAILABLE                       STD_OFF
+
+#define MCL_DET_IS_AVAILABLE                       STD_OFF
+
+/*-----------------------------------------------/
+/  DMA                                           /
+/-----------------------------------------------*/
+#define MCL_DMA_CRC_IS_AVAILABLE                   DMA_IP_DMACRC_IS_AVAILABLE
+
+#define MCL_DMA_MASTER_ID_REPLICATION_IS_AVAILABLE DMA_IP_MASTER_ID_REPLICATION_IS_AVAILABLE
+
+#define MCL_DMA_BUFFERED_WRITES_IS_AVAILABLE       DMA_IP_BUFFERED_WRITES_IS_AVAILABLE
+
+#define MCL_DMA_STORE_DST_ADDR_IS_AVAILABLE        DMA_IP_STORE_DST_ADDR_IS_AVAILABLE
+
+#define MCL_DMA_END_OF_PACKET_SIGNAL_IS_AVAILABLE  DMA_IP_END_OF_PACKET_SIGNAL_IS_AVAILABLE
+
+#define MCL_DMA_PREEMPTION_IS_AVAILABLE            DMA_IP_PREEMPTION_IS_AVAILABLE
+
+#define MCL_DMA_DISABLE_PREEMPT_IS_AVAILABLE       DMA_IP_DISABLE_PREEMPT_IS_AVAILABLE
+
+/*-----------------------------------------------/
+/  CACHE                                         /
+/-----------------------------------------------*/
+
+/*-----------------------------------------------/
+/  TRGMUX                                        /
+/-----------------------------------------------*/
+
+/*-----------------------------------------------/
+/  EMIOS                                         /
+/-----------------------------------------------*/
+
+/*-----------------------------------------------/
+/  USERMODE                                      /
+/-----------------------------------------------*/
+#define MCL_USER_MODE_SUPPORT_IS_AVAILABLE         STD_OFF
+
+#ifndef MCAL_ENABLE_USER_MODE_SUPPORT
+    #if (STD_ON == MCL_USER_MODE_SUPPORT_IS_AVAILABLE)
+        #error MCAL_ENABLE_USER_MODE_SUPPORT is not enabled. For running Mcl in user mode, the MCAL_ENABLE_USER_MODE_SUPPORT needs to be defined
+    #endif /* (STD_ON == MCL_USER_MODE_SUPPORT_IS_AVAILABLE) */
+#endif /* ifndef MCAL_ENABLE_USER_MODE_SUPPORT */
+
+/*-----------------------------------------------/
+/  PRECOMPILE                                    /
+/-----------------------------------------------*/
+/* Mcl Pre Compile Switch */
+#define MCL_PRECOMPILE_SUPPORT                     STD_ON
+
+/*==================================================================================================
+                                             ENUMS
+==================================================================================================*/
+
+/*==================================================================================================
+                                 STRUCTURES AND OTHER TYPEDEFS
+==================================================================================================*/
+#if (MCL_DEM_IS_AVAILABLE == STD_ON)
+/**
+* @brief            DEM error reporting configuration.
+* @details          This structure contains information DEM error reporting
+*/
+typedef struct
+{
+    Mcal_DemErrorType Mcl_E_TimeoutFailureCfg;
+}Mcl_DemConfigType;
+#endif /* #if (MCL_DEM_IS_AVAILABLE == STD_ON) */
+
+
+/*==================================================================================================
+*                                GLOBAL VARIABLE DECLARATIONS
+==================================================================================================*/
+
+/*==================================================================================================
+                                     FUNCTION PROTOTYPES
+==================================================================================================*/
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif    /* CDD_MCL_CFG_H_ */
+
+/*==================================================================================================
+ *                                        END OF FILE
+==================================================================================================*/

+ 214 - 214
generate/include/CDD_Mcl_Cfg_Defines.h

@@ -1,214 +1,214 @@
-/*==================================================================================================
-*   Project              : RTD AUTOSAR 4.4
-*   Platform             : CORTEXM
-*   Peripheral           : DMA,CACHE,TRGMUX,FLEXIO
-*   Dependencies         : none
-*
-*   Autosar Version      : 4.4.0
-*   Autosar Revision     : ASR_REL_4_4_REV_0000
-*   Autosar Conf.Variant :
-*   SW Version           : 1.0.0
-*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
-*
-*   (c) Copyright 2020-2021 NXP Semiconductors
-*   All Rights Reserved.
-*
-*   NXP Confidential. This software is owned or controlled by NXP and may only be
-*   used strictly in accordance with the applicable license terms. By expressly
-*   accepting such terms or by downloading, installing, activating and/or otherwise
-*   using the software, you are agreeing that you have read, and that you agree to
-*   comply with and are bound by, such license terms. If you do not agree to be
-*   bound by the applicable license terms, then you may not retain, install,
-*   activate or otherwise use the software.
-==================================================================================================*/
-
-#ifndef CDD_MCL_CFG_DEFINES_H_
-#define CDD_MCL_CFG_DEFINES_H_
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-/*==================================================================================================
-                                         INCLUDE FILES
- 1) system and project includes
- 2) needed interfaces from external units
- 3) internal and external interfaces from this unit
-==================================================================================================*/
-#include "Dma_Ip_Cfg_Defines.h"
-#include "Cache_Ip_Cfg_Defines.h"
-#include "Trgmux_Ip_Cfg_Defines.h"
-#include "Flexio_Mcl_Ip_Cfg_Defines.h"
-#include "Ftm_Mcl_Ip_Cfg.h"
-
-/*==================================================================================================
-                               SOURCE FILE VERSION INFORMATION
-==================================================================================================*/
-#define CDD_MCL_CFG_DEFINES_VENDOR_ID_H                       43
-#define CDD_MCL_CFG_DEFINES_AR_RELEASE_MAJOR_VERSION_H        4
-#define CDD_MCL_CFG_DEFINES_AR_RELEASE_MINOR_VERSION_H        4
-#define CDD_MCL_CFG_DEFINES_AR_RELEASE_REVISION_VERSION_H     0
-#define CDD_MCL_CFG_DEFINES_SW_MAJOR_VERSION_H                1
-#define CDD_MCL_CFG_DEFINES_SW_MINOR_VERSION_H                0
-#define CDD_MCL_CFG_DEFINES_SW_PATCH_VERSION_H                0
-
-/*==================================================================================================
-                                      FILE VERSION CHECKS
-==================================================================================================*/
-/* Check if header file and Dma_Ip_Cfg_Defines.h file are of the same vendor */
-#if (CDD_MCL_CFG_DEFINES_VENDOR_ID_H != DMA_IP_CFG_DEFINES_VENDOR_ID_H)
-    #error "CDD_Mcl_Cfg_Defines.h and Dma_Ip_Cfg_Defines.h have different vendor ids"
-#endif
-
-/* Check if header file and Dma_Ip_Cfg_Defines.h file are of the same Autosar version */
-#if ((CDD_MCL_CFG_DEFINES_AR_RELEASE_MAJOR_VERSION_H != DMA_IP_CFG_DEFINES_AR_RELEASE_MAJOR_VERSION_H) || \
-     (CDD_MCL_CFG_DEFINES_AR_RELEASE_MINOR_VERSION_H != DMA_IP_CFG_DEFINES_AR_RELEASE_MINOR_VERSION_H) || \
-     (CDD_MCL_CFG_DEFINES_AR_RELEASE_REVISION_VERSION_H != DMA_IP_CFG_DEFINES_AR_RELEASE_REVISION_VERSION_H) \
-    )
-    #error "AutoSar Version Numbers of CDD_Mcl_Cfg_Defines.h and Dma_Ip_Cfg_Defines.h are different"
-#endif
-
-/* Check if header file and Dma_Ip_Cfg_Defines.h file are of the same Software version */
-#if ((CDD_MCL_CFG_DEFINES_SW_MAJOR_VERSION_H != DMA_IP_CFG_DEFINES_SW_MAJOR_VERSION_H) || \
-     (CDD_MCL_CFG_DEFINES_SW_MINOR_VERSION_H != DMA_IP_CFG_DEFINES_SW_MINOR_VERSION_H) || \
-     (CDD_MCL_CFG_DEFINES_SW_PATCH_VERSION_H != DMA_IP_CFG_DEFINES_SW_PATCH_VERSION_H) \
-    )
-    #error "Software Version Numbers of CDD_Mcl_Cfg_Defines.h and Dma_Ip_Cfg_Defines.h are different"
-#endif
-
-/* Check if header file and Cache_Ip_Cfg_Defines.h file are of the same vendor */
-#if (CDD_MCL_CFG_DEFINES_VENDOR_ID_H != CACHE_IP_CFG_DEFINES_VENDOR_ID_H)
-    #error "CDD_Mcl_Cfg_Defines.h and Cache_Ip_Cfg_Defines.h have different vendor ids"
-#endif
-
-/* Check if header file and Cache_Ip_Cfg_Defines.h file are of the same Autosar version */
-#if ((CDD_MCL_CFG_DEFINES_AR_RELEASE_MAJOR_VERSION_H != CACHE_IP_CFG_DEFINES_AR_RELEASE_MAJOR_VERSION_H) || \
-     (CDD_MCL_CFG_DEFINES_AR_RELEASE_MINOR_VERSION_H != CACHE_IP_CFG_DEFINES_AR_RELEASE_MINOR_VERSION_H) || \
-     (CDD_MCL_CFG_DEFINES_AR_RELEASE_REVISION_VERSION_H != CACHE_IP_CFG_DEFINES_AR_RELEASE_REVISION_VERSION_H) \
-    )
-    #error "AutoSar Version Numbers of CDD_Mcl_Cfg_Defines.h and Cache_Ip_Cfg_Defines.h are different"
-#endif
-
-/* Check if header file and Cache_Ip_Cfg_Defines.h file are of the same Software version */
-#if ((CDD_MCL_CFG_DEFINES_SW_MAJOR_VERSION_H != CACHE_IP_CFG_DEFINES_SW_MAJOR_VERSION_H) || \
-     (CDD_MCL_CFG_DEFINES_SW_MINOR_VERSION_H != CACHE_IP_CFG_DEFINES_SW_MINOR_VERSION_H) || \
-     (CDD_MCL_CFG_DEFINES_SW_PATCH_VERSION_H != CACHE_IP_CFG_DEFINES_SW_PATCH_VERSION_H) \
-    )
-    #error "Software Version Numbers of CDD_Mcl_Cfg_Defines.h and Cache_Ip_Cfg_Defines.h are different"
-#endif
-
-/* Check if header file and Trgmux_Ip_Cfg_Defines.h file are of the same vendor */
-#if (CDD_MCL_CFG_DEFINES_VENDOR_ID_H != TRGMUX_IP_CFG_DEFINES_VENDOR_ID_H)
-    #error "CDD_Mcl_Cfg_Defines.h and Trgmux_Ip_Cfg_Defines.h have different vendor ids"
-#endif
-
-/* Check if header file and Trgmux_Ip_Cfg_Defines.h file are of the same Autosar version */
-#if ((CDD_MCL_CFG_DEFINES_AR_RELEASE_MAJOR_VERSION_H != TRGMUX_IP_CFG_DEFINES_AR_RELEASE_MAJOR_VERSION_H) || \
-     (CDD_MCL_CFG_DEFINES_AR_RELEASE_MINOR_VERSION_H != TRGMUX_IP_CFG_DEFINES_AR_RELEASE_MINOR_VERSION_H) || \
-     (CDD_MCL_CFG_DEFINES_AR_RELEASE_REVISION_VERSION_H != TRGMUX_IP_CFG_DEFINES_AR_RELEASE_REVISION_VERSION_H) \
-    )
-    #error "AutoSar Version Numbers of CDD_Mcl_Cfg_Defines.h and Trgmux_Ip_Cfg_Defines.h are different"
-#endif
-
-/* Check if header file and Trgmux_Ip_Cfg_Defines.h file are of the same Software version */
-#if ((CDD_MCL_CFG_DEFINES_SW_MAJOR_VERSION_H != TRGMUX_IP_CFG_DEFINES_SW_MAJOR_VERSION_H) || \
-     (CDD_MCL_CFG_DEFINES_SW_MINOR_VERSION_H != TRGMUX_IP_CFG_DEFINES_SW_MINOR_VERSION_H) || \
-     (CDD_MCL_CFG_DEFINES_SW_PATCH_VERSION_H != TRGMUX_IP_CFG_DEFINES_SW_PATCH_VERSION_H) \
-    )
-    #error "Software Version Numbers of CDD_Mcl_Cfg_Defines.h and Trgmux_Ip_Cfg_Defines.h are different"
-#endif
-
-/* Check if header file and Flexio_Mcl_Ip_Cfg_Defines.h file are of the same vendor */
-#if (CDD_MCL_CFG_DEFINES_VENDOR_ID_H != FLEXIO_MCL_IP_CFG_DEFINES_VENDOR_ID_H)
-    #error "CDD_Mcl_Cfg_Defines.h and Flexio_Mcl_Ip_Cfg_Defines.h have different vendor ids"
-#endif
-
-/* Check if header file and Flexio_Mcl_Ip_Cfg_Defines.h file are of the same Autosar version */
-#if ((CDD_MCL_CFG_DEFINES_AR_RELEASE_MAJOR_VERSION_H != FLEXIO_MCL_IP_CFG_DEFINES_AR_RELEASE_MAJOR_VERSION_H) || \
-     (CDD_MCL_CFG_DEFINES_AR_RELEASE_MINOR_VERSION_H != FLEXIO_MCL_IP_CFG_DEFINES_AR_RELEASE_MINOR_VERSION_H) || \
-     (CDD_MCL_CFG_DEFINES_AR_RELEASE_REVISION_VERSION_H != FLEXIO_MCL_IP_CFG_DEFINES_AR_RELEASE_REVISION_VERSION_H) \
-    )
-    #error "AutoSar Version Numbers of CDD_Mcl_Cfg_Defines.h and Flexio_Mcl_Ip_Cfg_Defines.h are different"
-#endif
-
-/* Check if header file and Flexio_Mcl_Ip_Cfg_Defines.h file are of the same Software version */
-#if ((CDD_MCL_CFG_DEFINES_SW_MAJOR_VERSION_H != FLEXIO_MCL_IP_CFG_DEFINES_SW_MAJOR_VERSION_H) || \
-     (CDD_MCL_CFG_DEFINES_SW_MINOR_VERSION_H != FLEXIO_MCL_IP_CFG_DEFINES_SW_MINOR_VERSION_H) || \
-     (CDD_MCL_CFG_DEFINES_SW_PATCH_VERSION_H != FLEXIO_MCL_IP_CFG_DEFINES_SW_PATCH_VERSION_H) \
-    )
-    #error "Software Version Numbers of CDD_Mcl_Cfg_Defines.h and Flexio_Mcl_Ip_Cfg_Defines.h are different"
-#endif
-
-/* Check if header file and Ftm_Mcl_Ip_Cfg.h file are of the same vendor */
-#if (CDD_MCL_CFG_DEFINES_VENDOR_ID_H != FTM_MCL_IP_CFG_VENDOR_ID)
-    #error "CDD_Mcl_Cfg_Defines.h and Ftm_Mcl_Ip_Cfg.h have different vendor ids"
-#endif
-
-/* Check if header file and Ftm_Mcl_Ip_Cfg.h file are of the same Autosar version */
-#if ((CDD_MCL_CFG_DEFINES_AR_RELEASE_MAJOR_VERSION_H != FTM_MCL_IP_CFG_AR_RELEASE_MAJOR_VERSION) || \
-     (CDD_MCL_CFG_DEFINES_AR_RELEASE_MINOR_VERSION_H != FTM_MCL_IP_CFG_AR_RELEASE_MINOR_VERSION) || \
-     (CDD_MCL_CFG_DEFINES_AR_RELEASE_REVISION_VERSION_H != FTM_MCL_IP_CFG_AR_RELEASE_REVISION_VERSION))
-    #error "AutoSar Version Numbers of CDD_Mcl_Cfg_Defines.h and Ftm_Mcl_Ip_Cfg.h are different"
-#endif
-
-/* Check if header file and Ftm_Mcl_Ip_Cfg.h file are of the same Software version */
-#if ((CDD_MCL_CFG_DEFINES_SW_MAJOR_VERSION_H != FTM_MCL_IP_CFG_SW_MAJOR_VERSION) || \
-     (CDD_MCL_CFG_DEFINES_SW_MINOR_VERSION_H != FTM_MCL_IP_CFG_SW_MINOR_VERSION) || \
-     (CDD_MCL_CFG_DEFINES_SW_PATCH_VERSION_H != FTM_MCL_IP_CFG_SW_PATCH_VERSION))
-    #error "Software Version Numbers of CDD_Mcl_Cfg_Defines.h and Ftm_Mcl_Ip_Cfg.h are different"
-#endif
-
-/*==================================================================================================
-                                       DEFINES AND MACROS
-==================================================================================================*/
-/*-----------------------------------------------/
-/  DMA                                           /
-/-----------------------------------------------*/
-#define MCL_DMA_IS_AVAILABLE                       DMA_IP_IS_AVAILABLE
-
-/*-----------------------------------------------/
-/  CACHE                                         /
-/-----------------------------------------------*/
-#define MCL_CACHE_IS_AVAILABLE                     CACHE_IP_IS_AVAILABLE
-
-/*-----------------------------------------------/
-/  TRGMUX                                        /
-/-----------------------------------------------*/
-#define MCL_TRGMUX_IS_AVAILABLE                    TRGMUX_IP_IS_AVAILABLE
-
-/*-----------------------------------------------/
-/  EMIOS                                         /
-/-----------------------------------------------*/
-#define MCL_EMIOS_IS_AVAILABLE                     STD_OFF
-
-/*-----------------------------------------------/
-/  LCU                                           /
-/-----------------------------------------------*/
-#define MCL_LCU_IS_AVAILABLE                       STD_OFF
-
-/*-----------------------------------------------/
-/  FLEXIO                                        /
-/-----------------------------------------------*/
-#define MCL_FLEXIO_IS_AVAILABLE                    FLEXIO_IP_IS_AVAILABLE
-
-/*-----------------------------------------------/
-/  FTM                                           /
-/-----------------------------------------------*/
-#define MCL_COMMON_TIMEBASE_IS_AVAILABLE           FTM_MCL_SELECT_COMMON_TIMEBASE_API
-
-/*-----------------------------------------------/
-/  MULTICORE                                     /
-/-----------------------------------------------*/
-#define MCL_MULTICORE_IS_AVAILABLE                 STD_OFF
-
-/*-----------------------------------------------/
-/  VERSION INFO API                              /
-/-----------------------------------------------*/
-#define MCL_VERSION_INFO_API_IS_AVAILABLE          STD_OFF
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* CDD_MCL_CFG_DEFINES_H_ */
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : DMA,CACHE,TRGMUX,FLEXIO
+*   Dependencies         : none
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+
+#ifndef CDD_MCL_CFG_DEFINES_H_
+#define CDD_MCL_CFG_DEFINES_H_
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*==================================================================================================
+                                         INCLUDE FILES
+ 1) system and project includes
+ 2) needed interfaces from external units
+ 3) internal and external interfaces from this unit
+==================================================================================================*/
+#include "Dma_Ip_Cfg_Defines.h"
+#include "Cache_Ip_Cfg_Defines.h"
+#include "Trgmux_Ip_Cfg_Defines.h"
+#include "Flexio_Mcl_Ip_Cfg_Defines.h"
+#include "Ftm_Mcl_Ip_Cfg.h"
+
+/*==================================================================================================
+                               SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+#define CDD_MCL_CFG_DEFINES_VENDOR_ID_H                       43
+#define CDD_MCL_CFG_DEFINES_AR_RELEASE_MAJOR_VERSION_H        4
+#define CDD_MCL_CFG_DEFINES_AR_RELEASE_MINOR_VERSION_H        4
+#define CDD_MCL_CFG_DEFINES_AR_RELEASE_REVISION_VERSION_H     0
+#define CDD_MCL_CFG_DEFINES_SW_MAJOR_VERSION_H                1
+#define CDD_MCL_CFG_DEFINES_SW_MINOR_VERSION_H                0
+#define CDD_MCL_CFG_DEFINES_SW_PATCH_VERSION_H                0
+
+/*==================================================================================================
+                                      FILE VERSION CHECKS
+==================================================================================================*/
+/* Check if header file and Dma_Ip_Cfg_Defines.h file are of the same vendor */
+#if (CDD_MCL_CFG_DEFINES_VENDOR_ID_H != DMA_IP_CFG_DEFINES_VENDOR_ID_H)
+    #error "CDD_Mcl_Cfg_Defines.h and Dma_Ip_Cfg_Defines.h have different vendor ids"
+#endif
+
+/* Check if header file and Dma_Ip_Cfg_Defines.h file are of the same Autosar version */
+#if ((CDD_MCL_CFG_DEFINES_AR_RELEASE_MAJOR_VERSION_H != DMA_IP_CFG_DEFINES_AR_RELEASE_MAJOR_VERSION_H) || \
+     (CDD_MCL_CFG_DEFINES_AR_RELEASE_MINOR_VERSION_H != DMA_IP_CFG_DEFINES_AR_RELEASE_MINOR_VERSION_H) || \
+     (CDD_MCL_CFG_DEFINES_AR_RELEASE_REVISION_VERSION_H != DMA_IP_CFG_DEFINES_AR_RELEASE_REVISION_VERSION_H) \
+    )
+    #error "AutoSar Version Numbers of CDD_Mcl_Cfg_Defines.h and Dma_Ip_Cfg_Defines.h are different"
+#endif
+
+/* Check if header file and Dma_Ip_Cfg_Defines.h file are of the same Software version */
+#if ((CDD_MCL_CFG_DEFINES_SW_MAJOR_VERSION_H != DMA_IP_CFG_DEFINES_SW_MAJOR_VERSION_H) || \
+     (CDD_MCL_CFG_DEFINES_SW_MINOR_VERSION_H != DMA_IP_CFG_DEFINES_SW_MINOR_VERSION_H) || \
+     (CDD_MCL_CFG_DEFINES_SW_PATCH_VERSION_H != DMA_IP_CFG_DEFINES_SW_PATCH_VERSION_H) \
+    )
+    #error "Software Version Numbers of CDD_Mcl_Cfg_Defines.h and Dma_Ip_Cfg_Defines.h are different"
+#endif
+
+/* Check if header file and Cache_Ip_Cfg_Defines.h file are of the same vendor */
+#if (CDD_MCL_CFG_DEFINES_VENDOR_ID_H != CACHE_IP_CFG_DEFINES_VENDOR_ID_H)
+    #error "CDD_Mcl_Cfg_Defines.h and Cache_Ip_Cfg_Defines.h have different vendor ids"
+#endif
+
+/* Check if header file and Cache_Ip_Cfg_Defines.h file are of the same Autosar version */
+#if ((CDD_MCL_CFG_DEFINES_AR_RELEASE_MAJOR_VERSION_H != CACHE_IP_CFG_DEFINES_AR_RELEASE_MAJOR_VERSION_H) || \
+     (CDD_MCL_CFG_DEFINES_AR_RELEASE_MINOR_VERSION_H != CACHE_IP_CFG_DEFINES_AR_RELEASE_MINOR_VERSION_H) || \
+     (CDD_MCL_CFG_DEFINES_AR_RELEASE_REVISION_VERSION_H != CACHE_IP_CFG_DEFINES_AR_RELEASE_REVISION_VERSION_H) \
+    )
+    #error "AutoSar Version Numbers of CDD_Mcl_Cfg_Defines.h and Cache_Ip_Cfg_Defines.h are different"
+#endif
+
+/* Check if header file and Cache_Ip_Cfg_Defines.h file are of the same Software version */
+#if ((CDD_MCL_CFG_DEFINES_SW_MAJOR_VERSION_H != CACHE_IP_CFG_DEFINES_SW_MAJOR_VERSION_H) || \
+     (CDD_MCL_CFG_DEFINES_SW_MINOR_VERSION_H != CACHE_IP_CFG_DEFINES_SW_MINOR_VERSION_H) || \
+     (CDD_MCL_CFG_DEFINES_SW_PATCH_VERSION_H != CACHE_IP_CFG_DEFINES_SW_PATCH_VERSION_H) \
+    )
+    #error "Software Version Numbers of CDD_Mcl_Cfg_Defines.h and Cache_Ip_Cfg_Defines.h are different"
+#endif
+
+/* Check if header file and Trgmux_Ip_Cfg_Defines.h file are of the same vendor */
+#if (CDD_MCL_CFG_DEFINES_VENDOR_ID_H != TRGMUX_IP_CFG_DEFINES_VENDOR_ID_H)
+    #error "CDD_Mcl_Cfg_Defines.h and Trgmux_Ip_Cfg_Defines.h have different vendor ids"
+#endif
+
+/* Check if header file and Trgmux_Ip_Cfg_Defines.h file are of the same Autosar version */
+#if ((CDD_MCL_CFG_DEFINES_AR_RELEASE_MAJOR_VERSION_H != TRGMUX_IP_CFG_DEFINES_AR_RELEASE_MAJOR_VERSION_H) || \
+     (CDD_MCL_CFG_DEFINES_AR_RELEASE_MINOR_VERSION_H != TRGMUX_IP_CFG_DEFINES_AR_RELEASE_MINOR_VERSION_H) || \
+     (CDD_MCL_CFG_DEFINES_AR_RELEASE_REVISION_VERSION_H != TRGMUX_IP_CFG_DEFINES_AR_RELEASE_REVISION_VERSION_H) \
+    )
+    #error "AutoSar Version Numbers of CDD_Mcl_Cfg_Defines.h and Trgmux_Ip_Cfg_Defines.h are different"
+#endif
+
+/* Check if header file and Trgmux_Ip_Cfg_Defines.h file are of the same Software version */
+#if ((CDD_MCL_CFG_DEFINES_SW_MAJOR_VERSION_H != TRGMUX_IP_CFG_DEFINES_SW_MAJOR_VERSION_H) || \
+     (CDD_MCL_CFG_DEFINES_SW_MINOR_VERSION_H != TRGMUX_IP_CFG_DEFINES_SW_MINOR_VERSION_H) || \
+     (CDD_MCL_CFG_DEFINES_SW_PATCH_VERSION_H != TRGMUX_IP_CFG_DEFINES_SW_PATCH_VERSION_H) \
+    )
+    #error "Software Version Numbers of CDD_Mcl_Cfg_Defines.h and Trgmux_Ip_Cfg_Defines.h are different"
+#endif
+
+/* Check if header file and Flexio_Mcl_Ip_Cfg_Defines.h file are of the same vendor */
+#if (CDD_MCL_CFG_DEFINES_VENDOR_ID_H != FLEXIO_MCL_IP_CFG_DEFINES_VENDOR_ID_H)
+    #error "CDD_Mcl_Cfg_Defines.h and Flexio_Mcl_Ip_Cfg_Defines.h have different vendor ids"
+#endif
+
+/* Check if header file and Flexio_Mcl_Ip_Cfg_Defines.h file are of the same Autosar version */
+#if ((CDD_MCL_CFG_DEFINES_AR_RELEASE_MAJOR_VERSION_H != FLEXIO_MCL_IP_CFG_DEFINES_AR_RELEASE_MAJOR_VERSION_H) || \
+     (CDD_MCL_CFG_DEFINES_AR_RELEASE_MINOR_VERSION_H != FLEXIO_MCL_IP_CFG_DEFINES_AR_RELEASE_MINOR_VERSION_H) || \
+     (CDD_MCL_CFG_DEFINES_AR_RELEASE_REVISION_VERSION_H != FLEXIO_MCL_IP_CFG_DEFINES_AR_RELEASE_REVISION_VERSION_H) \
+    )
+    #error "AutoSar Version Numbers of CDD_Mcl_Cfg_Defines.h and Flexio_Mcl_Ip_Cfg_Defines.h are different"
+#endif
+
+/* Check if header file and Flexio_Mcl_Ip_Cfg_Defines.h file are of the same Software version */
+#if ((CDD_MCL_CFG_DEFINES_SW_MAJOR_VERSION_H != FLEXIO_MCL_IP_CFG_DEFINES_SW_MAJOR_VERSION_H) || \
+     (CDD_MCL_CFG_DEFINES_SW_MINOR_VERSION_H != FLEXIO_MCL_IP_CFG_DEFINES_SW_MINOR_VERSION_H) || \
+     (CDD_MCL_CFG_DEFINES_SW_PATCH_VERSION_H != FLEXIO_MCL_IP_CFG_DEFINES_SW_PATCH_VERSION_H) \
+    )
+    #error "Software Version Numbers of CDD_Mcl_Cfg_Defines.h and Flexio_Mcl_Ip_Cfg_Defines.h are different"
+#endif
+
+/* Check if header file and Ftm_Mcl_Ip_Cfg.h file are of the same vendor */
+#if (CDD_MCL_CFG_DEFINES_VENDOR_ID_H != FTM_MCL_IP_CFG_VENDOR_ID)
+    #error "CDD_Mcl_Cfg_Defines.h and Ftm_Mcl_Ip_Cfg.h have different vendor ids"
+#endif
+
+/* Check if header file and Ftm_Mcl_Ip_Cfg.h file are of the same Autosar version */
+#if ((CDD_MCL_CFG_DEFINES_AR_RELEASE_MAJOR_VERSION_H != FTM_MCL_IP_CFG_AR_RELEASE_MAJOR_VERSION) || \
+     (CDD_MCL_CFG_DEFINES_AR_RELEASE_MINOR_VERSION_H != FTM_MCL_IP_CFG_AR_RELEASE_MINOR_VERSION) || \
+     (CDD_MCL_CFG_DEFINES_AR_RELEASE_REVISION_VERSION_H != FTM_MCL_IP_CFG_AR_RELEASE_REVISION_VERSION))
+    #error "AutoSar Version Numbers of CDD_Mcl_Cfg_Defines.h and Ftm_Mcl_Ip_Cfg.h are different"
+#endif
+
+/* Check if header file and Ftm_Mcl_Ip_Cfg.h file are of the same Software version */
+#if ((CDD_MCL_CFG_DEFINES_SW_MAJOR_VERSION_H != FTM_MCL_IP_CFG_SW_MAJOR_VERSION) || \
+     (CDD_MCL_CFG_DEFINES_SW_MINOR_VERSION_H != FTM_MCL_IP_CFG_SW_MINOR_VERSION) || \
+     (CDD_MCL_CFG_DEFINES_SW_PATCH_VERSION_H != FTM_MCL_IP_CFG_SW_PATCH_VERSION))
+    #error "Software Version Numbers of CDD_Mcl_Cfg_Defines.h and Ftm_Mcl_Ip_Cfg.h are different"
+#endif
+
+/*==================================================================================================
+                                       DEFINES AND MACROS
+==================================================================================================*/
+/*-----------------------------------------------/
+/  DMA                                           /
+/-----------------------------------------------*/
+#define MCL_DMA_IS_AVAILABLE                       DMA_IP_IS_AVAILABLE
+
+/*-----------------------------------------------/
+/  CACHE                                         /
+/-----------------------------------------------*/
+#define MCL_CACHE_IS_AVAILABLE                     CACHE_IP_IS_AVAILABLE
+
+/*-----------------------------------------------/
+/  TRGMUX                                        /
+/-----------------------------------------------*/
+#define MCL_TRGMUX_IS_AVAILABLE                    TRGMUX_IP_IS_AVAILABLE
+
+/*-----------------------------------------------/
+/  EMIOS                                         /
+/-----------------------------------------------*/
+#define MCL_EMIOS_IS_AVAILABLE                     STD_OFF
+
+/*-----------------------------------------------/
+/  LCU                                           /
+/-----------------------------------------------*/
+#define MCL_LCU_IS_AVAILABLE                       STD_OFF
+
+/*-----------------------------------------------/
+/  FLEXIO                                        /
+/-----------------------------------------------*/
+#define MCL_FLEXIO_IS_AVAILABLE                    FLEXIO_IP_IS_AVAILABLE
+
+/*-----------------------------------------------/
+/  FTM                                           /
+/-----------------------------------------------*/
+#define MCL_COMMON_TIMEBASE_IS_AVAILABLE           FTM_MCL_SELECT_COMMON_TIMEBASE_API
+
+/*-----------------------------------------------/
+/  MULTICORE                                     /
+/-----------------------------------------------*/
+#define MCL_MULTICORE_IS_AVAILABLE                 STD_OFF
+
+/*-----------------------------------------------/
+/  VERSION INFO API                              /
+/-----------------------------------------------*/
+#define MCL_VERSION_INFO_API_IS_AVAILABLE          STD_OFF
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* CDD_MCL_CFG_DEFINES_H_ */

+ 137 - 137
generate/include/CDD_Mcl_VS_0_PBcfg.h

@@ -1,137 +1,137 @@
-/**
-*   @file    Mcl_PBcfg_VS_0.h
-*   @version 1.0.0
-*
-*   @brief   AUTOSAR Mcl - Data structures for the Mcl driver.
-*   @details Postbuild structure configurations for the driver initalization.
-*
-*   @addtogroup MCL
-*   @{
-*/
-/*==================================================================================================
-*   Project              : RTD AUTOSAR 4.4
-*   Platform             : CORTEXM
-*   Peripheral           : DMA,CACHE,TRGMUX,FLEXIO
-*   Dependencies         : none
-*
-*   Autosar Version      : 4.4.0
-*   Autosar Revision     : ASR_REL_4_4_REV_0000
-*   Autosar Conf.Variant :
-*   SW Version           : 1.0.0
-*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
-*
-*   (c) Copyright 2020-2021 NXP Semiconductors
-*   All Rights Reserved.
-==================================================================================================*/
-/*==================================================================================================
-==================================================================================================*/
-
-#ifndef MCL_PBCFG_VS_0_H_
-#define MCL_PBCFG_VS_0_H_
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-
-/**
-* @page misra_violations MISRA-C:2012 violations
-*
-* @section [global]
-* Violates MISRA 2012 Required Rule 5.4, Macro identifiers shall be distinct.
-* This violation is due to the AUTOSAR requirement [SWS_BSW_00036] (perform inter module checks).
-*
-* @section [global]
-* Violates MISRA 2012 Required Rule 5.1, External identifiers shall be distinct.
-* This rule does not apply if either identifier is a macro identifier, because this case is covered
-* by Rule 5.4 and Rule 5.5.
-*
-* @section [global]
-* Violates MISRA 2012 Required Rule 5.2, Identifiers declared in the same scope and name space shall be distinct.
-* This rule does not apply if either identifier is a macro identifier, because this case is covered
-* by Rule 5.4 and Rule 5.5.
-*
-* @section [global]
-* Violates MISRA 2012 Required Rule 5.5, Identifiers shall be distinct from macro names.
-* The identifier clash is between macro identifiers. Therefore, this rule is incorrectly reported by the tool.
-*
-*/
-
-/*==================================================================================================
-                                         INCLUDE FILES
- 1) system and project includes
- 2) needed interfaces from external units
- 3) internal and external interfaces from this unit
-==================================================================================================*/
-
-/*==================================================================================================
-                                SOURCE FILE VERSION INFORMATION
-==================================================================================================*/
-#define CDD_MCL_VS_0_PBCFG_VENDOR_ID_H                     43
-#define CDD_MCL_VS_0_PBCFG_AR_RELEASE_MAJOR_VERSION_H      4
-#define CDD_MCL_VS_0_PBCFG_AR_RELEASE_MINOR_VERSION_H      4
-#define CDD_MCL_VS_0_PBCFG_AR_RELEASE_REVISION_VERSION_H   0
-#define CDD_MCL_VS_0_PBCFG_SW_MAJOR_VERSION_H              1
-#define CDD_MCL_VS_0_PBCFG_SW_MINOR_VERSION_H              0
-#define CDD_MCL_VS_0_PBCFG_SW_PATCH_VERSION_H              0
-
-/*==================================================================================================
-                                      FILE VERSION CHECKS
-==================================================================================================*/
-
-/*==================================================================================================
-                          LOCAL TYPEDEFS (STRUCTURES, UNIONS, ENUMS)
-==================================================================================================*/
-
-/*==================================================================================================
-                                        LOCAL MACROS
-==================================================================================================*/
-
-/*==================================================================================================
-                                       LOCAL CONSTANTS
-==================================================================================================*/
-
-/*==================================================================================================
-                                       LOCAL VARIABLES
-==================================================================================================*/
-
-/*==================================================================================================
-                                       GLOBAL CONSTANTS
-==================================================================================================*/
-
-/*==================================================================================================
-                                       GLOBAL VARIABLES
-==================================================================================================*/
-#define MCL_START_SEC_CONFIG_DATA_UNSPECIFIED
-/* @violates @ref Mcl_Dma_h_REF_1 MISRA 2012 Required Directive 4.10, Precautions shall be taken in order to prevent the contents of a header file being included more than once. */
-#include "Mcl_MemMap.h"
-
-
-extern const Mcl_ConfigType Mcl_Config;
-
-
-#define MCL_STOP_SEC_CONFIG_DATA_UNSPECIFIED
-/* @violates @ref Mcl_Dma_h_REF_1 MISRA 2012 Required Directive 4.10, Precautions shall be taken in order to prevent the contents of a header file being included more than once. */
-#include "Mcl_MemMap.h"
-
-/*==================================================================================================
-                                   LOCAL FUNCTION PROTOTYPES
-==================================================================================================*/
-
-/*==================================================================================================
-                                       LOCAL FUNCTIONS
-==================================================================================================*/
-
-/*==================================================================================================
-                                       GLOBAL FUNCTIONS
-==================================================================================================*/
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* #ifndef MCL_PBCFG_VS_0_H_ */
-
-/** @} */
-
+/**
+*   @file    Mcl_PBcfg_VS_0.h
+*   @version 1.0.0
+*
+*   @brief   AUTOSAR Mcl - Data structures for the Mcl driver.
+*   @details Postbuild structure configurations for the driver initalization.
+*
+*   @addtogroup MCL
+*   @{
+*/
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : DMA,CACHE,TRGMUX,FLEXIO
+*   Dependencies         : none
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+==================================================================================================*/
+/*==================================================================================================
+==================================================================================================*/
+
+#ifndef MCL_PBCFG_VS_0_H_
+#define MCL_PBCFG_VS_0_H_
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+
+/**
+* @page misra_violations MISRA-C:2012 violations
+*
+* @section [global]
+* Violates MISRA 2012 Required Rule 5.4, Macro identifiers shall be distinct.
+* This violation is due to the AUTOSAR requirement [SWS_BSW_00036] (perform inter module checks).
+*
+* @section [global]
+* Violates MISRA 2012 Required Rule 5.1, External identifiers shall be distinct.
+* This rule does not apply if either identifier is a macro identifier, because this case is covered
+* by Rule 5.4 and Rule 5.5.
+*
+* @section [global]
+* Violates MISRA 2012 Required Rule 5.2, Identifiers declared in the same scope and name space shall be distinct.
+* This rule does not apply if either identifier is a macro identifier, because this case is covered
+* by Rule 5.4 and Rule 5.5.
+*
+* @section [global]
+* Violates MISRA 2012 Required Rule 5.5, Identifiers shall be distinct from macro names.
+* The identifier clash is between macro identifiers. Therefore, this rule is incorrectly reported by the tool.
+*
+*/
+
+/*==================================================================================================
+                                         INCLUDE FILES
+ 1) system and project includes
+ 2) needed interfaces from external units
+ 3) internal and external interfaces from this unit
+==================================================================================================*/
+
+/*==================================================================================================
+                                SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+#define CDD_MCL_VS_0_PBCFG_VENDOR_ID_H                     43
+#define CDD_MCL_VS_0_PBCFG_AR_RELEASE_MAJOR_VERSION_H      4
+#define CDD_MCL_VS_0_PBCFG_AR_RELEASE_MINOR_VERSION_H      4
+#define CDD_MCL_VS_0_PBCFG_AR_RELEASE_REVISION_VERSION_H   0
+#define CDD_MCL_VS_0_PBCFG_SW_MAJOR_VERSION_H              1
+#define CDD_MCL_VS_0_PBCFG_SW_MINOR_VERSION_H              0
+#define CDD_MCL_VS_0_PBCFG_SW_PATCH_VERSION_H              0
+
+/*==================================================================================================
+                                      FILE VERSION CHECKS
+==================================================================================================*/
+
+/*==================================================================================================
+                          LOCAL TYPEDEFS (STRUCTURES, UNIONS, ENUMS)
+==================================================================================================*/
+
+/*==================================================================================================
+                                        LOCAL MACROS
+==================================================================================================*/
+
+/*==================================================================================================
+                                       LOCAL CONSTANTS
+==================================================================================================*/
+
+/*==================================================================================================
+                                       LOCAL VARIABLES
+==================================================================================================*/
+
+/*==================================================================================================
+                                       GLOBAL CONSTANTS
+==================================================================================================*/
+
+/*==================================================================================================
+                                       GLOBAL VARIABLES
+==================================================================================================*/
+#define MCL_START_SEC_CONFIG_DATA_UNSPECIFIED
+/* @violates @ref Mcl_Dma_h_REF_1 MISRA 2012 Required Directive 4.10, Precautions shall be taken in order to prevent the contents of a header file being included more than once. */
+#include "Mcl_MemMap.h"
+
+
+extern const Mcl_ConfigType Mcl_Config;
+
+
+#define MCL_STOP_SEC_CONFIG_DATA_UNSPECIFIED
+/* @violates @ref Mcl_Dma_h_REF_1 MISRA 2012 Required Directive 4.10, Precautions shall be taken in order to prevent the contents of a header file being included more than once. */
+#include "Mcl_MemMap.h"
+
+/*==================================================================================================
+                                   LOCAL FUNCTION PROTOTYPES
+==================================================================================================*/
+
+/*==================================================================================================
+                                       LOCAL FUNCTIONS
+==================================================================================================*/
+
+/*==================================================================================================
+                                       GLOBAL FUNCTIONS
+==================================================================================================*/
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* #ifndef MCL_PBCFG_VS_0_H_ */
+
+/** @} */
+

+ 113 - 113
generate/include/Cache_Ip_Cfg_Defines.h

@@ -1,113 +1,113 @@
-/*==================================================================================================
-*   Project              : RTD AUTOSAR 4.4
-*   Platform             : CORTEXM
-*   Peripheral           : DMA,CACHE,TRGMUX,FLEXIO
-*   Dependencies         : none
-*
-*   Autosar Version      : 4.4.0
-*   Autosar Revision     : ASR_REL_4_4_REV_0000
-*   Autosar Conf.Variant :
-*   SW Version           : 1.0.0
-*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
-*
-*   (c) Copyright 2020-2021 NXP Semiconductors
-*   All Rights Reserved.
-*
-*   NXP Confidential. This software is owned or controlled by NXP and may only be
-*   used strictly in accordance with the applicable license terms. By expressly
-*   accepting such terms or by downloading, installing, activating and/or otherwise
-*   using the software, you are agreeing that you have read, and that you agree to
-*   comply with and are bound by, such license terms. If you do not agree to be
-*   bound by the applicable license terms, then you may not retain, install,
-*   activate or otherwise use the software.
-==================================================================================================*/
-
-#ifndef CACHE_IP_CFG_DEFINES_H_
-#define CACHE_IP_CFG_DEFINES_H_
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-/*==================================================================================================
-                                         INCLUDE FILES
- 1) system and project includes
- 2) needed interfaces from external units
- 3) internal and external interfaces from this unit
-==================================================================================================*/
-#include "Cache_Ip_Types.h"
-
-/*==================================================================================================
-                               SOURCE FILE VERSION INFORMATION
-==================================================================================================*/
-#define CACHE_IP_CFG_DEFINES_VENDOR_ID_H                       43
-#define CACHE_IP_CFG_DEFINES_AR_RELEASE_MAJOR_VERSION_H        4
-#define CACHE_IP_CFG_DEFINES_AR_RELEASE_MINOR_VERSION_H        4
-#define CACHE_IP_CFG_DEFINES_AR_RELEASE_REVISION_VERSION_H     0
-#define CACHE_IP_CFG_DEFINES_SW_MAJOR_VERSION_H                1
-#define CACHE_IP_CFG_DEFINES_SW_MINOR_VERSION_H                0
-#define CACHE_IP_CFG_DEFINES_SW_PATCH_VERSION_H                0
-
-/*==================================================================================================
-                                      FILE VERSION CHECKS
-==================================================================================================*/
-/* Check if header file and Cache_Ip_Types.h file are of the same vendor */
-#if (CACHE_IP_CFG_DEFINES_VENDOR_ID_H != CACHE_IP_TYPES_VENDOR_ID_H)
-    #error "Cache_Ip_Cfg_Defines.h and Cache_Ip_Types.h have different vendor ids"
-#endif
-
-/* Check if header file and Cache_Ip_Types.h file are of the same Autosar version */
-#if ((CACHE_IP_CFG_DEFINES_AR_RELEASE_MAJOR_VERSION_H != CACHE_IP_TYPES_AR_RELEASE_MAJOR_VERSION_H) || \
-     (CACHE_IP_CFG_DEFINES_AR_RELEASE_MINOR_VERSION_H != CACHE_IP_TYPES_AR_RELEASE_MINOR_VERSION_H) || \
-     (CACHE_IP_CFG_DEFINES_AR_RELEASE_REVISION_VERSION_H != CACHE_IP_TYPES_AR_RELEASE_REVISION_VERSION_H) \
-    )
-    #error "AutoSar Version Numbers of Cache_Ip_Cfg_Defines.h and Cache_Ip_Types.h are different"
-#endif
-
-/* Check if header file and Cache_Ip_Types.h file are of the same Software version */
-#if ((CACHE_IP_CFG_DEFINES_SW_MAJOR_VERSION_H != CACHE_IP_TYPES_SW_MAJOR_VERSION_H) || \
-     (CACHE_IP_CFG_DEFINES_SW_MINOR_VERSION_H != CACHE_IP_TYPES_SW_MINOR_VERSION_H) || \
-     (CACHE_IP_CFG_DEFINES_SW_PATCH_VERSION_H != CACHE_IP_TYPES_SW_PATCH_VERSION_H) \
-    )
-    #error "Software Version Numbers of Cache_Ip_Cfg_Defines.h and Cache_Ip_Types.h are different"
-#endif
-
-/*==================================================================================================
-                                       DEFINES AND MACROS
-==================================================================================================*/
-/*-----------------------------------------------/
-/  CACHE IP USER MODE SUPPORT                    /
-/-----------------------------------------------*/
-#define CACHE_IP_USER_MODE_SUPPORT_IS_AVAILABLE      STD_OFF
-
-
-/*-----------------------------------------------/
-/  CACHE IP SUPPORT                              /
-/-----------------------------------------------*/
-
-#define CACHE_IP_IS_AVAILABLE                  STD_ON
-
-#define CACHE_IP_ARMCOREMX_IS_AVAILABLE        STD_OFF
-#define CACHE_IP_LMEM_IS_AVAILABLE             STD_ON
-
-#define CACHE_IP_ALL_IS_AVAILABLE              STD_ON
-#define CACHE_IP_INSTRUCTION_IS_AVAILABLE      STD_OFF
-#define CACHE_IP_DATA_IS_AVAILABLE             STD_OFF
-#define CACHE_IP_LMEM_PC_IS_AVAILABLE          STD_ON
-#define CACHE_IP_LMEM_PS_IS_AVAILABLE          STD_OFF
-
-#define CACHE_IP_DEV_ERROR_DETECT              STD_OFF
-/*-----------------------------------------------/
-/  CACHE IP SPECIFIC                             /
-/-----------------------------------------------*/
-#define CACHE_IP_LMEM_LINE_SIZE                16U
-#define CACHE_IP_LMEM_COMMAND_TIMEOUT_VAL      100000
-#define CACHE_IP_LMEM_COMMAND_TIMEOUT_TYPE     OSIF_COUNTER_DUMMY
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* CACHE_IP_CFG_DEFINES_H_ */
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : DMA,CACHE,TRGMUX,FLEXIO
+*   Dependencies         : none
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+
+#ifndef CACHE_IP_CFG_DEFINES_H_
+#define CACHE_IP_CFG_DEFINES_H_
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*==================================================================================================
+                                         INCLUDE FILES
+ 1) system and project includes
+ 2) needed interfaces from external units
+ 3) internal and external interfaces from this unit
+==================================================================================================*/
+#include "Cache_Ip_Types.h"
+
+/*==================================================================================================
+                               SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+#define CACHE_IP_CFG_DEFINES_VENDOR_ID_H                       43
+#define CACHE_IP_CFG_DEFINES_AR_RELEASE_MAJOR_VERSION_H        4
+#define CACHE_IP_CFG_DEFINES_AR_RELEASE_MINOR_VERSION_H        4
+#define CACHE_IP_CFG_DEFINES_AR_RELEASE_REVISION_VERSION_H     0
+#define CACHE_IP_CFG_DEFINES_SW_MAJOR_VERSION_H                1
+#define CACHE_IP_CFG_DEFINES_SW_MINOR_VERSION_H                0
+#define CACHE_IP_CFG_DEFINES_SW_PATCH_VERSION_H                0
+
+/*==================================================================================================
+                                      FILE VERSION CHECKS
+==================================================================================================*/
+/* Check if header file and Cache_Ip_Types.h file are of the same vendor */
+#if (CACHE_IP_CFG_DEFINES_VENDOR_ID_H != CACHE_IP_TYPES_VENDOR_ID_H)
+    #error "Cache_Ip_Cfg_Defines.h and Cache_Ip_Types.h have different vendor ids"
+#endif
+
+/* Check if header file and Cache_Ip_Types.h file are of the same Autosar version */
+#if ((CACHE_IP_CFG_DEFINES_AR_RELEASE_MAJOR_VERSION_H != CACHE_IP_TYPES_AR_RELEASE_MAJOR_VERSION_H) || \
+     (CACHE_IP_CFG_DEFINES_AR_RELEASE_MINOR_VERSION_H != CACHE_IP_TYPES_AR_RELEASE_MINOR_VERSION_H) || \
+     (CACHE_IP_CFG_DEFINES_AR_RELEASE_REVISION_VERSION_H != CACHE_IP_TYPES_AR_RELEASE_REVISION_VERSION_H) \
+    )
+    #error "AutoSar Version Numbers of Cache_Ip_Cfg_Defines.h and Cache_Ip_Types.h are different"
+#endif
+
+/* Check if header file and Cache_Ip_Types.h file are of the same Software version */
+#if ((CACHE_IP_CFG_DEFINES_SW_MAJOR_VERSION_H != CACHE_IP_TYPES_SW_MAJOR_VERSION_H) || \
+     (CACHE_IP_CFG_DEFINES_SW_MINOR_VERSION_H != CACHE_IP_TYPES_SW_MINOR_VERSION_H) || \
+     (CACHE_IP_CFG_DEFINES_SW_PATCH_VERSION_H != CACHE_IP_TYPES_SW_PATCH_VERSION_H) \
+    )
+    #error "Software Version Numbers of Cache_Ip_Cfg_Defines.h and Cache_Ip_Types.h are different"
+#endif
+
+/*==================================================================================================
+                                       DEFINES AND MACROS
+==================================================================================================*/
+/*-----------------------------------------------/
+/  CACHE IP USER MODE SUPPORT                    /
+/-----------------------------------------------*/
+#define CACHE_IP_USER_MODE_SUPPORT_IS_AVAILABLE      STD_OFF
+
+
+/*-----------------------------------------------/
+/  CACHE IP SUPPORT                              /
+/-----------------------------------------------*/
+
+#define CACHE_IP_IS_AVAILABLE                  STD_ON
+
+#define CACHE_IP_ARMCOREMX_IS_AVAILABLE        STD_OFF
+#define CACHE_IP_LMEM_IS_AVAILABLE             STD_ON
+
+#define CACHE_IP_ALL_IS_AVAILABLE              STD_ON
+#define CACHE_IP_INSTRUCTION_IS_AVAILABLE      STD_OFF
+#define CACHE_IP_DATA_IS_AVAILABLE             STD_OFF
+#define CACHE_IP_LMEM_PC_IS_AVAILABLE          STD_ON
+#define CACHE_IP_LMEM_PS_IS_AVAILABLE          STD_OFF
+
+#define CACHE_IP_DEV_ERROR_DETECT              STD_OFF
+/*-----------------------------------------------/
+/  CACHE IP SPECIFIC                             /
+/-----------------------------------------------*/
+#define CACHE_IP_LMEM_LINE_SIZE                16U
+#define CACHE_IP_LMEM_COMMAND_TIMEOUT_VAL      100000
+#define CACHE_IP_LMEM_COMMAND_TIMEOUT_TYPE     OSIF_COUNTER_DUMMY
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* CACHE_IP_CFG_DEFINES_H_ */

+ 89 - 89
generate/include/Cache_Ip_Cfg_DeviceRegisters.h

@@ -1,89 +1,89 @@
-/*==================================================================================================
-*   Project              : RTD AUTOSAR 4.4
-*   Platform             : CORTEXM
-*   Peripheral           : DMA,CACHE,TRGMUX,FLEXIO
-*   Dependencies         : none
-*
-*   Autosar Version      : 4.4.0
-*   Autosar Revision     : ASR_REL_4_4_REV_0000
-*   Autosar Conf.Variant :
-*   SW Version           : 1.0.0
-*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
-*
-*   (c) Copyright 2020-2021 NXP Semiconductors
-*   All Rights Reserved.
-*
-*   NXP Confidential. This software is owned or controlled by NXP and may only be
-*   used strictly in accordance with the applicable license terms. By expressly
-*   accepting such terms or by downloading, installing, activating and/or otherwise
-*   using the software, you are agreeing that you have read, and that you agree to
-*   comply with and are bound by, such license terms. If you do not agree to be
-*   bound by the applicable license terms, then you may not retain, install,
-*   activate or otherwise use the software.
-==================================================================================================*/
-
-/* Prevention from multiple including the same header */
-#ifndef CACHE_IP_CFG_DEVICE_REGISTERS_H_
-#define CACHE_IP_CFG_DEVICE_REGISTERS_H_
-
-/**
-*   @file    Cache_Ip_Cfg_DeviceRegisters.h
-*
-*   @version 1.0.0
-*
-*   @brief   AUTOSAR Mcl - Cache Ip Cfg Device Registers header file.
-*   @details 
-*
-*   @addtogroup CACHE_IP_DRIVER CACHE IP Driver
-*   @{
-*/
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-/*==================================================================================================
-                                         INCLUDE FILES
- 1) system and project includes
- 2) needed interfaces from external units
- 3) internal and external interfaces from this unit
-==================================================================================================*/
-#include "Mcal.h"
-#include "BasicTypes.h"
-
-#include "S32K146_LMEM.h"
-
-/*==================================================================================================
-                               SOURCE FILE VERSION INFORMATION
-==================================================================================================*/
-#define CACHE_IP_CFG_DEVICEREGISTERS_VENDOR_ID_H                       43
-#define CACHE_IP_CFG_DEVICEREGISTERS_AR_RELEASE_MAJOR_VERSION_H        4
-#define CACHE_IP_CFG_DEVICEREGISTERS_AR_RELEASE_MINOR_VERSION_H        4
-#define CACHE_IP_CFG_DEVICEREGISTERS_AR_RELEASE_REVISION_VERSION_H     0
-#define CACHE_IP_CFG_DEVICEREGISTERS_SW_MAJOR_VERSION_H                1
-#define CACHE_IP_CFG_DEVICEREGISTERS_SW_MINOR_VERSION_H                0
-#define CACHE_IP_CFG_DEVICEREGISTERS_SW_PATCH_VERSION_H                0
-
-/*==================================================================================================
-                                      FILE VERSION CHECKS
-==================================================================================================*/
-#ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
-/* Check if header file and Mcal header file are of the same Autosar version */
-#if ((CACHE_IP_CFG_DEVICEREGISTERS_AR_RELEASE_MAJOR_VERSION_H != MCAL_AR_RELEASE_MAJOR_VERSION) || \
-     (CACHE_IP_CFG_DEVICEREGISTERS_AR_RELEASE_MINOR_VERSION_H != MCAL_AR_RELEASE_MINOR_VERSION))
-    #error "AutoSar Version Numbers of Cache_Ip_Cfg_DeviceRegisters.h and Mcal.h are different"
-#endif
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-/** @} */
-
-#endif  /* #ifndef CACHE_IP_CFG_DEVICE_REGISTERS_H_ */
-
-/*==================================================================================================
- *                                        END OF FILE
-==================================================================================================*/
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : DMA,CACHE,TRGMUX,FLEXIO
+*   Dependencies         : none
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+
+/* Prevention from multiple including the same header */
+#ifndef CACHE_IP_CFG_DEVICE_REGISTERS_H_
+#define CACHE_IP_CFG_DEVICE_REGISTERS_H_
+
+/**
+*   @file    Cache_Ip_Cfg_DeviceRegisters.h
+*
+*   @version 1.0.0
+*
+*   @brief   AUTOSAR Mcl - Cache Ip Cfg Device Registers header file.
+*   @details 
+*
+*   @addtogroup CACHE_IP_DRIVER CACHE IP Driver
+*   @{
+*/
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*==================================================================================================
+                                         INCLUDE FILES
+ 1) system and project includes
+ 2) needed interfaces from external units
+ 3) internal and external interfaces from this unit
+==================================================================================================*/
+#include "Mcal.h"
+#include "BasicTypes.h"
+
+#include "S32K146_LMEM.h"
+
+/*==================================================================================================
+                               SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+#define CACHE_IP_CFG_DEVICEREGISTERS_VENDOR_ID_H                       43
+#define CACHE_IP_CFG_DEVICEREGISTERS_AR_RELEASE_MAJOR_VERSION_H        4
+#define CACHE_IP_CFG_DEVICEREGISTERS_AR_RELEASE_MINOR_VERSION_H        4
+#define CACHE_IP_CFG_DEVICEREGISTERS_AR_RELEASE_REVISION_VERSION_H     0
+#define CACHE_IP_CFG_DEVICEREGISTERS_SW_MAJOR_VERSION_H                1
+#define CACHE_IP_CFG_DEVICEREGISTERS_SW_MINOR_VERSION_H                0
+#define CACHE_IP_CFG_DEVICEREGISTERS_SW_PATCH_VERSION_H                0
+
+/*==================================================================================================
+                                      FILE VERSION CHECKS
+==================================================================================================*/
+#ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
+/* Check if header file and Mcal header file are of the same Autosar version */
+#if ((CACHE_IP_CFG_DEVICEREGISTERS_AR_RELEASE_MAJOR_VERSION_H != MCAL_AR_RELEASE_MAJOR_VERSION) || \
+     (CACHE_IP_CFG_DEVICEREGISTERS_AR_RELEASE_MINOR_VERSION_H != MCAL_AR_RELEASE_MINOR_VERSION))
+    #error "AutoSar Version Numbers of Cache_Ip_Cfg_DeviceRegisters.h and Mcal.h are different"
+#endif
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+/** @} */
+
+#endif  /* #ifndef CACHE_IP_CFG_DEVICE_REGISTERS_H_ */
+
+/*==================================================================================================
+ *                                        END OF FILE
+==================================================================================================*/

+ 331 - 331
generate/include/Can_Cfg.h

@@ -1,331 +1,331 @@
-/*==================================================================================================
-*   Project              : RTD AUTOSAR 4.4
-*   Platform             : CORTEXM
-*   Peripheral           : FLEXCAN
-*   Dependencies         : 
-*
-*   Autosar Version      : 4.4.0
-*   Autosar Revision     : ASR_REL_4_4_REV_0000
-*   Autosar Conf.Variant :
-*   SW Version           : 1.0.0
-*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
-*
-*   (c) Copyright 2020-2021 NXP Semiconductors
-*   All Rights Reserved.
-*
-*   NXP Confidential. This software is owned or controlled by NXP and may only be
-*   used strictly in accordance with the applicable license terms. By expressly
-*   accepting such terms or by downloading, installing, activating and/or otherwise
-*   using the software, you are agreeing that you have read, and that you agree to
-*   comply with and are bound by, such license terms. If you do not agree to be
-*   bound by the applicable license terms, then you may not retain, install,
-*   activate or otherwise use the software.
-==================================================================================================*/
-/*==================================================================================================
-==================================================================================================*/
-/*
-@brief   The consistency of the configuration must be checked by the configuration tool(s).
-@brief   (SWS_Can_00022) The code configuration of the Can module is CAN controller specific.
-         If the CAN controller is sited on-chip, the code generation tool for the Can module is Controller specific.
-         If the CAN controller is an external device the generation tool must not be Controller specific.
-@brief   (SWS_Can_00024) The valid values that can be configured are hardware dependent.
-         Therefore the rules and constraints can't be given in the standard.
-         The configuration tool is responsible to do a static configuration checking, also regarding dependencies between modules (i.e. Port driver, MCU driver etc.)
-*/
-/*
-* @file    Can_Cfg.h
-*/
-
-#ifndef CAN_CFG_H
-#define CAN_CFG_H
-
-/**
-*   @file    Can_Cfg.h
-*   @version 1.0.0
-*
-*   @brief   AUTOSAR Can - module interface
-*   @details Configuration settings generated by user settings.
-*
-*   @addtogroup CAN_DRIVER
-*   @{
-*/
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-/**
-* @page misra_violations MISRA-C:2012 violations
-*
-* @section [global]
-* Violates MISRA 2012 Required Rule 5.1, External identifiers shall be distinct.
-* The used compilers use more than 31 chars for identifiers.
-*
-* @section [global]
-* Violates MISRA 2012 Required Rule 5.2, Identifiers declared in the same scope and name space shall be distinct.
-* The used compilers use more than 31 chars for identifiers.
-*
-* @section [global]
-* Violates MISRA 2012 Required Rule 5.4, Macro identifiers shall be distinct.
-* The used compilers use more than 31 chars for identifiers.
-*
-* @section [global]
-* Violates MISRA 2012 Required Rule 5.5, Identifiers shall be distinct from macro names.
-* The used compilers use more than 31 chars for identifiers.
-*
-* @section Can_Cfg_h_REF_1
-* Violates MISRA 2012 Advisory Rule 2.5, A project should not contain unused macro declarations.
-* Some macro are required by ASR even they are not use in MCAL layer
-*
-* @section Can_Cfg_h_REF_2
-* Violates MISRA 2012 Advisory Rule 4.9, A function should be used in preference to a function-like macro where they are interchangeable.
-* Function like macro are used to reduce code complexity
-*/
-
-/*==================================================================================================
-*                                        INCLUDE FILES
-* 1) system and project includes
-* 2) needed interfaces from external units
-* 3) internal and external interfaces from this unit
-==================================================================================================*/
-#include "Can_VS_0_PBcfg.h"
-/*==================================================================================================
-*                              SOURCE FILE VERSION INFORMATION
-==================================================================================================*/
-/*
-* @file           Can_Cfg.h
-*/
-#define CAN_VENDOR_ID_CFG_H                     43
-#define CAN_MODULE_ID_CFG_H                     80
-#define CAN_AR_RELEASE_MAJOR_VERSION_CFG_H      4
-#define CAN_AR_RELEASE_MINOR_VERSION_CFG_H      4
-#define CAN_AR_RELEASE_REVISION_VERSION_CFG_H   0
-#define CAN_SW_MAJOR_VERSION_CFG_H              1
-#define CAN_SW_MINOR_VERSION_CFG_H              0
-#define CAN_SW_PATCH_VERSION_CFG_H              0
-/*==================================================================================================
-*                                     FILE VERSION CHECKS
-==================================================================================================*/
-/* Check if header file and Can_VS_0_PBcfg.h configuration header file are of the same vendor */
-#if (CAN_VENDOR_ID_VS_0_PBCFG_H != CAN_VENDOR_ID_CFG_H)
-#error "Can_VS_0_PBcfg.h and Can_Cfg.h have different vendor IDs"
-#endif
-/* Check if header file and Can_VS_0_PBcfg.h configuration header file are of the same Autosar version */
-#if ((CAN_AR_RELEASE_MAJOR_VERSION_VS_0_PBCFG_H != CAN_AR_RELEASE_MAJOR_VERSION_CFG_H) || \
-(CAN_AR_RELEASE_MINOR_VERSION_VS_0_PBCFG_H != CAN_AR_RELEASE_MINOR_VERSION_CFG_H) || \
-(CAN_AR_RELEASE_REVISION_VERSION_VS_0_PBCFG_H != CAN_AR_RELEASE_REVISION_VERSION_CFG_H) \
-)
-#error "AutoSar Version Numbers of Can_VS_0_PBcfg.h and Can_Cfg.h are different"
-#endif
-/* Check if header file and Can_VS_0_PBcfg.h configuration header file are of the same software version */
-#if ((CAN_SW_MAJOR_VERSION_VS_0_PBCFG_H != CAN_SW_MAJOR_VERSION_CFG_H) || \
-(CAN_SW_MINOR_VERSION_VS_0_PBCFG_H != CAN_SW_MINOR_VERSION_CFG_H) || \
-(CAN_SW_PATCH_VERSION_VS_0_PBCFG_H != CAN_SW_PATCH_VERSION_CFG_H) \
-)
-#error "Software Version Numbers of Can_VS_0_PBcfg.h and Can_Cfg.h are different"
-#endif
-/*==================================================================================================
-*                                      DEFINES AND MACROS
-==================================================================================================*/
-/**
-*   @brief      Enable/Disable Precompile Support
-*/
-#define CAN_PRECOMPILE_SUPPORT    (STD_ON)
-
-/**
-*   @brief      Number of Can Controller Support
-*/
-#define CAN_HWCONTROLLER_SUPPORT    3U
-
-/**
-*   @brief      Controller unsed
-*/
-#define CAN_CONTROLLER_UNUSED    ((uint8)0xFFU)
-
-/**
-*   @brief      The definition represent for Message buffer index which not assigned for any Hw Object
-*/
-#define CAN_HWOBJ_UNMAPPED    ((Can_HwHandleType)0xFFFFU)
-
-/**
-*   @brief      The definition represent for number of ECUC partition configured.
-*/
-#define CAN_MAX_PARTITIONS    1U
-
-/**
-*   @brief      Number Of Hw Message Buffer support
-*/
-#define CAN_HWMB_COUNT    ((uint8)32U)
-
-/**
-*  @brief      The definition of TimeStamp Enable Support for Hw Objects
-*/
-#define CAN_TIMESTAMP_ENABLE    (STD_OFF)
-
-/**
-*   @brief      The definition used for guarding GetCoreID/Multicore
-*/
-#define CAN_MULTICORE_ENABLED    (STD_OFF)
-
-/**
-*   @brief      Define if global variables need to be placed in non-cache area or not
-*/
-#define CAN_NO_CACHE_NEEDED    (STD_OFF)
-
-/**
-*   @brief      Enable/Disable Development Error Detection and Notification
-*/
-#define CAN_DEV_ERROR_DETECT    (STD_OFF)
-
-/**
-*   @brief      Enable/Disable support Can_GetVersionInfo API
-*/
-#define CAN_VERSION_INFO_API    (STD_ON)
-
-/**
-*   @brief      Enable/Disable support Can_SetBaudrate API
-*/
-#define CAN_SET_BAUDRATE_API    (STD_ON)
-
-/**
-*   @brief      Enable/Disable support Can_AbortMb API
-*/
-#define CAN_ABORT_MB_API    (STD_ON)
-
-/**
-*   @brief      Enable/Disable LPdu Callout Function
-*/
-#define CAN_LPDU_CALLOUT_FUNC_ENABLE    (STD_OFF)
-
-/**
-*   @brief      Enable/Disable Extended Range of Can Hw Object
-*/
-#define CAN_MBCOUNTEXTENSION    (STD_OFF)
-
-/**
-*   @brief      Instance of the Can Hw unit
-*/
-#define CAN_INSTANCE    ((uint8)0U)
-
-/**
-*   @brief      Enable/Disable support Dual Clock Mode
-*/
-#define CAN_DUAL_CLOCK_MODE    (STD_OFF)
-
-/**
-*   @brief      Enable/Disable support Listen Only Mode
-*/
-#define CAN_LISTEN_ONLY_MODE    (STD_OFF)
-
-/**
-* @brief          Enable/Disable LPdu Receive callout function support
-*/
-#define CAN_LPDU_CALLOUT_SUPPORT    (STD_OFF)
-#define CAN_LPDU_CALLOUT_FUNC_CALLED    
-
-/**
-*   @brief      Symbolic Name generated for CanMainFunctionRWPeriods
-*/
-#define CanMainFunctionRWPeriods_0    0U
-
-/**
-*   @brief      Period for cyclic call of Main Function Read/Write
-*/
-#define CAN_MAINFUNCTION_MULTIPLE_WRITE    (STD_OFF)
-#define CAN_MAINFUNCTION_MULTIPLE_READ    (STD_OFF)
-#define CAN_MAINFUNCTION_READ_PERIOD    (0.001F)
-#define CAN_MAINFUNCTION_WRITE_PERIOD    (0.001F)
-
-/**
-*   @brief      Period for cyclic call of Main Function Mode
-*/
-#define CAN_MAINFUNCTION_MODE_PERIOD    (0.001F)
-
-/**
-*   @brief      Period for cyclic call of Main Function Bus Off
-*/
-#define CAN_MAINFUNCTION_BUSOFF_PERIOD    (0.001F)
-
-
-/**
-*   @brief      Supporting Pretended Networking
-*/
-#define CAN_PUBLIC_ICOM_SUPPORT    (STD_ON)
-
-/**
-*   @brief      Number Of Can Controller Config
-*/
-#define CAN_CONTROLLER_CONFIG_COUNT    (2U)
-
-/**
-*   @brief      Number Of HardwareObject Config
-*/
-#define CAN_HWOBJECT_CONFIG_COUNT    ((Can_HwHandleType)4U)
-
-/**
-*   @brief      Symbolic Name generated for Can Controller
-*/
-#define CanController_0    ((uint8)0U)
-#define CanController_1    ((uint8)1U)
-
-/**
-*   @brief      Symbolic Name generated for Can HardwareObject
-*/
-#define Can0HardwareObject_RX    ((Can_HwHandleType)0U)
-#define Can1HardwareObject_RX    ((Can_HwHandleType)1U)
-#define Can0HardwareObject_TX    ((Can_HwHandleType)2U)
-#define Can1HardwareObject_TX    ((Can_HwHandleType)3U)
-
-/**
-*   @brief      Enable/Disable support  Can_CheckWakeup API
-*/
-#define CAN_CHECK_WAKEUP_API    (STD_OFF)
-
-/**
-*   @brief      Can Tx Polling support
-*/
-#define CAN_TX_POLLING_SUPPORT    (STD_ON)
-
-/**
-*   @brief      Can Rx Polling support
-*/
-#define CAN_RX_POLLING_SUPPORT    (STD_ON)
-
-/**
-*   @brief      Can Bus Off Polling support
-*/
-#define CAN_BUSOFF_POLLING_SUPPORT    (STD_ON)
-
-/**
-*   @brief      Can Wakeup Polling support
-*/
-#define CAN_WAKEUP_POLLING_SUPPORT    (STD_ON)
-
-/**
-*   @brief      Can Wakeup support
-*/
-#define CAN_WAKEUP_SUPPORT    (STD_OFF)
-
-/**
-*   @brief      Can Rx/Tx common interrupt support
-*/
-
-
-/**
-*   @brief      The definition was represented for at least one Hw Object enabled trigger transmit.
-*/
-#define CAN_TRIGGER_TRANSMIT_USED    (STD_OFF)
-/**
-*   @brief      Can Enhanced RxFiFo enabling.
-*/
-#define CAN_ENHANCED_FIFO_ENABLED    (STD_OFF)
-
-#define CAN_CONFIG_EXT
-
-#ifdef __cplusplus
-}
-#endif
-
-/** @} */
-
-#endif /* _CAN_CFG_H_ */
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : FLEXCAN
+*   Dependencies         : 
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+/*==================================================================================================
+==================================================================================================*/
+/*
+@brief   The consistency of the configuration must be checked by the configuration tool(s).
+@brief   (SWS_Can_00022) The code configuration of the Can module is CAN controller specific.
+         If the CAN controller is sited on-chip, the code generation tool for the Can module is Controller specific.
+         If the CAN controller is an external device the generation tool must not be Controller specific.
+@brief   (SWS_Can_00024) The valid values that can be configured are hardware dependent.
+         Therefore the rules and constraints can't be given in the standard.
+         The configuration tool is responsible to do a static configuration checking, also regarding dependencies between modules (i.e. Port driver, MCU driver etc.)
+*/
+/*
+* @file    Can_Cfg.h
+*/
+
+#ifndef CAN_CFG_H
+#define CAN_CFG_H
+
+/**
+*   @file    Can_Cfg.h
+*   @version 1.0.0
+*
+*   @brief   AUTOSAR Can - module interface
+*   @details Configuration settings generated by user settings.
+*
+*   @addtogroup CAN_DRIVER
+*   @{
+*/
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+/**
+* @page misra_violations MISRA-C:2012 violations
+*
+* @section [global]
+* Violates MISRA 2012 Required Rule 5.1, External identifiers shall be distinct.
+* The used compilers use more than 31 chars for identifiers.
+*
+* @section [global]
+* Violates MISRA 2012 Required Rule 5.2, Identifiers declared in the same scope and name space shall be distinct.
+* The used compilers use more than 31 chars for identifiers.
+*
+* @section [global]
+* Violates MISRA 2012 Required Rule 5.4, Macro identifiers shall be distinct.
+* The used compilers use more than 31 chars for identifiers.
+*
+* @section [global]
+* Violates MISRA 2012 Required Rule 5.5, Identifiers shall be distinct from macro names.
+* The used compilers use more than 31 chars for identifiers.
+*
+* @section Can_Cfg_h_REF_1
+* Violates MISRA 2012 Advisory Rule 2.5, A project should not contain unused macro declarations.
+* Some macro are required by ASR even they are not use in MCAL layer
+*
+* @section Can_Cfg_h_REF_2
+* Violates MISRA 2012 Advisory Rule 4.9, A function should be used in preference to a function-like macro where they are interchangeable.
+* Function like macro are used to reduce code complexity
+*/
+
+/*==================================================================================================
+*                                        INCLUDE FILES
+* 1) system and project includes
+* 2) needed interfaces from external units
+* 3) internal and external interfaces from this unit
+==================================================================================================*/
+#include "Can_VS_0_PBcfg.h"
+/*==================================================================================================
+*                              SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+/*
+* @file           Can_Cfg.h
+*/
+#define CAN_VENDOR_ID_CFG_H                     43
+#define CAN_MODULE_ID_CFG_H                     80
+#define CAN_AR_RELEASE_MAJOR_VERSION_CFG_H      4
+#define CAN_AR_RELEASE_MINOR_VERSION_CFG_H      4
+#define CAN_AR_RELEASE_REVISION_VERSION_CFG_H   0
+#define CAN_SW_MAJOR_VERSION_CFG_H              1
+#define CAN_SW_MINOR_VERSION_CFG_H              0
+#define CAN_SW_PATCH_VERSION_CFG_H              0
+/*==================================================================================================
+*                                     FILE VERSION CHECKS
+==================================================================================================*/
+/* Check if header file and Can_VS_0_PBcfg.h configuration header file are of the same vendor */
+#if (CAN_VENDOR_ID_VS_0_PBCFG_H != CAN_VENDOR_ID_CFG_H)
+#error "Can_VS_0_PBcfg.h and Can_Cfg.h have different vendor IDs"
+#endif
+/* Check if header file and Can_VS_0_PBcfg.h configuration header file are of the same Autosar version */
+#if ((CAN_AR_RELEASE_MAJOR_VERSION_VS_0_PBCFG_H != CAN_AR_RELEASE_MAJOR_VERSION_CFG_H) || \
+(CAN_AR_RELEASE_MINOR_VERSION_VS_0_PBCFG_H != CAN_AR_RELEASE_MINOR_VERSION_CFG_H) || \
+(CAN_AR_RELEASE_REVISION_VERSION_VS_0_PBCFG_H != CAN_AR_RELEASE_REVISION_VERSION_CFG_H) \
+)
+#error "AutoSar Version Numbers of Can_VS_0_PBcfg.h and Can_Cfg.h are different"
+#endif
+/* Check if header file and Can_VS_0_PBcfg.h configuration header file are of the same software version */
+#if ((CAN_SW_MAJOR_VERSION_VS_0_PBCFG_H != CAN_SW_MAJOR_VERSION_CFG_H) || \
+(CAN_SW_MINOR_VERSION_VS_0_PBCFG_H != CAN_SW_MINOR_VERSION_CFG_H) || \
+(CAN_SW_PATCH_VERSION_VS_0_PBCFG_H != CAN_SW_PATCH_VERSION_CFG_H) \
+)
+#error "Software Version Numbers of Can_VS_0_PBcfg.h and Can_Cfg.h are different"
+#endif
+/*==================================================================================================
+*                                      DEFINES AND MACROS
+==================================================================================================*/
+/**
+*   @brief      Enable/Disable Precompile Support
+*/
+#define CAN_PRECOMPILE_SUPPORT    (STD_ON)
+
+/**
+*   @brief      Number of Can Controller Support
+*/
+#define CAN_HWCONTROLLER_SUPPORT    3U
+
+/**
+*   @brief      Controller unsed
+*/
+#define CAN_CONTROLLER_UNUSED    ((uint8)0xFFU)
+
+/**
+*   @brief      The definition represent for Message buffer index which not assigned for any Hw Object
+*/
+#define CAN_HWOBJ_UNMAPPED    ((Can_HwHandleType)0xFFFFU)
+
+/**
+*   @brief      The definition represent for number of ECUC partition configured.
+*/
+#define CAN_MAX_PARTITIONS    1U
+
+/**
+*   @brief      Number Of Hw Message Buffer support
+*/
+#define CAN_HWMB_COUNT    ((uint8)32U)
+
+/**
+*  @brief      The definition of TimeStamp Enable Support for Hw Objects
+*/
+#define CAN_TIMESTAMP_ENABLE    (STD_OFF)
+
+/**
+*   @brief      The definition used for guarding GetCoreID/Multicore
+*/
+#define CAN_MULTICORE_ENABLED    (STD_OFF)
+
+/**
+*   @brief      Define if global variables need to be placed in non-cache area or not
+*/
+#define CAN_NO_CACHE_NEEDED    (STD_OFF)
+
+/**
+*   @brief      Enable/Disable Development Error Detection and Notification
+*/
+#define CAN_DEV_ERROR_DETECT    (STD_OFF)
+
+/**
+*   @brief      Enable/Disable support Can_GetVersionInfo API
+*/
+#define CAN_VERSION_INFO_API    (STD_ON)
+
+/**
+*   @brief      Enable/Disable support Can_SetBaudrate API
+*/
+#define CAN_SET_BAUDRATE_API    (STD_ON)
+
+/**
+*   @brief      Enable/Disable support Can_AbortMb API
+*/
+#define CAN_ABORT_MB_API    (STD_ON)
+
+/**
+*   @brief      Enable/Disable LPdu Callout Function
+*/
+#define CAN_LPDU_CALLOUT_FUNC_ENABLE    (STD_OFF)
+
+/**
+*   @brief      Enable/Disable Extended Range of Can Hw Object
+*/
+#define CAN_MBCOUNTEXTENSION    (STD_OFF)
+
+/**
+*   @brief      Instance of the Can Hw unit
+*/
+#define CAN_INSTANCE    ((uint8)0U)
+
+/**
+*   @brief      Enable/Disable support Dual Clock Mode
+*/
+#define CAN_DUAL_CLOCK_MODE    (STD_OFF)
+
+/**
+*   @brief      Enable/Disable support Listen Only Mode
+*/
+#define CAN_LISTEN_ONLY_MODE    (STD_OFF)
+
+/**
+* @brief          Enable/Disable LPdu Receive callout function support
+*/
+#define CAN_LPDU_CALLOUT_SUPPORT    (STD_OFF)
+#define CAN_LPDU_CALLOUT_FUNC_CALLED    
+
+/**
+*   @brief      Symbolic Name generated for CanMainFunctionRWPeriods
+*/
+#define CanMainFunctionRWPeriods_0    0U
+
+/**
+*   @brief      Period for cyclic call of Main Function Read/Write
+*/
+#define CAN_MAINFUNCTION_MULTIPLE_WRITE    (STD_OFF)
+#define CAN_MAINFUNCTION_MULTIPLE_READ    (STD_OFF)
+#define CAN_MAINFUNCTION_READ_PERIOD    (0.001F)
+#define CAN_MAINFUNCTION_WRITE_PERIOD    (0.001F)
+
+/**
+*   @brief      Period for cyclic call of Main Function Mode
+*/
+#define CAN_MAINFUNCTION_MODE_PERIOD    (0.001F)
+
+/**
+*   @brief      Period for cyclic call of Main Function Bus Off
+*/
+#define CAN_MAINFUNCTION_BUSOFF_PERIOD    (0.001F)
+
+
+/**
+*   @brief      Supporting Pretended Networking
+*/
+#define CAN_PUBLIC_ICOM_SUPPORT    (STD_ON)
+
+/**
+*   @brief      Number Of Can Controller Config
+*/
+#define CAN_CONTROLLER_CONFIG_COUNT    (2U)
+
+/**
+*   @brief      Number Of HardwareObject Config
+*/
+#define CAN_HWOBJECT_CONFIG_COUNT    ((Can_HwHandleType)4U)
+
+/**
+*   @brief      Symbolic Name generated for Can Controller
+*/
+#define CanController_0    ((uint8)0U)
+#define CanController_1    ((uint8)1U)
+
+/**
+*   @brief      Symbolic Name generated for Can HardwareObject
+*/
+#define Can0HardwareObject_RX    ((Can_HwHandleType)0U)
+#define Can1HardwareObject_RX    ((Can_HwHandleType)1U)
+#define Can0HardwareObject_TX    ((Can_HwHandleType)2U)
+#define Can1HardwareObject_TX    ((Can_HwHandleType)3U)
+
+/**
+*   @brief      Enable/Disable support  Can_CheckWakeup API
+*/
+#define CAN_CHECK_WAKEUP_API    (STD_OFF)
+
+/**
+*   @brief      Can Tx Polling support
+*/
+#define CAN_TX_POLLING_SUPPORT    (STD_ON)
+
+/**
+*   @brief      Can Rx Polling support
+*/
+#define CAN_RX_POLLING_SUPPORT    (STD_ON)
+
+/**
+*   @brief      Can Bus Off Polling support
+*/
+#define CAN_BUSOFF_POLLING_SUPPORT    (STD_ON)
+
+/**
+*   @brief      Can Wakeup Polling support
+*/
+#define CAN_WAKEUP_POLLING_SUPPORT    (STD_ON)
+
+/**
+*   @brief      Can Wakeup support
+*/
+#define CAN_WAKEUP_SUPPORT    (STD_OFF)
+
+/**
+*   @brief      Can Rx/Tx common interrupt support
+*/
+
+
+/**
+*   @brief      The definition was represented for at least one Hw Object enabled trigger transmit.
+*/
+#define CAN_TRIGGER_TRANSMIT_USED    (STD_OFF)
+/**
+*   @brief      Can Enhanced RxFiFo enabling.
+*/
+#define CAN_ENHANCED_FIFO_ENABLED    (STD_OFF)
+
+#define CAN_CONFIG_EXT
+
+#ifdef __cplusplus
+}
+#endif
+
+/** @} */
+
+#endif /* _CAN_CFG_H_ */

+ 83 - 83
generate/include/Can_Externals.h

@@ -1,83 +1,83 @@
-/*==================================================================================================
-*   Project              : RTD AUTOSAR 4.4
-*   Platform             : CORTEXM
-*   Peripheral           : FLEXCAN
-*   Dependencies         : 
-*
-*   Autosar Version      : 4.4.0
-*   Autosar Revision     : ASR_REL_4_4_REV_0000
-*   Autosar Conf.Variant :
-*   SW Version           : 1.0.0
-*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
-*
-*   (c) Copyright 2020-2021 NXP Semiconductors
-*   All Rights Reserved.
-*
-*   NXP Confidential. This software is owned or controlled by NXP and may only be
-*   used strictly in accordance with the applicable license terms. By expressly
-*   accepting such terms or by downloading, installing, activating and/or otherwise
-*   using the software, you are agreeing that you have read, and that you agree to
-*   comply with and are bound by, such license terms. If you do not agree to be
-*   bound by the applicable license terms, then you may not retain, install,
-*   activate or otherwise use the software.
-==================================================================================================*/
-/*==================================================================================================
-==================================================================================================*/
-
-#ifndef CAN_EXTERNALS_H
-#define CAN_EXTERNALS_H
-
-/**
-*   @file    Can_Externals.h
-*   @version 1.0.0
-*
-*   @brief   AUTOSAR Can - module interface.
-*   @details API header for CAN driver.
-*
-*   @addtogroup CAN_DRIVER
-*   @{
-*/
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-/*==================================================================================================
-*                                        INCLUDE FILES
-* 1) system and project includes
-* 2) needed interfaces from external units
-* 3) internal and external interfaces from this unit
-==================================================================================================*/
-
-/*==================================================================================================
-*                              SOURCE FILE VERSION INFORMATION
-==================================================================================================*/
-
-#define CAN_EXTERNALS_VENDOR_ID_H                       43
-#define CAN_EXTERNALS_MODULE_ID_H                       80
-#define CAN_EXTERNALS_AR_RELEASE_MAJOR_VERSION_H        4
-#define CAN_EXTERNALS_AR_RELEASE_MINOR_VERSION_H        4
-#define CAN_EXTERNALS_AR_RELEASE_REVISION_VERSION_H     0
-#define CAN_EXTERNALS_SW_MAJOR_VERSION_H                1
-#define CAN_EXTERNALS_SW_MINOR_VERSION_H                0
-#define CAN_EXTERNALS_SW_PATCH_VERSION_H                0
-
-/*==================================================================================================
-*                                     FILE VERSION CHECKS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                    FUNCTION PROTOTYPES
-==================================================================================================*/
-#define CAN_START_SEC_CODE
-#include "Can_MemMap.h"
-
-#define CAN_STOP_SEC_CODE
-#include "Can_MemMap.h"
-#ifdef __cplusplus
-}
-#endif
-
-/** @} */
-
-#endif /* CAN_EXTERNALS_H */
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : FLEXCAN
+*   Dependencies         : 
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+/*==================================================================================================
+==================================================================================================*/
+
+#ifndef CAN_EXTERNALS_H
+#define CAN_EXTERNALS_H
+
+/**
+*   @file    Can_Externals.h
+*   @version 1.0.0
+*
+*   @brief   AUTOSAR Can - module interface.
+*   @details API header for CAN driver.
+*
+*   @addtogroup CAN_DRIVER
+*   @{
+*/
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+/*==================================================================================================
+*                                        INCLUDE FILES
+* 1) system and project includes
+* 2) needed interfaces from external units
+* 3) internal and external interfaces from this unit
+==================================================================================================*/
+
+/*==================================================================================================
+*                              SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+
+#define CAN_EXTERNALS_VENDOR_ID_H                       43
+#define CAN_EXTERNALS_MODULE_ID_H                       80
+#define CAN_EXTERNALS_AR_RELEASE_MAJOR_VERSION_H        4
+#define CAN_EXTERNALS_AR_RELEASE_MINOR_VERSION_H        4
+#define CAN_EXTERNALS_AR_RELEASE_REVISION_VERSION_H     0
+#define CAN_EXTERNALS_SW_MAJOR_VERSION_H                1
+#define CAN_EXTERNALS_SW_MINOR_VERSION_H                0
+#define CAN_EXTERNALS_SW_PATCH_VERSION_H                0
+
+/*==================================================================================================
+*                                     FILE VERSION CHECKS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                    FUNCTION PROTOTYPES
+==================================================================================================*/
+#define CAN_START_SEC_CODE
+#include "Can_MemMap.h"
+
+#define CAN_STOP_SEC_CODE
+#include "Can_MemMap.h"
+#ifdef __cplusplus
+}
+#endif
+
+/** @} */
+
+#endif /* CAN_EXTERNALS_H */

+ 161 - 161
generate/include/Can_Ipw_Cfg.h

@@ -1,161 +1,161 @@
-/*==================================================================================================
-*   Project              : RTD AUTOSAR 4.4
-*   Platform             : CORTEXM
-*   Peripheral           : FLEXCAN
-*   Dependencies         : 
-*
-*   Autosar Version      : 4.4.0
-*   Autosar Revision     : ASR_REL_4_4_REV_0000
-*   Autosar Conf.Variant :
-*   SW Version           : 1.0.0
-*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
-*
-*   (c) Copyright 2020-2021 NXP Semiconductors
-*   All Rights Reserved.
-*
-*   NXP Confidential. This software is owned or controlled by NXP and may only be
-*   used strictly in accordance with the applicable license terms. By expressly
-*   accepting such terms or by downloading, installing, activating and/or otherwise
-*   using the software, you are agreeing that you have read, and that you agree to
-*   comply with and are bound by, such license terms. If you do not agree to be
-*   bound by the applicable license terms, then you may not retain, install,
-*   activate or otherwise use the software.
-==================================================================================================*/
-
-#ifndef CAN_IPW_CFG_H
-#define CAN_IPW_CFG_H
-
-/**
-*   @file    Can_Ipw_Cfg.h
-*   @version 1.0.0
-*
-*   @brief   AUTOSAR Can - module interface
-*   @details Configuration settings generated by user settings.
-*
-*   @addtogroup CAN_DRIVER
-*   @{
-*/
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-/*==================================================================================================
-                                         INCLUDE FILES
- 1) system and project includes
- 2) needed interfaces from external units
- 3) internal and external interfaces from this unit
-==================================================================================================*/
-#include "StandardTypes.h"
-
-    
-#include "Can_Ipw_VS_0_PBcfg.h"
-    
-
-#include "FlexCAN_Ip_Cfg.h"
-/*==================================================================================================
-*                              SOURCE FILE VERSION INFORMATION
-==================================================================================================*/
-#define CAN_IPW_CFG_VENDOR_ID                    43
-#define CAN_IPW_CFG_AR_RELEASE_MAJOR_VERSION     4
-#define CAN_IPW_CFG_AR_RELEASE_MINOR_VERSION     4
-#define CAN_IPW_CFG_AR_RELEASE_REVISION_VERSION  0
-#define CAN_IPW_CFG_SW_MAJOR_VERSION             1
-#define CAN_IPW_CFG_SW_MINOR_VERSION             0
-#define CAN_IPW_CFG_SW_PATCH_VERSION             0
-
-/*==================================================================================================
-*                                     FILE VERSION CHECKS
-==================================================================================================*/
-
-/* Checks against FlexCAN_Ip_Cfg.h */
-#if (CAN_IPW_CFG_VENDOR_ID != FLEXCAN_IP_CFG_VENDOR_ID_H)
-    #error "Can_Ipw_Cfg.h and FlexCAN_Ip_Cfg.h have different vendor ids"
-#endif
-#if ((CAN_IPW_CFG_AR_RELEASE_MAJOR_VERSION    != FLEXCAN_IP_CFG_AR_RELEASE_MAJOR_VERSION_H) || \
-     (CAN_IPW_CFG_AR_RELEASE_MINOR_VERSION    != FLEXCAN_IP_CFG_AR_RELEASE_MINOR_VERSION_H) || \
-     (CAN_IPW_CFG_AR_RELEASE_REVISION_VERSION != FLEXCAN_IP_CFG_AR_RELEASE_REVISION_VERSION_H) \
-     )
-     #error "AUTOSAR Version Numbers of Can_Ipw_Cfg.h and FlexCAN_Ip_Cfg.h are different"
-#endif
-#if ((CAN_IPW_CFG_SW_MAJOR_VERSION != FLEXCAN_IP_CFG_SW_MAJOR_VERSION_H) || \
-     (CAN_IPW_CFG_SW_MINOR_VERSION != FLEXCAN_IP_CFG_SW_MINOR_VERSION_H) || \
-     (CAN_IPW_CFG_SW_PATCH_VERSION != FLEXCAN_IP_CFG_SW_PATCH_VERSION_H) \
-     )
-    #error "Software Version Numbers of Can_Ipw_Cfg.h and FlexCAN_Ip_Cfg.h are different"
-#endif
-
-/* Checks against Can_Ipw_VS_0_PBcfg.h */
-#if (CAN_IPW_CFG_VENDOR_ID != CAN_VENDOR_ID_VS_0_IPW_PBCFG_H)
-    #error "Can_Ipw_Cfg.h and Can_Ipw_VS_0_PBcfg.h have different vendor ids"
-#endif
-#if ((CAN_IPW_CFG_AR_RELEASE_MAJOR_VERSION    != CAN_AR_RELEASE_MAJOR_VERSION_VS_0_IPW_PBCFG_H) || \
-     (CAN_IPW_CFG_AR_RELEASE_MINOR_VERSION    != CAN_AR_RELEASE_MINOR_VERSION_VS_0_IPW_PBCFG_H) || \
-     (CAN_IPW_CFG_AR_RELEASE_REVISION_VERSION != CAN_AR_RELEASE_REVISION_VERSION_VS_0_IPW_PBCFG_H) \
-    )
-    #error "AUTOSAR Version Numbers of Can_Ipw_Cfg.h and Can_Ipw_VS_0_PBcfg.h are different"
-#endif
-#if ((CAN_IPW_CFG_SW_MAJOR_VERSION != CAN_SW_MAJOR_VERSION_VS_0_IPW_PBCFG_H) || \
-     (CAN_IPW_CFG_SW_MINOR_VERSION != CAN_SW_MINOR_VERSION_VS_0_IPW_PBCFG_H) || \
-     (CAN_IPW_CFG_SW_PATCH_VERSION != CAN_SW_PATCH_VERSION_VS_0_IPW_PBCFG_H) \
-    )
-    #error "Software Version Numbers of Can_Ipw_Cfg.h and Can_Ipw_VS_0_PBcfg.h are different"
-#endif
-
-#ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
-    /* Checks against StandardTypes.h */
-    #if ((CAN_IPW_CFG_AR_RELEASE_MAJOR_VERSION    != STD_AR_RELEASE_MAJOR_VERSION) || \
-        (CAN_IPW_CFG_AR_RELEASE_MINOR_VERSION    != STD_AR_RELEASE_MINOR_VERSION) \
-        )
-        #error "AUTOSAR Version Numbers of Can_Ipw_Cfg.h and StandardTypes.h are different"
-    #endif
-#endif
-/*==================================================================================================
-*                                      DEFINES AND MACROS
-==================================================================================================*/
-#define CAN_USE_FLEXCAN_IP                     STD_ON
-#define CAN_MB_INTERRUPT_SUPPORT               FLEXCAN_IP_MB_INTERRUPT_SUPPORT
-#define CAN_ERROR_INTERRUPT_SUPPORT            FLEXCAN_IP_ERROR_INTERRUPT_SUPPORT
-#define CAN_BUSOFF_INTERRUPT_SUPPORT           FLEXCAN_IP_BUSOFF_INTERRUPT_SUPPORT
-#define CAN_FEATURE_HAS_DMA_ENABLE             FLEXCAN_IP_FEATURE_HAS_DMA_ENABLE
-#define CAN_FEATURE_HAS_PRETENDED_NETWORKING   FLEXCAN_IP_FEATURE_HAS_PRETENDED_NETWORKING
-#define CAN_FEATURE_HAS_ENHANCED_RX_FIFO       FLEXCAN_IP_FEATURE_HAS_ENHANCED_RX_FIFO
-#define CAN_MB_ENHANCED_RXFIFO                 FLEXCAN_IP_MB_ENHANCED_RXFIFO
-#define CAN_FEATURE_HAS_FD                     FLEXCAN_IP_FEATURE_HAS_FD
-#define CAN_IPW_EXT \
-CAN_IPW_CONFIG_VS_0_PB 
-
-
-
-#define CAN_IPW_ICOM_RXMESSAGE_EXT \
-CAN_IPW_ICOM_RXMESSAGE_CONFIG_VS_0_PB 
-
-
-/*==================================================================================================
-*                                             ENUMS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                STRUCTURES AND OTHER TYPEDEFS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                GLOBAL VARIABLE DECLARATIONS
-==================================================================================================*/
-
-/*==================================================================================================
-                                       GLOBAL CONSTANTS
-==================================================================================================*/
-
-
-/*==================================================================================================
-*                                    FUNCTION PROTOTYPES
-==================================================================================================*/
-
-#ifdef __cplusplus
-}
-#endif
-
-/** @} */
-
-#endif /* CAN_IPW_CFG_H */
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : FLEXCAN
+*   Dependencies         : 
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+
+#ifndef CAN_IPW_CFG_H
+#define CAN_IPW_CFG_H
+
+/**
+*   @file    Can_Ipw_Cfg.h
+*   @version 1.0.0
+*
+*   @brief   AUTOSAR Can - module interface
+*   @details Configuration settings generated by user settings.
+*
+*   @addtogroup CAN_DRIVER
+*   @{
+*/
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+/*==================================================================================================
+                                         INCLUDE FILES
+ 1) system and project includes
+ 2) needed interfaces from external units
+ 3) internal and external interfaces from this unit
+==================================================================================================*/
+#include "StandardTypes.h"
+
+    
+#include "Can_Ipw_VS_0_PBcfg.h"
+    
+
+#include "FlexCAN_Ip_Cfg.h"
+/*==================================================================================================
+*                              SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+#define CAN_IPW_CFG_VENDOR_ID                    43
+#define CAN_IPW_CFG_AR_RELEASE_MAJOR_VERSION     4
+#define CAN_IPW_CFG_AR_RELEASE_MINOR_VERSION     4
+#define CAN_IPW_CFG_AR_RELEASE_REVISION_VERSION  0
+#define CAN_IPW_CFG_SW_MAJOR_VERSION             1
+#define CAN_IPW_CFG_SW_MINOR_VERSION             0
+#define CAN_IPW_CFG_SW_PATCH_VERSION             0
+
+/*==================================================================================================
+*                                     FILE VERSION CHECKS
+==================================================================================================*/
+
+/* Checks against FlexCAN_Ip_Cfg.h */
+#if (CAN_IPW_CFG_VENDOR_ID != FLEXCAN_IP_CFG_VENDOR_ID_H)
+    #error "Can_Ipw_Cfg.h and FlexCAN_Ip_Cfg.h have different vendor ids"
+#endif
+#if ((CAN_IPW_CFG_AR_RELEASE_MAJOR_VERSION    != FLEXCAN_IP_CFG_AR_RELEASE_MAJOR_VERSION_H) || \
+     (CAN_IPW_CFG_AR_RELEASE_MINOR_VERSION    != FLEXCAN_IP_CFG_AR_RELEASE_MINOR_VERSION_H) || \
+     (CAN_IPW_CFG_AR_RELEASE_REVISION_VERSION != FLEXCAN_IP_CFG_AR_RELEASE_REVISION_VERSION_H) \
+     )
+     #error "AUTOSAR Version Numbers of Can_Ipw_Cfg.h and FlexCAN_Ip_Cfg.h are different"
+#endif
+#if ((CAN_IPW_CFG_SW_MAJOR_VERSION != FLEXCAN_IP_CFG_SW_MAJOR_VERSION_H) || \
+     (CAN_IPW_CFG_SW_MINOR_VERSION != FLEXCAN_IP_CFG_SW_MINOR_VERSION_H) || \
+     (CAN_IPW_CFG_SW_PATCH_VERSION != FLEXCAN_IP_CFG_SW_PATCH_VERSION_H) \
+     )
+    #error "Software Version Numbers of Can_Ipw_Cfg.h and FlexCAN_Ip_Cfg.h are different"
+#endif
+
+/* Checks against Can_Ipw_VS_0_PBcfg.h */
+#if (CAN_IPW_CFG_VENDOR_ID != CAN_VENDOR_ID_VS_0_IPW_PBCFG_H)
+    #error "Can_Ipw_Cfg.h and Can_Ipw_VS_0_PBcfg.h have different vendor ids"
+#endif
+#if ((CAN_IPW_CFG_AR_RELEASE_MAJOR_VERSION    != CAN_AR_RELEASE_MAJOR_VERSION_VS_0_IPW_PBCFG_H) || \
+     (CAN_IPW_CFG_AR_RELEASE_MINOR_VERSION    != CAN_AR_RELEASE_MINOR_VERSION_VS_0_IPW_PBCFG_H) || \
+     (CAN_IPW_CFG_AR_RELEASE_REVISION_VERSION != CAN_AR_RELEASE_REVISION_VERSION_VS_0_IPW_PBCFG_H) \
+    )
+    #error "AUTOSAR Version Numbers of Can_Ipw_Cfg.h and Can_Ipw_VS_0_PBcfg.h are different"
+#endif
+#if ((CAN_IPW_CFG_SW_MAJOR_VERSION != CAN_SW_MAJOR_VERSION_VS_0_IPW_PBCFG_H) || \
+     (CAN_IPW_CFG_SW_MINOR_VERSION != CAN_SW_MINOR_VERSION_VS_0_IPW_PBCFG_H) || \
+     (CAN_IPW_CFG_SW_PATCH_VERSION != CAN_SW_PATCH_VERSION_VS_0_IPW_PBCFG_H) \
+    )
+    #error "Software Version Numbers of Can_Ipw_Cfg.h and Can_Ipw_VS_0_PBcfg.h are different"
+#endif
+
+#ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
+    /* Checks against StandardTypes.h */
+    #if ((CAN_IPW_CFG_AR_RELEASE_MAJOR_VERSION    != STD_AR_RELEASE_MAJOR_VERSION) || \
+        (CAN_IPW_CFG_AR_RELEASE_MINOR_VERSION    != STD_AR_RELEASE_MINOR_VERSION) \
+        )
+        #error "AUTOSAR Version Numbers of Can_Ipw_Cfg.h and StandardTypes.h are different"
+    #endif
+#endif
+/*==================================================================================================
+*                                      DEFINES AND MACROS
+==================================================================================================*/
+#define CAN_USE_FLEXCAN_IP                     STD_ON
+#define CAN_MB_INTERRUPT_SUPPORT               FLEXCAN_IP_MB_INTERRUPT_SUPPORT
+#define CAN_ERROR_INTERRUPT_SUPPORT            FLEXCAN_IP_ERROR_INTERRUPT_SUPPORT
+#define CAN_BUSOFF_INTERRUPT_SUPPORT           FLEXCAN_IP_BUSOFF_INTERRUPT_SUPPORT
+#define CAN_FEATURE_HAS_DMA_ENABLE             FLEXCAN_IP_FEATURE_HAS_DMA_ENABLE
+#define CAN_FEATURE_HAS_PRETENDED_NETWORKING   FLEXCAN_IP_FEATURE_HAS_PRETENDED_NETWORKING
+#define CAN_FEATURE_HAS_ENHANCED_RX_FIFO       FLEXCAN_IP_FEATURE_HAS_ENHANCED_RX_FIFO
+#define CAN_MB_ENHANCED_RXFIFO                 FLEXCAN_IP_MB_ENHANCED_RXFIFO
+#define CAN_FEATURE_HAS_FD                     FLEXCAN_IP_FEATURE_HAS_FD
+#define CAN_IPW_EXT \
+CAN_IPW_CONFIG_VS_0_PB 
+
+
+
+#define CAN_IPW_ICOM_RXMESSAGE_EXT \
+CAN_IPW_ICOM_RXMESSAGE_CONFIG_VS_0_PB 
+
+
+/*==================================================================================================
+*                                             ENUMS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                STRUCTURES AND OTHER TYPEDEFS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                GLOBAL VARIABLE DECLARATIONS
+==================================================================================================*/
+
+/*==================================================================================================
+                                       GLOBAL CONSTANTS
+==================================================================================================*/
+
+
+/*==================================================================================================
+*                                    FUNCTION PROTOTYPES
+==================================================================================================*/
+
+#ifdef __cplusplus
+}
+#endif
+
+/** @} */
+
+#endif /* CAN_IPW_CFG_H */

+ 116 - 116
generate/include/Can_Ipw_VS_0_PBcfg.h

@@ -1,116 +1,116 @@
-/**
-*   @file    Can_VS_0_PBcfg.h
-*   @version 1.0.0
-*
-*   @brief   AUTOSAR Can - module interface
-*   @details Configuration settings generated by user settings.
-*
-*   @addtogroup CAN_DRIVER
-*   @{
-*/
-/*==================================================================================================
-*   Project              : RTD AUTOSAR 4.4
-*   Platform             : CORTEXM
-*   Peripheral           : FLEXCAN
-*   Dependencies         : 
-*
-*   Autosar Version      : 4.4.0
-*   Autosar Revision     : ASR_REL_4_4_REV_0000
-*   Autosar Conf.Variant :
-*   SW Version           : 1.0.0
-*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
-*
-*   (c) Copyright 2020-2021 NXP Semiconductors
-*   All Rights Reserved.
-*
-*   NXP Confidential. This software is owned or controlled by NXP and may only be
-*   used strictly in accordance with the applicable license terms. By expressly
-*   accepting such terms or by downloading, installing, activating and/or otherwise
-*   using the software, you are agreeing that you have read, and that you agree to
-*   comply with and are bound by, such license terms. If you do not agree to be
-*   bound by the applicable license terms, then you may not retain, install,
-*   activate or otherwise use the software.
-==================================================================================================*/
-/*==================================================================================================
-==================================================================================================*/
-/*
-@brief   The consistency of the configuration must be checked by the configuration tool(s).
-@brief   (SWS_Can_00022) The code configuration of the Can module is CAN controller specific.
-         If the CAN controller is sited on-chip, the code generation tool for the Can module is Controller specific.
-         If the CAN controller is an external device the generation tool must not be Controller specific.
-@brief   (SWS_Can_00024) The valid values that can be configured are hardware dependent.
-         Therefore the rules and constraints can't be given in the standard.
-         The configuration tool is responsible to do a static configuration checking, also regarding dependencies between modules (i.e. Port driver, MCU driver etc.)
-*/
-
-#ifndef CAN_IPW_VS_0_PBCFG_H
-#define CAN_IPW_VS_0_PBCFG_H
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-/*==================================================================================================
-*                                        INCLUDE FILES
-* 1) system and project includes
-* 2) needed interfaces from external units
-* 3) internal and external interfaces from this unit
-==================================================================================================*/
-
-/*==================================================================================================
-*                              SOURCE FILE VERSION INFORMATION
-==================================================================================================*/
-/*
-* @file           Can_Ipw_VS_0_PBcfg.h
-*/
-#define CAN_VENDOR_ID_VS_0_IPW_PBCFG_H 43
-#define CAN_AR_RELEASE_MAJOR_VERSION_VS_0_IPW_PBCFG_H 4
-#define CAN_AR_RELEASE_MINOR_VERSION_VS_0_IPW_PBCFG_H 4
-#define CAN_AR_RELEASE_REVISION_VERSION_VS_0_IPW_PBCFG_H 0
-#define CAN_SW_MAJOR_VERSION_VS_0_IPW_PBCFG_H 1
-#define CAN_SW_MINOR_VERSION_VS_0_IPW_PBCFG_H 0
-#define CAN_SW_PATCH_VERSION_VS_0_IPW_PBCFG_H 0
-
-/*==================================================================================================
-*                                     FILE VERSION CHECKS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                      DEFINES AND MACROS
-==================================================================================================*/
-#define CAN_IPW_CONFIG_VS_0_PB \
-    extern const Can_Ipw_HwChannelConfigType CanIpwHwChannelConfig_VS_00;\
-    extern const Can_Ipw_HwChannelConfigType CanIpwHwChannelConfig_VS_01;
-
-
-#define CAN_IPW_ICOM_RXMESSAGE_CONFIG_VS_0_PB \
-    extern const Can_Ipw_IcomRxMessageConfigsType CanIpwIcomRxMessageConfig_VS_0_0;
-
-/*==================================================================================================
-*                                             ENUMS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                STRUCTURES AND OTHER TYPEDEFS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                GLOBAL VARIABLE DECLARATIONS
-==================================================================================================*/
-
-/*==================================================================================================
-                                       GLOBAL CONSTANTS
-==================================================================================================*/
-
-
-/*==================================================================================================
-*                                    FUNCTION PROTOTYPES
-==================================================================================================*/
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _CAN_IPW_VS_0_PBCFG_H_ */
-
-/** @} */
+/**
+*   @file    Can_VS_0_PBcfg.h
+*   @version 1.0.0
+*
+*   @brief   AUTOSAR Can - module interface
+*   @details Configuration settings generated by user settings.
+*
+*   @addtogroup CAN_DRIVER
+*   @{
+*/
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : FLEXCAN
+*   Dependencies         : 
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+/*==================================================================================================
+==================================================================================================*/
+/*
+@brief   The consistency of the configuration must be checked by the configuration tool(s).
+@brief   (SWS_Can_00022) The code configuration of the Can module is CAN controller specific.
+         If the CAN controller is sited on-chip, the code generation tool for the Can module is Controller specific.
+         If the CAN controller is an external device the generation tool must not be Controller specific.
+@brief   (SWS_Can_00024) The valid values that can be configured are hardware dependent.
+         Therefore the rules and constraints can't be given in the standard.
+         The configuration tool is responsible to do a static configuration checking, also regarding dependencies between modules (i.e. Port driver, MCU driver etc.)
+*/
+
+#ifndef CAN_IPW_VS_0_PBCFG_H
+#define CAN_IPW_VS_0_PBCFG_H
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+/*==================================================================================================
+*                                        INCLUDE FILES
+* 1) system and project includes
+* 2) needed interfaces from external units
+* 3) internal and external interfaces from this unit
+==================================================================================================*/
+
+/*==================================================================================================
+*                              SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+/*
+* @file           Can_Ipw_VS_0_PBcfg.h
+*/
+#define CAN_VENDOR_ID_VS_0_IPW_PBCFG_H 43
+#define CAN_AR_RELEASE_MAJOR_VERSION_VS_0_IPW_PBCFG_H 4
+#define CAN_AR_RELEASE_MINOR_VERSION_VS_0_IPW_PBCFG_H 4
+#define CAN_AR_RELEASE_REVISION_VERSION_VS_0_IPW_PBCFG_H 0
+#define CAN_SW_MAJOR_VERSION_VS_0_IPW_PBCFG_H 1
+#define CAN_SW_MINOR_VERSION_VS_0_IPW_PBCFG_H 0
+#define CAN_SW_PATCH_VERSION_VS_0_IPW_PBCFG_H 0
+
+/*==================================================================================================
+*                                     FILE VERSION CHECKS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                      DEFINES AND MACROS
+==================================================================================================*/
+#define CAN_IPW_CONFIG_VS_0_PB \
+    extern const Can_Ipw_HwChannelConfigType CanIpwHwChannelConfig_VS_00;\
+    extern const Can_Ipw_HwChannelConfigType CanIpwHwChannelConfig_VS_01;
+
+
+#define CAN_IPW_ICOM_RXMESSAGE_CONFIG_VS_0_PB \
+    extern const Can_Ipw_IcomRxMessageConfigsType CanIpwIcomRxMessageConfig_VS_0_0;
+
+/*==================================================================================================
+*                                             ENUMS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                STRUCTURES AND OTHER TYPEDEFS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                GLOBAL VARIABLE DECLARATIONS
+==================================================================================================*/
+
+/*==================================================================================================
+                                       GLOBAL CONSTANTS
+==================================================================================================*/
+
+
+/*==================================================================================================
+*                                    FUNCTION PROTOTYPES
+==================================================================================================*/
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CAN_IPW_VS_0_PBCFG_H_ */
+
+/** @} */

+ 118 - 118
generate/include/Can_VS_0_PBcfg.h

@@ -1,118 +1,118 @@
-/*==================================================================================================
-*   Project              : RTD AUTOSAR 4.4
-*   Platform             : CORTEXM
-*   Peripheral           : FLEXCAN
-*   Dependencies         : 
-*
-*   Autosar Version      : 4.4.0
-*   Autosar Revision     : ASR_REL_4_4_REV_0000
-*   Autosar Conf.Variant :
-*   SW Version           : 1.0.0
-*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
-*
-*   (c) Copyright 2020-2021 NXP Semiconductors
-*   All Rights Reserved.
-*
-*   NXP Confidential. This software is owned or controlled by NXP and may only be
-*   used strictly in accordance with the applicable license terms. By expressly
-*   accepting such terms or by downloading, installing, activating and/or otherwise
-*   using the software, you are agreeing that you have read, and that you agree to
-*   comply with and are bound by, such license terms. If you do not agree to be
-*   bound by the applicable license terms, then you may not retain, install,
-*   activate or otherwise use the software.
-==================================================================================================*/
-/*==================================================================================================
-==================================================================================================*/
-/*
-@brief   The consistency of the configuration must be checked by the configuration tool(s).
-@brief   (SWS_Can_00022) The code configuration of the Can module is CAN controller specific.
-         If the CAN controller is sited on-chip, the code generation tool for the Can module is Controller specific.
-         If the CAN controller is an external device the generation tool must not be Controller specific.
-@brief   (SWS_Can_00024) The valid values that can be configured are hardware dependent.
-         Therefore the rules and constraints can't be given in the standard.
-         The configuration tool is responsible to do a static configuration checking, also regarding dependencies between modules (i.e. Port driver, MCU driver etc.)
-*/
-
-#ifndef CAN_VS_0_PBCFG_H
-#define CAN_VS_0_PBCFG_H
-
-/**
-*   @file    Can_VS_0_PBcfg.h
-*   @version 1.0.0
-*
-*   @brief   AUTOSAR Can - module interface
-*   @details Configuration settings generated by user settings.
-*
-*   @addtogroup CAN_DRIVER
-*   @{
-*/
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-/**
-* @page misra_violations MISRA-C:2012 violations
-*
-* @section [global]
-* Violates MISRA 2012 Required Rule 5.1, External identifiers shall be distinct.
-* The used compilers use more than 31 chars for identifiers.
-*
-* @section [global]
-* Violates MISRA 2012 Required Rule 5.2, Identifiers declared in the same scope and name space shall be distinct.
-* The used compilers use more than 31 chars for identifiers.
-*
-* @section [global]
-* Violates MISRA 2012 Required Rule 5.4, Macro identifiers shall be distinct.
-* The used compilers use more than 31 chars for identifiers.
-*
-* @section [global]
-* Violates MISRA 2012 Required Rule 5.5, Identifiers shall be distinct from macro names.
-* The used compilers use more than 31 chars for identifiers.
-*
-* @section Can_Cfg_h_REF_1
-* Violates MISRA 2012 Advisory Rule 2.5, A project should not contain unused macro declarations.
-* Some macro are required by ASR even they are not use in MCAL layer
-*
-* @section Can_Cfg_h_REF_2
-* Violates MISRA 2012 Advisory Rule 4.9, A function should be used in preference to a function-like macro where they are interchangeable.
-* Function like macro are used to reduce code complexity
-*/
-
-/*==================================================================================================
-*                                        INCLUDE FILES
-* 1) system and project includes
-* 2) needed interfaces from external units
-* 3) internal and external interfaces from this unit
-==================================================================================================*/
-
-/*==================================================================================================
-*                              SOURCE FILE VERSION INFORMATION
-==================================================================================================*/
-/*
-* @file           Can_VS_0_PBcfg.h
-*/
-#define CAN_VENDOR_ID_VS_0_PBCFG_H 43
-#define CAN_AR_RELEASE_MAJOR_VERSION_VS_0_PBCFG_H 4
-#define CAN_AR_RELEASE_MINOR_VERSION_VS_0_PBCFG_H 4
-#define CAN_AR_RELEASE_REVISION_VERSION_VS_0_PBCFG_H 0
-#define CAN_SW_MAJOR_VERSION_VS_0_PBCFG_H 1
-#define CAN_SW_MINOR_VERSION_VS_0_PBCFG_H 0
-#define CAN_SW_PATCH_VERSION_VS_0_PBCFG_H 0
-
-/*==================================================================================================
-*                                     FILE VERSION CHECKS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                      DEFINES AND MACROS
-==================================================================================================*/
-
-
-#ifdef __cplusplus
-}
-#endif
-
-/** @} */
-
-#endif /* _CAN_VS_0_PBCFG_H_ */
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : FLEXCAN
+*   Dependencies         : 
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+/*==================================================================================================
+==================================================================================================*/
+/*
+@brief   The consistency of the configuration must be checked by the configuration tool(s).
+@brief   (SWS_Can_00022) The code configuration of the Can module is CAN controller specific.
+         If the CAN controller is sited on-chip, the code generation tool for the Can module is Controller specific.
+         If the CAN controller is an external device the generation tool must not be Controller specific.
+@brief   (SWS_Can_00024) The valid values that can be configured are hardware dependent.
+         Therefore the rules and constraints can't be given in the standard.
+         The configuration tool is responsible to do a static configuration checking, also regarding dependencies between modules (i.e. Port driver, MCU driver etc.)
+*/
+
+#ifndef CAN_VS_0_PBCFG_H
+#define CAN_VS_0_PBCFG_H
+
+/**
+*   @file    Can_VS_0_PBcfg.h
+*   @version 1.0.0
+*
+*   @brief   AUTOSAR Can - module interface
+*   @details Configuration settings generated by user settings.
+*
+*   @addtogroup CAN_DRIVER
+*   @{
+*/
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+/**
+* @page misra_violations MISRA-C:2012 violations
+*
+* @section [global]
+* Violates MISRA 2012 Required Rule 5.1, External identifiers shall be distinct.
+* The used compilers use more than 31 chars for identifiers.
+*
+* @section [global]
+* Violates MISRA 2012 Required Rule 5.2, Identifiers declared in the same scope and name space shall be distinct.
+* The used compilers use more than 31 chars for identifiers.
+*
+* @section [global]
+* Violates MISRA 2012 Required Rule 5.4, Macro identifiers shall be distinct.
+* The used compilers use more than 31 chars for identifiers.
+*
+* @section [global]
+* Violates MISRA 2012 Required Rule 5.5, Identifiers shall be distinct from macro names.
+* The used compilers use more than 31 chars for identifiers.
+*
+* @section Can_Cfg_h_REF_1
+* Violates MISRA 2012 Advisory Rule 2.5, A project should not contain unused macro declarations.
+* Some macro are required by ASR even they are not use in MCAL layer
+*
+* @section Can_Cfg_h_REF_2
+* Violates MISRA 2012 Advisory Rule 4.9, A function should be used in preference to a function-like macro where they are interchangeable.
+* Function like macro are used to reduce code complexity
+*/
+
+/*==================================================================================================
+*                                        INCLUDE FILES
+* 1) system and project includes
+* 2) needed interfaces from external units
+* 3) internal and external interfaces from this unit
+==================================================================================================*/
+
+/*==================================================================================================
+*                              SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+/*
+* @file           Can_VS_0_PBcfg.h
+*/
+#define CAN_VENDOR_ID_VS_0_PBCFG_H 43
+#define CAN_AR_RELEASE_MAJOR_VERSION_VS_0_PBCFG_H 4
+#define CAN_AR_RELEASE_MINOR_VERSION_VS_0_PBCFG_H 4
+#define CAN_AR_RELEASE_REVISION_VERSION_VS_0_PBCFG_H 0
+#define CAN_SW_MAJOR_VERSION_VS_0_PBCFG_H 1
+#define CAN_SW_MINOR_VERSION_VS_0_PBCFG_H 0
+#define CAN_SW_PATCH_VERSION_VS_0_PBCFG_H 0
+
+/*==================================================================================================
+*                                     FILE VERSION CHECKS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                      DEFINES AND MACROS
+==================================================================================================*/
+
+
+#ifdef __cplusplus
+}
+#endif
+
+/** @} */
+
+#endif /* _CAN_VS_0_PBCFG_H_ */

+ 135 - 135
generate/include/Clock_Ip_Cfg.h

@@ -1,135 +1,135 @@
-/*==================================================================================================
-*   Project              : RTD AUTOSAR 4.4
-*   Platform             : CORTEXM
-*   Peripheral           : 
-*   Dependencies         : none
-*
-*   Autosar Version      : 4.4.0
-*   Autosar Revision     : ASR_REL_4_4_REV_0000
-*   Autosar Conf.Variant :
-*   SW Version           : 1.0.0
-*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
-*
-*   (c) Copyright 2020-2021 NXP Semiconductors
-*   All Rights Reserved.
-*
-*   NXP Confidential. This software is owned or controlled by NXP and may only be
-*   used strictly in accordance with the applicable license terms. By expressly
-*   accepting such terms or by downloading, installing, activating and/or otherwise
-*   using the software, you are agreeing that you have read, and that you agree to
-*   comply with and are bound by, such license terms. If you do not agree to be
-*   bound by the applicable license terms, then you may not retain, install,
-*   activate or otherwise use the software.
-==================================================================================================*/
-/**
-*   @file       Clock_Ip_Cfg.h
-*   @version    1.0.0
-*
-*   @brief   AUTOSAR Mcu - Clock configuration header file.
-*   @details This file is the header containing all the necessary information for CLOCK
-*            module configuration(s).
-*
-*   @addtogroup CLOCK_DRIVER_CONFIGURATION Clock Ip Driver
-*   @{
-*/
-
-
-#ifndef CLOCK_IP_CFG_H
-#define CLOCK_IP_CFG_H
-
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-
-/*==================================================================================================
-                                         INCLUDE FILES
- 1) system and project includes
- 2) needed interfaces from external units
- 3) internal and external interfaces from this unit
-==================================================================================================*/
-#include "Clock_Ip_VS_0_PBcfg.h"
-
-/*==================================================================================================
-*                              SOURCE FILE VERSION INFORMATION
-==================================================================================================*/
-#define CLOCK_IP_CFG_VENDOR_ID                      43
-#define CLOCK_IP_CFG_AR_RELEASE_MAJOR_VERSION       4
-#define CLOCK_IP_CFG_AR_RELEASE_MINOR_VERSION       4
-#define CLOCK_IP_CFG_AR_RELEASE_REVISION_VERSION    0
-#define CLOCK_IP_CFG_SW_MAJOR_VERSION               1
-#define CLOCK_IP_CFG_SW_MINOR_VERSION               0
-#define CLOCK_IP_CFG_SW_PATCH_VERSION               0
-
-/*==================================================================================================
-*                                     FILE VERSION CHECKS
-==================================================================================================*/
-/* Check if Clock_Ip_Cfg.h file and Clock_Ip_VS_0_PBcfg.h file are of the same vendor */
-#if (CLOCK_IP_CFG_VENDOR_ID != CLOCK_IP_VS_0_PBCFG_VENDOR_ID)
-    #error "Clock_Ip_Cfg.h and Clock_Ip_VS_0_PBcfg.h have different vendor ids"
-#endif
-
-/* Check if Clock_Ip_Cfg.h file and Clock_Ip_VS_0_PBcfg.h file are of the same Autosar version */
-#if ((CLOCK_IP_CFG_AR_RELEASE_MAJOR_VERSION != CLOCK_IP_VS_0_PBCFG_AR_RELEASE_MAJOR_VERSION) || \
-     (CLOCK_IP_CFG_AR_RELEASE_MINOR_VERSION != CLOCK_IP_VS_0_PBCFG_AR_RELEASE_MINOR_VERSION) || \
-     (CLOCK_IP_CFG_AR_RELEASE_REVISION_VERSION != CLOCK_IP_VS_0_PBCFG_AR_RELEASE_REVISION_VERSION) \
-    )
-    #error "AutoSar Version Numbers of Clock_Ip_Cfg.h and Clock_Ip_VS_0_PBcfg.h are different"
-#endif
-
-/* Check if Clock_Ip_Cfg.h file and Clock_Ip_VS_0_PBcfg.h file are of the same Software version */
-#if ((CLOCK_IP_CFG_SW_MAJOR_VERSION != CLOCK_IP_VS_0_PBCFG_SW_MAJOR_VERSION) || \
-     (CLOCK_IP_CFG_SW_MINOR_VERSION != CLOCK_IP_VS_0_PBCFG_SW_MINOR_VERSION) || \
-     (CLOCK_IP_CFG_SW_PATCH_VERSION != CLOCK_IP_VS_0_PBCFG_SW_PATCH_VERSION) \
-    )
-  #error "Software Version Numbers of Clock_Ip_Cfg.h and Clock_Ip_VS_0_PBcfg.h are different"
-#endif
-/*==================================================================================================
-                                           DEFINES AND MACROS
-==================================================================================================*/
-/**
-* @brief            Pre-processor switch for enabling the default error detection and reporting to the DET.
-*                   The detection of default errors is configurable (ON / OFF) at pre-compile time.
-* @implements CLOCK_IP_DEV_ERROR_DETECT_Define
-*/
-#define CLOCK_IP_DEV_ERROR_DETECT         (STD_OFF)
-
-#define CLOCK_TIMEOUT_TYPE                (OSIF_COUNTER_DUMMY)
-
-#define CLOCK_TIMEOUT_VALUE_US            (50000U)
-/**
-* @brief        Support for User mode.
-*               If this parameter has been configured to 'TRUE' the Clock can be executed from both supervisor and user mode.
-*/
-#define CLOCK_IP_ENABLE_USER_MODE_SUPPORT  (STD_OFF)
-
-/** Check the driver user mode is enabled only when the MCAL_ENABLE_USER_MODE_SUPPORT is enabled */
-#ifndef MCAL_ENABLE_USER_MODE_SUPPORT
-  #if (STD_ON == CLOCK_IP_ENABLE_USER_MODE_SUPPORT)
-    #error MCAL_ENABLE_USER_MODE_SUPPORT is not enabled. For running Clock in user mode the MCAL_ENABLE_USER_MODE_SUPPORT needs to be defined.
-  #endif /* (STD_ON == CLOCK_IP_ENABLE_USER_MODE_SUPPORT) */
-#endif /* ifndef MCAL_ENABLE_USER_MODE_SUPPORT */
-
-/*==================================================================================================
-                                             ENUMS
-==================================================================================================*/
-
-
-/*==================================================================================================
-                                 STRUCTURES AND OTHER TYPEDEFS
-==================================================================================================*/
-
-
-/*==================================================================================================
-                                             ENUMS
-==================================================================================================*/
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* CLOCK_IP_CFG_H */
-
-/** @} */
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : 
+*   Dependencies         : none
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+/**
+*   @file       Clock_Ip_Cfg.h
+*   @version    1.0.0
+*
+*   @brief   AUTOSAR Mcu - Clock configuration header file.
+*   @details This file is the header containing all the necessary information for CLOCK
+*            module configuration(s).
+*
+*   @addtogroup CLOCK_DRIVER_CONFIGURATION Clock Ip Driver
+*   @{
+*/
+
+
+#ifndef CLOCK_IP_CFG_H
+#define CLOCK_IP_CFG_H
+
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+/*==================================================================================================
+                                         INCLUDE FILES
+ 1) system and project includes
+ 2) needed interfaces from external units
+ 3) internal and external interfaces from this unit
+==================================================================================================*/
+#include "Clock_Ip_VS_0_PBcfg.h"
+
+/*==================================================================================================
+*                              SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+#define CLOCK_IP_CFG_VENDOR_ID                      43
+#define CLOCK_IP_CFG_AR_RELEASE_MAJOR_VERSION       4
+#define CLOCK_IP_CFG_AR_RELEASE_MINOR_VERSION       4
+#define CLOCK_IP_CFG_AR_RELEASE_REVISION_VERSION    0
+#define CLOCK_IP_CFG_SW_MAJOR_VERSION               1
+#define CLOCK_IP_CFG_SW_MINOR_VERSION               0
+#define CLOCK_IP_CFG_SW_PATCH_VERSION               0
+
+/*==================================================================================================
+*                                     FILE VERSION CHECKS
+==================================================================================================*/
+/* Check if Clock_Ip_Cfg.h file and Clock_Ip_VS_0_PBcfg.h file are of the same vendor */
+#if (CLOCK_IP_CFG_VENDOR_ID != CLOCK_IP_VS_0_PBCFG_VENDOR_ID)
+    #error "Clock_Ip_Cfg.h and Clock_Ip_VS_0_PBcfg.h have different vendor ids"
+#endif
+
+/* Check if Clock_Ip_Cfg.h file and Clock_Ip_VS_0_PBcfg.h file are of the same Autosar version */
+#if ((CLOCK_IP_CFG_AR_RELEASE_MAJOR_VERSION != CLOCK_IP_VS_0_PBCFG_AR_RELEASE_MAJOR_VERSION) || \
+     (CLOCK_IP_CFG_AR_RELEASE_MINOR_VERSION != CLOCK_IP_VS_0_PBCFG_AR_RELEASE_MINOR_VERSION) || \
+     (CLOCK_IP_CFG_AR_RELEASE_REVISION_VERSION != CLOCK_IP_VS_0_PBCFG_AR_RELEASE_REVISION_VERSION) \
+    )
+    #error "AutoSar Version Numbers of Clock_Ip_Cfg.h and Clock_Ip_VS_0_PBcfg.h are different"
+#endif
+
+/* Check if Clock_Ip_Cfg.h file and Clock_Ip_VS_0_PBcfg.h file are of the same Software version */
+#if ((CLOCK_IP_CFG_SW_MAJOR_VERSION != CLOCK_IP_VS_0_PBCFG_SW_MAJOR_VERSION) || \
+     (CLOCK_IP_CFG_SW_MINOR_VERSION != CLOCK_IP_VS_0_PBCFG_SW_MINOR_VERSION) || \
+     (CLOCK_IP_CFG_SW_PATCH_VERSION != CLOCK_IP_VS_0_PBCFG_SW_PATCH_VERSION) \
+    )
+  #error "Software Version Numbers of Clock_Ip_Cfg.h and Clock_Ip_VS_0_PBcfg.h are different"
+#endif
+/*==================================================================================================
+                                           DEFINES AND MACROS
+==================================================================================================*/
+/**
+* @brief            Pre-processor switch for enabling the default error detection and reporting to the DET.
+*                   The detection of default errors is configurable (ON / OFF) at pre-compile time.
+* @implements CLOCK_IP_DEV_ERROR_DETECT_Define
+*/
+#define CLOCK_IP_DEV_ERROR_DETECT         (STD_OFF)
+
+#define CLOCK_TIMEOUT_TYPE                (OSIF_COUNTER_DUMMY)
+
+#define CLOCK_TIMEOUT_VALUE_US            (50000U)
+/**
+* @brief        Support for User mode.
+*               If this parameter has been configured to 'TRUE' the Clock can be executed from both supervisor and user mode.
+*/
+#define CLOCK_IP_ENABLE_USER_MODE_SUPPORT  (STD_OFF)
+
+/** Check the driver user mode is enabled only when the MCAL_ENABLE_USER_MODE_SUPPORT is enabled */
+#ifndef MCAL_ENABLE_USER_MODE_SUPPORT
+  #if (STD_ON == CLOCK_IP_ENABLE_USER_MODE_SUPPORT)
+    #error MCAL_ENABLE_USER_MODE_SUPPORT is not enabled. For running Clock in user mode the MCAL_ENABLE_USER_MODE_SUPPORT needs to be defined.
+  #endif /* (STD_ON == CLOCK_IP_ENABLE_USER_MODE_SUPPORT) */
+#endif /* ifndef MCAL_ENABLE_USER_MODE_SUPPORT */
+
+/*==================================================================================================
+                                             ENUMS
+==================================================================================================*/
+
+
+/*==================================================================================================
+                                 STRUCTURES AND OTHER TYPEDEFS
+==================================================================================================*/
+
+
+/*==================================================================================================
+                                             ENUMS
+==================================================================================================*/
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* CLOCK_IP_CFG_H */
+
+/** @} */

+ 310 - 310
generate/include/Clock_Ip_Cfg_Defines.h

@@ -1,310 +1,310 @@
-/*==================================================================================================
-*   Project              : RTD AUTOSAR 4.4
-*   Platform             : CORTEXM
-*   Peripheral           : 
-*   Dependencies         : none
-*
-*   Autosar Version      : 4.4.0
-*   Autosar Revision     : ASR_REL_4_4_REV_0000
-*   Autosar Conf.Variant :
-*   SW Version           : 1.0.0
-*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
-*
-*   (c) Copyright 2020-2021 NXP Semiconductors
-*   All Rights Reserved.
-*
-*   NXP Confidential. This software is owned or controlled by NXP and may only be
-*   used strictly in accordance with the applicable license terms. By expressly
-*   accepting such terms or by downloading, installing, activating and/or otherwise
-*   using the software, you are agreeing that you have read, and that you agree to
-*   comply with and are bound by, such license terms. If you do not agree to be
-*   bound by the applicable license terms, then you may not retain, install,
-*   activate or otherwise use the software.
-==================================================================================================*/
-/**
-*   @file       Clock_Ip_Cfg_Defines.h
-*   @version    1.0.0
-*
-*   @brief   AUTOSAR Mcu - Post-Build(PB) configuration file code template.
-*   @details Code template for Post-Build(PB) configuration file generation.
-*
-*   @addtogroup CLOCK_DRIVER_CONFIGURATION Clock Ip Driver
-*   @{
-*/
-
-
-#ifndef CLOCK_IP_CFG_DEFINES_H
-#define CLOCK_IP_CFG_DEFINES_H
-
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-
-/*==================================================================================================
-                                         INCLUDE FILES
- 1) system and project includes
- 2) needed interfaces from external units
- 3) internal and external interfaces from this unit
-==================================================================================================*/
-
-/*==================================================================================================
-                               SOURCE FILE VERSION INFORMATION
-==================================================================================================*/
-#define CLOCK_IP_CFG_DEFINES_VENDOR_ID                       43
-#define CLOCK_IP_CFG_DEFINES_AR_RELEASE_MAJOR_VERSION        4
-#define CLOCK_IP_CFG_DEFINES_AR_RELEASE_MINOR_VERSION        4
-#define CLOCK_IP_CFG_DEFINES_AR_RELEASE_REVISION_VERSION     0
-#define CLOCK_IP_CFG_DEFINES_SW_MAJOR_VERSION                1
-#define CLOCK_IP_CFG_DEFINES_SW_MINOR_VERSION                0
-#define CLOCK_IP_CFG_DEFINES_SW_PATCH_VERSION                0
-
-/*==================================================================================================
-                                           DEFINES AND MACROS
-==================================================================================================*/
-/**
-* @brief            Derivative used.
-*/
-#define CLOCK_IP_S32K146
-
-/**
-* @brief            HW sseries used.
-*/
-#define CLOCK_IP_S32K1
-
-/**
-* @brief            Max number of internal oscillators
-*/
-#define FEATURE_CLOCK_IRCOSCS_COUNT       (2U)
-
-/**
-* @brief            Max number of external oscillators
-*/
-#define FEATURE_CLOCK_XOSCS_COUNT       (1U)
-
-/**
-* @brief            Max number of pll devices
-*/
-#define FEATURE_CLOCK_PLLS_COUNT       (1U)
-
-/**
-* @brief            Max number of selectors
-*/
-#define FEATURE_CLOCK_SELECTORS_COUNT       (32U)
-
-/**
-* @brief            Max number of dividers
-*/
-#define FEATURE_CLOCK_DIVIDERS_COUNT       (20U)
-
-/**
-* @brief            Max number of divider triggers
-*/
-#define FEATURE_CLOCK_DIVIDER_TRIGGERS_COUNT       (0U)
-
-/**
-* @brief            Max number of fractional dividers
-*/
-#define FEATURE_CLOCK_FRACTIONAL_DIVIDERS_COUNT       (0U)
-
-/**
-* @brief            Max number of external clocks
-*/
-#define FEATURE_CLOCK_EXT_CLKS_COUNT       (4U)
-
-/**
-* @brief            Max number of pcfs
-*/
-#define FEATURE_CLOCK_PCFS_COUNT       (0U)
-
-/**
-* @brief            Max number of clock gates
-*/
-#define FEATURE_CLOCK_GATES_COUNT       (42U)
-
-/**
-* @brief            Max number of clock monitoring units
-*/
-#define FEATURE_CLOCK_CMUS_COUNT       (0U)
-
-/**
-* @brief            Max number of configured frequencies values
-*/
-#define FEATURE_CLOCK_CONFIGURED_FREQUENCIES_COUNT       (0U)
-
-/**
-* @brief            Max number of specific peripheral (eMIOS) units
-*/
-#define FEATURE_CLOCK_SPECIFIC_PERIPH_COUNT       (0U)
-
-/**
-* @brief            Max number of consumer clocks
-*/
-#define FEATURE_CLOCK_CONSUMER_COUNT        (41U)
-
-/**
-* @brief            Supported power mode.
-*/
-
-#define FEATURE_CLOCK_IP_HAS_RUN_MODE                0U
-
-#define FEATURE_CLOCK_IP_LPO_128K_FREQUENCY          128000
-
-#define FEATURE_CLOCK_IP_FIRC_FREQUENCY              48000000
-
-#define FEATURE_CLOCK_IP_SIRC_FREQUENCY              8000000
-
-#define FEATURE_CLOCK_IP_DEFAULT_SOSC_FREQUENCY      40000000
-
-#define FEATURE_CLOCK_IP_HAS_LOW_GAIN                         0U
-
-#define FEATURE_CLOCK_IP_HAS_HIGH_GAIN                        1U
-
-#define FEATURE_CLOCK_IP_HAS_MONITOR_DISABLE                  0U
-
-#define FEATURE_CLOCK_IP_HAS_MONITOR_INT                      1U
-
-#define FEATURE_CLOCK_IP_HAS_MONITOR_RESET                    2U
-
-#define FEATURE_CLOCK_IP_HAS_SAFE_CLOCK_DISABLEMENT           1U
-
-#if FEATURE_CLOCK_CMUS_COUNT > 0U
-/**
-* @brief            Cmu formula constant values.
-*/
-#define FEATURE_OFFSET_REFERENCE_COUNT_FORMULA1               1U
-#define FEATURE_MULTIPLIER_REFERENCE_COUNT_FORMULA1           3U
-#define FEATURE_OFFSET_REFERENCE_COUNT_FORMULA2               7U
-#define FEATURE_MULTIPLIER_REFERENCE_COUNT_FORMULA2           3U
-#endif
-
-/**
-* @brief            Clock ip supports clock frequency
-*/
-#define CLOCK_IP_GET_FREQUENCY_API              (STD_OFF)
-
-
-/**
-* @brief            Clock ip supports ram wait states
-*/
-
-
-/**
-* @brief            Clock ip supports flash wait states
-*/
-
-
-/**
-* @brief            Supported clocks.
-*/
-#define FEATURE_CLOCK_IP_HAS_LPO_128K_CLK         1U
-#define FEATURE_CLOCK_IP_HAS_SIRC_CLK         2U
-#define FEATURE_CLOCK_IP_HAS_SIRC_VLP_CLK         3U
-#define FEATURE_CLOCK_IP_HAS_SIRC_STOP_CLK         4U
-#define FEATURE_CLOCK_IP_HAS_FIRC_CLK         5U
-#define FEATURE_CLOCK_IP_HAS_FIRC_VLP_CLK         6U
-#define FEATURE_CLOCK_IP_HAS_FIRC_STOP_CLK         7U
-#define FEATURE_CLOCK_IP_HAS_SOSC_CLK         8U
-#define FEATURE_CLOCK_IP_HAS_SPLL_CLK         9U
-#define FEATURE_CLOCK_IP_HAS_SIRCDIV1_CLK         10U
-#define FEATURE_CLOCK_IP_HAS_SIRCDIV2_CLK         11U
-#define FEATURE_CLOCK_IP_HAS_FIRCDIV1_CLK         12U
-#define FEATURE_CLOCK_IP_HAS_FIRCDIV2_CLK         13U
-#define FEATURE_CLOCK_IP_HAS_SOSCDIV1_CLK         14U
-#define FEATURE_CLOCK_IP_HAS_SOSCDIV2_CLK         15U
-#define FEATURE_CLOCK_IP_HAS_SPLLDIV1_CLK         16U
-#define FEATURE_CLOCK_IP_HAS_SPLLDIV2_CLK         17U
-#define FEATURE_CLOCK_IP_HAS_LPO_32K_CLK         18U
-#define FEATURE_CLOCK_IP_HAS_LPO_1K_CLK         19U
-#define FEATURE_CLOCK_IP_HAS_TCLK0_REF_CLK         20U
-#define FEATURE_CLOCK_IP_HAS_TCLK1_REF_CLK         21U
-#define FEATURE_CLOCK_IP_HAS_TCLK2_REF_CLK         22U
-#define FEATURE_CLOCK_IP_HAS_RTC_CLKIN         23U
-#define FEATURE_CLOCK_IP_HAS_SCS_CLK         24U
-#define FEATURE_CLOCK_IP_HAS_SCS_RUN_CLK         25U
-#define FEATURE_CLOCK_IP_HAS_SCS_VLPR_CLK         26U
-#define FEATURE_CLOCK_IP_HAS_SCS_HSRUN_CLK         27U
-#define FEATURE_CLOCK_IP_HAS_CORE_CLK         28U
-#define FEATURE_CLOCK_IP_HAS_CORE_RUN_CLK         29U
-#define FEATURE_CLOCK_IP_HAS_CORE_VLPR_CLK         30U
-#define FEATURE_CLOCK_IP_HAS_CORE_HSRUN_CLK         31U
-#define FEATURE_CLOCK_IP_HAS_BUS_CLK         32U
-#define FEATURE_CLOCK_IP_HAS_BUS_RUN_CLK         33U
-#define FEATURE_CLOCK_IP_HAS_BUS_VLPR_CLK         34U
-#define FEATURE_CLOCK_IP_HAS_BUS_HSRUN_CLK         35U
-#define FEATURE_CLOCK_IP_HAS_SLOW_CLK         36U
-#define FEATURE_CLOCK_IP_HAS_SLOW_RUN_CLK         37U
-#define FEATURE_CLOCK_IP_HAS_SLOW_VLPR_CLK         38U
-#define FEATURE_CLOCK_IP_HAS_SLOW_HSRUN_CLK         39U
-#define FEATURE_CLOCK_IP_HAS_RTC_CLK         40U
-#define FEATURE_CLOCK_IP_HAS_LPO_CLK         41U
-#define FEATURE_CLOCK_IP_HAS_SCG_CLKOUT_CLK         42U
-#define FEATURE_CLOCK_IP_HAS_FTM0_EXT_CLK         43U
-#define FEATURE_CLOCK_IP_HAS_FTM1_EXT_CLK         44U
-#define FEATURE_CLOCK_IP_HAS_FTM2_EXT_CLK         45U
-#define FEATURE_CLOCK_IP_HAS_FTM3_EXT_CLK         46U
-#define FEATURE_CLOCK_IP_HAS_FTM4_EXT_CLK         47U
-#define FEATURE_CLOCK_IP_HAS_FTM5_EXT_CLK         48U
-#define FEATURE_CLOCK_PRODUCERS_NO         48U
-#define FEATURE_CLOCK_IP_HAS_ADC0_CLK         50U
-#define FEATURE_CLOCK_IP_HAS_ADC1_CLK         51U
-#define FEATURE_CLOCK_IP_HAS_CLKOUT0_CLK         52U
-#define FEATURE_CLOCK_IP_HAS_CMP0_CLK         53U
-#define FEATURE_CLOCK_IP_HAS_CRC0_CLK         54U
-#define FEATURE_CLOCK_IP_HAS_DMA0_CLK         55U
-#define FEATURE_CLOCK_IP_HAS_DMAMUX0_CLK         56U
-#define FEATURE_CLOCK_IP_HAS_EIM0_CLK         57U
-#define FEATURE_CLOCK_IP_HAS_ERM0_CLK         58U
-#define FEATURE_CLOCK_IP_HAS_EWM0_CLK         59U
-#define FEATURE_CLOCK_IP_HAS_FLEXCAN0_CLK         60U
-#define FEATURE_CLOCK_IP_HAS_FLEXCAN1_CLK         61U
-#define FEATURE_CLOCK_IP_HAS_FLEXCAN2_CLK         62U
-#define FEATURE_CLOCK_IP_HAS_FlexIO_CLK         63U
-#define FEATURE_CLOCK_IP_HAS_FTFC_CLK         64U
-#define FEATURE_CLOCK_IP_HAS_FTM0_CLK         65U
-#define FEATURE_CLOCK_IP_HAS_FTM1_CLK         66U
-#define FEATURE_CLOCK_IP_HAS_FTM2_CLK         67U
-#define FEATURE_CLOCK_IP_HAS_FTM3_CLK         68U
-#define FEATURE_CLOCK_IP_HAS_FTM4_CLK         69U
-#define FEATURE_CLOCK_IP_HAS_FTM5_CLK         70U
-#define FEATURE_CLOCK_IP_HAS_LPI2C0_CLK         71U
-#define FEATURE_CLOCK_IP_HAS_LPIT0_CLK         72U
-#define FEATURE_CLOCK_IP_HAS_LPSPI0_CLK         73U
-#define FEATURE_CLOCK_IP_HAS_LPSPI1_CLK         74U
-#define FEATURE_CLOCK_IP_HAS_LPSPI2_CLK         75U
-#define FEATURE_CLOCK_IP_HAS_LPTMR0_CLK         76U
-#define FEATURE_CLOCK_IP_HAS_LPUART0_CLK         77U
-#define FEATURE_CLOCK_IP_HAS_LPUART1_CLK         78U
-#define FEATURE_CLOCK_IP_HAS_LPUART2_CLK         79U
-#define FEATURE_CLOCK_IP_HAS_MPU0_CLK         80U
-#define FEATURE_CLOCK_IP_HAS_MSCM0_CLK         81U
-#define FEATURE_CLOCK_IP_HAS_PDB0_CLK         82U
-#define FEATURE_CLOCK_IP_HAS_PDB1_CLK         83U
-#define FEATURE_CLOCK_IP_HAS_PORTA_CLK         84U
-#define FEATURE_CLOCK_IP_HAS_PORTB_CLK         85U
-#define FEATURE_CLOCK_IP_HAS_PORTC_CLK         86U
-#define FEATURE_CLOCK_IP_HAS_PORTD_CLK         87U
-#define FEATURE_CLOCK_IP_HAS_PORTE_CLK         88U
-#define FEATURE_CLOCK_IP_HAS_RTC0_CLK         89U
-#define FEATURE_CLOCK_IP_HAS_TRACE_CLK         90U
-#define FEATURE_CLOCKS_NO         91U
-
-/*==================================================================================================
-                                             ENUMS
-==================================================================================================*/
-
-
-/*==================================================================================================
-                                 STRUCTURES AND OTHER TYPEDEFS
-==================================================================================================*/
-
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* #ifndef CLOCK_IP_CFG_DEFINES_H */
-
-/** @} */
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : 
+*   Dependencies         : none
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+/**
+*   @file       Clock_Ip_Cfg_Defines.h
+*   @version    1.0.0
+*
+*   @brief   AUTOSAR Mcu - Post-Build(PB) configuration file code template.
+*   @details Code template for Post-Build(PB) configuration file generation.
+*
+*   @addtogroup CLOCK_DRIVER_CONFIGURATION Clock Ip Driver
+*   @{
+*/
+
+
+#ifndef CLOCK_IP_CFG_DEFINES_H
+#define CLOCK_IP_CFG_DEFINES_H
+
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+/*==================================================================================================
+                                         INCLUDE FILES
+ 1) system and project includes
+ 2) needed interfaces from external units
+ 3) internal and external interfaces from this unit
+==================================================================================================*/
+
+/*==================================================================================================
+                               SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+#define CLOCK_IP_CFG_DEFINES_VENDOR_ID                       43
+#define CLOCK_IP_CFG_DEFINES_AR_RELEASE_MAJOR_VERSION        4
+#define CLOCK_IP_CFG_DEFINES_AR_RELEASE_MINOR_VERSION        4
+#define CLOCK_IP_CFG_DEFINES_AR_RELEASE_REVISION_VERSION     0
+#define CLOCK_IP_CFG_DEFINES_SW_MAJOR_VERSION                1
+#define CLOCK_IP_CFG_DEFINES_SW_MINOR_VERSION                0
+#define CLOCK_IP_CFG_DEFINES_SW_PATCH_VERSION                0
+
+/*==================================================================================================
+                                           DEFINES AND MACROS
+==================================================================================================*/
+/**
+* @brief            Derivative used.
+*/
+#define CLOCK_IP_S32K146
+
+/**
+* @brief            HW sseries used.
+*/
+#define CLOCK_IP_S32K1
+
+/**
+* @brief            Max number of internal oscillators
+*/
+#define FEATURE_CLOCK_IRCOSCS_COUNT       (2U)
+
+/**
+* @brief            Max number of external oscillators
+*/
+#define FEATURE_CLOCK_XOSCS_COUNT       (1U)
+
+/**
+* @brief            Max number of pll devices
+*/
+#define FEATURE_CLOCK_PLLS_COUNT       (1U)
+
+/**
+* @brief            Max number of selectors
+*/
+#define FEATURE_CLOCK_SELECTORS_COUNT       (32U)
+
+/**
+* @brief            Max number of dividers
+*/
+#define FEATURE_CLOCK_DIVIDERS_COUNT       (20U)
+
+/**
+* @brief            Max number of divider triggers
+*/
+#define FEATURE_CLOCK_DIVIDER_TRIGGERS_COUNT       (0U)
+
+/**
+* @brief            Max number of fractional dividers
+*/
+#define FEATURE_CLOCK_FRACTIONAL_DIVIDERS_COUNT       (0U)
+
+/**
+* @brief            Max number of external clocks
+*/
+#define FEATURE_CLOCK_EXT_CLKS_COUNT       (4U)
+
+/**
+* @brief            Max number of pcfs
+*/
+#define FEATURE_CLOCK_PCFS_COUNT       (0U)
+
+/**
+* @brief            Max number of clock gates
+*/
+#define FEATURE_CLOCK_GATES_COUNT       (42U)
+
+/**
+* @brief            Max number of clock monitoring units
+*/
+#define FEATURE_CLOCK_CMUS_COUNT       (0U)
+
+/**
+* @brief            Max number of configured frequencies values
+*/
+#define FEATURE_CLOCK_CONFIGURED_FREQUENCIES_COUNT       (0U)
+
+/**
+* @brief            Max number of specific peripheral (eMIOS) units
+*/
+#define FEATURE_CLOCK_SPECIFIC_PERIPH_COUNT       (0U)
+
+/**
+* @brief            Max number of consumer clocks
+*/
+#define FEATURE_CLOCK_CONSUMER_COUNT        (41U)
+
+/**
+* @brief            Supported power mode.
+*/
+
+#define FEATURE_CLOCK_IP_HAS_RUN_MODE                0U
+
+#define FEATURE_CLOCK_IP_LPO_128K_FREQUENCY          128000
+
+#define FEATURE_CLOCK_IP_FIRC_FREQUENCY              48000000
+
+#define FEATURE_CLOCK_IP_SIRC_FREQUENCY              8000000
+
+#define FEATURE_CLOCK_IP_DEFAULT_SOSC_FREQUENCY      40000000
+
+#define FEATURE_CLOCK_IP_HAS_LOW_GAIN                         0U
+
+#define FEATURE_CLOCK_IP_HAS_HIGH_GAIN                        1U
+
+#define FEATURE_CLOCK_IP_HAS_MONITOR_DISABLE                  0U
+
+#define FEATURE_CLOCK_IP_HAS_MONITOR_INT                      1U
+
+#define FEATURE_CLOCK_IP_HAS_MONITOR_RESET                    2U
+
+#define FEATURE_CLOCK_IP_HAS_SAFE_CLOCK_DISABLEMENT           1U
+
+#if FEATURE_CLOCK_CMUS_COUNT > 0U
+/**
+* @brief            Cmu formula constant values.
+*/
+#define FEATURE_OFFSET_REFERENCE_COUNT_FORMULA1               1U
+#define FEATURE_MULTIPLIER_REFERENCE_COUNT_FORMULA1           3U
+#define FEATURE_OFFSET_REFERENCE_COUNT_FORMULA2               7U
+#define FEATURE_MULTIPLIER_REFERENCE_COUNT_FORMULA2           3U
+#endif
+
+/**
+* @brief            Clock ip supports clock frequency
+*/
+#define CLOCK_IP_GET_FREQUENCY_API              (STD_ON)
+
+
+/**
+* @brief            Clock ip supports ram wait states
+*/
+
+
+/**
+* @brief            Clock ip supports flash wait states
+*/
+
+
+/**
+* @brief            Supported clocks.
+*/
+#define FEATURE_CLOCK_IP_HAS_LPO_128K_CLK         1U
+#define FEATURE_CLOCK_IP_HAS_SIRC_CLK         2U
+#define FEATURE_CLOCK_IP_HAS_SIRC_VLP_CLK         3U
+#define FEATURE_CLOCK_IP_HAS_SIRC_STOP_CLK         4U
+#define FEATURE_CLOCK_IP_HAS_FIRC_CLK         5U
+#define FEATURE_CLOCK_IP_HAS_FIRC_VLP_CLK         6U
+#define FEATURE_CLOCK_IP_HAS_FIRC_STOP_CLK         7U
+#define FEATURE_CLOCK_IP_HAS_SOSC_CLK         8U
+#define FEATURE_CLOCK_IP_HAS_SPLL_CLK         9U
+#define FEATURE_CLOCK_IP_HAS_SIRCDIV1_CLK         10U
+#define FEATURE_CLOCK_IP_HAS_SIRCDIV2_CLK         11U
+#define FEATURE_CLOCK_IP_HAS_FIRCDIV1_CLK         12U
+#define FEATURE_CLOCK_IP_HAS_FIRCDIV2_CLK         13U
+#define FEATURE_CLOCK_IP_HAS_SOSCDIV1_CLK         14U
+#define FEATURE_CLOCK_IP_HAS_SOSCDIV2_CLK         15U
+#define FEATURE_CLOCK_IP_HAS_SPLLDIV1_CLK         16U
+#define FEATURE_CLOCK_IP_HAS_SPLLDIV2_CLK         17U
+#define FEATURE_CLOCK_IP_HAS_LPO_32K_CLK         18U
+#define FEATURE_CLOCK_IP_HAS_LPO_1K_CLK         19U
+#define FEATURE_CLOCK_IP_HAS_TCLK0_REF_CLK         20U
+#define FEATURE_CLOCK_IP_HAS_TCLK1_REF_CLK         21U
+#define FEATURE_CLOCK_IP_HAS_TCLK2_REF_CLK         22U
+#define FEATURE_CLOCK_IP_HAS_RTC_CLKIN         23U
+#define FEATURE_CLOCK_IP_HAS_SCS_CLK         24U
+#define FEATURE_CLOCK_IP_HAS_SCS_RUN_CLK         25U
+#define FEATURE_CLOCK_IP_HAS_SCS_VLPR_CLK         26U
+#define FEATURE_CLOCK_IP_HAS_SCS_HSRUN_CLK         27U
+#define FEATURE_CLOCK_IP_HAS_CORE_CLK         28U
+#define FEATURE_CLOCK_IP_HAS_CORE_RUN_CLK         29U
+#define FEATURE_CLOCK_IP_HAS_CORE_VLPR_CLK         30U
+#define FEATURE_CLOCK_IP_HAS_CORE_HSRUN_CLK         31U
+#define FEATURE_CLOCK_IP_HAS_BUS_CLK         32U
+#define FEATURE_CLOCK_IP_HAS_BUS_RUN_CLK         33U
+#define FEATURE_CLOCK_IP_HAS_BUS_VLPR_CLK         34U
+#define FEATURE_CLOCK_IP_HAS_BUS_HSRUN_CLK         35U
+#define FEATURE_CLOCK_IP_HAS_SLOW_CLK         36U
+#define FEATURE_CLOCK_IP_HAS_SLOW_RUN_CLK         37U
+#define FEATURE_CLOCK_IP_HAS_SLOW_VLPR_CLK         38U
+#define FEATURE_CLOCK_IP_HAS_SLOW_HSRUN_CLK         39U
+#define FEATURE_CLOCK_IP_HAS_RTC_CLK         40U
+#define FEATURE_CLOCK_IP_HAS_LPO_CLK         41U
+#define FEATURE_CLOCK_IP_HAS_SCG_CLKOUT_CLK         42U
+#define FEATURE_CLOCK_IP_HAS_FTM0_EXT_CLK         43U
+#define FEATURE_CLOCK_IP_HAS_FTM1_EXT_CLK         44U
+#define FEATURE_CLOCK_IP_HAS_FTM2_EXT_CLK         45U
+#define FEATURE_CLOCK_IP_HAS_FTM3_EXT_CLK         46U
+#define FEATURE_CLOCK_IP_HAS_FTM4_EXT_CLK         47U
+#define FEATURE_CLOCK_IP_HAS_FTM5_EXT_CLK         48U
+#define FEATURE_CLOCK_PRODUCERS_NO         48U
+#define FEATURE_CLOCK_IP_HAS_ADC0_CLK         50U
+#define FEATURE_CLOCK_IP_HAS_ADC1_CLK         51U
+#define FEATURE_CLOCK_IP_HAS_CLKOUT0_CLK         52U
+#define FEATURE_CLOCK_IP_HAS_CMP0_CLK         53U
+#define FEATURE_CLOCK_IP_HAS_CRC0_CLK         54U
+#define FEATURE_CLOCK_IP_HAS_DMA0_CLK         55U
+#define FEATURE_CLOCK_IP_HAS_DMAMUX0_CLK         56U
+#define FEATURE_CLOCK_IP_HAS_EIM0_CLK         57U
+#define FEATURE_CLOCK_IP_HAS_ERM0_CLK         58U
+#define FEATURE_CLOCK_IP_HAS_EWM0_CLK         59U
+#define FEATURE_CLOCK_IP_HAS_FLEXCAN0_CLK         60U
+#define FEATURE_CLOCK_IP_HAS_FLEXCAN1_CLK         61U
+#define FEATURE_CLOCK_IP_HAS_FLEXCAN2_CLK         62U
+#define FEATURE_CLOCK_IP_HAS_FlexIO_CLK         63U
+#define FEATURE_CLOCK_IP_HAS_FTFC_CLK         64U
+#define FEATURE_CLOCK_IP_HAS_FTM0_CLK         65U
+#define FEATURE_CLOCK_IP_HAS_FTM1_CLK         66U
+#define FEATURE_CLOCK_IP_HAS_FTM2_CLK         67U
+#define FEATURE_CLOCK_IP_HAS_FTM3_CLK         68U
+#define FEATURE_CLOCK_IP_HAS_FTM4_CLK         69U
+#define FEATURE_CLOCK_IP_HAS_FTM5_CLK         70U
+#define FEATURE_CLOCK_IP_HAS_LPI2C0_CLK         71U
+#define FEATURE_CLOCK_IP_HAS_LPIT0_CLK         72U
+#define FEATURE_CLOCK_IP_HAS_LPSPI0_CLK         73U
+#define FEATURE_CLOCK_IP_HAS_LPSPI1_CLK         74U
+#define FEATURE_CLOCK_IP_HAS_LPSPI2_CLK         75U
+#define FEATURE_CLOCK_IP_HAS_LPTMR0_CLK         76U
+#define FEATURE_CLOCK_IP_HAS_LPUART0_CLK         77U
+#define FEATURE_CLOCK_IP_HAS_LPUART1_CLK         78U
+#define FEATURE_CLOCK_IP_HAS_LPUART2_CLK         79U
+#define FEATURE_CLOCK_IP_HAS_MPU0_CLK         80U
+#define FEATURE_CLOCK_IP_HAS_MSCM0_CLK         81U
+#define FEATURE_CLOCK_IP_HAS_PDB0_CLK         82U
+#define FEATURE_CLOCK_IP_HAS_PDB1_CLK         83U
+#define FEATURE_CLOCK_IP_HAS_PORTA_CLK         84U
+#define FEATURE_CLOCK_IP_HAS_PORTB_CLK         85U
+#define FEATURE_CLOCK_IP_HAS_PORTC_CLK         86U
+#define FEATURE_CLOCK_IP_HAS_PORTD_CLK         87U
+#define FEATURE_CLOCK_IP_HAS_PORTE_CLK         88U
+#define FEATURE_CLOCK_IP_HAS_RTC0_CLK         89U
+#define FEATURE_CLOCK_IP_HAS_TRACE_CLK         90U
+#define FEATURE_CLOCKS_NO         91U
+
+/*==================================================================================================
+                                             ENUMS
+==================================================================================================*/
+
+
+/*==================================================================================================
+                                 STRUCTURES AND OTHER TYPEDEFS
+==================================================================================================*/
+
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* #ifndef CLOCK_IP_CFG_DEFINES_H */
+
+/** @} */

+ 104 - 104
generate/include/Clock_Ip_VS_0_PBcfg.h

@@ -1,104 +1,104 @@
-/*==================================================================================================
-*   Project              : RTD AUTOSAR 4.4
-*   Platform             : CORTEXM
-*   Peripheral           : 
-*   Dependencies         : none
-*
-*   Autosar Version      : 4.4.0
-*   Autosar Revision     : ASR_REL_4_4_REV_0000
-*   Autosar Conf.Variant :
-*   SW Version           : 1.0.0
-*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
-*
-*   (c) Copyright 2020-2021 NXP Semiconductors
-*   All Rights Reserved.
-*
-*   NXP Confidential. This software is owned or controlled by NXP and may only be
-*   used strictly in accordance with the applicable license terms. By expressly
-*   accepting such terms or by downloading, installing, activating and/or otherwise
-*   using the software, you are agreeing that you have read, and that you agree to
-*   comply with and are bound by, such license terms. If you do not agree to be
-*   bound by the applicable license terms, then you may not retain, install,
-*   activate or otherwise use the software.
-==================================================================================================*/
-/**
-*   @file       Clock_Ip_VS_0_PBcfg.h
-*   @version    1.0.0
-*
-*   @brief   AUTOSAR Mcu - Post-Build(PB) configuration file code template.
-*   @details Code template for Post-Build(PB) configuration file generation.
-*
-*   @addtogroup CLOCK_DRIVER_CONFIGURATION Clock Ip Driver
-*   @{
-*/
-
-#ifndef CLOCK_IP_VS_0_PBCFG_H
-#define CLOCK_IP_VS_0_PBCFG_H
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-
-/*==================================================================================================
-                                         INCLUDE FILES
- 1) system and project includes
- 2) needed interfaces from external units
- 3) internal and external interfaces from this unit
-==================================================================================================*/
-#include "Clock_Ip_Types.h"
-
-
-/*==================================================================================================
-*                              SOURCE FILE VERSION INFORMATION
-==================================================================================================*/
-#define CLOCK_IP_VS_0_PBCFG_VENDOR_ID                      43
-#define CLOCK_IP_VS_0_PBCFG_AR_RELEASE_MAJOR_VERSION       4
-#define CLOCK_IP_VS_0_PBCFG_AR_RELEASE_MINOR_VERSION       4
-#define CLOCK_IP_VS_0_PBCFG_AR_RELEASE_REVISION_VERSION    0
-#define CLOCK_IP_VS_0_PBCFG_SW_MAJOR_VERSION               1
-#define CLOCK_IP_VS_0_PBCFG_SW_MINOR_VERSION               0
-#define CLOCK_IP_VS_0_PBCFG_SW_PATCH_VERSION               0
-
-/*==================================================================================================
-*                                     FILE VERSION CHECKS
-==================================================================================================*/
-/* Check if header file and Clock_Ip_Types.h file are of the same vendor */
-#if (CLOCK_IP_VS_0_PBCFG_VENDOR_ID != CLOCK_IP_TYPES_VENDOR_ID)
-    #error "Clock_Ip_VS_0_PBcfg.h and Clock_Ip_Types.h have different vendor ids"
-#endif
-
-/* Check if header file and Clock_Ip_Types.h file are of the same Autosar version */
-#if ((CLOCK_IP_VS_0_PBCFG_AR_RELEASE_MAJOR_VERSION != CLOCK_IP_TYPES_AR_RELEASE_MAJOR_VERSION) || \
-     (CLOCK_IP_VS_0_PBCFG_AR_RELEASE_MINOR_VERSION != CLOCK_IP_TYPES_AR_RELEASE_MINOR_VERSION) || \
-     (CLOCK_IP_VS_0_PBCFG_AR_RELEASE_REVISION_VERSION != CLOCK_IP_TYPES_AR_RELEASE_REVISION_VERSION) \
-    )
-    #error "AutoSar Version Numbers of Clock_Ip_VS_0_PBcfg.h and Clock_Ip_Types.h are different"
-#endif
-
-/* Check if header file and Clock_Ip_Types.h file are of the same Software version */
-#if ((CLOCK_IP_VS_0_PBCFG_SW_MAJOR_VERSION != CLOCK_IP_TYPES_SW_MAJOR_VERSION) || \
-     (CLOCK_IP_VS_0_PBCFG_SW_MINOR_VERSION != CLOCK_IP_TYPES_SW_MINOR_VERSION) || \
-     (CLOCK_IP_VS_0_PBCFG_SW_PATCH_VERSION != CLOCK_IP_TYPES_SW_PATCH_VERSION) \
-    )
-    #error "Software Version Numbers of Clock_Ip_VS_0_PBcfg.h and Clock_Ip_Types.h are different"
-#endif
-
-#define MCU_START_SEC_CONFIG_DATA_UNSPECIFIED
-#include "Mcu_MemMap.h"
-
-/*==================================================================================================
-                                           DEFINES AND MACROS
-==================================================================================================*/
-extern const Clock_Ip_ClockConfigType Mcu_aClockConfigPB_VS_0[];
-
-#define MCU_STOP_SEC_CONFIG_DATA_UNSPECIFIED
-#include "Mcu_MemMap.h"
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* CLOCK_IP_VS_0_PBCFG_H */
-
-/** @} */
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : 
+*   Dependencies         : none
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+/**
+*   @file       Clock_Ip_VS_0_PBcfg.h
+*   @version    1.0.0
+*
+*   @brief   AUTOSAR Mcu - Post-Build(PB) configuration file code template.
+*   @details Code template for Post-Build(PB) configuration file generation.
+*
+*   @addtogroup CLOCK_DRIVER_CONFIGURATION Clock Ip Driver
+*   @{
+*/
+
+#ifndef CLOCK_IP_VS_0_PBCFG_H
+#define CLOCK_IP_VS_0_PBCFG_H
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+/*==================================================================================================
+                                         INCLUDE FILES
+ 1) system and project includes
+ 2) needed interfaces from external units
+ 3) internal and external interfaces from this unit
+==================================================================================================*/
+#include "Clock_Ip_Types.h"
+
+
+/*==================================================================================================
+*                              SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+#define CLOCK_IP_VS_0_PBCFG_VENDOR_ID                      43
+#define CLOCK_IP_VS_0_PBCFG_AR_RELEASE_MAJOR_VERSION       4
+#define CLOCK_IP_VS_0_PBCFG_AR_RELEASE_MINOR_VERSION       4
+#define CLOCK_IP_VS_0_PBCFG_AR_RELEASE_REVISION_VERSION    0
+#define CLOCK_IP_VS_0_PBCFG_SW_MAJOR_VERSION               1
+#define CLOCK_IP_VS_0_PBCFG_SW_MINOR_VERSION               0
+#define CLOCK_IP_VS_0_PBCFG_SW_PATCH_VERSION               0
+
+/*==================================================================================================
+*                                     FILE VERSION CHECKS
+==================================================================================================*/
+/* Check if header file and Clock_Ip_Types.h file are of the same vendor */
+#if (CLOCK_IP_VS_0_PBCFG_VENDOR_ID != CLOCK_IP_TYPES_VENDOR_ID)
+    #error "Clock_Ip_VS_0_PBcfg.h and Clock_Ip_Types.h have different vendor ids"
+#endif
+
+/* Check if header file and Clock_Ip_Types.h file are of the same Autosar version */
+#if ((CLOCK_IP_VS_0_PBCFG_AR_RELEASE_MAJOR_VERSION != CLOCK_IP_TYPES_AR_RELEASE_MAJOR_VERSION) || \
+     (CLOCK_IP_VS_0_PBCFG_AR_RELEASE_MINOR_VERSION != CLOCK_IP_TYPES_AR_RELEASE_MINOR_VERSION) || \
+     (CLOCK_IP_VS_0_PBCFG_AR_RELEASE_REVISION_VERSION != CLOCK_IP_TYPES_AR_RELEASE_REVISION_VERSION) \
+    )
+    #error "AutoSar Version Numbers of Clock_Ip_VS_0_PBcfg.h and Clock_Ip_Types.h are different"
+#endif
+
+/* Check if header file and Clock_Ip_Types.h file are of the same Software version */
+#if ((CLOCK_IP_VS_0_PBCFG_SW_MAJOR_VERSION != CLOCK_IP_TYPES_SW_MAJOR_VERSION) || \
+     (CLOCK_IP_VS_0_PBCFG_SW_MINOR_VERSION != CLOCK_IP_TYPES_SW_MINOR_VERSION) || \
+     (CLOCK_IP_VS_0_PBCFG_SW_PATCH_VERSION != CLOCK_IP_TYPES_SW_PATCH_VERSION) \
+    )
+    #error "Software Version Numbers of Clock_Ip_VS_0_PBcfg.h and Clock_Ip_Types.h are different"
+#endif
+
+#define MCU_START_SEC_CONFIG_DATA_UNSPECIFIED
+#include "Mcu_MemMap.h"
+
+/*==================================================================================================
+                                           DEFINES AND MACROS
+==================================================================================================*/
+extern const Clock_Ip_ClockConfigType Mcu_aClockConfigPB_VS_0[];
+
+#define MCU_STOP_SEC_CONFIG_DATA_UNSPECIFIED
+#include "Mcu_MemMap.h"
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* CLOCK_IP_VS_0_PBCFG_H */
+
+/** @} */

+ 532 - 532
generate/include/Dio_Cfg.h

@@ -1,532 +1,532 @@
-/*==================================================================================================
-*   Project              : RTD AUTOSAR 4.4
-*   Platform             : CORTEXM
-*   Peripheral           : GPIO
-*   Dependencies         : none
-*
-*   Autosar Version      : 4.4.0
-*   Autosar Revision     : ASR_REL_4_4_REV_0000
-*   Autosar Conf.Variant :
-*   SW Version           : 1.0.0
-*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
-*
-*   (c) Copyright 2020-2021 NXP Semiconductors
-*   All Rights Reserved.
-*
-*   NXP Confidential. This software is owned or controlled by NXP and may only be
-*   used strictly in accordance with the applicable license terms. By expressly
-*   accepting such terms or by downloading, installing, activating and/or otherwise
-*   using the software, you are agreeing that you have read, and that you agree to
-*   comply with and are bound by, such license terms. If you do not agree to be
-*   bound by the applicable license terms, then you may not retain, install,
-*   activate or otherwise use the software.
-==================================================================================================*/
-
-#ifndef DIO_CFG_H
-#define DIO_CFG_H
-
-/**
-*   @file Dio_Cfg.h
-*   @implements Dio_Cfg.h_Artifact
-*
-*   @defgroup DIO_CFG Dio Cfg
-*   @{
-*/
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/*=================================================================================================
-*                                        INCLUDE FILES
-* 1) system and project includes
-* 2) needed interfaces from external units
-* 3) internal and external interfaces from this unit
-=================================================================================================*/
-#include  "StandardTypes.h"
-
-
-/*=================================================================================================
-*                              SOURCE FILE VERSION INFORMATION
-=================================================================================================*/
-
-#define DIO_VENDOR_ID_CFG_H                   43
-#define DIO_AR_RELEASE_MAJOR_VERSION_CFG_H    4
-#define DIO_AR_RELEASE_MINOR_VERSION_CFG_H    4
-#define DIO_AR_RELEASE_REVISION_VERSION_CFG_H 0
-#define DIO_SW_MAJOR_VERSION_CFG_H            1
-#define DIO_SW_MINOR_VERSION_CFG_H            0
-#define DIO_SW_PATCH_VERSION_CFG_H            0
-
-/*=================================================================================================
-*                                     FILE VERSION CHECKS
-=================================================================================================*/
-#ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
-    /* StandardTypes.h version check start */
-    #if ((DIO_AR_RELEASE_MAJOR_VERSION_CFG_H != STD_AR_RELEASE_MAJOR_VERSION) ||   \
-        (DIO_AR_RELEASE_MINOR_VERSION_CFG_H != STD_AR_RELEASE_MINOR_VERSION)       \
-        )
-        #error "AUTOSAR Version Numbers of Dio_Cfg.h and StandardTypes.h are different"
-    #endif
-    /* StandardTypes.h version check end */
-#endif
-/*=================================================================================================
-*                                          CONSTANTS
-=================================================================================================*/
-
-/**
-* @brief          Enable or Disable Development Error Detection.
-*
-* @implements     DIO_DEV_ERROR_DETECT_define
-*/
-#define DIO_DEV_ERROR_DETECT    (STD_OFF)
-
-/**
-* @brief          Function @p Dio_GetVersionInfo() enable switch.
-*
-* @implements DIO_VERSION_INFO_API_define
-*/
-#define DIO_VERSION_INFO_API    (STD_OFF)
-
-/**
-* @brief          Function @p Dio_FlipChannel() enable switch.
-*/
-#define DIO_FLIP_CHANNEL_API    (STD_ON)
-
-/**
-* @brief          Function @p Dio_MaskedWritePort() enable switch.
-*/
-#define DIO_MASKEDWRITEPORT_API (STD_OFF)
-
-/**
-* @brief          Reversed port functionality enable switch.
-*
-* @implements DIO_REVERSEPORTBITS_define
-*/
-#define DIO_REVERSEPORTBITS     (STD_OFF)
-
-/**
-* @brief          Undefined pins masking enable switch.
-*/
-#define DIO_READZERO_UNDEFINEDPORTS (STD_OFF)
-
-
-
-/**
-* @brief          The number of partition on the platform.
-*
-* @note           Used for channel, port and channel group validation.
-*/
-
-/**
-* @brief Enable/Disable multiocre function from the driver
-*/
-#define DIO_MULTICORE_ENABLED          (STD_OFF)
-
-/**
-* @brief          Number of implemented ports.
-*
-* @note           Used for channel, port and channel group validation.
-*/
-#define DIO_NUM_PORTS_U16               ((uint16)0x5)
-
-/**
-* @brief          The number of partition on the port
-*
-* @note           Used for port validation.
-*/
-#define DIO_PORT_PARTITION_U16          ((uint16)5U)
-
-/**
-* @brief          Number of channels available on the implemented ports.
-*
-* @note           Used for channel validation.
-*/
-#if (STD_ON == DIO_DEV_ERROR_DETECT)
-    #define DIO_NUM_CHANNELS_U16            ((uint16)139U)
-#endif
-
-/**
-* @brief The number of partition on the channel.
-*
-* @note           Used for channel validation.
-*/
-#define DIO_CHANNEL_PARTITION_U16            ((uint16)140U)
-
-/**
-* @brief          Mask representing no available channels on a port.
-*
-* @note           Used for channel validation.
-*/
-#if (STD_ON == DIO_DEV_ERROR_DETECT)
-    #define DIO_NO_AVAILABLE_CHANNELS_U16   ((Dio_PortLevelType)0x0U)
-#endif
-
-/**
-* @brief          Mask representing the maximum valid offset for a channel group.
-*
-* @note           Used for channel group validation.
-*/
-#if (STD_ON == DIO_DEV_ERROR_DETECT)
-    #define DIO_MAX_VALID_OFFSET_U8         ((uint8)0x1FU)
-#endif
-
-/**
-*   @brief   Enables or disables the access to a hardware register from user mode
-*            USER_MODE_SOFT_LOCKING:        All reads to hw registers will be done via REG_PROT, user mode access
-*            SUPERVISOR_MODE_SOFT_LOCKING:  Locks the access to the registers only for supervisor mode
-*
-*   @note    Currently, no register protection mechanism is used for Dio driver.
-*/
-#define DIO_USER_MODE_SOFT_LOCKING      (STD_OFF)
-
-/**
-* @brief          Dio driver Pre-Compile configuration switch.
-*/
-#define DIO_PRECOMPILE_SUPPORT
-
-
-/**
-* @brief Support for User mode.
-*        If this parameter has been configured to 'STD_ON', the Dio driver code can be executed from both supervisor and user mode.
-*
-*/
-
-#define DIO_ENABLE_USER_MODE_SUPPORT   (STD_OFF)
-
-
-#ifndef MCAL_ENABLE_USER_MODE_SUPPORT
- #ifdef DIO_ENABLE_USER_MODE_SUPPORT
-  #if (STD_ON == DIO_ENABLE_USER_MODE_SUPPORT)
-    #error MCAL_ENABLE_USER_MODE_SUPPORT is not enabled. For running Dio in user mode the MCAL_ENABLE_USER_MODE_SUPPORT needs to be defined
-  #endif /* (STD_ON == DIO_ENABLE_USER_MODE_SUPPORT) */
- #endif /* ifdef DIO_ENABLE_USER_MODE_SUPPORT*/
-#endif /* ifndef MCAL_ENABLE_USER_MODE_SUPPORT */
-
-/*=================================================================================================
-*                                      DEFINES AND MACROS
-=================================================================================================*/
-
-/**
-* @brief          Symbolic name for the configuration Dio_ConfigPC.
-*
-*/
-#define Dio_ConfigPC    (Dio_Config)
-
-/* ========== DioConfig ========== */
-
-/* ---------- DioPort_A ---------- */
-
-/**
-* @brief          Symbolic name for the port DioPort_A.
-*
-*/
-#define DioConf_DioPort_DioPort_A  ((uint8)0x00U)
-
-
-
-/**
-* @brief          Symbolic name for the channel PTA7_GPIO_OUT_MCU_4G_PWRKEY.
-*
-*/
-#define  DioConf_DioChannel_PTA7_GPIO_OUT_MCU_4G_PWRKEY ((uint16)0x0007U)
-
-
-
-/**
-* @brief          Symbolic name for the channel PTA6_GPIO_OUT_MCU_4G_POW_EN.
-*
-*/
-#define  DioConf_DioChannel_PTA6_GPIO_OUT_MCU_4G_POW_EN ((uint16)0x0006U)
-
-
-
-/**
-* @brief          Symbolic name for the channel PTA11_GPIO_OUT_MCU_BMS_WAKEUP_EN.
-*
-*/
-#define  DioConf_DioChannel_PTA11_GPIO_OUT_MCU_BMS_WAKEUP_EN ((uint16)0x000bU)
-
-/* ---------- DioPort_B ---------- */
-
-/**
-* @brief          Symbolic name for the port DioPort_B.
-*
-*/
-#define DioConf_DioPort_DioPort_B  ((uint8)0x01U)
-
-
-
-/**
-* @brief          Symbolic name for the channel PTB1_GPIO_IN_MCU_4G_STATUS.
-*
-*/
-#define  DioConf_DioChannel_PTB1_GPIO_IN_MCU_4G_STATUS ((uint16)0x0021U)
-
-
-
-/**
-* @brief          Symbolic name for the channel PTB2_GPIO_IN_MCU_4G_RI.
-*
-*/
-#define  DioConf_DioChannel_PTB2_GPIO_IN_MCU_4G_RI ((uint16)0x0022U)
-
-
-
-/**
-* @brief          Symbolic name for the channel PTE7_GPIO_OUT_MCU_BT_MOD.
-*
-*/
-#define  DioConf_DioChannel_PTE7_GPIO_OUT_MCU_BT_MOD ((uint16)0x0027U)
-
-
-
-/**
-* @brief          Symbolic name for the channel PTB4_GPIO_OUT_MCU_RS485_EN.
-*
-*/
-#define  DioConf_DioChannel_PTB4_GPIO_OUT_MCU_RS485_EN ((uint16)0x0024U)
-
-/* ---------- DioPort_C ---------- */
-
-/**
-* @brief          Symbolic name for the port DioPort_C.
-*
-*/
-#define DioConf_DioPort_DioPort_C  ((uint8)0x02U)
-
-
-
-/**
-* @brief          Symbolic name for the channel PTC0_SPI2_SIN_MCU_3D_SDI.
-*
-*/
-#define  DioConf_DioChannel_PTC0_SPI2_SIN_MCU_3D_SDI ((uint16)0x0040U)
-
-
-
-/**
-* @brief          Symbolic name for the channel PTC1_SPI2_SOUT_MCU_3D_SDO.
-*
-*/
-#define  DioConf_DioChannel_PTC1_SPI2_SOUT_MCU_3D_SDO ((uint16)0x0041U)
-
-
-
-/**
-* @brief          Symbolic name for the channel PTC14_SPI2_PCS0_MCU_3D_CS.
-*
-*/
-#define  DioConf_DioChannel_PTC14_SPI2_PCS0_MCU_3D_CS ((uint16)0x004eU)
-
-/* ---------- DioPort_D ---------- */
-
-/**
-* @brief          Symbolic name for the port DioPort_D.
-*
-*/
-#define DioConf_DioPort_DioPort_D  ((uint8)0x03U)
-
-
-
-/**
-* @brief          Symbolic name for the channel PTD2_GPIO_OUT_MCU_4G_DTR.
-*
-*/
-#define  DioConf_DioChannel_PTD2_GPIO_OUT_MCU_4G_DTR ((uint16)0x0062U)
-
-
-
-/**
-* @brief          Symbolic name for the channel PTD3_GPIO_OUT_MCU_4G_RESET.
-*
-*/
-#define  DioConf_DioChannel_PTD3_GPIO_OUT_MCU_4G_RESET ((uint16)0x0063U)
-
-
-
-/**
-* @brief          Symbolic name for the channel PTD15_GPIO_OUT_MCU_BUZ_EN.
-*
-*/
-#define  DioConf_DioChannel_PTD15_GPIO_OUT_MCU_BUZ_EN ((uint16)0x006fU)
-
-
-
-/**
-* @brief          Symbolic name for the channel PTD16_GPIO_OUT_MCU_RELAY_POW_EN.
-*
-*/
-#define  DioConf_DioChannel_PTD16_GPIO_OUT_MCU_RELAY_POW_EN ((uint16)0x0070U)
-
-
-
-/**
-* @brief          Symbolic name for the channel PTD0_GPIO_OUT_MCU_GPS_RESET.
-*
-*/
-#define  DioConf_DioChannel_PTD0_GPIO_OUT_MCU_GPS_RESET ((uint16)0x0060U)
-
-
-
-/**
-* @brief          Symbolic name for the channel PTD1_GPIO_OUT_MCU_GPS_POW_EN.
-*
-*/
-#define  DioConf_DioChannel_PTD1_GPIO_OUT_MCU_GPS_POW_EN ((uint16)0x0061U)
-
-/* ---------- DioPort_E ---------- */
-
-/**
-* @brief          Symbolic name for the port DioPort_E.
-*
-*/
-#define DioConf_DioPort_DioPort_E  ((uint8)0x04U)
-
-
-
-/**
-* @brief          Symbolic name for the channel PTE0_GPIO_OUT_MCU_LED1.
-*
-*/
-#define  DioConf_DioChannel_PTE0_GPIO_OUT_MCU_LED1 ((uint16)0x0080U)
-
-
-
-/**
-* @brief          Symbolic name for the channel PTE1_GPIO_OUT_MCU_LED2.
-*
-*/
-#define  DioConf_DioChannel_PTE1_GPIO_OUT_MCU_LED2 ((uint16)0x0081U)
-
-
-
-/**
-* @brief          Symbolic name for the channel PTE7_GPIO_OUT_MCU_LED3.
-*
-*/
-#define  DioConf_DioChannel_PTE7_GPIO_OUT_MCU_LED3 ((uint16)0x0087U)
-
-
-
-/**
-* @brief          Symbolic name for the channel PTE8_GPIO_OUT_MCU_LED4.
-*
-*/
-#define  DioConf_DioChannel_PTE8_GPIO_OUT_MCU_LED4 ((uint16)0x0088U)
-
-
-
-/**
-* @brief          Symbolic name for the channel PTE9_GPIO_OUT_MCU_LED5.
-*
-*/
-#define  DioConf_DioChannel_PTE9_GPIO_OUT_MCU_LED5 ((uint16)0x0089U)
-
-
-/*=================================================================================================
-*                                             ENUMS
-=================================================================================================*/
-
-/*=================================================================================================
-*                                STRUCTURES AND OTHER TYPEDEFS
-=================================================================================================*/
-
-/**
-* @brief          Type of a DIO port representation.
-*
-* @implements     Dio_PortType_typedef
-*/
-typedef uint8 Dio_PortType;
-
-/**
-* @brief          Type of a DIO channel representation.
-*
-* @implements     Dio_ChannelType_typedef
-*/
-typedef uint16 Dio_ChannelType;
-
-/**
-* @brief          Type of a DIO port levels representation.
-*
-* @implements     Dio_PortLevelType_typedef
-*/
-typedef uint32 Dio_PortLevelType;
-
-/**
-* @brief          Type of a DIO channel levels representation.
-*
-* @implements     Dio_LevelType_typedef
-*/
-typedef uint8 Dio_LevelType;
-
-/**
-* @brief          Type of a DIO channel group representation.
-*
-* @implements     Dio_ChannelGroupType_struct
-*/
-typedef struct
-{
-    Dio_PortType      port;      /**< @brief Port identifier.  */
-    uint8             u8offset;    /**< @brief Bit offset within the port. */
-    Dio_PortLevelType mask;      /**< @brief Group mask. */
-} Dio_ChannelGroupType;
-
-/**
-* @brief          Type of a DIO configuration structure.
-*
-* @note           In this implementation there is no need for a configuration
-*                 structure there is only a dummy field, it is recommended
-*                 to initialize this field to zero.
-*
-* @implements     Dio_ConfigType_struct
-*/
-typedef struct
-{
-    uint8 u8NumChannelGroups; /**< @brief Number of channel groups in configuration */
-    const Dio_ChannelGroupType * pChannelGroupList;  /**< @brief
-                                               Pointer to list of channel groups in configuration */
-    const uint32 * pau32Dio_ChannelToPartitionMap;      /**< @brief Pointer to channel to partition mapping */
-    const uint32 * pau32Dio_PortToPartitionMap;         /**< @brief Pointer to port to partition mapping */
-} Dio_ConfigType;
-
-/*=================================================================================================
-*                                GLOBAL VARIABLE DECLARATIONS
-=================================================================================================*/
-#define DIO_START_SEC_CONST_32
-#include "Dio_MemMap.h"
-/**
-* @brief Array containing list of mapping channel for partition
-*/
-extern const uint32 au32Dio_ChannelToPartitionMap[DIO_CHANNEL_PARTITION_U16];
-
-/**
-* @brief Array containing list of mapping port for partition
-*/
-extern const uint32 au32Dio_PortToPartitionMap[DIO_PORT_PARTITION_U16];
-
-/**
-* @brief Array of bitmaps of output pins available per port
-*/
-extern const Dio_PortLevelType Dio_aAvailablePinsForWrite[DIO_NUM_PORTS_U16];
-
-/**
-* @brief Array of bitmaps of input pins available per port
-*/
-extern const Dio_PortLevelType Dio_aAvailablePinsForRead[DIO_NUM_PORTS_U16];
-
-#define DIO_STOP_SEC_CONST_32
-#include "Dio_MemMap.h"
-
-/*=================================================================================================
-*                                    FUNCTION PROTOTYPES
-=================================================================================================*/
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif  /* DIO_CFG_H */
-
-/** @} */
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : GPIO
+*   Dependencies         : none
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+
+#ifndef DIO_CFG_H
+#define DIO_CFG_H
+
+/**
+*   @file Dio_Cfg.h
+*   @implements Dio_Cfg.h_Artifact
+*
+*   @defgroup DIO_CFG Dio Cfg
+*   @{
+*/
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/*=================================================================================================
+*                                        INCLUDE FILES
+* 1) system and project includes
+* 2) needed interfaces from external units
+* 3) internal and external interfaces from this unit
+=================================================================================================*/
+#include  "StandardTypes.h"
+
+
+/*=================================================================================================
+*                              SOURCE FILE VERSION INFORMATION
+=================================================================================================*/
+
+#define DIO_VENDOR_ID_CFG_H                   43
+#define DIO_AR_RELEASE_MAJOR_VERSION_CFG_H    4
+#define DIO_AR_RELEASE_MINOR_VERSION_CFG_H    4
+#define DIO_AR_RELEASE_REVISION_VERSION_CFG_H 0
+#define DIO_SW_MAJOR_VERSION_CFG_H            1
+#define DIO_SW_MINOR_VERSION_CFG_H            0
+#define DIO_SW_PATCH_VERSION_CFG_H            0
+
+/*=================================================================================================
+*                                     FILE VERSION CHECKS
+=================================================================================================*/
+#ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
+    /* StandardTypes.h version check start */
+    #if ((DIO_AR_RELEASE_MAJOR_VERSION_CFG_H != STD_AR_RELEASE_MAJOR_VERSION) ||   \
+        (DIO_AR_RELEASE_MINOR_VERSION_CFG_H != STD_AR_RELEASE_MINOR_VERSION)       \
+        )
+        #error "AUTOSAR Version Numbers of Dio_Cfg.h and StandardTypes.h are different"
+    #endif
+    /* StandardTypes.h version check end */
+#endif
+/*=================================================================================================
+*                                          CONSTANTS
+=================================================================================================*/
+
+/**
+* @brief          Enable or Disable Development Error Detection.
+*
+* @implements     DIO_DEV_ERROR_DETECT_define
+*/
+#define DIO_DEV_ERROR_DETECT    (STD_OFF)
+
+/**
+* @brief          Function @p Dio_GetVersionInfo() enable switch.
+*
+* @implements DIO_VERSION_INFO_API_define
+*/
+#define DIO_VERSION_INFO_API    (STD_OFF)
+
+/**
+* @brief          Function @p Dio_FlipChannel() enable switch.
+*/
+#define DIO_FLIP_CHANNEL_API    (STD_ON)
+
+/**
+* @brief          Function @p Dio_MaskedWritePort() enable switch.
+*/
+#define DIO_MASKEDWRITEPORT_API (STD_OFF)
+
+/**
+* @brief          Reversed port functionality enable switch.
+*
+* @implements DIO_REVERSEPORTBITS_define
+*/
+#define DIO_REVERSEPORTBITS     (STD_OFF)
+
+/**
+* @brief          Undefined pins masking enable switch.
+*/
+#define DIO_READZERO_UNDEFINEDPORTS (STD_OFF)
+
+
+
+/**
+* @brief          The number of partition on the platform.
+*
+* @note           Used for channel, port and channel group validation.
+*/
+
+/**
+* @brief Enable/Disable multiocre function from the driver
+*/
+#define DIO_MULTICORE_ENABLED          (STD_OFF)
+
+/**
+* @brief          Number of implemented ports.
+*
+* @note           Used for channel, port and channel group validation.
+*/
+#define DIO_NUM_PORTS_U16               ((uint16)0x5)
+
+/**
+* @brief          The number of partition on the port
+*
+* @note           Used for port validation.
+*/
+#define DIO_PORT_PARTITION_U16          ((uint16)5U)
+
+/**
+* @brief          Number of channels available on the implemented ports.
+*
+* @note           Used for channel validation.
+*/
+#if (STD_ON == DIO_DEV_ERROR_DETECT)
+    #define DIO_NUM_CHANNELS_U16            ((uint16)139U)
+#endif
+
+/**
+* @brief The number of partition on the channel.
+*
+* @note           Used for channel validation.
+*/
+#define DIO_CHANNEL_PARTITION_U16            ((uint16)140U)
+
+/**
+* @brief          Mask representing no available channels on a port.
+*
+* @note           Used for channel validation.
+*/
+#if (STD_ON == DIO_DEV_ERROR_DETECT)
+    #define DIO_NO_AVAILABLE_CHANNELS_U16   ((Dio_PortLevelType)0x0U)
+#endif
+
+/**
+* @brief          Mask representing the maximum valid offset for a channel group.
+*
+* @note           Used for channel group validation.
+*/
+#if (STD_ON == DIO_DEV_ERROR_DETECT)
+    #define DIO_MAX_VALID_OFFSET_U8         ((uint8)0x1FU)
+#endif
+
+/**
+*   @brief   Enables or disables the access to a hardware register from user mode
+*            USER_MODE_SOFT_LOCKING:        All reads to hw registers will be done via REG_PROT, user mode access
+*            SUPERVISOR_MODE_SOFT_LOCKING:  Locks the access to the registers only for supervisor mode
+*
+*   @note    Currently, no register protection mechanism is used for Dio driver.
+*/
+#define DIO_USER_MODE_SOFT_LOCKING      (STD_OFF)
+
+/**
+* @brief          Dio driver Pre-Compile configuration switch.
+*/
+#define DIO_PRECOMPILE_SUPPORT
+
+
+/**
+* @brief Support for User mode.
+*        If this parameter has been configured to 'STD_ON', the Dio driver code can be executed from both supervisor and user mode.
+*
+*/
+
+#define DIO_ENABLE_USER_MODE_SUPPORT   (STD_OFF)
+
+
+#ifndef MCAL_ENABLE_USER_MODE_SUPPORT
+ #ifdef DIO_ENABLE_USER_MODE_SUPPORT
+  #if (STD_ON == DIO_ENABLE_USER_MODE_SUPPORT)
+    #error MCAL_ENABLE_USER_MODE_SUPPORT is not enabled. For running Dio in user mode the MCAL_ENABLE_USER_MODE_SUPPORT needs to be defined
+  #endif /* (STD_ON == DIO_ENABLE_USER_MODE_SUPPORT) */
+ #endif /* ifdef DIO_ENABLE_USER_MODE_SUPPORT*/
+#endif /* ifndef MCAL_ENABLE_USER_MODE_SUPPORT */
+
+/*=================================================================================================
+*                                      DEFINES AND MACROS
+=================================================================================================*/
+
+/**
+* @brief          Symbolic name for the configuration Dio_ConfigPC.
+*
+*/
+#define Dio_ConfigPC    (Dio_Config)
+
+/* ========== DioConfig ========== */
+
+/* ---------- DioPort_A ---------- */
+
+/**
+* @brief          Symbolic name for the port DioPort_A.
+*
+*/
+#define DioConf_DioPort_DioPort_A  ((uint8)0x00U)
+
+
+
+/**
+* @brief          Symbolic name for the channel PTA7_GPIO_OUT_MCU_4G_PWRKEY.
+*
+*/
+#define  DioConf_DioChannel_PTA7_GPIO_OUT_MCU_4G_PWRKEY ((uint16)0x0007U)
+
+
+
+/**
+* @brief          Symbolic name for the channel PTA6_GPIO_OUT_MCU_4G_POW_EN.
+*
+*/
+#define  DioConf_DioChannel_PTA6_GPIO_OUT_MCU_4G_POW_EN ((uint16)0x0006U)
+
+
+
+/**
+* @brief          Symbolic name for the channel PTA11_GPIO_OUT_MCU_BMS_WAKEUP_EN.
+*
+*/
+#define  DioConf_DioChannel_PTA11_GPIO_OUT_MCU_BMS_WAKEUP_EN ((uint16)0x000bU)
+
+/* ---------- DioPort_B ---------- */
+
+/**
+* @brief          Symbolic name for the port DioPort_B.
+*
+*/
+#define DioConf_DioPort_DioPort_B  ((uint8)0x01U)
+
+
+
+/**
+* @brief          Symbolic name for the channel PTB1_GPIO_IN_MCU_4G_STATUS.
+*
+*/
+#define  DioConf_DioChannel_PTB1_GPIO_IN_MCU_4G_STATUS ((uint16)0x0021U)
+
+
+
+/**
+* @brief          Symbolic name for the channel PTB2_GPIO_IN_MCU_4G_RI.
+*
+*/
+#define  DioConf_DioChannel_PTB2_GPIO_IN_MCU_4G_RI ((uint16)0x0022U)
+
+
+
+/**
+* @brief          Symbolic name for the channel PTE7_GPIO_OUT_MCU_BT_MOD.
+*
+*/
+#define  DioConf_DioChannel_PTE7_GPIO_OUT_MCU_BT_MOD ((uint16)0x0027U)
+
+
+
+/**
+* @brief          Symbolic name for the channel PTB4_GPIO_OUT_MCU_RS485_EN.
+*
+*/
+#define  DioConf_DioChannel_PTB4_GPIO_OUT_MCU_RS485_EN ((uint16)0x0024U)
+
+/* ---------- DioPort_C ---------- */
+
+/**
+* @brief          Symbolic name for the port DioPort_C.
+*
+*/
+#define DioConf_DioPort_DioPort_C  ((uint8)0x02U)
+
+
+
+/**
+* @brief          Symbolic name for the channel PTC0_SPI2_SIN_MCU_3D_SDI.
+*
+*/
+#define  DioConf_DioChannel_PTC0_SPI2_SIN_MCU_3D_SDI ((uint16)0x0040U)
+
+
+
+/**
+* @brief          Symbolic name for the channel PTC1_SPI2_SOUT_MCU_3D_SDO.
+*
+*/
+#define  DioConf_DioChannel_PTC1_SPI2_SOUT_MCU_3D_SDO ((uint16)0x0041U)
+
+
+
+/**
+* @brief          Symbolic name for the channel PTC14_SPI2_PCS0_MCU_3D_CS.
+*
+*/
+#define  DioConf_DioChannel_PTC14_SPI2_PCS0_MCU_3D_CS ((uint16)0x004eU)
+
+/* ---------- DioPort_D ---------- */
+
+/**
+* @brief          Symbolic name for the port DioPort_D.
+*
+*/
+#define DioConf_DioPort_DioPort_D  ((uint8)0x03U)
+
+
+
+/**
+* @brief          Symbolic name for the channel PTD2_GPIO_OUT_MCU_4G_DTR.
+*
+*/
+#define  DioConf_DioChannel_PTD2_GPIO_OUT_MCU_4G_DTR ((uint16)0x0062U)
+
+
+
+/**
+* @brief          Symbolic name for the channel PTD3_GPIO_OUT_MCU_4G_RESET.
+*
+*/
+#define  DioConf_DioChannel_PTD3_GPIO_OUT_MCU_4G_RESET ((uint16)0x0063U)
+
+
+
+/**
+* @brief          Symbolic name for the channel PTD15_GPIO_OUT_MCU_BUZ_EN.
+*
+*/
+#define  DioConf_DioChannel_PTD15_GPIO_OUT_MCU_BUZ_EN ((uint16)0x006fU)
+
+
+
+/**
+* @brief          Symbolic name for the channel PTD16_GPIO_OUT_MCU_RELAY_POW_EN.
+*
+*/
+#define  DioConf_DioChannel_PTD16_GPIO_OUT_MCU_RELAY_POW_EN ((uint16)0x0070U)
+
+
+
+/**
+* @brief          Symbolic name for the channel PTD0_GPIO_OUT_MCU_GPS_RESET.
+*
+*/
+#define  DioConf_DioChannel_PTD0_GPIO_OUT_MCU_GPS_RESET ((uint16)0x0060U)
+
+
+
+/**
+* @brief          Symbolic name for the channel PTD1_GPIO_OUT_MCU_GPS_POW_EN.
+*
+*/
+#define  DioConf_DioChannel_PTD1_GPIO_OUT_MCU_GPS_POW_EN ((uint16)0x0061U)
+
+/* ---------- DioPort_E ---------- */
+
+/**
+* @brief          Symbolic name for the port DioPort_E.
+*
+*/
+#define DioConf_DioPort_DioPort_E  ((uint8)0x04U)
+
+
+
+/**
+* @brief          Symbolic name for the channel PTE0_GPIO_OUT_MCU_LED1.
+*
+*/
+#define  DioConf_DioChannel_PTE0_GPIO_OUT_MCU_LED1 ((uint16)0x0080U)
+
+
+
+/**
+* @brief          Symbolic name for the channel PTE1_GPIO_OUT_MCU_LED2.
+*
+*/
+#define  DioConf_DioChannel_PTE1_GPIO_OUT_MCU_LED2 ((uint16)0x0081U)
+
+
+
+/**
+* @brief          Symbolic name for the channel PTE7_GPIO_OUT_MCU_LED3.
+*
+*/
+#define  DioConf_DioChannel_PTE7_GPIO_OUT_MCU_LED3 ((uint16)0x0087U)
+
+
+
+/**
+* @brief          Symbolic name for the channel PTE8_GPIO_OUT_MCU_LED4.
+*
+*/
+#define  DioConf_DioChannel_PTE8_GPIO_OUT_MCU_LED4 ((uint16)0x0088U)
+
+
+
+/**
+* @brief          Symbolic name for the channel PTE9_GPIO_OUT_MCU_LED5.
+*
+*/
+#define  DioConf_DioChannel_PTE9_GPIO_OUT_MCU_LED5 ((uint16)0x0089U)
+
+
+/*=================================================================================================
+*                                             ENUMS
+=================================================================================================*/
+
+/*=================================================================================================
+*                                STRUCTURES AND OTHER TYPEDEFS
+=================================================================================================*/
+
+/**
+* @brief          Type of a DIO port representation.
+*
+* @implements     Dio_PortType_typedef
+*/
+typedef uint8 Dio_PortType;
+
+/**
+* @brief          Type of a DIO channel representation.
+*
+* @implements     Dio_ChannelType_typedef
+*/
+typedef uint16 Dio_ChannelType;
+
+/**
+* @brief          Type of a DIO port levels representation.
+*
+* @implements     Dio_PortLevelType_typedef
+*/
+typedef uint32 Dio_PortLevelType;
+
+/**
+* @brief          Type of a DIO channel levels representation.
+*
+* @implements     Dio_LevelType_typedef
+*/
+typedef uint8 Dio_LevelType;
+
+/**
+* @brief          Type of a DIO channel group representation.
+*
+* @implements     Dio_ChannelGroupType_struct
+*/
+typedef struct
+{
+    Dio_PortType      port;      /**< @brief Port identifier.  */
+    uint8             u8offset;    /**< @brief Bit offset within the port. */
+    Dio_PortLevelType mask;      /**< @brief Group mask. */
+} Dio_ChannelGroupType;
+
+/**
+* @brief          Type of a DIO configuration structure.
+*
+* @note           In this implementation there is no need for a configuration
+*                 structure there is only a dummy field, it is recommended
+*                 to initialize this field to zero.
+*
+* @implements     Dio_ConfigType_struct
+*/
+typedef struct
+{
+    uint8 u8NumChannelGroups; /**< @brief Number of channel groups in configuration */
+    const Dio_ChannelGroupType * pChannelGroupList;  /**< @brief
+                                               Pointer to list of channel groups in configuration */
+    const uint32 * pau32Dio_ChannelToPartitionMap;      /**< @brief Pointer to channel to partition mapping */
+    const uint32 * pau32Dio_PortToPartitionMap;         /**< @brief Pointer to port to partition mapping */
+} Dio_ConfigType;
+
+/*=================================================================================================
+*                                GLOBAL VARIABLE DECLARATIONS
+=================================================================================================*/
+#define DIO_START_SEC_CONST_32
+#include "Dio_MemMap.h"
+/**
+* @brief Array containing list of mapping channel for partition
+*/
+extern const uint32 au32Dio_ChannelToPartitionMap[DIO_CHANNEL_PARTITION_U16];
+
+/**
+* @brief Array containing list of mapping port for partition
+*/
+extern const uint32 au32Dio_PortToPartitionMap[DIO_PORT_PARTITION_U16];
+
+/**
+* @brief Array of bitmaps of output pins available per port
+*/
+extern const Dio_PortLevelType Dio_aAvailablePinsForWrite[DIO_NUM_PORTS_U16];
+
+/**
+* @brief Array of bitmaps of input pins available per port
+*/
+extern const Dio_PortLevelType Dio_aAvailablePinsForRead[DIO_NUM_PORTS_U16];
+
+#define DIO_STOP_SEC_CONST_32
+#include "Dio_MemMap.h"
+
+/*=================================================================================================
+*                                    FUNCTION PROTOTYPES
+=================================================================================================*/
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif  /* DIO_CFG_H */
+
+/** @} */

+ 199 - 199
generate/include/Dma_Ip_Cfg.h

@@ -1,199 +1,199 @@
-/*==================================================================================================
-*   Project              : RTD AUTOSAR 4.4
-*   Platform             : CORTEXM
-*   Peripheral           : DMA,CACHE,TRGMUX,FLEXIO
-*   Dependencies         : none
-*
-*   Autosar Version      : 4.4.0
-*   Autosar Revision     : ASR_REL_4_4_REV_0000
-*   Autosar Conf.Variant :
-*   SW Version           : 1.0.0
-*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
-*
-*   (c) Copyright 2020-2021 NXP Semiconductors
-*   All Rights Reserved.
-*
-*   NXP Confidential. This software is owned or controlled by NXP and may only be
-*   used strictly in accordance with the applicable license terms. By expressly
-*   accepting such terms or by downloading, installing, activating and/or otherwise
-*   using the software, you are agreeing that you have read, and that you agree to
-*   comply with and are bound by, such license terms. If you do not agree to be
-*   bound by the applicable license terms, then you may not retain, install,
-*   activate or otherwise use the software.
-==================================================================================================*/
-
-#ifndef DMA_IP_CFG_H_
-#define DMA_IP_CFG_H_
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-/*==================================================================================================
-                                         INCLUDE FILES
- 1) system and project includes
- 2) needed interfaces from external units
- 3) internal and external interfaces from this unit
-==================================================================================================*/
-#include "Dma_Ip_Types.h"
-#include "Dma_Ip_VS_0_PBcfg.h"
-
-/*==================================================================================================
-                               SOURCE FILE VERSION INFORMATION
-==================================================================================================*/
-#define DMA_IP_CFG_VENDOR_ID_H                       43
-#define DMA_IP_CFG_AR_RELEASE_MAJOR_VERSION_H        4
-#define DMA_IP_CFG_AR_RELEASE_MINOR_VERSION_H        4
-#define DMA_IP_CFG_AR_RELEASE_REVISION_VERSION_H     0
-#define DMA_IP_CFG_SW_MAJOR_VERSION_H                1
-#define DMA_IP_CFG_SW_MINOR_VERSION_H                0
-#define DMA_IP_CFG_SW_PATCH_VERSION_H                0
-
-/*==================================================================================================
-                                      FILE VERSION CHECKS
-==================================================================================================*/
-/* Check if header file and Dma_Ip_Types.h file are of the same vendor */
-#if (DMA_IP_CFG_VENDOR_ID_H != DMA_IP_TYPES_VENDOR_ID_H)
-    #error "Dma_Ip_Cfg.h and Dma_Ip_Types.h have different vendor ids"
-#endif
-
-/* Check if header file and Dma_Ip_Types.h file are of the same Autosar version */
-#if ((DMA_IP_CFG_AR_RELEASE_MAJOR_VERSION_H != DMA_IP_TYPES_AR_RELEASE_MAJOR_VERSION_H) || \
-     (DMA_IP_CFG_AR_RELEASE_MINOR_VERSION_H != DMA_IP_TYPES_AR_RELEASE_MINOR_VERSION_H) || \
-     (DMA_IP_CFG_AR_RELEASE_REVISION_VERSION_H != DMA_IP_TYPES_AR_RELEASE_REVISION_VERSION_H) \
-    )
-    #error "AutoSar Version Numbers of Dma_Ip_Cfg.h and Dma_Ip_Types.h are different"
-#endif
-
-/* Check if header file and Dma_Ip_Types.h file are of the same Software version */
-#if ((DMA_IP_CFG_SW_MAJOR_VERSION_H != DMA_IP_TYPES_SW_MAJOR_VERSION_H) || \
-     (DMA_IP_CFG_SW_MINOR_VERSION_H != DMA_IP_TYPES_SW_MINOR_VERSION_H) || \
-     (DMA_IP_CFG_SW_PATCH_VERSION_H != DMA_IP_TYPES_SW_PATCH_VERSION_H) \
-    )
-    #error "Software Version Numbers of Dma_Ip_Cfg.h and Dma_Ip_Types.h are different"
-#endif
-
-/* Check if header file and Dma_Ip_VS_0_PBcfg.h file are of the same vendor */
-#if (DMA_IP_CFG_VENDOR_ID_H != DMA_IP_VS_0_PBCFG_VENDOR_ID_H)
-    #error "Dma_Ip_Cfg.h and Dma_Ip_VS_0_PBcfg.h have different vendor ids"
-#endif
-
-/* Check if header file and Dma_Ip_VS_0_PBcfg.h file are of the same Autosar version */
-#if ((DMA_IP_CFG_AR_RELEASE_MAJOR_VERSION_H != DMA_IP_VS_0_PBCFG_AR_RELEASE_MAJOR_VERSION_H) || \
-     (DMA_IP_CFG_AR_RELEASE_MINOR_VERSION_H != DMA_IP_VS_0_PBCFG_AR_RELEASE_MINOR_VERSION_H) || \
-     (DMA_IP_CFG_AR_RELEASE_REVISION_VERSION_H != DMA_IP_VS_0_PBCFG_AR_RELEASE_REVISION_VERSION_H) \
-    )
-    #error "AutoSar Version Numbers of Dma_Ip_Cfg.h and Dma_Ip_VS_0_PBcfg.h are different"
-#endif
-
-/* Check if header file and Dma_Ip_VS_0_PBcfg.h file are of the same Software version */
-#if ((DMA_IP_CFG_SW_MAJOR_VERSION_H != DMA_IP_VS_0_PBCFG_SW_MAJOR_VERSION_H) || \
-     (DMA_IP_CFG_SW_MINOR_VERSION_H != DMA_IP_VS_0_PBCFG_SW_MINOR_VERSION_H) || \
-     (DMA_IP_CFG_SW_PATCH_VERSION_H != DMA_IP_VS_0_PBCFG_SW_PATCH_VERSION_H) \
-    )
-    #error "Software Version Numbers of Dma_Ip_Cfg.h and Dma_Ip_VS_0_PBcfg.h are different"
-#endif
-
-
-
-
-/*******************************************************************************
- * Definitions
- ******************************************************************************/
-/* Number Of Configured Logic Instances */
-#define MCL_ENABLE_USER_MODE_SUPPORT    STD_OFF
-
-#if (MCL_ENABLE_USER_MODE_SUPPORT == STD_ON)
-#define MCL_DMA_REG_PROT_AVAILABLE
-#endif
-
-#define DMA_IP_NOF_CFG_LOGIC_INSTANCES   ((uint32)1U)
-
-
-/* Logic Instance 0 */
-#define DMA_LOGIC_INST_0    ((uint32)0U)
-
-/* Number Of Configured Logic Channels */
-#define DMA_IP_NOF_CFG_LOGIC_CHANNELS   ((uint32)6U)
-
-/* Logic Channel 0 */
-#define DMA_LOGIC_CH_UART0_RX      ((uint8)0U)
-
-
-/* Logic Channel 1 */
-#define DMA_LOGIC_CH_UART1_RX      ((uint8)1U)
-
-
-/* Logic Channel 2 */
-#define DMA_LOGIC_CH_UART2_RX      ((uint8)2U)
-
-
-/* Logic Channel 3 */
-#define DMA_LOGIC_CH_UART0_TX      ((uint8)3U)
-
-
-/* Logic Channel 4 */
-#define DMA_LOGIC_CH_UART1_TX      ((uint8)4U)
-
-
-/* Logic Channel 5 */
-#define DMA_LOGIC_CH_UART2_TX      ((uint8)5U)
-
-
-
-#define MCL_START_SEC_CONFIG_DATA_UNSPECIFIED
-/* @violates @ref Mcl_Dma_h_REF_1 MISRA 2012 Required Directive 4.10, Precautions shall be taken in order to prevent the contents of a header file being included more than once. */
-#include "Mcl_MemMap.h"
-
-/* DMA Initialization Structure */
-extern const Dma_Ip_InitType Dma_Ip_xDmaInitPB_VS_0;
-
-extern const Dma_Ip_LogicChannelConfigType Dma_Ip_xLogicChannelResetConfig;
-
-extern const Dma_Ip_LogicInstanceConfigType Dma_Ip_xLogicInstanceResetConfig;
-
-#define MCL_STOP_SEC_CONFIG_DATA_UNSPECIFIED
-/* @violates @ref Mcl_Dma_h_REF_1 MISRA 2012 Required Directive 4.10, Precautions shall be taken in order to prevent the contents of a header file being included more than once. */
-#include "Mcl_MemMap.h"
-
-#define MCL_START_SEC_CODE
-/* @violates @ref Mcl_Dma_h_REF_1 MISRA 2012 Required Directive 4.10, Precautions shall be taken in order to prevent the contents of a header file being included more than once. */
-#include "Mcl_MemMap.h"
-
-/* DMA IRQ Handlers */
-
-ISR(Dma0_Ch0_IRQHandler);
-ISR(Dma0_Ch1_IRQHandler);
-ISR(Dma0_Ch2_IRQHandler);
-ISR(Dma0_Ch3_IRQHandler);
-ISR(Dma0_Ch4_IRQHandler);
-ISR(Dma0_Ch5_IRQHandler);
-ISR(Dma0_Ch6_IRQHandler);
-ISR(Dma0_Ch7_IRQHandler);
-ISR(Dma0_Ch8_IRQHandler);
-ISR(Dma0_Ch9_IRQHandler);
-ISR(Dma0_Ch10_IRQHandler);
-ISR(Dma0_Ch11_IRQHandler);
-ISR(Dma0_Ch12_IRQHandler);
-ISR(Dma0_Ch13_IRQHandler);
-ISR(Dma0_Ch14_IRQHandler);
-ISR(Dma0_Ch15_IRQHandler);
-
-/* DMA Error IRQ Handlers */
-ISR(Dma0_Error_IrqHandler);
-
-#define MCL_STOP_SEC_CODE
-/* @violates @ref Mcl_Dma_h_REF_1 MISRA 2012 Required Directive 4.10, Precautions shall be taken in order to prevent the contents of a header file being included more than once. */
-#include "Mcl_MemMap.h"
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* DMA_IP_CFG_H_ */
-
-/*==================================================================================================
- *                                        END OF FILE
-==================================================================================================*/
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : DMA,CACHE,TRGMUX,FLEXIO
+*   Dependencies         : none
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+
+#ifndef DMA_IP_CFG_H_
+#define DMA_IP_CFG_H_
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*==================================================================================================
+                                         INCLUDE FILES
+ 1) system and project includes
+ 2) needed interfaces from external units
+ 3) internal and external interfaces from this unit
+==================================================================================================*/
+#include "Dma_Ip_Types.h"
+#include "Dma_Ip_VS_0_PBcfg.h"
+
+/*==================================================================================================
+                               SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+#define DMA_IP_CFG_VENDOR_ID_H                       43
+#define DMA_IP_CFG_AR_RELEASE_MAJOR_VERSION_H        4
+#define DMA_IP_CFG_AR_RELEASE_MINOR_VERSION_H        4
+#define DMA_IP_CFG_AR_RELEASE_REVISION_VERSION_H     0
+#define DMA_IP_CFG_SW_MAJOR_VERSION_H                1
+#define DMA_IP_CFG_SW_MINOR_VERSION_H                0
+#define DMA_IP_CFG_SW_PATCH_VERSION_H                0
+
+/*==================================================================================================
+                                      FILE VERSION CHECKS
+==================================================================================================*/
+/* Check if header file and Dma_Ip_Types.h file are of the same vendor */
+#if (DMA_IP_CFG_VENDOR_ID_H != DMA_IP_TYPES_VENDOR_ID_H)
+    #error "Dma_Ip_Cfg.h and Dma_Ip_Types.h have different vendor ids"
+#endif
+
+/* Check if header file and Dma_Ip_Types.h file are of the same Autosar version */
+#if ((DMA_IP_CFG_AR_RELEASE_MAJOR_VERSION_H != DMA_IP_TYPES_AR_RELEASE_MAJOR_VERSION_H) || \
+     (DMA_IP_CFG_AR_RELEASE_MINOR_VERSION_H != DMA_IP_TYPES_AR_RELEASE_MINOR_VERSION_H) || \
+     (DMA_IP_CFG_AR_RELEASE_REVISION_VERSION_H != DMA_IP_TYPES_AR_RELEASE_REVISION_VERSION_H) \
+    )
+    #error "AutoSar Version Numbers of Dma_Ip_Cfg.h and Dma_Ip_Types.h are different"
+#endif
+
+/* Check if header file and Dma_Ip_Types.h file are of the same Software version */
+#if ((DMA_IP_CFG_SW_MAJOR_VERSION_H != DMA_IP_TYPES_SW_MAJOR_VERSION_H) || \
+     (DMA_IP_CFG_SW_MINOR_VERSION_H != DMA_IP_TYPES_SW_MINOR_VERSION_H) || \
+     (DMA_IP_CFG_SW_PATCH_VERSION_H != DMA_IP_TYPES_SW_PATCH_VERSION_H) \
+    )
+    #error "Software Version Numbers of Dma_Ip_Cfg.h and Dma_Ip_Types.h are different"
+#endif
+
+/* Check if header file and Dma_Ip_VS_0_PBcfg.h file are of the same vendor */
+#if (DMA_IP_CFG_VENDOR_ID_H != DMA_IP_VS_0_PBCFG_VENDOR_ID_H)
+    #error "Dma_Ip_Cfg.h and Dma_Ip_VS_0_PBcfg.h have different vendor ids"
+#endif
+
+/* Check if header file and Dma_Ip_VS_0_PBcfg.h file are of the same Autosar version */
+#if ((DMA_IP_CFG_AR_RELEASE_MAJOR_VERSION_H != DMA_IP_VS_0_PBCFG_AR_RELEASE_MAJOR_VERSION_H) || \
+     (DMA_IP_CFG_AR_RELEASE_MINOR_VERSION_H != DMA_IP_VS_0_PBCFG_AR_RELEASE_MINOR_VERSION_H) || \
+     (DMA_IP_CFG_AR_RELEASE_REVISION_VERSION_H != DMA_IP_VS_0_PBCFG_AR_RELEASE_REVISION_VERSION_H) \
+    )
+    #error "AutoSar Version Numbers of Dma_Ip_Cfg.h and Dma_Ip_VS_0_PBcfg.h are different"
+#endif
+
+/* Check if header file and Dma_Ip_VS_0_PBcfg.h file are of the same Software version */
+#if ((DMA_IP_CFG_SW_MAJOR_VERSION_H != DMA_IP_VS_0_PBCFG_SW_MAJOR_VERSION_H) || \
+     (DMA_IP_CFG_SW_MINOR_VERSION_H != DMA_IP_VS_0_PBCFG_SW_MINOR_VERSION_H) || \
+     (DMA_IP_CFG_SW_PATCH_VERSION_H != DMA_IP_VS_0_PBCFG_SW_PATCH_VERSION_H) \
+    )
+    #error "Software Version Numbers of Dma_Ip_Cfg.h and Dma_Ip_VS_0_PBcfg.h are different"
+#endif
+
+
+
+
+/*******************************************************************************
+ * Definitions
+ ******************************************************************************/
+/* Number Of Configured Logic Instances */
+#define MCL_ENABLE_USER_MODE_SUPPORT    STD_OFF
+
+#if (MCL_ENABLE_USER_MODE_SUPPORT == STD_ON)
+#define MCL_DMA_REG_PROT_AVAILABLE
+#endif
+
+#define DMA_IP_NOF_CFG_LOGIC_INSTANCES   ((uint32)1U)
+
+
+/* Logic Instance 0 */
+#define DMA_LOGIC_INST_0    ((uint32)0U)
+
+/* Number Of Configured Logic Channels */
+#define DMA_IP_NOF_CFG_LOGIC_CHANNELS   ((uint32)6U)
+
+/* Logic Channel 0 */
+#define DMA_LOGIC_CH_UART0_RX      ((uint8)0U)
+
+
+/* Logic Channel 1 */
+#define DMA_LOGIC_CH_UART1_RX      ((uint8)1U)
+
+
+/* Logic Channel 2 */
+#define DMA_LOGIC_CH_UART2_RX      ((uint8)2U)
+
+
+/* Logic Channel 3 */
+#define DMA_LOGIC_CH_UART0_TX      ((uint8)3U)
+
+
+/* Logic Channel 4 */
+#define DMA_LOGIC_CH_UART1_TX      ((uint8)4U)
+
+
+/* Logic Channel 5 */
+#define DMA_LOGIC_CH_UART2_TX      ((uint8)5U)
+
+
+
+#define MCL_START_SEC_CONFIG_DATA_UNSPECIFIED
+/* @violates @ref Mcl_Dma_h_REF_1 MISRA 2012 Required Directive 4.10, Precautions shall be taken in order to prevent the contents of a header file being included more than once. */
+#include "Mcl_MemMap.h"
+
+/* DMA Initialization Structure */
+extern const Dma_Ip_InitType Dma_Ip_xDmaInitPB_VS_0;
+
+extern const Dma_Ip_LogicChannelConfigType Dma_Ip_xLogicChannelResetConfig;
+
+extern const Dma_Ip_LogicInstanceConfigType Dma_Ip_xLogicInstanceResetConfig;
+
+#define MCL_STOP_SEC_CONFIG_DATA_UNSPECIFIED
+/* @violates @ref Mcl_Dma_h_REF_1 MISRA 2012 Required Directive 4.10, Precautions shall be taken in order to prevent the contents of a header file being included more than once. */
+#include "Mcl_MemMap.h"
+
+#define MCL_START_SEC_CODE
+/* @violates @ref Mcl_Dma_h_REF_1 MISRA 2012 Required Directive 4.10, Precautions shall be taken in order to prevent the contents of a header file being included more than once. */
+#include "Mcl_MemMap.h"
+
+/* DMA IRQ Handlers */
+
+ISR(Dma0_Ch0_IRQHandler);
+ISR(Dma0_Ch1_IRQHandler);
+ISR(Dma0_Ch2_IRQHandler);
+ISR(Dma0_Ch3_IRQHandler);
+ISR(Dma0_Ch4_IRQHandler);
+ISR(Dma0_Ch5_IRQHandler);
+ISR(Dma0_Ch6_IRQHandler);
+ISR(Dma0_Ch7_IRQHandler);
+ISR(Dma0_Ch8_IRQHandler);
+ISR(Dma0_Ch9_IRQHandler);
+ISR(Dma0_Ch10_IRQHandler);
+ISR(Dma0_Ch11_IRQHandler);
+ISR(Dma0_Ch12_IRQHandler);
+ISR(Dma0_Ch13_IRQHandler);
+ISR(Dma0_Ch14_IRQHandler);
+ISR(Dma0_Ch15_IRQHandler);
+
+/* DMA Error IRQ Handlers */
+ISR(Dma0_Error_IrqHandler);
+
+#define MCL_STOP_SEC_CODE
+/* @violates @ref Mcl_Dma_h_REF_1 MISRA 2012 Required Directive 4.10, Precautions shall be taken in order to prevent the contents of a header file being included more than once. */
+#include "Mcl_MemMap.h"
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* DMA_IP_CFG_H_ */
+
+/*==================================================================================================
+ *                                        END OF FILE
+==================================================================================================*/

+ 269 - 269
generate/include/Dma_Ip_Cfg_Defines.h

@@ -1,269 +1,269 @@
-/*==================================================================================================
-*   Project              : RTD AUTOSAR 4.4
-*   Platform             : CORTEXM
-*   Peripheral           : DMA,CACHE,TRGMUX,FLEXIO
-*   Dependencies         : none
-*
-*   Autosar Version      : 4.4.0
-*   Autosar Revision     : ASR_REL_4_4_REV_0000
-*   Autosar Conf.Variant :
-*   SW Version           : 1.0.0
-*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
-*
-*   (c) Copyright 2020-2021 NXP Semiconductors
-*   All Rights Reserved.
-*
-*   NXP Confidential. This software is owned or controlled by NXP and may only be
-*   used strictly in accordance with the applicable license terms. By expressly
-*   accepting such terms or by downloading, installing, activating and/or otherwise
-*   using the software, you are agreeing that you have read, and that you agree to
-*   comply with and are bound by, such license terms. If you do not agree to be
-*   bound by the applicable license terms, then you may not retain, install,
-*   activate or otherwise use the software.
-==================================================================================================*/
-
-/* Prevention from multiple including the same header */
-#ifndef DMA_IP_CFG_DEFINES_H_
-#define DMA_IP_CFG_DEFINES_H_
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-/*==================================================================================================
-                                         INCLUDE FILES
- 1) system and project includes
- 2) needed interfaces from external units
- 3) internal and external interfaces from this unit
-==================================================================================================*/
-#include "StandardTypes.h"
-#include "BasicTypes.h"
-
-/*==================================================================================================
-                               SOURCE FILE VERSION INFORMATION
-==================================================================================================*/
-#define DMA_IP_CFG_DEFINES_VENDOR_ID_H                       43
-#define DMA_IP_CFG_DEFINES_AR_RELEASE_MAJOR_VERSION_H        4
-#define DMA_IP_CFG_DEFINES_AR_RELEASE_MINOR_VERSION_H        4
-#define DMA_IP_CFG_DEFINES_AR_RELEASE_REVISION_VERSION_H     0
-#define DMA_IP_CFG_DEFINES_SW_MAJOR_VERSION_H                1
-#define DMA_IP_CFG_DEFINES_SW_MINOR_VERSION_H                0
-#define DMA_IP_CFG_DEFINES_SW_PATCH_VERSION_H                0
-
-/*==================================================================================================
-                                      FILE VERSION CHECKS
-==================================================================================================*/
-#ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
-/* Check if header file and StandardTypes header file are of the same Autosar version */
-#if ((DMA_IP_CFG_DEFINES_AR_RELEASE_MAJOR_VERSION_H != STD_AR_RELEASE_MAJOR_VERSION) || \
-     (DMA_IP_CFG_DEFINES_AR_RELEASE_MINOR_VERSION_H != STD_AR_RELEASE_MINOR_VERSION))
-    #error "AutoSar Version Numbers of Dma_Ip_Cfg_Defines.h and StandardTypes.h are different"
-#endif
-#endif
-
-/*===============================================================================================
-                                       DEFINES AND MACROS
-===============================================================================================*/
-/*-----------------------------------------------/
-/  DMA IP USER MODE SUPPORT                      /
-/-----------------------------------------------*/
-#define DMA_IP_USER_MODE_SUPPORT_IS_AVAILABLE            STD_OFF
-
-#define DMA_IP_REG_PROT_AVAILABLE                        STD_OFF
-#define DMA_IP_MP_REG_PROT_AVAILABLE                     STD_OFF
-#define DMA_IP_TCD_REG_PROT_AVAILABLE                    STD_OFF
-#define DMA_IP_DMAMUX_REG_PROT_AVAILABLE                 STD_OFF
-
-/*-----------------------------------------------/
-/  DMA IP SUPPORT                                /
-/-----------------------------------------------*/
-#define DMA_IP_IS_AVAILABLE                              STD_ON
-
-#define DMA_IP_DMACRC_IS_AVAILABLE                       STD_OFF
-
-/*-----------------------------------------------/
-/  DMA IP VIRTUAL ADDRESS MAPPING SUPPORT        /
-/-----------------------------------------------*/
-#define DMA_IP_VIRTUAL_ADDRESS_MAPPING_IS_AVAILABLE      STD_OFF
-
-#define DMA_IP_MULTICORE_IS_AVAILABLE                    STD_OFF
-
-#define DMA_IP_MASTER_ID_REPLICATION_IS_AVAILABLE        STD_OFF
-
-#define DMA_IP_BUFFERED_WRITES_IS_AVAILABLE              STD_OFF
-
-#define DMA_IP_STORE_DST_ADDR_IS_AVAILABLE               STD_OFF
-
-#define DMA_IP_END_OF_PACKET_SIGNAL_IS_AVAILABLE         STD_OFF
-
-#define DMA_IP_PREEMPTION_IS_AVAILABLE                   STD_ON
-
-#define DMA_IP_DISABLE_PREEMPT_IS_AVAILABLE              STD_ON
-
-#define DMA_IP_GROUP_PRIORITY_IS_AVAILABLE               STD_OFF
-
-/*-----------------------------------------------/
-/  DMA IP DEV ERROR DETECT SUPPORT               /
-/-----------------------------------------------*/
-#define DMA_IP_DEV_ERROR_DETECT                          STD_OFF
-
-/*-----------------------------------------------/
-/  DMAMUX NOT ALIGNED                            /
-/-----------------------------------------------*/
-#define DMAMUX_IP_NOT_ALIGNED                            STD_OFF
-
-/*-----------------------------------------------/
-/  DMA HARDWARE VERSION                          /
-/-----------------------------------------------*/
-#define DMA_IP_HWV2_IS_AVAILABLE                         STD_ON
-#define DMA_IP_HARDWARE_VERSION_2                        ((uint8)2U)
-#define DMA_IP_HWV3_IS_AVAILABLE                         STD_OFF
-#define DMA_IP_HARDWARE_VERSION_3                        ((uint8)3U)
-
-/*-----------------------------------------------/
-/  DMA HARDWARE INSTANCES                        /
-/-----------------------------------------------*/
-#define DMA_IP_HW_INST_0                                 ((uint8)(0U))
-
-/*-----------------------------------------------/
-/  DMA HARDWARE CHANNELS                         /
-/-----------------------------------------------*/
-#define DMA_IP_HW_CH_0                                   ((uint8)(0U))
-#define DMA_IP_HW_CH_1                                   ((uint8)(1U))
-#define DMA_IP_HW_CH_2                                   ((uint8)(2U))
-#define DMA_IP_HW_CH_3                                   ((uint8)(3U))
-#define DMA_IP_HW_CH_4                                   ((uint8)(4U))
-#define DMA_IP_HW_CH_5                                   ((uint8)(5U))
-#define DMA_IP_HW_CH_6                                   ((uint8)(6U))
-#define DMA_IP_HW_CH_7                                   ((uint8)(7U))
-#define DMA_IP_HW_CH_8                                   ((uint8)(8U))
-#define DMA_IP_HW_CH_9                                   ((uint8)(9U))
-#define DMA_IP_HW_CH_10                                  ((uint8)(10U))
-#define DMA_IP_HW_CH_11                                  ((uint8)(11U))
-#define DMA_IP_HW_CH_12                                  ((uint8)(12U))
-#define DMA_IP_HW_CH_13                                  ((uint8)(13U))
-#define DMA_IP_HW_CH_14                                  ((uint8)(14U))
-#define DMA_IP_HW_CH_15                                  ((uint8)(15U))
-
-/*-----------------------------------------------/
-/  DMA REQUESTS                                  /
-/-----------------------------------------------*/
-
-#define DMA_IP_REQ_MUX0_DISABLED                         ((uint8)(0U))
-#define DMA_IP_REQ_MUX0_ENET_TIMER_CH0_CH3               ((uint8)(1U))
-#define DMA_IP_REQ_MUX0_LPUART0_RX                       ((uint8)(2U))
-#define DMA_IP_REQ_MUX0_LPUART0_TX                       ((uint8)(3U))
-#define DMA_IP_REQ_MUX0_LPUART1_RX                       ((uint8)(4U))
-#define DMA_IP_REQ_MUX0_LPUART1_TX                       ((uint8)(5U))
-#define DMA_IP_REQ_MUX0_LPUART2_RX                       ((uint8)(6U))
-#define DMA_IP_REQ_MUX0_LPUART2_TX                       ((uint8)(7U))
-#define DMA_IP_REQ_MUX0_LPI2C1_RX                        ((uint8)(8U))
-#define DMA_IP_REQ_MUX0_LPI2C1_TX                        ((uint8)(9U))
-#define DMA_IP_REQ_MUX0_FLEXIO_SHIFTER0                  ((uint8)(10U))
-#define DMA_IP_REQ_MUX0_FLEXIO_SHIFTER1                  ((uint8)(11U))
-#define DMA_IP_REQ_MUX0_FLEXIO_SHIFTER2                  ((uint8)(12U))
-#define DMA_IP_REQ_MUX0_FLEXIO_SHIFTER3                  ((uint8)(13U))
-#define DMA_IP_REQ_MUX0_FLEXIO_SHIFTER2_SAI1_RX          ((uint8)(12U))
-#define DMA_IP_REQ_MUX0_FLEXIO_SHIFTER3_SAI1_TX          ((uint8)(13U))
-#define DMA_IP_REQ_MUX0_LPSPI0_RX                        ((uint8)(14U))
-#define DMA_IP_REQ_MUX0_LPSPI0_TX                        ((uint8)(15U))
-#define DMA_IP_REQ_MUX0_LPSPI1_RX                        ((uint8)(16U))
-#define DMA_IP_REQ_MUX0_LPSPI1_TX                        ((uint8)(17U))
-#define DMA_IP_REQ_MUX0_LPSPI2_RX                        ((uint8)(18U))
-#define DMA_IP_REQ_MUX0_LPSPI2_TX                        ((uint8)(19U))
-#define DMA_IP_REQ_MUX0_FTM1_CHANNEL_0                   ((uint8)(20U))
-#define DMA_IP_REQ_MUX0_FTM1_CHANNEL_1                   ((uint8)(21U))
-#define DMA_IP_REQ_MUX0_FTM1_CHANNEL_2                   ((uint8)(22U))
-#define DMA_IP_REQ_MUX0_FTM1_CHANNEL_3                   ((uint8)(23U))
-#define DMA_IP_REQ_MUX0_FTM1_CHANNEL_4                   ((uint8)(24U))
-#define DMA_IP_REQ_MUX0_FTM1_CHANNEL_5                   ((uint8)(25U))
-#define DMA_IP_REQ_MUX0_FTM1_CHANNEL_6                   ((uint8)(26U))
-#define DMA_IP_REQ_MUX0_FTM1_CHANNEL_7                   ((uint8)(27U))
-#define DMA_IP_REQ_MUX0_FTM2_CHANNEL_0                   ((uint8)(28U))
-#define DMA_IP_REQ_MUX0_FTM2_CHANNEL_1                   ((uint8)(29U))
-#define DMA_IP_REQ_MUX0_FTM2_CHANNEL_2                   ((uint8)(30U))
-#define DMA_IP_REQ_MUX0_FTM2_CHANNEL_3                   ((uint8)(31U))
-#define DMA_IP_REQ_MUX0_FTM2_CHANNEL_4                   ((uint8)(32U))
-#define DMA_IP_REQ_MUX0_FTM2_CHANNEL_5                   ((uint8)(33U))
-#define DMA_IP_REQ_MUX0_FTM2_CHANNEL_6                   ((uint8)(34U))
-#define DMA_IP_REQ_MUX0_FTM2_CHANNEL_7                   ((uint8)(35U))
-#define DMA_IP_REQ_MUX0_FTM0_OR_CH0_CH7                  ((uint8)(36U))
-#define DMA_IP_REQ_MUX0_FTM3_OR_CH0_CH7                  ((uint8)(37U))
-#define DMA_IP_REQ_MUX0_FTM4_OR_CH0_CH7                  ((uint8)(38U))
-#define DMA_IP_REQ_MUX0_FTM5_OR_CH0_CH7                  ((uint8)(39U))
-#define DMA_IP_REQ_MUX0_FTM6_OR_CH0_CH7                  ((uint8)(40U))
-#define DMA_IP_REQ_MUX0_FTM7_OR_CH0_CH7                  ((uint8)(41U))
-#define DMA_IP_REQ_MUX0_ADC0                             ((uint8)(42U))
-#define DMA_IP_REQ_MUX0_ADC1                             ((uint8)(43U))
-#define DMA_IP_REQ_MUX0_LPI2C0_RX                        ((uint8)(44U))
-#define DMA_IP_REQ_MUX0_LPI2C0_TX                        ((uint8)(45U))
-#define DMA_IP_REQ_MUX0_PDB0                             ((uint8)(46U))
-#define DMA_IP_REQ_MUX0_PDB1                             ((uint8)(47U))
-#define DMA_IP_REQ_MUX0_CMP0                             ((uint8)(48U))
-#define DMA_IP_REQ_MUX0_PORTA                            ((uint8)(49U))
-#define DMA_IP_REQ_MUX0_PORTB                            ((uint8)(50U))
-#define DMA_IP_REQ_MUX0_PORTC                            ((uint8)(51U))
-#define DMA_IP_REQ_MUX0_PORTD                            ((uint8)(52U))
-#define DMA_IP_REQ_MUX0_PORTE                            ((uint8)(53U))
-#define DMA_IP_REQ_MUX0_FLEXCAN0                         ((uint8)(54U))
-#define DMA_IP_REQ_MUX0_FLEXCAN1                         ((uint8)(55U))
-#define DMA_IP_REQ_MUX0_FLEXCAN2                         ((uint8)(56U))
-#define DMA_IP_REQ_MUX0_SAI0_RX                          ((uint8)(57U))
-#define DMA_IP_REQ_MUX0_SAI0_TX                          ((uint8)(58U))
-#define DMA_IP_REQ_MUX0_LPTMR0                           ((uint8)(59U))
-#define DMA_IP_REQ_MUX0_QUADSPI_RX                       ((uint8)(60U))
-#define DMA_IP_REQ_MUX0_QUADSPI_TX                       ((uint8)(61U))
-#define DMA_IP_REQ_MUX0_ALWAYS_ON0                       ((uint8)(62U))
-#define DMA_IP_REQ_MUX0_ALWAYS_ON1                       ((uint8)(63U))
-
-/*-----------------------------------------------/
-/  DMA CHANNEL PRIORITY                          /
-/-----------------------------------------------*/
-#define DMA_IP_LEVEL_PRIO0                               ((uint8)(0U))
-#define DMA_IP_LEVEL_PRIO1                               ((uint8)(1U))
-#define DMA_IP_LEVEL_PRIO2                               ((uint8)(2U))
-#define DMA_IP_LEVEL_PRIO3                               ((uint8)(3U))
-#define DMA_IP_LEVEL_PRIO4                               ((uint8)(4U))
-#define DMA_IP_LEVEL_PRIO5                               ((uint8)(5U))
-#define DMA_IP_LEVEL_PRIO6                               ((uint8)(6U))
-#define DMA_IP_LEVEL_PRIO7                               ((uint8)(7U))
-#define DMA_IP_LEVEL_PRIO8                               ((uint8)(8U))
-#define DMA_IP_LEVEL_PRIO9                               ((uint8)(9U))
-#define DMA_IP_LEVEL_PRIO10                              ((uint8)(10U))
-#define DMA_IP_LEVEL_PRIO11                              ((uint8)(11U))
-#define DMA_IP_LEVEL_PRIO12                              ((uint8)(12U))
-#define DMA_IP_LEVEL_PRIO13                              ((uint8)(13U))
-#define DMA_IP_LEVEL_PRIO14                              ((uint8)(14U))
-#define DMA_IP_LEVEL_PRIO15                              ((uint8)(15U))
-/*-----------------------------------------------/
-/  DMA TRANSFER SIZE                             /
-/-----------------------------------------------*/
-#define DMA_IP_TRANSFER_SIZE_1_BYTE                      ((uint8)(0U))
-#define DMA_IP_TRANSFER_SIZE_2_BYTE                      ((uint8)(1U))
-#define DMA_IP_TRANSFER_SIZE_4_BYTE                      ((uint8)(2U))
-#define DMA_IP_TRANSFER_SIZE_16_BYTE                     ((uint8)(4U))
-#define DMA_IP_TRANSFER_SIZE_32_BYTE                     ((uint8)(5U))
-
-/*-----------------------------------------------/
-/  DMA BANDWIDTH CONTROL                         /
-/-----------------------------------------------*/
-#define DMA_IP_BWC_ENGINE_NO_STALL                       ((uint8)(0U))
-#define DMA_IP_BWC_ENGINE_4CYCLE_STALL                   ((uint8)(2U))
-#define DMA_IP_BWC_ENGINE_8CYCLE_STALL                   ((uint8)(3U))
-
-/*-----------------------------------------------/
-/  DMA CONVERT DCHPRI                            /
-/-----------------------------------------------*/
-#define DMA_CHN_TO_DCHPRI_INDEX(x)                       ((x) ^ 3U)
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif  /* #ifndef DMA_IP_CFG_DEFINES_H_ */
-
-/*==================================================================================================
- *                                        END OF FILE
-==================================================================================================*/
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : DMA,CACHE,TRGMUX,FLEXIO
+*   Dependencies         : none
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+
+/* Prevention from multiple including the same header */
+#ifndef DMA_IP_CFG_DEFINES_H_
+#define DMA_IP_CFG_DEFINES_H_
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*==================================================================================================
+                                         INCLUDE FILES
+ 1) system and project includes
+ 2) needed interfaces from external units
+ 3) internal and external interfaces from this unit
+==================================================================================================*/
+#include "StandardTypes.h"
+#include "BasicTypes.h"
+
+/*==================================================================================================
+                               SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+#define DMA_IP_CFG_DEFINES_VENDOR_ID_H                       43
+#define DMA_IP_CFG_DEFINES_AR_RELEASE_MAJOR_VERSION_H        4
+#define DMA_IP_CFG_DEFINES_AR_RELEASE_MINOR_VERSION_H        4
+#define DMA_IP_CFG_DEFINES_AR_RELEASE_REVISION_VERSION_H     0
+#define DMA_IP_CFG_DEFINES_SW_MAJOR_VERSION_H                1
+#define DMA_IP_CFG_DEFINES_SW_MINOR_VERSION_H                0
+#define DMA_IP_CFG_DEFINES_SW_PATCH_VERSION_H                0
+
+/*==================================================================================================
+                                      FILE VERSION CHECKS
+==================================================================================================*/
+#ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
+/* Check if header file and StandardTypes header file are of the same Autosar version */
+#if ((DMA_IP_CFG_DEFINES_AR_RELEASE_MAJOR_VERSION_H != STD_AR_RELEASE_MAJOR_VERSION) || \
+     (DMA_IP_CFG_DEFINES_AR_RELEASE_MINOR_VERSION_H != STD_AR_RELEASE_MINOR_VERSION))
+    #error "AutoSar Version Numbers of Dma_Ip_Cfg_Defines.h and StandardTypes.h are different"
+#endif
+#endif
+
+/*===============================================================================================
+                                       DEFINES AND MACROS
+===============================================================================================*/
+/*-----------------------------------------------/
+/  DMA IP USER MODE SUPPORT                      /
+/-----------------------------------------------*/
+#define DMA_IP_USER_MODE_SUPPORT_IS_AVAILABLE            STD_OFF
+
+#define DMA_IP_REG_PROT_AVAILABLE                        STD_OFF
+#define DMA_IP_MP_REG_PROT_AVAILABLE                     STD_OFF
+#define DMA_IP_TCD_REG_PROT_AVAILABLE                    STD_OFF
+#define DMA_IP_DMAMUX_REG_PROT_AVAILABLE                 STD_OFF
+
+/*-----------------------------------------------/
+/  DMA IP SUPPORT                                /
+/-----------------------------------------------*/
+#define DMA_IP_IS_AVAILABLE                              STD_ON
+
+#define DMA_IP_DMACRC_IS_AVAILABLE                       STD_OFF
+
+/*-----------------------------------------------/
+/  DMA IP VIRTUAL ADDRESS MAPPING SUPPORT        /
+/-----------------------------------------------*/
+#define DMA_IP_VIRTUAL_ADDRESS_MAPPING_IS_AVAILABLE      STD_OFF
+
+#define DMA_IP_MULTICORE_IS_AVAILABLE                    STD_OFF
+
+#define DMA_IP_MASTER_ID_REPLICATION_IS_AVAILABLE        STD_OFF
+
+#define DMA_IP_BUFFERED_WRITES_IS_AVAILABLE              STD_OFF
+
+#define DMA_IP_STORE_DST_ADDR_IS_AVAILABLE               STD_OFF
+
+#define DMA_IP_END_OF_PACKET_SIGNAL_IS_AVAILABLE         STD_OFF
+
+#define DMA_IP_PREEMPTION_IS_AVAILABLE                   STD_ON
+
+#define DMA_IP_DISABLE_PREEMPT_IS_AVAILABLE              STD_ON
+
+#define DMA_IP_GROUP_PRIORITY_IS_AVAILABLE               STD_OFF
+
+/*-----------------------------------------------/
+/  DMA IP DEV ERROR DETECT SUPPORT               /
+/-----------------------------------------------*/
+#define DMA_IP_DEV_ERROR_DETECT                          STD_OFF
+
+/*-----------------------------------------------/
+/  DMAMUX NOT ALIGNED                            /
+/-----------------------------------------------*/
+#define DMAMUX_IP_NOT_ALIGNED                            STD_OFF
+
+/*-----------------------------------------------/
+/  DMA HARDWARE VERSION                          /
+/-----------------------------------------------*/
+#define DMA_IP_HWV2_IS_AVAILABLE                         STD_ON
+#define DMA_IP_HARDWARE_VERSION_2                        ((uint8)2U)
+#define DMA_IP_HWV3_IS_AVAILABLE                         STD_OFF
+#define DMA_IP_HARDWARE_VERSION_3                        ((uint8)3U)
+
+/*-----------------------------------------------/
+/  DMA HARDWARE INSTANCES                        /
+/-----------------------------------------------*/
+#define DMA_IP_HW_INST_0                                 ((uint8)(0U))
+
+/*-----------------------------------------------/
+/  DMA HARDWARE CHANNELS                         /
+/-----------------------------------------------*/
+#define DMA_IP_HW_CH_0                                   ((uint8)(0U))
+#define DMA_IP_HW_CH_1                                   ((uint8)(1U))
+#define DMA_IP_HW_CH_2                                   ((uint8)(2U))
+#define DMA_IP_HW_CH_3                                   ((uint8)(3U))
+#define DMA_IP_HW_CH_4                                   ((uint8)(4U))
+#define DMA_IP_HW_CH_5                                   ((uint8)(5U))
+#define DMA_IP_HW_CH_6                                   ((uint8)(6U))
+#define DMA_IP_HW_CH_7                                   ((uint8)(7U))
+#define DMA_IP_HW_CH_8                                   ((uint8)(8U))
+#define DMA_IP_HW_CH_9                                   ((uint8)(9U))
+#define DMA_IP_HW_CH_10                                  ((uint8)(10U))
+#define DMA_IP_HW_CH_11                                  ((uint8)(11U))
+#define DMA_IP_HW_CH_12                                  ((uint8)(12U))
+#define DMA_IP_HW_CH_13                                  ((uint8)(13U))
+#define DMA_IP_HW_CH_14                                  ((uint8)(14U))
+#define DMA_IP_HW_CH_15                                  ((uint8)(15U))
+
+/*-----------------------------------------------/
+/  DMA REQUESTS                                  /
+/-----------------------------------------------*/
+
+#define DMA_IP_REQ_MUX0_DISABLED                         ((uint8)(0U))
+#define DMA_IP_REQ_MUX0_ENET_TIMER_CH0_CH3               ((uint8)(1U))
+#define DMA_IP_REQ_MUX0_LPUART0_RX                       ((uint8)(2U))
+#define DMA_IP_REQ_MUX0_LPUART0_TX                       ((uint8)(3U))
+#define DMA_IP_REQ_MUX0_LPUART1_RX                       ((uint8)(4U))
+#define DMA_IP_REQ_MUX0_LPUART1_TX                       ((uint8)(5U))
+#define DMA_IP_REQ_MUX0_LPUART2_RX                       ((uint8)(6U))
+#define DMA_IP_REQ_MUX0_LPUART2_TX                       ((uint8)(7U))
+#define DMA_IP_REQ_MUX0_LPI2C1_RX                        ((uint8)(8U))
+#define DMA_IP_REQ_MUX0_LPI2C1_TX                        ((uint8)(9U))
+#define DMA_IP_REQ_MUX0_FLEXIO_SHIFTER0                  ((uint8)(10U))
+#define DMA_IP_REQ_MUX0_FLEXIO_SHIFTER1                  ((uint8)(11U))
+#define DMA_IP_REQ_MUX0_FLEXIO_SHIFTER2                  ((uint8)(12U))
+#define DMA_IP_REQ_MUX0_FLEXIO_SHIFTER3                  ((uint8)(13U))
+#define DMA_IP_REQ_MUX0_FLEXIO_SHIFTER2_SAI1_RX          ((uint8)(12U))
+#define DMA_IP_REQ_MUX0_FLEXIO_SHIFTER3_SAI1_TX          ((uint8)(13U))
+#define DMA_IP_REQ_MUX0_LPSPI0_RX                        ((uint8)(14U))
+#define DMA_IP_REQ_MUX0_LPSPI0_TX                        ((uint8)(15U))
+#define DMA_IP_REQ_MUX0_LPSPI1_RX                        ((uint8)(16U))
+#define DMA_IP_REQ_MUX0_LPSPI1_TX                        ((uint8)(17U))
+#define DMA_IP_REQ_MUX0_LPSPI2_RX                        ((uint8)(18U))
+#define DMA_IP_REQ_MUX0_LPSPI2_TX                        ((uint8)(19U))
+#define DMA_IP_REQ_MUX0_FTM1_CHANNEL_0                   ((uint8)(20U))
+#define DMA_IP_REQ_MUX0_FTM1_CHANNEL_1                   ((uint8)(21U))
+#define DMA_IP_REQ_MUX0_FTM1_CHANNEL_2                   ((uint8)(22U))
+#define DMA_IP_REQ_MUX0_FTM1_CHANNEL_3                   ((uint8)(23U))
+#define DMA_IP_REQ_MUX0_FTM1_CHANNEL_4                   ((uint8)(24U))
+#define DMA_IP_REQ_MUX0_FTM1_CHANNEL_5                   ((uint8)(25U))
+#define DMA_IP_REQ_MUX0_FTM1_CHANNEL_6                   ((uint8)(26U))
+#define DMA_IP_REQ_MUX0_FTM1_CHANNEL_7                   ((uint8)(27U))
+#define DMA_IP_REQ_MUX0_FTM2_CHANNEL_0                   ((uint8)(28U))
+#define DMA_IP_REQ_MUX0_FTM2_CHANNEL_1                   ((uint8)(29U))
+#define DMA_IP_REQ_MUX0_FTM2_CHANNEL_2                   ((uint8)(30U))
+#define DMA_IP_REQ_MUX0_FTM2_CHANNEL_3                   ((uint8)(31U))
+#define DMA_IP_REQ_MUX0_FTM2_CHANNEL_4                   ((uint8)(32U))
+#define DMA_IP_REQ_MUX0_FTM2_CHANNEL_5                   ((uint8)(33U))
+#define DMA_IP_REQ_MUX0_FTM2_CHANNEL_6                   ((uint8)(34U))
+#define DMA_IP_REQ_MUX0_FTM2_CHANNEL_7                   ((uint8)(35U))
+#define DMA_IP_REQ_MUX0_FTM0_OR_CH0_CH7                  ((uint8)(36U))
+#define DMA_IP_REQ_MUX0_FTM3_OR_CH0_CH7                  ((uint8)(37U))
+#define DMA_IP_REQ_MUX0_FTM4_OR_CH0_CH7                  ((uint8)(38U))
+#define DMA_IP_REQ_MUX0_FTM5_OR_CH0_CH7                  ((uint8)(39U))
+#define DMA_IP_REQ_MUX0_FTM6_OR_CH0_CH7                  ((uint8)(40U))
+#define DMA_IP_REQ_MUX0_FTM7_OR_CH0_CH7                  ((uint8)(41U))
+#define DMA_IP_REQ_MUX0_ADC0                             ((uint8)(42U))
+#define DMA_IP_REQ_MUX0_ADC1                             ((uint8)(43U))
+#define DMA_IP_REQ_MUX0_LPI2C0_RX                        ((uint8)(44U))
+#define DMA_IP_REQ_MUX0_LPI2C0_TX                        ((uint8)(45U))
+#define DMA_IP_REQ_MUX0_PDB0                             ((uint8)(46U))
+#define DMA_IP_REQ_MUX0_PDB1                             ((uint8)(47U))
+#define DMA_IP_REQ_MUX0_CMP0                             ((uint8)(48U))
+#define DMA_IP_REQ_MUX0_PORTA                            ((uint8)(49U))
+#define DMA_IP_REQ_MUX0_PORTB                            ((uint8)(50U))
+#define DMA_IP_REQ_MUX0_PORTC                            ((uint8)(51U))
+#define DMA_IP_REQ_MUX0_PORTD                            ((uint8)(52U))
+#define DMA_IP_REQ_MUX0_PORTE                            ((uint8)(53U))
+#define DMA_IP_REQ_MUX0_FLEXCAN0                         ((uint8)(54U))
+#define DMA_IP_REQ_MUX0_FLEXCAN1                         ((uint8)(55U))
+#define DMA_IP_REQ_MUX0_FLEXCAN2                         ((uint8)(56U))
+#define DMA_IP_REQ_MUX0_SAI0_RX                          ((uint8)(57U))
+#define DMA_IP_REQ_MUX0_SAI0_TX                          ((uint8)(58U))
+#define DMA_IP_REQ_MUX0_LPTMR0                           ((uint8)(59U))
+#define DMA_IP_REQ_MUX0_QUADSPI_RX                       ((uint8)(60U))
+#define DMA_IP_REQ_MUX0_QUADSPI_TX                       ((uint8)(61U))
+#define DMA_IP_REQ_MUX0_ALWAYS_ON0                       ((uint8)(62U))
+#define DMA_IP_REQ_MUX0_ALWAYS_ON1                       ((uint8)(63U))
+
+/*-----------------------------------------------/
+/  DMA CHANNEL PRIORITY                          /
+/-----------------------------------------------*/
+#define DMA_IP_LEVEL_PRIO0                               ((uint8)(0U))
+#define DMA_IP_LEVEL_PRIO1                               ((uint8)(1U))
+#define DMA_IP_LEVEL_PRIO2                               ((uint8)(2U))
+#define DMA_IP_LEVEL_PRIO3                               ((uint8)(3U))
+#define DMA_IP_LEVEL_PRIO4                               ((uint8)(4U))
+#define DMA_IP_LEVEL_PRIO5                               ((uint8)(5U))
+#define DMA_IP_LEVEL_PRIO6                               ((uint8)(6U))
+#define DMA_IP_LEVEL_PRIO7                               ((uint8)(7U))
+#define DMA_IP_LEVEL_PRIO8                               ((uint8)(8U))
+#define DMA_IP_LEVEL_PRIO9                               ((uint8)(9U))
+#define DMA_IP_LEVEL_PRIO10                              ((uint8)(10U))
+#define DMA_IP_LEVEL_PRIO11                              ((uint8)(11U))
+#define DMA_IP_LEVEL_PRIO12                              ((uint8)(12U))
+#define DMA_IP_LEVEL_PRIO13                              ((uint8)(13U))
+#define DMA_IP_LEVEL_PRIO14                              ((uint8)(14U))
+#define DMA_IP_LEVEL_PRIO15                              ((uint8)(15U))
+/*-----------------------------------------------/
+/  DMA TRANSFER SIZE                             /
+/-----------------------------------------------*/
+#define DMA_IP_TRANSFER_SIZE_1_BYTE                      ((uint8)(0U))
+#define DMA_IP_TRANSFER_SIZE_2_BYTE                      ((uint8)(1U))
+#define DMA_IP_TRANSFER_SIZE_4_BYTE                      ((uint8)(2U))
+#define DMA_IP_TRANSFER_SIZE_16_BYTE                     ((uint8)(4U))
+#define DMA_IP_TRANSFER_SIZE_32_BYTE                     ((uint8)(5U))
+
+/*-----------------------------------------------/
+/  DMA BANDWIDTH CONTROL                         /
+/-----------------------------------------------*/
+#define DMA_IP_BWC_ENGINE_NO_STALL                       ((uint8)(0U))
+#define DMA_IP_BWC_ENGINE_4CYCLE_STALL                   ((uint8)(2U))
+#define DMA_IP_BWC_ENGINE_8CYCLE_STALL                   ((uint8)(3U))
+
+/*-----------------------------------------------/
+/  DMA CONVERT DCHPRI                            /
+/-----------------------------------------------*/
+#define DMA_CHN_TO_DCHPRI_INDEX(x)                       ((x) ^ 3U)
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif  /* #ifndef DMA_IP_CFG_DEFINES_H_ */
+
+/*==================================================================================================
+ *                                        END OF FILE
+==================================================================================================*/

+ 240 - 240
generate/include/Dma_Ip_Cfg_DeviceRegistersV2.h

@@ -1,240 +1,240 @@
-/*==================================================================================================
-*   Project              : RTD AUTOSAR 4.4
-*   Platform             : CORTEXM
-*   Peripheral           : DMA,CACHE,TRGMUX,FLEXIO
-*   Dependencies         : none
-*
-*   Autosar Version      : 4.4.0
-*   Autosar Revision     : ASR_REL_4_4_REV_0000
-*   Autosar Conf.Variant :
-*   SW Version           : 1.0.0
-*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
-*
-*   (c) Copyright 2020-2021 NXP Semiconductors
-*   All Rights Reserved.
-*
-*   NXP Confidential. This software is owned or controlled by NXP and may only be
-*   used strictly in accordance with the applicable license terms. By expressly
-*   accepting such terms or by downloading, installing, activating and/or otherwise
-*   using the software, you are agreeing that you have read, and that you agree to
-*   comply with and are bound by, such license terms. If you do not agree to be
-*   bound by the applicable license terms, then you may not retain, install,
-*   activate or otherwise use the software.
-==================================================================================================*/
-
-/* Prevention from multiple including the same header */
-#ifndef DMA_IP_CFG_DEVICE_REGISTERS_V2_H_
-#define DMA_IP_CFG_DEVICE_REGISTERS_V2_H_
-
-/**
-*   @file    Dma_Ip_Cfg_DeviceRegistersV2.h
-*
-*   @version 1.0.0
-*
-*   @brief   AUTOSAR Mcl - Dma Ip Cfg Device Register V2 header file.
-*   @details Contains common register information and specific register information for
-*            DMA Hardware Version 2.
-*
-*   @addtogroup DMA_IP_DRIVER DMA IP Driver
-*   @{
-*/
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-/*==================================================================================================
-                                         INCLUDE FILES
- 1) system and project includes
- 2) needed interfaces from external units
- 3) internal and external interfaces from this unit
-==================================================================================================*/
-#include "Mcal.h"
-#include "BasicTypes.h"
-
-#include "S32K146_DMAMUX.h"
-#include "S32K146_DMA.h"
-
-/*==================================================================================================
-                               SOURCE FILE VERSION INFORMATION
-==================================================================================================*/
-#define DMA_IP_CFG_DEVICEREGISTERSV2_VENDOR_ID_H                       43
-#define DMA_IP_CFG_DEVICEREGISTERSV2_AR_RELEASE_MAJOR_VERSION_H        4
-#define DMA_IP_CFG_DEVICEREGISTERSV2_AR_RELEASE_MINOR_VERSION_H        4
-#define DMA_IP_CFG_DEVICEREGISTERSV2_AR_RELEASE_REVISION_VERSION_H     0
-#define DMA_IP_CFG_DEVICEREGISTERSV2_SW_MAJOR_VERSION_H                1
-#define DMA_IP_CFG_DEVICEREGISTERSV2_SW_MINOR_VERSION_H                0
-#define DMA_IP_CFG_DEVICEREGISTERSV2_SW_PATCH_VERSION_H                0
-
-/*==================================================================================================
-                                      FILE VERSION CHECKS
-==================================================================================================*/
-#ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
-/* Check if header file and Mcal header file are of the same Autosar version */
-#if ((DMA_IP_CFG_DEVICEREGISTERSV2_AR_RELEASE_MAJOR_VERSION_H != MCAL_AR_RELEASE_MAJOR_VERSION) || \
-     (DMA_IP_CFG_DEVICEREGISTERSV2_AR_RELEASE_MINOR_VERSION_H != MCAL_AR_RELEASE_MINOR_VERSION))
-    #error "AutoSar Version Numbers of Dma_Ip_Cfg_DeviceRegisters.h and Mcal.h are different"
-#endif
-#endif
-
-/*==================================================================================================
-                                       DEFINES AND MACROS
-==================================================================================================*/
-/*-----------------------------------------------/
-/  SOC SPECIFIC DMAMUX INSTANCES                 /
-/-----------------------------------------------*/
-#define DMA_IP_DMAMUX_BASE_PTRS                IP_DMAMUX_BASE_PTRS
-#define DMA_IP_HWV2_DMAMUX_NOF_INST            ((uint32)DMAMUX_INSTANCE_COUNT)
-
-/*-----------------------------------------------/
-/  SOC SPECIFIC DMAMUX CHANNELS                  /
-/-----------------------------------------------*/
-#define DMA_IP_HWV2_DMAMUX_NOF_CHANNELS        ((uint32)DMAMUX_CHCFG_COUNT)
-#define DMA_IP_HWV2_DMAMUX_REG_INDEX_CONV(x)   ((uint32)(x))
-
-/*-----------------------------------------------/
-/  SOC SPECIFIC DMA INSTANCES                    /
-/-----------------------------------------------*/
-#define DMA_IP_BASE                            (IP_DMA_BASE)
-#define DMA_IP_PTR                             ((Dma_Ip_Hwv2InstRegType *)DMA_IP_BASE)
-#define DMA_IP_DMA_HWV2_BASE_PTRS              { DMA_IP_PTR }
-
-#define DMA_IP_HWV2_DMA_MP_GRPRI_COUNT         DMA_IP_MP_GRPRI_COUNT
-
-#define DMA_IP_HWV2_DMA_NOF_INST               DMA_INSTANCE_COUNT       /* Total number of hardware instances */
-
-#define DMA_IP_HWV2_PRIOLVL_REG_INDEX_CONV(x)  ((uint32)(x) ^ 3U)
-
-/*-----------------------------------------------/
-/  SOC SPECIFIC DMA CHANNELS                     /
-/-----------------------------------------------*/
-#define DMA_IP_TCD_BASE                     (IP_DMA_BASE + 4096U)
-#define DMA_IP_TCD_PTR                      ((Dma_Ip_Hwv2TcdArrayType *)DMA_IP_TCD_BASE)
-#define DMA_IP_TCD_HWV2_BASE_PTRS           { DMA_IP_TCD_PTR }
-
-#define DMA_IP_TCD_RESERVED                 (0U)                     /* Reserved space between hardware TCDs */
-
-#define DMA_IP_HWV2_TCD_NOF_CH              DMA_TCD_COUNT            /* Number of hardware channels */
-
-#define DMA_IP_HWV2_TCD_NOF_INST            DMA_INSTANCE_COUNT       /* Number of hardware TCD instances */
-
-/*-----------------------------------------------/
-/  SOC SPECIFIC DMA TOTAL CHANNELS               /
-/-----------------------------------------------*/
-#define DMA_IP_NOF_HWV2_CH                  (DMA_IP_HWV2_TCD_NOF_INST * DMA_IP_HWV2_TCD_NOF_CH)  /* Total number of hardware channels of all instances */
-
-/*-----------------------------------------------/
-/  SOC SPECIFIC DMA TCD ALIGNMENT                /
-/-----------------------------------------------*/
-#define DMA_IP_TCD_NOT_ALIGNED               STD_OFF
-
-/*==================================================================================================
-   COMMON DMA REGISTER PROTECTION
-==================================================================================================*/
-/*-----------------------------------------------/
-/  DMA REGISTER PROTECTION SIZE                  /
-/-----------------------------------------------*/
-#define DMA_IP_REG_PROT_SIZE                ((uint32)0x4U)
-
-/*-----------------------------------------------/
-/  DMA BASE REGISTER ADDRESS                     /
-/-----------------------------------------------*/
-#define DMA_IP_BASE_ADDR(instIdx)           ((uint32)IP_DMA_BASE)
-
-#define DMA_IP_CSR_BASE_ADDR(instIdx) \
-        ((uint32)(DMA_IP_BASE_ADDR(instIdx)))
-
-/*-----------------------------------------------/
-/  DMAMUX BASE REGISTER ADDRESS                  /
-/-----------------------------------------------*/
-#define DMA_IP_DMAMUX_BASE_ADDR(instIdx) \
-        ((uint32)(((instIdx)>0UL) ? \
-        (DMAMUX_1_BASE) : (DMAMUX_0_BASE)))
-
-/*==================================================================================================
-                                        DMA MP STRUCTURE
-==================================================================================================*/
-typedef struct {
-  __IO uint32_t reg_CR;                                /**< Control Register, offset: 0x0 */
-  __I  uint32_t reg_ES;                                /**< Error Status Register, offset: 0x4 */
-       uint8_t RESERVED_0[4];
-  __IO uint32_t reg_ERQ;                               /**< Enable Request Register, offset: 0xC */
-       uint8_t RESERVED_1[4];
-  __IO uint32_t reg_EEI;                               /**< Enable Error Interrupt Register, offset: 0x14 */
-  __O  uint8_t  reg_CEEI;                               /**< Clear Enable Error Interrupt Register, offset: 0x18 */
-  __O  uint8_t  reg_SEEI;                               /**< Set Enable Error Interrupt Register, offset: 0x19 */
-  __O  uint8_t  reg_CERQ;                               /**< Clear Enable Request Register, offset: 0x1A */
-  __O  uint8_t  reg_SERQ;                               /**< Set Enable Request Register, offset: 0x1B */
-  __O  uint8_t  reg_CDNE;                               /**< Clear DONE Status Bit Register, offset: 0x1C */
-  __O  uint8_t  reg_SSRT;                               /**< Set START Bit Register, offset: 0x1D */
-  __O  uint8_t  reg_CERR;                               /**< Clear Error Register, offset: 0x1E */
-  __O  uint8_t  reg_CINT;                               /**< Clear Interrupt Request Register, offset: 0x1F */
-       uint8_t RESERVED_2[4];
-  __IO uint32_t reg_INT;                               /**< Interrupt Request Register, offset: 0x24 */
-       uint8_t RESERVED_3[4];
-  __IO uint32_t reg_ERR;                               /**< Error Register, offset: 0x2C */
-       uint8_t RESERVED_4[4];
-  __I  uint32_t reg_HRS;                               /**< Hardware Request Status Register, offset: 0x34 */
-       uint8_t RESERVED_5[12];
-  __IO uint32_t reg_EARS;                              /**< Enable Asynchronous Request in Stop Register, offset: 0x44 */
-       uint8_t RESERVED_6[184];
-  __IO uint8_t  reg_DCHPRI[DMA_DCHPRI_COUNT];           /**< Channel n Priority Register, array offset: 0x100, array step: 0x1 */
-       uint8_t RESERVED_7[3824];
-} Dma_Ip_Hwv2InstRegType;
-
-/*==================================================================================================
-                                         TCD STRUCTURE
-==================================================================================================*/
-
-typedef struct {
-    uint32 reg_SADDR;                       /**< @brief TCD Source Address, array offset: 0x20, array step: 0x1000 */
-    uint16 reg_SOFF;                        /**< @brief TCD Signed Source Address Offset, array offset: 0x24, array step: 0x1000 */
-    uint16 reg_ATTR;                        /**< @brief TCD Transfer Attributes, array offset: 0x26, array step: 0x1000 */
-    union {                             /* offset: 0x28, array step: 0x1000 */
-        uint32 reg_MLOFFNO;                 /**< @brief TCD Transfer Size without Minor Loop Offsets Register, array offset: 0x28, array step: 0x1000 */
-        uint32 reg_MLOFFYES;                /**< @brief TCD Transfer Size with Minor Loop Offsets Register, array offset: 0x28, array step: 0x1000 */
-    } reg_NBYTES;
-    uint32 reg_SLAST;                       /**< @brief TCD Last Source Address Adjustment / Store reg_DADDR Address Register, array offset: 0x2C, array step: 0x1000 */
-    uint32 reg_DADDR;                       /**< @brief TCD Destination Address, array offset: 0x30, array step: 0x1000 */
-    uint16 reg_DOFF;                        /**< @brief TCD Signed Destination Address Offset, array offset: 0x34, array step: 0x1000 */
-    union {                             /* offset: 0x36, array step: 0x1000 */
-        uint16 reg_ELINKNO;                 /**< @brief TCD Current Major Loop Count (Minor Loop Channel Linking Disabled) Register, array offset: 0x36, array step: 0x1000 */
-        uint16 reg_ELINKYES;                /**< @brief TCD Current Major Loop Count (Minor Loop Channel Linking Enabled) Register, array offset: 0x36, array step: 0x1000 */
-    } reg_CITER;
-    uint32 reg_DLAST_SGA;                   /**< @brief TCD Last Destination Address Adjustment / Scatter Gather Address Register, array offset: 0x38, array step: 0x1000 */
-    uint16 reg_CSR;                         /**< @brief TCD Control and Status Register, array offset: 0x3C, array step: 0x1000 */
-    union {                             /* offset: 0x3E, array step: 0x1000 */
-        uint16 reg_ELINKNO;                 /**< @brief TCD Beginning Major Loop Count (Minor Loop Channel Linking Disabled) Register, array offset: 0x3E, array step: 0x1000 */
-        uint16 reg_ELINKYES;                /**< @brief TCD Beginning Major Loop Count (Minor Loop Channel Linking Enabled) Register, array offset: 0x3E, array step: 0x1000 */
-    } reg_BITER;
-} Dma_Ip_TcdRegType, Dma_Ip_SwTcdRegType;
-
-typedef struct {
-    Dma_Ip_TcdRegType tTcdReg;
-} Dma_Ip_Hwv2ChTcdRegType;
-
-#if (DMA_IP_TCD_NOT_ALIGNED == STD_OFF)
-typedef struct {
-    struct {
-        Dma_Ip_Hwv2ChTcdRegType tChTcdReg;
-    } TCD_RSV[DMA_IP_HWV2_TCD_NOF_CH];
-} Dma_Ip_Hwv2TcdArrayType;
-#endif
-
-/*==================================================================================================
-                                       DMAMUX CH STRUCTURE
-==================================================================================================*/
-typedef uint8 Dma_Ip_MuxRegType;
-
-#ifdef __cplusplus
-}
-#endif
-
-/** @} */
-
-#endif  /* #ifndef DMA_IP_CFG_DEVICE_REGISTERS_V2_H_ */
-
-/*==================================================================================================
- *                                        END OF FILE
-==================================================================================================*/
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : DMA,CACHE,TRGMUX,FLEXIO
+*   Dependencies         : none
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+
+/* Prevention from multiple including the same header */
+#ifndef DMA_IP_CFG_DEVICE_REGISTERS_V2_H_
+#define DMA_IP_CFG_DEVICE_REGISTERS_V2_H_
+
+/**
+*   @file    Dma_Ip_Cfg_DeviceRegistersV2.h
+*
+*   @version 1.0.0
+*
+*   @brief   AUTOSAR Mcl - Dma Ip Cfg Device Register V2 header file.
+*   @details Contains common register information and specific register information for
+*            DMA Hardware Version 2.
+*
+*   @addtogroup DMA_IP_DRIVER DMA IP Driver
+*   @{
+*/
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*==================================================================================================
+                                         INCLUDE FILES
+ 1) system and project includes
+ 2) needed interfaces from external units
+ 3) internal and external interfaces from this unit
+==================================================================================================*/
+#include "Mcal.h"
+#include "BasicTypes.h"
+
+#include "S32K146_DMAMUX.h"
+#include "S32K146_DMA.h"
+
+/*==================================================================================================
+                               SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+#define DMA_IP_CFG_DEVICEREGISTERSV2_VENDOR_ID_H                       43
+#define DMA_IP_CFG_DEVICEREGISTERSV2_AR_RELEASE_MAJOR_VERSION_H        4
+#define DMA_IP_CFG_DEVICEREGISTERSV2_AR_RELEASE_MINOR_VERSION_H        4
+#define DMA_IP_CFG_DEVICEREGISTERSV2_AR_RELEASE_REVISION_VERSION_H     0
+#define DMA_IP_CFG_DEVICEREGISTERSV2_SW_MAJOR_VERSION_H                1
+#define DMA_IP_CFG_DEVICEREGISTERSV2_SW_MINOR_VERSION_H                0
+#define DMA_IP_CFG_DEVICEREGISTERSV2_SW_PATCH_VERSION_H                0
+
+/*==================================================================================================
+                                      FILE VERSION CHECKS
+==================================================================================================*/
+#ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
+/* Check if header file and Mcal header file are of the same Autosar version */
+#if ((DMA_IP_CFG_DEVICEREGISTERSV2_AR_RELEASE_MAJOR_VERSION_H != MCAL_AR_RELEASE_MAJOR_VERSION) || \
+     (DMA_IP_CFG_DEVICEREGISTERSV2_AR_RELEASE_MINOR_VERSION_H != MCAL_AR_RELEASE_MINOR_VERSION))
+    #error "AutoSar Version Numbers of Dma_Ip_Cfg_DeviceRegisters.h and Mcal.h are different"
+#endif
+#endif
+
+/*==================================================================================================
+                                       DEFINES AND MACROS
+==================================================================================================*/
+/*-----------------------------------------------/
+/  SOC SPECIFIC DMAMUX INSTANCES                 /
+/-----------------------------------------------*/
+#define DMA_IP_DMAMUX_BASE_PTRS                IP_DMAMUX_BASE_PTRS
+#define DMA_IP_HWV2_DMAMUX_NOF_INST            ((uint32)DMAMUX_INSTANCE_COUNT)
+
+/*-----------------------------------------------/
+/  SOC SPECIFIC DMAMUX CHANNELS                  /
+/-----------------------------------------------*/
+#define DMA_IP_HWV2_DMAMUX_NOF_CHANNELS        ((uint32)DMAMUX_CHCFG_COUNT)
+#define DMA_IP_HWV2_DMAMUX_REG_INDEX_CONV(x)   ((uint32)(x))
+
+/*-----------------------------------------------/
+/  SOC SPECIFIC DMA INSTANCES                    /
+/-----------------------------------------------*/
+#define DMA_IP_BASE                            (IP_DMA_BASE)
+#define DMA_IP_PTR                             ((Dma_Ip_Hwv2InstRegType *)DMA_IP_BASE)
+#define DMA_IP_DMA_HWV2_BASE_PTRS              { DMA_IP_PTR }
+
+#define DMA_IP_HWV2_DMA_MP_GRPRI_COUNT         DMA_IP_MP_GRPRI_COUNT
+
+#define DMA_IP_HWV2_DMA_NOF_INST               DMA_INSTANCE_COUNT       /* Total number of hardware instances */
+
+#define DMA_IP_HWV2_PRIOLVL_REG_INDEX_CONV(x)  ((uint32)(x) ^ 3U)
+
+/*-----------------------------------------------/
+/  SOC SPECIFIC DMA CHANNELS                     /
+/-----------------------------------------------*/
+#define DMA_IP_TCD_BASE                     (IP_DMA_BASE + 4096U)
+#define DMA_IP_TCD_PTR                      ((Dma_Ip_Hwv2TcdArrayType *)DMA_IP_TCD_BASE)
+#define DMA_IP_TCD_HWV2_BASE_PTRS           { DMA_IP_TCD_PTR }
+
+#define DMA_IP_TCD_RESERVED                 (0U)                     /* Reserved space between hardware TCDs */
+
+#define DMA_IP_HWV2_TCD_NOF_CH              DMA_TCD_COUNT            /* Number of hardware channels */
+
+#define DMA_IP_HWV2_TCD_NOF_INST            DMA_INSTANCE_COUNT       /* Number of hardware TCD instances */
+
+/*-----------------------------------------------/
+/  SOC SPECIFIC DMA TOTAL CHANNELS               /
+/-----------------------------------------------*/
+#define DMA_IP_NOF_HWV2_CH                  (DMA_IP_HWV2_TCD_NOF_INST * DMA_IP_HWV2_TCD_NOF_CH)  /* Total number of hardware channels of all instances */
+
+/*-----------------------------------------------/
+/  SOC SPECIFIC DMA TCD ALIGNMENT                /
+/-----------------------------------------------*/
+#define DMA_IP_TCD_NOT_ALIGNED               STD_OFF
+
+/*==================================================================================================
+   COMMON DMA REGISTER PROTECTION
+==================================================================================================*/
+/*-----------------------------------------------/
+/  DMA REGISTER PROTECTION SIZE                  /
+/-----------------------------------------------*/
+#define DMA_IP_REG_PROT_SIZE                ((uint32)0x4U)
+
+/*-----------------------------------------------/
+/  DMA BASE REGISTER ADDRESS                     /
+/-----------------------------------------------*/
+#define DMA_IP_BASE_ADDR(instIdx)           ((uint32)IP_DMA_BASE)
+
+#define DMA_IP_CSR_BASE_ADDR(instIdx) \
+        ((uint32)(DMA_IP_BASE_ADDR(instIdx)))
+
+/*-----------------------------------------------/
+/  DMAMUX BASE REGISTER ADDRESS                  /
+/-----------------------------------------------*/
+#define DMA_IP_DMAMUX_BASE_ADDR(instIdx) \
+        ((uint32)(((instIdx)>0UL) ? \
+        (DMAMUX_1_BASE) : (DMAMUX_0_BASE)))
+
+/*==================================================================================================
+                                        DMA MP STRUCTURE
+==================================================================================================*/
+typedef struct {
+  __IO uint32_t reg_CR;                                /**< Control Register, offset: 0x0 */
+  __I  uint32_t reg_ES;                                /**< Error Status Register, offset: 0x4 */
+       uint8_t RESERVED_0[4];
+  __IO uint32_t reg_ERQ;                               /**< Enable Request Register, offset: 0xC */
+       uint8_t RESERVED_1[4];
+  __IO uint32_t reg_EEI;                               /**< Enable Error Interrupt Register, offset: 0x14 */
+  __O  uint8_t  reg_CEEI;                               /**< Clear Enable Error Interrupt Register, offset: 0x18 */
+  __O  uint8_t  reg_SEEI;                               /**< Set Enable Error Interrupt Register, offset: 0x19 */
+  __O  uint8_t  reg_CERQ;                               /**< Clear Enable Request Register, offset: 0x1A */
+  __O  uint8_t  reg_SERQ;                               /**< Set Enable Request Register, offset: 0x1B */
+  __O  uint8_t  reg_CDNE;                               /**< Clear DONE Status Bit Register, offset: 0x1C */
+  __O  uint8_t  reg_SSRT;                               /**< Set START Bit Register, offset: 0x1D */
+  __O  uint8_t  reg_CERR;                               /**< Clear Error Register, offset: 0x1E */
+  __O  uint8_t  reg_CINT;                               /**< Clear Interrupt Request Register, offset: 0x1F */
+       uint8_t RESERVED_2[4];
+  __IO uint32_t reg_INT;                               /**< Interrupt Request Register, offset: 0x24 */
+       uint8_t RESERVED_3[4];
+  __IO uint32_t reg_ERR;                               /**< Error Register, offset: 0x2C */
+       uint8_t RESERVED_4[4];
+  __I  uint32_t reg_HRS;                               /**< Hardware Request Status Register, offset: 0x34 */
+       uint8_t RESERVED_5[12];
+  __IO uint32_t reg_EARS;                              /**< Enable Asynchronous Request in Stop Register, offset: 0x44 */
+       uint8_t RESERVED_6[184];
+  __IO uint8_t  reg_DCHPRI[DMA_DCHPRI_COUNT];           /**< Channel n Priority Register, array offset: 0x100, array step: 0x1 */
+       uint8_t RESERVED_7[3824];
+} Dma_Ip_Hwv2InstRegType;
+
+/*==================================================================================================
+                                         TCD STRUCTURE
+==================================================================================================*/
+
+typedef struct {
+    uint32 reg_SADDR;                       /**< @brief TCD Source Address, array offset: 0x20, array step: 0x1000 */
+    uint16 reg_SOFF;                        /**< @brief TCD Signed Source Address Offset, array offset: 0x24, array step: 0x1000 */
+    uint16 reg_ATTR;                        /**< @brief TCD Transfer Attributes, array offset: 0x26, array step: 0x1000 */
+    union {                             /* offset: 0x28, array step: 0x1000 */
+        uint32 reg_MLOFFNO;                 /**< @brief TCD Transfer Size without Minor Loop Offsets Register, array offset: 0x28, array step: 0x1000 */
+        uint32 reg_MLOFFYES;                /**< @brief TCD Transfer Size with Minor Loop Offsets Register, array offset: 0x28, array step: 0x1000 */
+    } reg_NBYTES;
+    uint32 reg_SLAST;                       /**< @brief TCD Last Source Address Adjustment / Store reg_DADDR Address Register, array offset: 0x2C, array step: 0x1000 */
+    uint32 reg_DADDR;                       /**< @brief TCD Destination Address, array offset: 0x30, array step: 0x1000 */
+    uint16 reg_DOFF;                        /**< @brief TCD Signed Destination Address Offset, array offset: 0x34, array step: 0x1000 */
+    union {                             /* offset: 0x36, array step: 0x1000 */
+        uint16 reg_ELINKNO;                 /**< @brief TCD Current Major Loop Count (Minor Loop Channel Linking Disabled) Register, array offset: 0x36, array step: 0x1000 */
+        uint16 reg_ELINKYES;                /**< @brief TCD Current Major Loop Count (Minor Loop Channel Linking Enabled) Register, array offset: 0x36, array step: 0x1000 */
+    } reg_CITER;
+    uint32 reg_DLAST_SGA;                   /**< @brief TCD Last Destination Address Adjustment / Scatter Gather Address Register, array offset: 0x38, array step: 0x1000 */
+    uint16 reg_CSR;                         /**< @brief TCD Control and Status Register, array offset: 0x3C, array step: 0x1000 */
+    union {                             /* offset: 0x3E, array step: 0x1000 */
+        uint16 reg_ELINKNO;                 /**< @brief TCD Beginning Major Loop Count (Minor Loop Channel Linking Disabled) Register, array offset: 0x3E, array step: 0x1000 */
+        uint16 reg_ELINKYES;                /**< @brief TCD Beginning Major Loop Count (Minor Loop Channel Linking Enabled) Register, array offset: 0x3E, array step: 0x1000 */
+    } reg_BITER;
+} Dma_Ip_TcdRegType, Dma_Ip_SwTcdRegType;
+
+typedef struct {
+    Dma_Ip_TcdRegType tTcdReg;
+} Dma_Ip_Hwv2ChTcdRegType;
+
+#if (DMA_IP_TCD_NOT_ALIGNED == STD_OFF)
+typedef struct {
+    struct {
+        Dma_Ip_Hwv2ChTcdRegType tChTcdReg;
+    } TCD_RSV[DMA_IP_HWV2_TCD_NOF_CH];
+} Dma_Ip_Hwv2TcdArrayType;
+#endif
+
+/*==================================================================================================
+                                       DMAMUX CH STRUCTURE
+==================================================================================================*/
+typedef uint8 Dma_Ip_MuxRegType;
+
+#ifdef __cplusplus
+}
+#endif
+
+/** @} */
+
+#endif  /* #ifndef DMA_IP_CFG_DEVICE_REGISTERS_V2_H_ */
+
+/*==================================================================================================
+ *                                        END OF FILE
+==================================================================================================*/

+ 99 - 99
generate/include/Dma_Ip_Cfg_Devices.h

@@ -1,99 +1,99 @@
-/*==================================================================================================
-*   Project              : RTD AUTOSAR 4.4
-*   Platform             : CORTEXM
-*   Peripheral           : DMA,CACHE,TRGMUX,FLEXIO
-*   Dependencies         : none
-*
-*   Autosar Version      : 4.4.0
-*   Autosar Revision     : ASR_REL_4_4_REV_0000
-*   Autosar Conf.Variant :
-*   SW Version           : 1.0.0
-*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
-*
-*   (c) Copyright 2020-2021 NXP Semiconductors
-*   All Rights Reserved.
-*
-*   NXP Confidential. This software is owned or controlled by NXP and may only be
-*   used strictly in accordance with the applicable license terms. By expressly
-*   accepting such terms or by downloading, installing, activating and/or otherwise
-*   using the software, you are agreeing that you have read, and that you agree to
-*   comply with and are bound by, such license terms. If you do not agree to be
-*   bound by the applicable license terms, then you may not retain, install,
-*   activate or otherwise use the software.
-==================================================================================================*/
-
-/* Prevention from multiple including the same header */
-#ifndef DMA_IP_CFG_DEVICES_H_
-#define DMA_IP_CFG_DEVICES_H_
-
-/**
-*   @file    Dma_Ip_Cfg_Devices.h
-*
-*   @version 1.0.0
-*
-*   @brief   AUTOSAR Mcl - Dma Ip Cfg Devices header file.
-*   @details 
-*
-*   @addtogroup DMA_IP_DRIVER DMA IP Driver
-*   @{
-*/
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-/*==================================================================================================
-                                         INCLUDE FILES
- 1) system and project includes
- 2) needed interfaces from external units
- 3) internal and external interfaces from this unit
-==================================================================================================*/
-#include "Dma_Ip_Cfg_DeviceRegistersV2.h"
-
-/*==================================================================================================
-                               SOURCE FILE VERSION INFORMATION
-==================================================================================================*/
-#define DMA_IP_CFG_DEVICES_VENDOR_ID_H                       43
-#define DMA_IP_CFG_DEVICES_AR_RELEASE_MAJOR_VERSION_H        4
-#define DMA_IP_CFG_DEVICES_AR_RELEASE_MINOR_VERSION_H        4
-#define DMA_IP_CFG_DEVICES_AR_RELEASE_REVISION_VERSION_H     0
-#define DMA_IP_CFG_DEVICES_SW_MAJOR_VERSION_H                1
-#define DMA_IP_CFG_DEVICES_SW_MINOR_VERSION_H                0
-#define DMA_IP_CFG_DEVICES_SW_PATCH_VERSION_H                0
-
-/*==================================================================================================
-                                      FILE VERSION CHECKS
-==================================================================================================*/
-/* Check if header file and Dma_Ip_Cfg_DeviceRegistersV2.h file are of the same vendor */
-#if (DMA_IP_CFG_DEVICES_VENDOR_ID_H != DMA_IP_CFG_DEVICEREGISTERSV2_VENDOR_ID_H)
-    #error "Dma_Ip_Devices.h and Dma_Ip_Cfg_DeviceRegistersV2.h have different vendor ids"
-#endif
-
-/* Check if header file and Dma_Ip_Cfg_DeviceRegistersV2.h file are of the same Autosar version */
-#if ((DMA_IP_CFG_DEVICES_AR_RELEASE_MAJOR_VERSION_H != DMA_IP_CFG_DEVICEREGISTERSV2_AR_RELEASE_MAJOR_VERSION_H) || \
-     (DMA_IP_CFG_DEVICES_AR_RELEASE_MINOR_VERSION_H != DMA_IP_CFG_DEVICEREGISTERSV2_AR_RELEASE_MINOR_VERSION_H) || \
-     (DMA_IP_CFG_DEVICES_AR_RELEASE_REVISION_VERSION_H != DMA_IP_CFG_DEVICEREGISTERSV2_AR_RELEASE_REVISION_VERSION_H) \
-    )
-    #error "AutoSar Version Numbers of Dma_Ip_Devices.h and Dma_Ip_Cfg_DeviceRegistersV2.h are different"
-#endif
-
-/* Check if header file and Dma_Ip_Cfg_DeviceRegistersV2.h file are of the same Software version */
-#if ((DMA_IP_CFG_DEVICES_SW_MAJOR_VERSION_H != DMA_IP_CFG_DEVICEREGISTERSV2_SW_MAJOR_VERSION_H) || \
-     (DMA_IP_CFG_DEVICES_SW_MINOR_VERSION_H != DMA_IP_CFG_DEVICEREGISTERSV2_SW_MINOR_VERSION_H) || \
-     (DMA_IP_CFG_DEVICES_SW_PATCH_VERSION_H != DMA_IP_CFG_DEVICEREGISTERSV2_SW_PATCH_VERSION_H) \
-    )
-    #error "Software Version Numbers of Dma_Ip_Devices.h and Dma_Ip_Cfg_DeviceRegistersV2.h are different"
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-/** @} */
-
-#endif  /* #ifndef DMA_IP_CFG_DEVICES_H_ */
-
-/*==================================================================================================
- *                                        END OF FILE
-==================================================================================================*/
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : DMA,CACHE,TRGMUX,FLEXIO
+*   Dependencies         : none
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+
+/* Prevention from multiple including the same header */
+#ifndef DMA_IP_CFG_DEVICES_H_
+#define DMA_IP_CFG_DEVICES_H_
+
+/**
+*   @file    Dma_Ip_Cfg_Devices.h
+*
+*   @version 1.0.0
+*
+*   @brief   AUTOSAR Mcl - Dma Ip Cfg Devices header file.
+*   @details 
+*
+*   @addtogroup DMA_IP_DRIVER DMA IP Driver
+*   @{
+*/
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*==================================================================================================
+                                         INCLUDE FILES
+ 1) system and project includes
+ 2) needed interfaces from external units
+ 3) internal and external interfaces from this unit
+==================================================================================================*/
+#include "Dma_Ip_Cfg_DeviceRegistersV2.h"
+
+/*==================================================================================================
+                               SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+#define DMA_IP_CFG_DEVICES_VENDOR_ID_H                       43
+#define DMA_IP_CFG_DEVICES_AR_RELEASE_MAJOR_VERSION_H        4
+#define DMA_IP_CFG_DEVICES_AR_RELEASE_MINOR_VERSION_H        4
+#define DMA_IP_CFG_DEVICES_AR_RELEASE_REVISION_VERSION_H     0
+#define DMA_IP_CFG_DEVICES_SW_MAJOR_VERSION_H                1
+#define DMA_IP_CFG_DEVICES_SW_MINOR_VERSION_H                0
+#define DMA_IP_CFG_DEVICES_SW_PATCH_VERSION_H                0
+
+/*==================================================================================================
+                                      FILE VERSION CHECKS
+==================================================================================================*/
+/* Check if header file and Dma_Ip_Cfg_DeviceRegistersV2.h file are of the same vendor */
+#if (DMA_IP_CFG_DEVICES_VENDOR_ID_H != DMA_IP_CFG_DEVICEREGISTERSV2_VENDOR_ID_H)
+    #error "Dma_Ip_Devices.h and Dma_Ip_Cfg_DeviceRegistersV2.h have different vendor ids"
+#endif
+
+/* Check if header file and Dma_Ip_Cfg_DeviceRegistersV2.h file are of the same Autosar version */
+#if ((DMA_IP_CFG_DEVICES_AR_RELEASE_MAJOR_VERSION_H != DMA_IP_CFG_DEVICEREGISTERSV2_AR_RELEASE_MAJOR_VERSION_H) || \
+     (DMA_IP_CFG_DEVICES_AR_RELEASE_MINOR_VERSION_H != DMA_IP_CFG_DEVICEREGISTERSV2_AR_RELEASE_MINOR_VERSION_H) || \
+     (DMA_IP_CFG_DEVICES_AR_RELEASE_REVISION_VERSION_H != DMA_IP_CFG_DEVICEREGISTERSV2_AR_RELEASE_REVISION_VERSION_H) \
+    )
+    #error "AutoSar Version Numbers of Dma_Ip_Devices.h and Dma_Ip_Cfg_DeviceRegistersV2.h are different"
+#endif
+
+/* Check if header file and Dma_Ip_Cfg_DeviceRegistersV2.h file are of the same Software version */
+#if ((DMA_IP_CFG_DEVICES_SW_MAJOR_VERSION_H != DMA_IP_CFG_DEVICEREGISTERSV2_SW_MAJOR_VERSION_H) || \
+     (DMA_IP_CFG_DEVICES_SW_MINOR_VERSION_H != DMA_IP_CFG_DEVICEREGISTERSV2_SW_MINOR_VERSION_H) || \
+     (DMA_IP_CFG_DEVICES_SW_PATCH_VERSION_H != DMA_IP_CFG_DEVICEREGISTERSV2_SW_PATCH_VERSION_H) \
+    )
+    #error "Software Version Numbers of Dma_Ip_Devices.h and Dma_Ip_Cfg_DeviceRegistersV2.h are different"
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+/** @} */
+
+#endif  /* #ifndef DMA_IP_CFG_DEVICES_H_ */
+
+/*==================================================================================================
+ *                                        END OF FILE
+==================================================================================================*/

+ 149 - 149
generate/include/Dma_Ip_VS_0_PBcfg.h

@@ -1,149 +1,149 @@
-/*==================================================================================================
-*   Project              : RTD AUTOSAR 4.4
-*   Platform             : CORTEXM
-*   Peripheral           : DMA,CACHE,TRGMUX,FLEXIO
-*   Dependencies         : none
-*
-*   Autosar Version      : 4.4.0
-*   Autosar Revision     : ASR_REL_4_4_REV_0000
-*   Autosar Conf.Variant :
-*   SW Version           : 1.0.0
-*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
-*
-*   (c) Copyright 2020-2021 NXP Semiconductors
-*   All Rights Reserved.
-*
-*   NXP Confidential. This software is owned or controlled by NXP and may only be
-*   used strictly in accordance with the applicable license terms. By expressly
-*   accepting such terms or by downloading, installing, activating and/or otherwise
-*   using the software, you are agreeing that you have read, and that you agree to
-*   comply with and are bound by, such license terms. If you do not agree to be
-*   bound by the applicable license terms, then you may not retain, install,
-*   activate or otherwise use the software.
-==================================================================================================*/
-
-#ifndef DMA_IP_PBCFG_VS_0_H_
-#define DMA_IP_PBCFG_VS_0_H_
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-/*==================================================================================================
-*                                        INCLUDE FILES
-* 1) system and project includes
-* 2) needed interfaces from external units
-* 3) internal and external interfaces from this unit
-==================================================================================================*/
-
-/*==================================================================================================
-*                              SOURCE FILE VERSION INFORMATION
-==================================================================================================*/
-#define DMA_IP_VS_0_PBCFG_VENDOR_ID_H                        43
-#define DMA_IP_VS_0_PBCFG_AR_RELEASE_MAJOR_VERSION_H         4
-#define DMA_IP_VS_0_PBCFG_AR_RELEASE_MINOR_VERSION_H         4
-#define DMA_IP_VS_0_PBCFG_AR_RELEASE_REVISION_VERSION_H      0
-#define DMA_IP_VS_0_PBCFG_SW_MAJOR_VERSION_H                 1
-#define DMA_IP_VS_0_PBCFG_SW_MINOR_VERSION_H                 0
-#define DMA_IP_VS_0_PBCFG_SW_PATCH_VERSION_H                 0
-
-/*==================================================================================================
-                                      FILE VERSION CHECKS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                          CONSTANTS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                      DEFINES AND MACROS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                             ENUMS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                STRUCTURES AND OTHER TYPEDEFS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                GLOBAL VARIABLE DECLARATIONS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                    FUNCTION PROTOTYPES
-==================================================================================================*/
-
-#define MCL_START_SEC_CODE
-/* @violates @ref Mcl_Dma_h_REF_1 MISRA 2012 Required Directive 4.10, Precautions shall be taken in order to prevent the contents of a header file being included more than once. */
-#include "Mcl_MemMap.h"
-
-void Lpuart_0_Uart_Ip_DmaRxCompleteCallback(void);
-
-
-#define MCL_STOP_SEC_CODE
-/* @violates @ref Mcl_Dma_h_REF_1 MISRA 2012 Required Directive 4.10, Precautions shall be taken in order to prevent the contents of a header file being included more than once. */
-#include "Mcl_MemMap.h"
-#define MCL_START_SEC_CODE
-/* @violates @ref Mcl_Dma_h_REF_1 MISRA 2012 Required Directive 4.10, Precautions shall be taken in order to prevent the contents of a header file being included more than once. */
-#include "Mcl_MemMap.h"
-
-void Lpuart_1_Uart_Ip_DmaRxCompleteCallback(void);
-
-
-#define MCL_STOP_SEC_CODE
-/* @violates @ref Mcl_Dma_h_REF_1 MISRA 2012 Required Directive 4.10, Precautions shall be taken in order to prevent the contents of a header file being included more than once. */
-#include "Mcl_MemMap.h"
-#define MCL_START_SEC_CODE
-/* @violates @ref Mcl_Dma_h_REF_1 MISRA 2012 Required Directive 4.10, Precautions shall be taken in order to prevent the contents of a header file being included more than once. */
-#include "Mcl_MemMap.h"
-
-void Lpuart_2_Uart_Ip_DmaRxCompleteCallback(void);
-
-
-#define MCL_STOP_SEC_CODE
-/* @violates @ref Mcl_Dma_h_REF_1 MISRA 2012 Required Directive 4.10, Precautions shall be taken in order to prevent the contents of a header file being included more than once. */
-#include "Mcl_MemMap.h"
-#define MCL_START_SEC_CODE
-/* @violates @ref Mcl_Dma_h_REF_1 MISRA 2012 Required Directive 4.10, Precautions shall be taken in order to prevent the contents of a header file being included more than once. */
-#include "Mcl_MemMap.h"
-
-void Lpuart_0_Uart_Ip_DmaTxCompleteCallback(void);
-
-
-#define MCL_STOP_SEC_CODE
-/* @violates @ref Mcl_Dma_h_REF_1 MISRA 2012 Required Directive 4.10, Precautions shall be taken in order to prevent the contents of a header file being included more than once. */
-#include "Mcl_MemMap.h"
-#define MCL_START_SEC_CODE
-/* @violates @ref Mcl_Dma_h_REF_1 MISRA 2012 Required Directive 4.10, Precautions shall be taken in order to prevent the contents of a header file being included more than once. */
-#include "Mcl_MemMap.h"
-
-void Lpuart_1_Uart_Ip_DmaTxCompleteCallback(void);
-
-
-#define MCL_STOP_SEC_CODE
-/* @violates @ref Mcl_Dma_h_REF_1 MISRA 2012 Required Directive 4.10, Precautions shall be taken in order to prevent the contents of a header file being included more than once. */
-#include "Mcl_MemMap.h"
-#define MCL_START_SEC_CODE
-/* @violates @ref Mcl_Dma_h_REF_1 MISRA 2012 Required Directive 4.10, Precautions shall be taken in order to prevent the contents of a header file being included more than once. */
-#include "Mcl_MemMap.h"
-
-void Lpuart_2_Uart_Ip_DmaTxCompleteCallback(void);
-
-
-#define MCL_STOP_SEC_CODE
-/* @violates @ref Mcl_Dma_h_REF_1 MISRA 2012 Required Directive 4.10, Precautions shall be taken in order to prevent the contents of a header file being included more than once. */
-#include "Mcl_MemMap.h"
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /*DMA_IP_PBCFG_VS_0_H_*/
-
-/*==================================================================================================
- *                                        END OF FILE
-==================================================================================================*/
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : DMA,CACHE,TRGMUX,FLEXIO
+*   Dependencies         : none
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+
+#ifndef DMA_IP_PBCFG_VS_0_H_
+#define DMA_IP_PBCFG_VS_0_H_
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*==================================================================================================
+*                                        INCLUDE FILES
+* 1) system and project includes
+* 2) needed interfaces from external units
+* 3) internal and external interfaces from this unit
+==================================================================================================*/
+
+/*==================================================================================================
+*                              SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+#define DMA_IP_VS_0_PBCFG_VENDOR_ID_H                        43
+#define DMA_IP_VS_0_PBCFG_AR_RELEASE_MAJOR_VERSION_H         4
+#define DMA_IP_VS_0_PBCFG_AR_RELEASE_MINOR_VERSION_H         4
+#define DMA_IP_VS_0_PBCFG_AR_RELEASE_REVISION_VERSION_H      0
+#define DMA_IP_VS_0_PBCFG_SW_MAJOR_VERSION_H                 1
+#define DMA_IP_VS_0_PBCFG_SW_MINOR_VERSION_H                 0
+#define DMA_IP_VS_0_PBCFG_SW_PATCH_VERSION_H                 0
+
+/*==================================================================================================
+                                      FILE VERSION CHECKS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                          CONSTANTS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                      DEFINES AND MACROS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                             ENUMS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                STRUCTURES AND OTHER TYPEDEFS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                GLOBAL VARIABLE DECLARATIONS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                    FUNCTION PROTOTYPES
+==================================================================================================*/
+
+#define MCL_START_SEC_CODE
+/* @violates @ref Mcl_Dma_h_REF_1 MISRA 2012 Required Directive 4.10, Precautions shall be taken in order to prevent the contents of a header file being included more than once. */
+#include "Mcl_MemMap.h"
+
+void Lpuart_0_Uart_Ip_DmaRxCompleteCallback(void);
+
+
+#define MCL_STOP_SEC_CODE
+/* @violates @ref Mcl_Dma_h_REF_1 MISRA 2012 Required Directive 4.10, Precautions shall be taken in order to prevent the contents of a header file being included more than once. */
+#include "Mcl_MemMap.h"
+#define MCL_START_SEC_CODE
+/* @violates @ref Mcl_Dma_h_REF_1 MISRA 2012 Required Directive 4.10, Precautions shall be taken in order to prevent the contents of a header file being included more than once. */
+#include "Mcl_MemMap.h"
+
+void Lpuart_1_Uart_Ip_DmaRxCompleteCallback(void);
+
+
+#define MCL_STOP_SEC_CODE
+/* @violates @ref Mcl_Dma_h_REF_1 MISRA 2012 Required Directive 4.10, Precautions shall be taken in order to prevent the contents of a header file being included more than once. */
+#include "Mcl_MemMap.h"
+#define MCL_START_SEC_CODE
+/* @violates @ref Mcl_Dma_h_REF_1 MISRA 2012 Required Directive 4.10, Precautions shall be taken in order to prevent the contents of a header file being included more than once. */
+#include "Mcl_MemMap.h"
+
+void Lpuart_2_Uart_Ip_DmaRxCompleteCallback(void);
+
+
+#define MCL_STOP_SEC_CODE
+/* @violates @ref Mcl_Dma_h_REF_1 MISRA 2012 Required Directive 4.10, Precautions shall be taken in order to prevent the contents of a header file being included more than once. */
+#include "Mcl_MemMap.h"
+#define MCL_START_SEC_CODE
+/* @violates @ref Mcl_Dma_h_REF_1 MISRA 2012 Required Directive 4.10, Precautions shall be taken in order to prevent the contents of a header file being included more than once. */
+#include "Mcl_MemMap.h"
+
+void Lpuart_0_Uart_Ip_DmaTxCompleteCallback(void);
+
+
+#define MCL_STOP_SEC_CODE
+/* @violates @ref Mcl_Dma_h_REF_1 MISRA 2012 Required Directive 4.10, Precautions shall be taken in order to prevent the contents of a header file being included more than once. */
+#include "Mcl_MemMap.h"
+#define MCL_START_SEC_CODE
+/* @violates @ref Mcl_Dma_h_REF_1 MISRA 2012 Required Directive 4.10, Precautions shall be taken in order to prevent the contents of a header file being included more than once. */
+#include "Mcl_MemMap.h"
+
+void Lpuart_1_Uart_Ip_DmaTxCompleteCallback(void);
+
+
+#define MCL_STOP_SEC_CODE
+/* @violates @ref Mcl_Dma_h_REF_1 MISRA 2012 Required Directive 4.10, Precautions shall be taken in order to prevent the contents of a header file being included more than once. */
+#include "Mcl_MemMap.h"
+#define MCL_START_SEC_CODE
+/* @violates @ref Mcl_Dma_h_REF_1 MISRA 2012 Required Directive 4.10, Precautions shall be taken in order to prevent the contents of a header file being included more than once. */
+#include "Mcl_MemMap.h"
+
+void Lpuart_2_Uart_Ip_DmaTxCompleteCallback(void);
+
+
+#define MCL_STOP_SEC_CODE
+/* @violates @ref Mcl_Dma_h_REF_1 MISRA 2012 Required Directive 4.10, Precautions shall be taken in order to prevent the contents of a header file being included more than once. */
+#include "Mcl_MemMap.h"
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /*DMA_IP_PBCFG_VS_0_H_*/
+
+/*==================================================================================================
+ *                                        END OF FILE
+==================================================================================================*/

+ 119 - 119
generate/include/EcuM_Cfg.h

@@ -1,119 +1,119 @@
-/*==================================================================================================
-*   Project              : RTD AUTOSAR 4.4
-*   Platform             : CORTEXM
-*   Peripheral           : 
-*   Dependencies         : 
-*
-*   Autosar Version      : 4.4.0
-*   Autosar Revision     : ASR_REL_4_4_REV_0000
-*   Autosar Conf.Variant :
-*   SW Version           : 1.0.0
-*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
-*
-*   (c) Copyright 2020-2021 NXP Semiconductors
-*   All Rights Reserved.
-*
-*   NXP Confidential. This software is owned or controlled by NXP and may only be
-*   used strictly in accordance with the applicable license terms. By expressly
-*   accepting such terms or by downloading, installing, activating and/or otherwise
-*   using the software, you are agreeing that you have read, and that you agree to
-*   comply with and are bound by, such license terms. If you do not agree to be
-*   bound by the applicable license terms, then you may not retain, install,
-*   activate or otherwise use the software.
-==================================================================================================*/
-
-#ifndef ECUM_CFG_H
-#define ECUM_CFG_H
-
-/**
-*   @file
-*
-*   @addtogroup ECUM_MODULE EcuM Module
-*   @{
-*/
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-/*==================================================================================================
-*                                         INCLUDE FILES
-* 1) system and project includes
-* 2) needed interfaces from external units
-* 3) internal and external interfaces from this unit
-==================================================================================================*/
-
-
-/*==================================================================================================
-*                               SOURCE FILE VERSION INFORMATION
-==================================================================================================*/
-#define ECUM_CFG_VENDOR_ID                      43
-#define ECUM_CFG_MODULE_ID                      10
-#define ECUM_CFG_AR_RELEASE_MAJOR_VERSION       4
-#define ECUM_CFG_AR_RELEASE_MINOR_VERSION       4
-#define ECUM_CFG_AR_RELEASE_REVISION_VERSION    0
-#define ECUM_CFG_SW_MAJOR_VERSION               1
-#define ECUM_CFG_SW_MINOR_VERSION               0
-#define ECUM_CFG_SW_PATCH_VERSION               0
-
-/*==================================================================================================
-*                                      FILE VERSION CHECKS
-==================================================================================================*/
-
-
-/*==================================================================================================
- *                                          CONSTANTS
-==================================================================================================*/
-
-/*==================================================================================================
-                                       DEFINES AND MACROS
-==================================================================================================*/
-/* ========= user defined wakeup sources ========= */
-
-
-#if (defined EcuMConf_EcuMWakeupSource_EcuMWakeupSource_0) /* to prevent double declaration */
-#error EcuMConf_EcuMWakeupSource_EcuMWakeupSource_0 already defined
-#endif
-/** @brief Identifier for wakeup source EcuMWakeupSource_0*/
-#define EcuMConf_EcuMWakeupSource_EcuMWakeupSource_0 ((uint32)((uint32)1U<<0))
-
-#if (defined EcuMConf_EcuMWakeupSource_EcuMWakeupSource_1) /* to prevent double declaration */
-#error EcuMConf_EcuMWakeupSource_EcuMWakeupSource_1 already defined
-#endif
-/** @brief Identifier for wakeup source EcuMWakeupSource_1*/
-#define EcuMConf_EcuMWakeupSource_EcuMWakeupSource_1 ((uint32)((uint32)1U<<1))
-
-
-
-/* ======== Sleep modes ======== */
-
-
-#if (defined EcuMConf_EcuMSleepMode_EcuMSleepMode_0) /* to prevent double declaration */
-#error EcuMConf_EcuMSleepMode_EcuMSleepMode_0 already defined
-#endif
-/** @brief Identifier for wakeup source EcuMSleepMode_0*/
-#define EcuMConf_EcuMSleepMode_EcuMSleepMode_0 0x0U
-
-
-/*==================================================================================================
-*                                             ENUMS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                 STRUCTURES AND OTHER TYPEDEFS
-==================================================================================================*/
-typedef uint32 EcuM_WakeupSourceType; /**< @brief variable type for ECU Manager wakeup sources*/
-
-/*==================================================================================================
-*                                 GLOBAL VARIABLE DECLARATIONS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                    FUNCTION PROTOTYPES
-==================================================================================================*/
-#ifdef __cplusplus
-}
-#endif
-
-/** @} */
-
-#endif /* ECUM_CFG_H */
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : 
+*   Dependencies         : 
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+
+#ifndef ECUM_CFG_H
+#define ECUM_CFG_H
+
+/**
+*   @file
+*
+*   @addtogroup ECUM_MODULE EcuM Module
+*   @{
+*/
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*==================================================================================================
+*                                         INCLUDE FILES
+* 1) system and project includes
+* 2) needed interfaces from external units
+* 3) internal and external interfaces from this unit
+==================================================================================================*/
+
+
+/*==================================================================================================
+*                               SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+#define ECUM_CFG_VENDOR_ID                      43
+#define ECUM_CFG_MODULE_ID                      10
+#define ECUM_CFG_AR_RELEASE_MAJOR_VERSION       4
+#define ECUM_CFG_AR_RELEASE_MINOR_VERSION       4
+#define ECUM_CFG_AR_RELEASE_REVISION_VERSION    0
+#define ECUM_CFG_SW_MAJOR_VERSION               1
+#define ECUM_CFG_SW_MINOR_VERSION               0
+#define ECUM_CFG_SW_PATCH_VERSION               0
+
+/*==================================================================================================
+*                                      FILE VERSION CHECKS
+==================================================================================================*/
+
+
+/*==================================================================================================
+ *                                          CONSTANTS
+==================================================================================================*/
+
+/*==================================================================================================
+                                       DEFINES AND MACROS
+==================================================================================================*/
+/* ========= user defined wakeup sources ========= */
+
+
+#if (defined EcuMConf_EcuMWakeupSource_EcuMWakeupSource_0) /* to prevent double declaration */
+#error EcuMConf_EcuMWakeupSource_EcuMWakeupSource_0 already defined
+#endif
+/** @brief Identifier for wakeup source EcuMWakeupSource_0*/
+#define EcuMConf_EcuMWakeupSource_EcuMWakeupSource_0 ((uint32)((uint32)1U<<0))
+
+#if (defined EcuMConf_EcuMWakeupSource_EcuMWakeupSource_1) /* to prevent double declaration */
+#error EcuMConf_EcuMWakeupSource_EcuMWakeupSource_1 already defined
+#endif
+/** @brief Identifier for wakeup source EcuMWakeupSource_1*/
+#define EcuMConf_EcuMWakeupSource_EcuMWakeupSource_1 ((uint32)((uint32)1U<<1))
+
+
+
+/* ======== Sleep modes ======== */
+
+
+#if (defined EcuMConf_EcuMSleepMode_EcuMSleepMode_0) /* to prevent double declaration */
+#error EcuMConf_EcuMSleepMode_EcuMSleepMode_0 already defined
+#endif
+/** @brief Identifier for wakeup source EcuMSleepMode_0*/
+#define EcuMConf_EcuMSleepMode_EcuMSleepMode_0 0x0U
+
+
+/*==================================================================================================
+*                                             ENUMS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                 STRUCTURES AND OTHER TYPEDEFS
+==================================================================================================*/
+typedef uint32 EcuM_WakeupSourceType; /**< @brief variable type for ECU Manager wakeup sources*/
+
+/*==================================================================================================
+*                                 GLOBAL VARIABLE DECLARATIONS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                    FUNCTION PROTOTYPES
+==================================================================================================*/
+#ifdef __cplusplus
+}
+#endif
+
+/** @} */
+
+#endif /* ECUM_CFG_H */

+ 239 - 239
generate/include/FlexCAN_Ip_Cfg.h

@@ -1,239 +1,239 @@
-
-/*==================================================================================================
-*   Project              : RTD AUTOSAR 4.4
-*   Platform             : CORTEXM
-*   Peripheral           : FLEXCAN
-*   Dependencies         : 
-*
-*   Autosar Version      : 4.4.0
-*   Autosar Revision     : ASR_REL_4_4_REV_0000
-*   Autosar Conf.Variant :
-*   SW Version           : 1.0.0
-*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
-*
-*   (c) Copyright 2020-2021 NXP Semiconductors
-*   All Rights Reserved.
-*
-*   NXP Confidential. This software is owned or controlled by NXP and may only be
-*   used strictly in accordance with the applicable license terms. By expressly
-*   accepting such terms or by downloading, installing, activating and/or otherwise
-*   using the software, you are agreeing that you have read, and that you agree to
-*   comply with and are bound by, such license terms. If you do not agree to be
-*   bound by the applicable license terms, then you may not retain, install,
-*   activate or otherwise use the software.
-==================================================================================================*/
-
-#ifndef FLEXCAN_FLEXCAN_IP_CFG_H_
-#define FLEXCAN_FLEXCAN_IP_CFG_H_
-
-/**
-*   @file FlexCAN_Ip_Cfg.h
-*
-*   @addtogroup FlexCAN
-*   @{
-*/
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-/*==================================================================================================
-*                                        INCLUDE FILES
-* 1) system and project includes
-* 2) needed interfaces from external units
-* 3) internal and external interfaces from this unit
-==================================================================================================*/
-#include "FlexCAN_Ip_VS_0_PBcfg.h"
-
-#include "OsIf.h"
-#include "Reg_eSys.h"
-/*==================================================================================================
-*                              SOURCE FILE VERSION INFORMATION
-==================================================================================================*/
-#define FLEXCAN_IP_CFG_VENDOR_ID_H                      43
-#define FLEXCAN_IP_CFG_AR_RELEASE_MAJOR_VERSION_H       4
-#define FLEXCAN_IP_CFG_AR_RELEASE_MINOR_VERSION_H       4
-#define FLEXCAN_IP_CFG_AR_RELEASE_REVISION_VERSION_H    0
-#define FLEXCAN_IP_CFG_SW_MAJOR_VERSION_H               1
-#define FLEXCAN_IP_CFG_SW_MINOR_VERSION_H               0
-#define FLEXCAN_IP_CFG_SW_PATCH_VERSION_H               0
-/*==================================================================================================
-*                                     FILE VERSION CHECKS
-==================================================================================================*/
-
-
-/* Check if current file and FlexCAN_Ip_VS_0_PBcfg.h header file are of the same vendor */
-#if (FLEXCAN_IP_CFG_VENDOR_ID_H != FLEXCAN_IP_VENDOR_ID_VS_0_PBCFG_H)
-#error "FlexCAN_Ip_Cfg.h and FlexCAN_Ip_VS_0_PBcfg.h have different vendor ids"
-#endif
-/* Check if current file and FlexCAN_Ip_VS_0_PBcfg.h header file are of the same Autosar version */
-#if ((FLEXCAN_IP_CFG_AR_RELEASE_MAJOR_VERSION_H   != FLEXCAN_IP_AR_RELEASE_MAJOR_VERSION_VS_0_PBCFG_H) || \
-(FLEXCAN_IP_CFG_AR_RELEASE_MINOR_VERSION_H    != FLEXCAN_IP_AR_RELEASE_MINOR_VERSION_VS_0_PBCFG_H) || \
-(FLEXCAN_IP_CFG_AR_RELEASE_REVISION_VERSION_H != FLEXCAN_IP_AR_RELEASE_REVISION_VERSION_VS_0_PBCFG_H) \
-)
-#error "AutoSar Version Numbers of FlexCAN_Ip_Cfg.h and FlexCAN_Ip_VS_0_PBcfg.h are different"
-#endif
-/* Check if current file and FlexCAN_Ip_VS_0_PBcfg.h header file are of the same Software version */
-#if ((FLEXCAN_IP_CFG_SW_MAJOR_VERSION_H != FLEXCAN_IP_SW_MAJOR_VERSION_VS_0_PBCFG_H) || \
-(FLEXCAN_IP_CFG_SW_MINOR_VERSION_H != FLEXCAN_IP_SW_MINOR_VERSION_VS_0_PBCFG_H) || \
-(FLEXCAN_IP_CFG_SW_PATCH_VERSION_H != FLEXCAN_IP_SW_PATCH_VERSION_VS_0_PBCFG_H) \
-)
-#error "Software Version Numbers of FlexCAN_Ip_Cfg.h and FlexCAN_Ip_VS_0_PBcfg.h are different"
-#endif
-
-
-
-#ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
-/* Check if current file and OsIf header file are of the same version */
-#if ((FLEXCAN_IP_CFG_AR_RELEASE_MAJOR_VERSION_H   != OSIF_AR_RELEASE_MAJOR_VERSION) || \
-(FLEXCAN_IP_CFG_AR_RELEASE_MINOR_VERSION_H    != OSIF_AR_RELEASE_MINOR_VERSION) \
-)
-#error "AutoSar Version Numbers of FlexCAN_Ip_Cfg.h and OsIf.h are different"
-#endif
-
-/* Check if current file and Reg_eSys header file are of the same version */
-#if ((FLEXCAN_IP_CFG_AR_RELEASE_MAJOR_VERSION_H   != REG_ESYS_AR_RELEASE_MAJOR_VERSION) || \
-(FLEXCAN_IP_CFG_AR_RELEASE_MINOR_VERSION_H    != REG_ESYS_AR_RELEASE_MINOR_VERSION) \
-)
-#error "AutoSar Version Numbers of FlexCAN_Ip_Cfg.h and Reg_eSys.h are different"
-#endif
-#endif
-/*==================================================================================================
-*                                          CONSTANTS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                      DEFINES AND MACROS
-==================================================================================================*/
-/* External Structures generated by FlexCAN_Ip_PBCfg */
-#define FLEXCAN_IP_CONFIG_EXT \
-    FLEXCAN_IP_VS_0_PB_CFG 
-
-/* for HLD, no need to extern states */
-#define FLEXCAN_IP_STATE_EXT
-
-#define FLEXCAN_IP_PN_CONFIG_EXT \
-    FLEXCAN_IP_PN_VS_0_PB_CFG 
-
-
-
-/*! @brief Enables / Disables user mode support */
-#define FLEXCAN_IP_ENABLE_USER_MODE_SUPPORT    (STD_OFF)
-
-#ifndef MCAL_ENABLE_USER_MODE_SUPPORT
-    #if (STD_ON == FLEXCAN_IP_ENABLE_USER_MODE_SUPPORT)
-        #error MCAL_ENABLE_USER_MODE_SUPPORT is not enabled. For running FLEXCAN in user mode, MCAL_ENABLE_USER_MODE_SUPPORT needs to be defined.
-    #endif /* (STD_ON == FLEXCAN_IP_ENABLE_USER_MODE_SUPPORT */
-#endif /* ifndef MCAL_ENABLE_USER_MODE_SUPPORT */
-
-#if ((STD_ON == FLEXCAN_IP_ENABLE_USER_MODE_SUPPORT) && defined(MCAL_FLEXCAN_REG_PROT_AVAILABLE))
-    #if (STD_ON == MCAL_FLEXCAN_REG_PROT_AVAILABLE)
-        #define FLEXCAN_IP_SET_USER_ACCESS_ALLOWED_AVAILABLE      (STD_ON)
-    #else
-        #define FLEXCAN_IP_SET_USER_ACCESS_ALLOWED_AVAILABLE      (STD_OFF)
-    #endif
-#else
-    #define FLEXCAN_IP_SET_USER_ACCESS_ALLOWED_AVAILABLE      (STD_OFF)
-#endif
-
-
-#if (FLEXCAN_IP_SET_USER_ACCESS_ALLOWED_AVAILABLE == STD_ON)
-    /*! @brief Use to check if the instances support UAA bit or not */
-    #define FLEXCAN_IP_CTRL_REG_PROT_SUPPORT_U8    ((uint8)0U)
-#endif
-
-
-/* Time out value in uS */
-#define FLEXCAN_IP_TIMEOUT_DURATION    (1000000U)
-
-/* This this will set the timer source for osif that will be used for timeout */
-#define FLEXCAN_IP_SERVICE_TIMEOUT_TYPE    (OSIF_COUNTER_DUMMY)
-
-
-/* @brief Maximum number of Message Buffers supported for payload size 8 for any of the CAN instances */
-#define FLEXCAN_IP_FEATURE_MAX_MB_NUM    (32U)
-
-
-/* @brief Maximum number of Message Buffers supported for payload size 8 for CAN0 */
-#define FLEXCAN_IP_FEATURE_INSTANCE_0_MAX_MB_NUM    (32U)
-
-/* @brief Maximum number of Message Buffers supported for payload size 8 for CAN1 */
-#define FLEXCAN_IP_FEATURE_INSTANCE_1_MAX_MB_NUM    (32U)
-
-/* @brief Maximum number of Message Buffers supported for payload size 8 for CAN2 */
-#define FLEXCAN_IP_FEATURE_INSTANCE_2_MAX_MB_NUM    (16U)
-
-
-/* @brief Array of maximum number of Message Buffers supported for payload size 8 for all the CAN instances */
-#define FLEXCAN_IP_FEATURE_MAX_MB_NUM_ARRAY { \
-                        FLEXCAN_IP_FEATURE_INSTANCE_0_MAX_MB_NUM, \
-                        FLEXCAN_IP_FEATURE_INSTANCE_1_MAX_MB_NUM, \
-                        FLEXCAN_IP_FEATURE_INSTANCE_2_MAX_MB_NUM \
-}
-
-/* @brief Has DMA enable (bit field MCR[DMA]). */
-#define FLEXCAN_IP_FEATURE_HAS_DMA_ENABLE    (STD_OFF)
-/* @brief Has Supervisor Mode MCR[SUPV] */
-#define FLEXCAN_IP_FEATURE_HAS_SUPV    (STD_ON)
-/* @brief Has Flexible Data Rate */
-#define FLEXCAN_IP_FEATURE_HAS_FD    (STD_ON)
-/* @bried FlexCAN has Detection And Correction of Memory Errors */
-#define FLEXCAN_IP_FEATURE_HAS_MEM_ERR_DET    (STD_OFF)
-/* @brief Has FlexCAN Enhanced Rx FIFO mode */
-#define FLEXCAN_IP_FEATURE_HAS_ENHANCED_RX_FIFO    (STD_OFF)
-/* @brief Has FlexCAN expandable memory */
-#define FLEXCAN_IP_FEATURE_HAS_EXPANDABLE_MEMORY    (STD_OFF)
-/* @brief Has FlexCAN Timestamp enabled */
-#define FLEXCAN_IP_FEATURE_HAS_TS_ENABLE    (STD_OFF)
-/* @brief Has FlexCAN High Resolution Timer for Time stamp CAN Message */
-#define FLEXCAN_IP_FEATURE_HAS_HR_TIMER    (STD_OFF)
-
-/* @brief Has FlexCAN Enhanced Rx FIFO has interrupts available */
-#define FLEXCAN_IP_FEATURE_HAS_ENHANCED_RX_FIFO_INTERRUPT    (STD_OFF)
-#define FLEXCAN_IP_FEATURE_HAS_PE_CLKSRC_SELECT    (STD_ON)
-#define FLEXCAN_IP_FEATURE_HAS_WAKE_UP_IRQ    (STD_OFF)
-/* @brief Enable use of Enhanced CBT time segments and ENTDC */
-#define FLEXCAN_IP_FEATURE_HAS_ENHANCE_CBT    (STD_OFF)
-/* @brief Has FD Iso Option Mode  */
-#define FLEXCAN_IP_FEATURE_SWITCHINGISOMODE    (STD_ON)
-/* @brief Has Protocol exception Mode */
-#define FLEXCAN_IP_FEATURE_PROTOCOLEXCEPTION    (STD_ON)
-/* @brief Has Edge filter Feature */
-#define FLEXCAN_IP_FEATURE_EDGEFILTER    (STD_ON)
-/* @brief Define if global variables need to be placed in non-cache area or not */
-#define FLEXCAN_IP_FEATURE_NO_CACHE_NEEDED    (STD_OFF)
-
-/* @brief Has Pretending Network Feature */
-#define FLEXCAN_IP_FEATURE_HAS_PRETENDED_NETWORKING    (STD_ON)
-
-/**
-*   @brief      Can Rx/Tx common interrupt support
-*/
-#define FLEXCAN_IP_MB_INTERRUPT_SUPPORT    (STD_OFF)
-
-
-/**
-*   @brief      Can Bus Off interrupt support
-*/
-#define FLEXCAN_IP_BUSOFF_INTERRUPT_SUPPORT    (STD_OFF)
-
-
-/**
-*   @brief      Can Error interrupt support
-*/
-#define FLEXCAN_IP_ERROR_INTERRUPT_SUPPORT    (STD_OFF)
-
-/* Defines the No Of Message Buffers Partions Suppport MBDSR regions */
-#define FLEXCAN_IP_FEATURE_MBDSR_COUNT    (1U)
-
-/* Enable Development Error Detection */
-#define FLEXCAN_IP_DEV_ERROR_DETECT    (STD_OFF)
-
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-/** @} */
-
-#endif /* FLEXCAN_FLEXCAN_IP_CFG_H_ */
+
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : FLEXCAN
+*   Dependencies         : 
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+
+#ifndef FLEXCAN_FLEXCAN_IP_CFG_H_
+#define FLEXCAN_FLEXCAN_IP_CFG_H_
+
+/**
+*   @file FlexCAN_Ip_Cfg.h
+*
+*   @addtogroup FlexCAN
+*   @{
+*/
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+/*==================================================================================================
+*                                        INCLUDE FILES
+* 1) system and project includes
+* 2) needed interfaces from external units
+* 3) internal and external interfaces from this unit
+==================================================================================================*/
+#include "FlexCAN_Ip_VS_0_PBcfg.h"
+
+#include "OsIf.h"
+#include "Reg_eSys.h"
+/*==================================================================================================
+*                              SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+#define FLEXCAN_IP_CFG_VENDOR_ID_H                      43
+#define FLEXCAN_IP_CFG_AR_RELEASE_MAJOR_VERSION_H       4
+#define FLEXCAN_IP_CFG_AR_RELEASE_MINOR_VERSION_H       4
+#define FLEXCAN_IP_CFG_AR_RELEASE_REVISION_VERSION_H    0
+#define FLEXCAN_IP_CFG_SW_MAJOR_VERSION_H               1
+#define FLEXCAN_IP_CFG_SW_MINOR_VERSION_H               0
+#define FLEXCAN_IP_CFG_SW_PATCH_VERSION_H               0
+/*==================================================================================================
+*                                     FILE VERSION CHECKS
+==================================================================================================*/
+
+
+/* Check if current file and FlexCAN_Ip_VS_0_PBcfg.h header file are of the same vendor */
+#if (FLEXCAN_IP_CFG_VENDOR_ID_H != FLEXCAN_IP_VENDOR_ID_VS_0_PBCFG_H)
+#error "FlexCAN_Ip_Cfg.h and FlexCAN_Ip_VS_0_PBcfg.h have different vendor ids"
+#endif
+/* Check if current file and FlexCAN_Ip_VS_0_PBcfg.h header file are of the same Autosar version */
+#if ((FLEXCAN_IP_CFG_AR_RELEASE_MAJOR_VERSION_H   != FLEXCAN_IP_AR_RELEASE_MAJOR_VERSION_VS_0_PBCFG_H) || \
+(FLEXCAN_IP_CFG_AR_RELEASE_MINOR_VERSION_H    != FLEXCAN_IP_AR_RELEASE_MINOR_VERSION_VS_0_PBCFG_H) || \
+(FLEXCAN_IP_CFG_AR_RELEASE_REVISION_VERSION_H != FLEXCAN_IP_AR_RELEASE_REVISION_VERSION_VS_0_PBCFG_H) \
+)
+#error "AutoSar Version Numbers of FlexCAN_Ip_Cfg.h and FlexCAN_Ip_VS_0_PBcfg.h are different"
+#endif
+/* Check if current file and FlexCAN_Ip_VS_0_PBcfg.h header file are of the same Software version */
+#if ((FLEXCAN_IP_CFG_SW_MAJOR_VERSION_H != FLEXCAN_IP_SW_MAJOR_VERSION_VS_0_PBCFG_H) || \
+(FLEXCAN_IP_CFG_SW_MINOR_VERSION_H != FLEXCAN_IP_SW_MINOR_VERSION_VS_0_PBCFG_H) || \
+(FLEXCAN_IP_CFG_SW_PATCH_VERSION_H != FLEXCAN_IP_SW_PATCH_VERSION_VS_0_PBCFG_H) \
+)
+#error "Software Version Numbers of FlexCAN_Ip_Cfg.h and FlexCAN_Ip_VS_0_PBcfg.h are different"
+#endif
+
+
+
+#ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
+/* Check if current file and OsIf header file are of the same version */
+#if ((FLEXCAN_IP_CFG_AR_RELEASE_MAJOR_VERSION_H   != OSIF_AR_RELEASE_MAJOR_VERSION) || \
+(FLEXCAN_IP_CFG_AR_RELEASE_MINOR_VERSION_H    != OSIF_AR_RELEASE_MINOR_VERSION) \
+)
+#error "AutoSar Version Numbers of FlexCAN_Ip_Cfg.h and OsIf.h are different"
+#endif
+
+/* Check if current file and Reg_eSys header file are of the same version */
+#if ((FLEXCAN_IP_CFG_AR_RELEASE_MAJOR_VERSION_H   != REG_ESYS_AR_RELEASE_MAJOR_VERSION) || \
+(FLEXCAN_IP_CFG_AR_RELEASE_MINOR_VERSION_H    != REG_ESYS_AR_RELEASE_MINOR_VERSION) \
+)
+#error "AutoSar Version Numbers of FlexCAN_Ip_Cfg.h and Reg_eSys.h are different"
+#endif
+#endif
+/*==================================================================================================
+*                                          CONSTANTS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                      DEFINES AND MACROS
+==================================================================================================*/
+/* External Structures generated by FlexCAN_Ip_PBCfg */
+#define FLEXCAN_IP_CONFIG_EXT \
+    FLEXCAN_IP_VS_0_PB_CFG 
+
+/* for HLD, no need to extern states */
+#define FLEXCAN_IP_STATE_EXT
+
+#define FLEXCAN_IP_PN_CONFIG_EXT \
+    FLEXCAN_IP_PN_VS_0_PB_CFG 
+
+
+
+/*! @brief Enables / Disables user mode support */
+#define FLEXCAN_IP_ENABLE_USER_MODE_SUPPORT    (STD_OFF)
+
+#ifndef MCAL_ENABLE_USER_MODE_SUPPORT
+    #if (STD_ON == FLEXCAN_IP_ENABLE_USER_MODE_SUPPORT)
+        #error MCAL_ENABLE_USER_MODE_SUPPORT is not enabled. For running FLEXCAN in user mode, MCAL_ENABLE_USER_MODE_SUPPORT needs to be defined.
+    #endif /* (STD_ON == FLEXCAN_IP_ENABLE_USER_MODE_SUPPORT */
+#endif /* ifndef MCAL_ENABLE_USER_MODE_SUPPORT */
+
+#if ((STD_ON == FLEXCAN_IP_ENABLE_USER_MODE_SUPPORT) && defined(MCAL_FLEXCAN_REG_PROT_AVAILABLE))
+    #if (STD_ON == MCAL_FLEXCAN_REG_PROT_AVAILABLE)
+        #define FLEXCAN_IP_SET_USER_ACCESS_ALLOWED_AVAILABLE      (STD_ON)
+    #else
+        #define FLEXCAN_IP_SET_USER_ACCESS_ALLOWED_AVAILABLE      (STD_OFF)
+    #endif
+#else
+    #define FLEXCAN_IP_SET_USER_ACCESS_ALLOWED_AVAILABLE      (STD_OFF)
+#endif
+
+
+#if (FLEXCAN_IP_SET_USER_ACCESS_ALLOWED_AVAILABLE == STD_ON)
+    /*! @brief Use to check if the instances support UAA bit or not */
+    #define FLEXCAN_IP_CTRL_REG_PROT_SUPPORT_U8    ((uint8)0U)
+#endif
+
+
+/* Time out value in uS */
+#define FLEXCAN_IP_TIMEOUT_DURATION    (1000000U)
+
+/* This this will set the timer source for osif that will be used for timeout */
+#define FLEXCAN_IP_SERVICE_TIMEOUT_TYPE    (OSIF_COUNTER_DUMMY)
+
+
+/* @brief Maximum number of Message Buffers supported for payload size 8 for any of the CAN instances */
+#define FLEXCAN_IP_FEATURE_MAX_MB_NUM    (32U)
+
+
+/* @brief Maximum number of Message Buffers supported for payload size 8 for CAN0 */
+#define FLEXCAN_IP_FEATURE_INSTANCE_0_MAX_MB_NUM    (32U)
+
+/* @brief Maximum number of Message Buffers supported for payload size 8 for CAN1 */
+#define FLEXCAN_IP_FEATURE_INSTANCE_1_MAX_MB_NUM    (32U)
+
+/* @brief Maximum number of Message Buffers supported for payload size 8 for CAN2 */
+#define FLEXCAN_IP_FEATURE_INSTANCE_2_MAX_MB_NUM    (16U)
+
+
+/* @brief Array of maximum number of Message Buffers supported for payload size 8 for all the CAN instances */
+#define FLEXCAN_IP_FEATURE_MAX_MB_NUM_ARRAY { \
+                        FLEXCAN_IP_FEATURE_INSTANCE_0_MAX_MB_NUM, \
+                        FLEXCAN_IP_FEATURE_INSTANCE_1_MAX_MB_NUM, \
+                        FLEXCAN_IP_FEATURE_INSTANCE_2_MAX_MB_NUM \
+}
+
+/* @brief Has DMA enable (bit field MCR[DMA]). */
+#define FLEXCAN_IP_FEATURE_HAS_DMA_ENABLE    (STD_OFF)
+/* @brief Has Supervisor Mode MCR[SUPV] */
+#define FLEXCAN_IP_FEATURE_HAS_SUPV    (STD_ON)
+/* @brief Has Flexible Data Rate */
+#define FLEXCAN_IP_FEATURE_HAS_FD    (STD_ON)
+/* @bried FlexCAN has Detection And Correction of Memory Errors */
+#define FLEXCAN_IP_FEATURE_HAS_MEM_ERR_DET    (STD_OFF)
+/* @brief Has FlexCAN Enhanced Rx FIFO mode */
+#define FLEXCAN_IP_FEATURE_HAS_ENHANCED_RX_FIFO    (STD_OFF)
+/* @brief Has FlexCAN expandable memory */
+#define FLEXCAN_IP_FEATURE_HAS_EXPANDABLE_MEMORY    (STD_OFF)
+/* @brief Has FlexCAN Timestamp enabled */
+#define FLEXCAN_IP_FEATURE_HAS_TS_ENABLE    (STD_OFF)
+/* @brief Has FlexCAN High Resolution Timer for Time stamp CAN Message */
+#define FLEXCAN_IP_FEATURE_HAS_HR_TIMER    (STD_OFF)
+
+/* @brief Has FlexCAN Enhanced Rx FIFO has interrupts available */
+#define FLEXCAN_IP_FEATURE_HAS_ENHANCED_RX_FIFO_INTERRUPT    (STD_OFF)
+#define FLEXCAN_IP_FEATURE_HAS_PE_CLKSRC_SELECT    (STD_ON)
+#define FLEXCAN_IP_FEATURE_HAS_WAKE_UP_IRQ    (STD_OFF)
+/* @brief Enable use of Enhanced CBT time segments and ENTDC */
+#define FLEXCAN_IP_FEATURE_HAS_ENHANCE_CBT    (STD_OFF)
+/* @brief Has FD Iso Option Mode  */
+#define FLEXCAN_IP_FEATURE_SWITCHINGISOMODE    (STD_ON)
+/* @brief Has Protocol exception Mode */
+#define FLEXCAN_IP_FEATURE_PROTOCOLEXCEPTION    (STD_ON)
+/* @brief Has Edge filter Feature */
+#define FLEXCAN_IP_FEATURE_EDGEFILTER    (STD_ON)
+/* @brief Define if global variables need to be placed in non-cache area or not */
+#define FLEXCAN_IP_FEATURE_NO_CACHE_NEEDED    (STD_OFF)
+
+/* @brief Has Pretending Network Feature */
+#define FLEXCAN_IP_FEATURE_HAS_PRETENDED_NETWORKING    (STD_ON)
+
+/**
+*   @brief      Can Rx/Tx common interrupt support
+*/
+#define FLEXCAN_IP_MB_INTERRUPT_SUPPORT    (STD_OFF)
+
+
+/**
+*   @brief      Can Bus Off interrupt support
+*/
+#define FLEXCAN_IP_BUSOFF_INTERRUPT_SUPPORT    (STD_OFF)
+
+
+/**
+*   @brief      Can Error interrupt support
+*/
+#define FLEXCAN_IP_ERROR_INTERRUPT_SUPPORT    (STD_OFF)
+
+/* Defines the No Of Message Buffers Partions Suppport MBDSR regions */
+#define FLEXCAN_IP_FEATURE_MBDSR_COUNT    (1U)
+
+/* Enable Development Error Detection */
+#define FLEXCAN_IP_DEV_ERROR_DETECT    (STD_OFF)
+
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+/** @} */
+
+#endif /* FLEXCAN_FLEXCAN_IP_CFG_H_ */

+ 74 - 74
generate/include/FlexCAN_Ip_CfgDefines.h

@@ -1,74 +1,74 @@
-
-/*==================================================================================================
-*   Project              : RTD AUTOSAR 4.4
-*   Platform             : CORTEXM
-*   Peripheral           : FLEXCAN
-*   Dependencies         : 
-*
-*   Autosar Version      : 4.4.0
-*   Autosar Revision     : ASR_REL_4_4_REV_0000
-*   Autosar Conf.Variant :
-*   SW Version           : 1.0.0
-*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
-*
-*   (c) Copyright 2020-2021 NXP Semiconductors
-*   All Rights Reserved.
-*
-*   NXP Confidential. This software is owned or controlled by NXP and may only be
-*   used strictly in accordance with the applicable license terms. By expressly
-*   accepting such terms or by downloading, installing, activating and/or otherwise
-*   using the software, you are agreeing that you have read, and that you agree to
-*   comply with and are bound by, such license terms. If you do not agree to be
-*   bound by the applicable license terms, then you may not retain, install,
-*   activate or otherwise use the software.
-==================================================================================================*/
-#ifndef FLEXCAN_IP_CFGDEFINES_H
-#define FLEXCAN_IP_CFGDEFINES_H
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-/*==================================================================================================
-*                                        INCLUDE FILES
-* 1) system and project includes
-* 2) needed interfaces from external units
-* 3) internal and external interfaces from this unit
-
-==================================================================================================*/
-
-
-#include "S32K146.h"
-
-
-/*==================================================================================================
-*                              SOURCE FILE VERSION INFORMATION
-==================================================================================================*/
-/*
-* @file           FlexCAN_Ip_CfgDefines.h
-*/
-#define FLEXCAN_IP_CFGDEFINES_VENDOR_ID_H                      43
-#define FLEXCAN_IP_CFGDEFINES_AR_RELEASE_MAJOR_VERSION_H       4
-#define FLEXCAN_IP_CFGDEFINES_AR_RELEASE_MINOR_VERSION_H       4
-#define FLEXCAN_IP_CFGDEFINES_AR_RELEASE_REVISION_VERSION_H    0
-#define FLEXCAN_IP_CFGDEFINES_SW_MAJOR_VERSION_H               1
-#define FLEXCAN_IP_CFGDEFINES_SW_MINOR_VERSION_H               0
-#define FLEXCAN_IP_CFGDEFINES_SW_PATCH_VERSION_H               0
-/*==================================================================================================
-*                                     FILE VERSION CHECKS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                          CONSTANTS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                      DEFINES AND MACROS
-==================================================================================================*/
-
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* FLEXCAN_IP_CFGDEFINES_H */
+
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : FLEXCAN
+*   Dependencies         : 
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+#ifndef FLEXCAN_IP_CFGDEFINES_H
+#define FLEXCAN_IP_CFGDEFINES_H
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+/*==================================================================================================
+*                                        INCLUDE FILES
+* 1) system and project includes
+* 2) needed interfaces from external units
+* 3) internal and external interfaces from this unit
+
+==================================================================================================*/
+
+
+#include "S32K146.h"
+
+
+/*==================================================================================================
+*                              SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+/*
+* @file           FlexCAN_Ip_CfgDefines.h
+*/
+#define FLEXCAN_IP_CFGDEFINES_VENDOR_ID_H                      43
+#define FLEXCAN_IP_CFGDEFINES_AR_RELEASE_MAJOR_VERSION_H       4
+#define FLEXCAN_IP_CFGDEFINES_AR_RELEASE_MINOR_VERSION_H       4
+#define FLEXCAN_IP_CFGDEFINES_AR_RELEASE_REVISION_VERSION_H    0
+#define FLEXCAN_IP_CFGDEFINES_SW_MAJOR_VERSION_H               1
+#define FLEXCAN_IP_CFGDEFINES_SW_MINOR_VERSION_H               0
+#define FLEXCAN_IP_CFGDEFINES_SW_PATCH_VERSION_H               0
+/*==================================================================================================
+*                                     FILE VERSION CHECKS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                          CONSTANTS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                      DEFINES AND MACROS
+==================================================================================================*/
+
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* FLEXCAN_IP_CFGDEFINES_H */

+ 85 - 85
generate/include/FlexCAN_Ip_VS_0_PBcfg.h

@@ -1,85 +1,85 @@
-
-/*==================================================================================================
-*   Project              : RTD AUTOSAR 4.4
-*   Platform             : CORTEXM
-*   Peripheral           : FLEXCAN
-*   Dependencies         : 
-*
-*   Autosar Version      : 4.4.0
-*   Autosar Revision     : ASR_REL_4_4_REV_0000
-*   Autosar Conf.Variant :
-*   SW Version           : 1.0.0
-*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
-*
-*   (c) Copyright 2020-2021 NXP Semiconductors
-*   All Rights Reserved.
-*
-*   NXP Confidential. This software is owned or controlled by NXP and may only be
-*   used strictly in accordance with the applicable license terms. By expressly
-*   accepting such terms or by downloading, installing, activating and/or otherwise
-*   using the software, you are agreeing that you have read, and that you agree to
-*   comply with and are bound by, such license terms. If you do not agree to be
-*   bound by the applicable license terms, then you may not retain, install,
-*   activate or otherwise use the software.
-==================================================================================================*/
-
-#ifndef FLEXCAN_IP_VS_0_PBCFG_H
-#define FLEXCAN_IP_VS_0_PBCFG_H
-
-/**
-*   @file FlexCAN_IP_PBcfg.h
-*
-*   @addtogroup FlexCAN
-*   @{
-*/
-
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-/*==================================================================================================
-*                                        INCLUDE FILES
-* 1) system and project includes
-* 2) needed interfaces from external units
-* 3) internal and external interfaces from this unit
-==================================================================================================*/
-/*==================================================================================================
-*                              SOURCE FILE VERSION INFORMATION
-==================================================================================================*/
-/*
-* @file           FlexCAN_Ip_VS_0_PBcfg.h
-*/
-
-#define FLEXCAN_IP_VENDOR_ID_VS_0_PBCFG_H                     43
-#define FLEXCAN_IP_AR_RELEASE_MAJOR_VERSION_VS_0_PBCFG_H      4
-#define FLEXCAN_IP_AR_RELEASE_MINOR_VERSION_VS_0_PBCFG_H      4
-#define FLEXCAN_IP_AR_RELEASE_REVISION_VERSION_VS_0_PBCFG_H   0
-#define FLEXCAN_IP_SW_MAJOR_VERSION_VS_0_PBCFG_H              1
-#define FLEXCAN_IP_SW_MINOR_VERSION_VS_0_PBCFG_H              0
-#define FLEXCAN_IP_SW_PATCH_VERSION_VS_0_PBCFG_H              0
-/*==================================================================================================
-*                                     FILE VERSION CHECKS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                          CONSTANTS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                      DEFINES AND MACROS
-==================================================================================================*/
-#define FLEXCAN_IP_VS_0_PB_CFG  \
-    extern const Flexcan_Ip_ConfigType Flexcan_aCtrlConfigPB_VS_0[2U];
-
-#define FLEXCAN_IP_PN_VS_0_PB_CFG  \
-    extern const Flexcan_Ip_PnConfigType Flexcan_aPnConfigPB_VS_0[1U];
-
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-/** @} */
-
-#endif /* FLEXCAN_IP_VS_0_PBCFG_H */
+
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : FLEXCAN
+*   Dependencies         : 
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+
+#ifndef FLEXCAN_IP_VS_0_PBCFG_H
+#define FLEXCAN_IP_VS_0_PBCFG_H
+
+/**
+*   @file FlexCAN_IP_PBcfg.h
+*
+*   @addtogroup FlexCAN
+*   @{
+*/
+
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+/*==================================================================================================
+*                                        INCLUDE FILES
+* 1) system and project includes
+* 2) needed interfaces from external units
+* 3) internal and external interfaces from this unit
+==================================================================================================*/
+/*==================================================================================================
+*                              SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+/*
+* @file           FlexCAN_Ip_VS_0_PBcfg.h
+*/
+
+#define FLEXCAN_IP_VENDOR_ID_VS_0_PBCFG_H                     43
+#define FLEXCAN_IP_AR_RELEASE_MAJOR_VERSION_VS_0_PBCFG_H      4
+#define FLEXCAN_IP_AR_RELEASE_MINOR_VERSION_VS_0_PBCFG_H      4
+#define FLEXCAN_IP_AR_RELEASE_REVISION_VERSION_VS_0_PBCFG_H   0
+#define FLEXCAN_IP_SW_MAJOR_VERSION_VS_0_PBCFG_H              1
+#define FLEXCAN_IP_SW_MINOR_VERSION_VS_0_PBCFG_H              0
+#define FLEXCAN_IP_SW_PATCH_VERSION_VS_0_PBCFG_H              0
+/*==================================================================================================
+*                                     FILE VERSION CHECKS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                          CONSTANTS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                      DEFINES AND MACROS
+==================================================================================================*/
+#define FLEXCAN_IP_VS_0_PB_CFG  \
+    extern const Flexcan_Ip_ConfigType Flexcan_aCtrlConfigPB_VS_0[2U];
+
+#define FLEXCAN_IP_PN_VS_0_PB_CFG  \
+    extern const Flexcan_Ip_PnConfigType Flexcan_aPnConfigPB_VS_0[1U];
+
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+/** @} */
+
+#endif /* FLEXCAN_IP_VS_0_PBCFG_H */

+ 150 - 150
generate/include/Flexio_Mcl_Ip_Cfg.h

@@ -1,150 +1,150 @@
-/*==================================================================================================
-*   Project              : RTD AUTOSAR 4.4
-*   Platform             : CORTEXM
-*   Peripheral           : DMA,CACHE,TRGMUX,FLEXIO
-*   Dependencies         : none
-*
-*   Autosar Version      : 4.4.0
-*   Autosar Revision     : ASR_REL_4_4_REV_0000
-*   Autosar Conf.Variant :
-*   SW Version           : 1.0.0
-*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
-*
-*   (c) Copyright 2020-2021 NXP Semiconductors
-*   All Rights Reserved.
-*
-*   NXP Confidential. This software is owned or controlled by NXP and may only be
-*   used strictly in accordance with the applicable license terms. By expressly
-*   accepting such terms or by downloading, installing, activating and/or otherwise
-*   using the software, you are agreeing that you have read, and that you agree to
-*   comply with and are bound by, such license terms. If you do not agree to be
-*   bound by the applicable license terms, then you may not retain, install,
-*   activate or otherwise use the software.
-==================================================================================================*/
-
-#ifndef FLEXIO_MCL_IP_CFG_H_
-#define FLEXIO_MCL_IP_CFG_H_
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-/*==================================================================================================
-*                                        INCLUDE FILES
-* 1) system and project includes
-* 2) needed interfaces from external units
-* 3) internal and external interfaces from this unit
-==================================================================================================*/
-/* Include all variants header files. */
-#include "Flexio_Mcl_Ip_VS_0_PBcfg.h"
-
-#include "Flexio_Mcl_Ip_Cfg_Defines.h"
-
-
-/*==================================================================================================
-*                                 SOURCE FILE VERSION INFORMATION
-==================================================================================================*/
-#define FLEXIO_MCL_IP_CFG_VENDOR_ID_H                    43
-#define FLEXIO_MCL_IP_CFG_MODULE_ID_H                    255
-#define FLEXIO_MCL_IP_CFG_AR_RELEASE_MAJOR_VERSION_H     4
-#define FLEXIO_MCL_IP_CFG_AR_RELEASE_MINOR_VERSION_H     4
-#define FLEXIO_MCL_IP_CFG_AR_RELEASE_REVISION_VERSION_H  0
-#define FLEXIO_MCL_IP_CFG_SW_MAJOR_VERSION_H             1
-#define FLEXIO_MCL_IP_CFG_SW_MINOR_VERSION_H             0
-#define FLEXIO_MCL_IP_CFG_SW_PATCH_VERSION_H             0
-
-/*==================================================================================================
-*                                       FILE VERSION CHECKS
-==================================================================================================*/
-/* Check if header file and Flexio_Mcl_Ip_Cfg_Defines.h file are of the same vendor */
-#if (FLEXIO_MCL_IP_CFG_VENDOR_ID_H != FLEXIO_MCL_IP_CFG_DEFINES_VENDOR_ID_H)
-    #error "Flexio_Mcl_Ip_Cfg.h and Flexio_Mcl_Ip_Cfg_Defines.h have different vendor ids"
-#endif
-
-/* Check if header file and Flexio_Mcl_Ip_Cfg_Defines.h file are of the same Autosar version */
-#if ((FLEXIO_MCL_IP_CFG_AR_RELEASE_MAJOR_VERSION_H != FLEXIO_MCL_IP_CFG_DEFINES_AR_RELEASE_MAJOR_VERSION_H) || \
-     (FLEXIO_MCL_IP_CFG_AR_RELEASE_MINOR_VERSION_H != FLEXIO_MCL_IP_CFG_DEFINES_AR_RELEASE_MINOR_VERSION_H) || \
-     (FLEXIO_MCL_IP_CFG_AR_RELEASE_REVISION_VERSION_H != FLEXIO_MCL_IP_CFG_DEFINES_AR_RELEASE_REVISION_VERSION_H) \
-    )
-    #error "AutoSar Version Numbers of Flexio_Mcl_Ip_Cfg.h and Flexio_Mcl_Ip_Cfg_Defines.h are different"
-#endif
-
-/* Check if header file and Flexio_Mcl_Ip_Cfg_Defines.h file are of the same Software version */
-#if ((FLEXIO_MCL_IP_CFG_SW_MAJOR_VERSION_H != FLEXIO_MCL_IP_CFG_DEFINES_SW_MAJOR_VERSION_H) || \
-     (FLEXIO_MCL_IP_CFG_SW_MINOR_VERSION_H != FLEXIO_MCL_IP_CFG_DEFINES_SW_MINOR_VERSION_H) || \
-     (FLEXIO_MCL_IP_CFG_SW_PATCH_VERSION_H != FLEXIO_MCL_IP_CFG_DEFINES_SW_PATCH_VERSION_H) \
-    )
-    #error "Software Version Numbers of Flexio_Mcl_Ip_Cfg.h and Flexio_Mcl_Ip_Cfg_Defines.h are different"
-#endif
-
-/* Check if header file and Flexio_Mcl_Ip_VS_0_PBcfg.h file are of the same vendor */
-#if (FLEXIO_MCL_IP_CFG_VENDOR_ID_H != FLEXIO_MCL_IP_VS_0_PBCFG_VENDOR_ID_H)
-    #error "Flexio_Mcl_Ip_Cfg.h and Flexio_Mcl_Ip_VS_0_PBcfg.h have different vendor ids"
-#endif
-
-/* Check if header file and Flexio_Mcl_Ip_VS_0_PBcfg.h file are of the same Autosar version */
-#if ((FLEXIO_MCL_IP_CFG_AR_RELEASE_MAJOR_VERSION_H != FLEXIO_MCL_IP_VS_0_PBCFG_AR_RELEASE_MAJOR_VERSION_H) || \
-     (FLEXIO_MCL_IP_CFG_AR_RELEASE_MINOR_VERSION_H != FLEXIO_MCL_IP_VS_0_PBCFG_AR_RELEASE_MINOR_VERSION_H) || \
-     (FLEXIO_MCL_IP_CFG_AR_RELEASE_REVISION_VERSION_H != FLEXIO_MCL_IP_VS_0_PBCFG_AR_RELEASE_REVISION_VERSION_H) \
-    )
-    #error "AutoSar Version Numbers of Flexio_Mcl_Ip_Cfg.h and Flexio_Mcl_Ip_VS_0_PBcfg.h are different"
-#endif
-
-/* Check if header file and Flexio_Mcl_Ip_VS_0_PBcfg.h file are of the same Software version */
-#if ((FLEXIO_MCL_IP_CFG_SW_MAJOR_VERSION_H != FLEXIO_MCL_IP_VS_0_PBCFG_SW_MAJOR_VERSION_H) || \
-     (FLEXIO_MCL_IP_CFG_SW_MINOR_VERSION_H != FLEXIO_MCL_IP_VS_0_PBCFG_SW_MINOR_VERSION_H) || \
-     (FLEXIO_MCL_IP_CFG_SW_PATCH_VERSION_H != FLEXIO_MCL_IP_VS_0_PBCFG_SW_PATCH_VERSION_H) \
-    )
-    #error "Software Version Numbers of Flexio_Mcl_Ip_Cfg.h and Flexio_Mcl_Ip_VS_0_PBcfg.h are different"
-#endif
-
-/*==================================================================================================
-*                                            CONSTANTS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                       DEFINES AND MACROS
-==================================================================================================*/
-/* Logic Channel 0 */
-#define MclConf_FlexioMclLogicChannels_FLEXIO_RX      ((uint32)CHANNEL_0)
-/* Logic Channel 1 */
-#define MclConf_FlexioMclLogicChannels_FLEXIO_TX      ((uint32)CHANNEL_1)
-
-#define MCL_START_SEC_CONFIG_DATA_UNSPECIFIED
-/* @violates @ref Mcl_Dma_h_REF_1 MISRA 2012 Required Directive 4.10, Precautions shall be taken in order to prevent the contents of a header file being included more than once. */
-#include "Mcl_MemMap.h"
-
-
-
-
-extern const Flexio_Ip_InstanceConfigType Flexio_Ip_xFlexioInit_VS_0;
-
-
-
-#define MCL_STOP_SEC_CONFIG_DATA_UNSPECIFIED
-/* @violates @ref Mcl_Dma_h_REF_1 MISRA 2012 Required Directive 4.10, Precautions shall be taken in order to prevent the contents of a header file being included more than once. */
-#include "Mcl_MemMap.h"
-
-/*==================================================================================================
-*                                              ENUMS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                  STRUCTURES AND OTHER TYPEDEFS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                  GLOBAL VARIABLE DECLARATIONS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                       FUNCTION PROTOTYPES
-==================================================================================================*/
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* FLEXIO_MCL_IP_CFG_H_ */
-
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : DMA,CACHE,TRGMUX,FLEXIO
+*   Dependencies         : none
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+
+#ifndef FLEXIO_MCL_IP_CFG_H_
+#define FLEXIO_MCL_IP_CFG_H_
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*==================================================================================================
+*                                        INCLUDE FILES
+* 1) system and project includes
+* 2) needed interfaces from external units
+* 3) internal and external interfaces from this unit
+==================================================================================================*/
+/* Include all variants header files. */
+#include "Flexio_Mcl_Ip_VS_0_PBcfg.h"
+
+#include "Flexio_Mcl_Ip_Cfg_Defines.h"
+
+
+/*==================================================================================================
+*                                 SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+#define FLEXIO_MCL_IP_CFG_VENDOR_ID_H                    43
+#define FLEXIO_MCL_IP_CFG_MODULE_ID_H                    255
+#define FLEXIO_MCL_IP_CFG_AR_RELEASE_MAJOR_VERSION_H     4
+#define FLEXIO_MCL_IP_CFG_AR_RELEASE_MINOR_VERSION_H     4
+#define FLEXIO_MCL_IP_CFG_AR_RELEASE_REVISION_VERSION_H  0
+#define FLEXIO_MCL_IP_CFG_SW_MAJOR_VERSION_H             1
+#define FLEXIO_MCL_IP_CFG_SW_MINOR_VERSION_H             0
+#define FLEXIO_MCL_IP_CFG_SW_PATCH_VERSION_H             0
+
+/*==================================================================================================
+*                                       FILE VERSION CHECKS
+==================================================================================================*/
+/* Check if header file and Flexio_Mcl_Ip_Cfg_Defines.h file are of the same vendor */
+#if (FLEXIO_MCL_IP_CFG_VENDOR_ID_H != FLEXIO_MCL_IP_CFG_DEFINES_VENDOR_ID_H)
+    #error "Flexio_Mcl_Ip_Cfg.h and Flexio_Mcl_Ip_Cfg_Defines.h have different vendor ids"
+#endif
+
+/* Check if header file and Flexio_Mcl_Ip_Cfg_Defines.h file are of the same Autosar version */
+#if ((FLEXIO_MCL_IP_CFG_AR_RELEASE_MAJOR_VERSION_H != FLEXIO_MCL_IP_CFG_DEFINES_AR_RELEASE_MAJOR_VERSION_H) || \
+     (FLEXIO_MCL_IP_CFG_AR_RELEASE_MINOR_VERSION_H != FLEXIO_MCL_IP_CFG_DEFINES_AR_RELEASE_MINOR_VERSION_H) || \
+     (FLEXIO_MCL_IP_CFG_AR_RELEASE_REVISION_VERSION_H != FLEXIO_MCL_IP_CFG_DEFINES_AR_RELEASE_REVISION_VERSION_H) \
+    )
+    #error "AutoSar Version Numbers of Flexio_Mcl_Ip_Cfg.h and Flexio_Mcl_Ip_Cfg_Defines.h are different"
+#endif
+
+/* Check if header file and Flexio_Mcl_Ip_Cfg_Defines.h file are of the same Software version */
+#if ((FLEXIO_MCL_IP_CFG_SW_MAJOR_VERSION_H != FLEXIO_MCL_IP_CFG_DEFINES_SW_MAJOR_VERSION_H) || \
+     (FLEXIO_MCL_IP_CFG_SW_MINOR_VERSION_H != FLEXIO_MCL_IP_CFG_DEFINES_SW_MINOR_VERSION_H) || \
+     (FLEXIO_MCL_IP_CFG_SW_PATCH_VERSION_H != FLEXIO_MCL_IP_CFG_DEFINES_SW_PATCH_VERSION_H) \
+    )
+    #error "Software Version Numbers of Flexio_Mcl_Ip_Cfg.h and Flexio_Mcl_Ip_Cfg_Defines.h are different"
+#endif
+
+/* Check if header file and Flexio_Mcl_Ip_VS_0_PBcfg.h file are of the same vendor */
+#if (FLEXIO_MCL_IP_CFG_VENDOR_ID_H != FLEXIO_MCL_IP_VS_0_PBCFG_VENDOR_ID_H)
+    #error "Flexio_Mcl_Ip_Cfg.h and Flexio_Mcl_Ip_VS_0_PBcfg.h have different vendor ids"
+#endif
+
+/* Check if header file and Flexio_Mcl_Ip_VS_0_PBcfg.h file are of the same Autosar version */
+#if ((FLEXIO_MCL_IP_CFG_AR_RELEASE_MAJOR_VERSION_H != FLEXIO_MCL_IP_VS_0_PBCFG_AR_RELEASE_MAJOR_VERSION_H) || \
+     (FLEXIO_MCL_IP_CFG_AR_RELEASE_MINOR_VERSION_H != FLEXIO_MCL_IP_VS_0_PBCFG_AR_RELEASE_MINOR_VERSION_H) || \
+     (FLEXIO_MCL_IP_CFG_AR_RELEASE_REVISION_VERSION_H != FLEXIO_MCL_IP_VS_0_PBCFG_AR_RELEASE_REVISION_VERSION_H) \
+    )
+    #error "AutoSar Version Numbers of Flexio_Mcl_Ip_Cfg.h and Flexio_Mcl_Ip_VS_0_PBcfg.h are different"
+#endif
+
+/* Check if header file and Flexio_Mcl_Ip_VS_0_PBcfg.h file are of the same Software version */
+#if ((FLEXIO_MCL_IP_CFG_SW_MAJOR_VERSION_H != FLEXIO_MCL_IP_VS_0_PBCFG_SW_MAJOR_VERSION_H) || \
+     (FLEXIO_MCL_IP_CFG_SW_MINOR_VERSION_H != FLEXIO_MCL_IP_VS_0_PBCFG_SW_MINOR_VERSION_H) || \
+     (FLEXIO_MCL_IP_CFG_SW_PATCH_VERSION_H != FLEXIO_MCL_IP_VS_0_PBCFG_SW_PATCH_VERSION_H) \
+    )
+    #error "Software Version Numbers of Flexio_Mcl_Ip_Cfg.h and Flexio_Mcl_Ip_VS_0_PBcfg.h are different"
+#endif
+
+/*==================================================================================================
+*                                            CONSTANTS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                       DEFINES AND MACROS
+==================================================================================================*/
+/* Logic Channel 0 */
+#define MclConf_FlexioMclLogicChannels_FLEXIO_RX      ((uint32)CHANNEL_0)
+/* Logic Channel 1 */
+#define MclConf_FlexioMclLogicChannels_FLEXIO_TX      ((uint32)CHANNEL_1)
+
+#define MCL_START_SEC_CONFIG_DATA_UNSPECIFIED
+/* @violates @ref Mcl_Dma_h_REF_1 MISRA 2012 Required Directive 4.10, Precautions shall be taken in order to prevent the contents of a header file being included more than once. */
+#include "Mcl_MemMap.h"
+
+
+
+
+extern const Flexio_Ip_InstanceConfigType Flexio_Ip_xFlexioInit_VS_0;
+
+
+
+#define MCL_STOP_SEC_CONFIG_DATA_UNSPECIFIED
+/* @violates @ref Mcl_Dma_h_REF_1 MISRA 2012 Required Directive 4.10, Precautions shall be taken in order to prevent the contents of a header file being included more than once. */
+#include "Mcl_MemMap.h"
+
+/*==================================================================================================
+*                                              ENUMS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                  STRUCTURES AND OTHER TYPEDEFS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                  GLOBAL VARIABLE DECLARATIONS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                       FUNCTION PROTOTYPES
+==================================================================================================*/
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* FLEXIO_MCL_IP_CFG_H_ */
+

+ 175 - 175
generate/include/Flexio_Mcl_Ip_Cfg_Defines.h

@@ -1,175 +1,175 @@
-/*==================================================================================================
-*   Project              : RTD AUTOSAR 4.4
-*   Platform             : CORTEXM
-*   Peripheral           : DMA,CACHE,TRGMUX,FLEXIO
-*   Dependencies         : none
-*
-*   Autosar Version      : 4.4.0
-*   Autosar Revision     : ASR_REL_4_4_REV_0000
-*   Autosar Conf.Variant :
-*   SW Version           : 1.0.0
-*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
-*
-*   (c) Copyright 2020-2021 NXP Semiconductors
-*   All Rights Reserved.
-*
-*   NXP Confidential. This software is owned or controlled by NXP and may only be
-*   used strictly in accordance with the applicable license terms. By expressly
-*   accepting such terms or by downloading, installing, activating and/or otherwise
-*   using the software, you are agreeing that you have read, and that you agree to
-*   comply with and are bound by, such license terms. If you do not agree to be
-*   bound by the applicable license terms, then you may not retain, install,
-*   activate or otherwise use the software.
-==================================================================================================*/
-
-#ifndef FLEXIO_MCL_IP_CFG_DEFINES_H_
-#define FLEXIO_MCL_IP_CFG_DEFINES_H_
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-/*==================================================================================================
-*                                        INCLUDE FILES
-* 1) system and project includes
-* 2) needed interfaces from external units
-* 3) internal and external interfaces from this unit
-==================================================================================================*/
-#include "StandardTypes.h"
-#include "BasicTypes.h"
-
-#include "Flexio_Spi_Ip_CfgDefines.h"
-#if defined(SPI_CHANNEL_0_USED) || defined(SPI_CHANNEL_1_USED) || defined(SPI_CHANNEL_2_USED) || defined(SPI_CHANNEL_3_USED)|| defined(SPI_CHANNEL_4_USED) || defined(SPI_CHANNEL_5_USED) || defined(SPI_CHANNEL_6_USED) || defined(SPI_CHANNEL_7_USED)
-    #define USE_SPI_MODULE
-#endif
-#include "Flexio_Uart_Ip_CfgDefines.h"
-#if defined(UART_CHANNEL_0_USED) || defined(UART_CHANNEL_1_USED) || defined(UART_CHANNEL_2_USED) || defined(UART_CHANNEL_3_USED)|| defined(UART_CHANNEL_4_USED) || defined(UART_CHANNEL_5_USED) || defined(UART_CHANNEL_6_USED) || defined(UART_CHANNEL_7_USED)
-    #define USE_UART_MODULE
-#endif
-
-/*==================================================================================================
-*                                 SOURCE FILE VERSION INFORMATION
-==================================================================================================*/
-#define FLEXIO_MCL_IP_CFG_DEFINES_VENDOR_ID_H                    43
-#define FLEXIO_MCL_IP_CFG_DEFINES_MODULE_ID_H                    255
-#define FLEXIO_MCL_IP_CFG_DEFINES_AR_RELEASE_MAJOR_VERSION_H     4
-#define FLEXIO_MCL_IP_CFG_DEFINES_AR_RELEASE_MINOR_VERSION_H     4
-#define FLEXIO_MCL_IP_CFG_DEFINES_AR_RELEASE_REVISION_VERSION_H  0
-#define FLEXIO_MCL_IP_CFG_DEFINES_SW_MAJOR_VERSION_H             1
-#define FLEXIO_MCL_IP_CFG_DEFINES_SW_MINOR_VERSION_H             0
-#define FLEXIO_MCL_IP_CFG_DEFINES_SW_PATCH_VERSION_H             0
-
-/*==================================================================================================
-*                                       FILE VERSION CHECKS
-==================================================================================================*/
-#ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
-/* Check if header file and StandardTypes header file are of the same Autosar version */
-#if ((FLEXIO_MCL_IP_CFG_DEFINES_AR_RELEASE_MAJOR_VERSION_H != STD_AR_RELEASE_MAJOR_VERSION) || \
-     (FLEXIO_MCL_IP_CFG_DEFINES_AR_RELEASE_MINOR_VERSION_H != STD_AR_RELEASE_MINOR_VERSION))
-    #error "AutoSar Version Numbers of Flexio_Mcl_Ip_Cfg_Defines.h and StandardTypes.h are different"
-#endif
-
-#ifdef USE_I2C_MODULE
-/* Check if header file and Flexio_I2c_Ip_CfgDefines header file are of the same Autosar version */
-#if ((FLEXIO_MCL_IP_CFG_DEFINES_AR_RELEASE_MAJOR_VERSION_H != FLEXIO_I2C_IP_CFGDEFINES_AR_RELEASE_MAJOR_VERSION) || \
-     (FLEXIO_MCL_IP_CFG_DEFINES_AR_RELEASE_MINOR_VERSION_H != FLEXIO_I2C_IP_CFGDEFINES_AR_RELEASE_MINOR_VERSION))
-    #error "AutoSar Version Numbers of Flexio_Mcl_Ip_Cfg_Defines.h and Flexio_I2c_Ip_CfgDefines.h are different"
-#endif
-#endif /* USE_I2C_MODULE */
-
-#ifdef USE_SPI_MODULE
-/* Check if header file and Flexio_Spi_Ip_CfgDefines header file are of the same Autosar version */
-#if ((FLEXIO_MCL_IP_CFG_DEFINES_AR_RELEASE_MAJOR_VERSION_H != FLEXIO_SPI_IP_CFG_DEFINES_AR_RELEASE_MAJOR_VERSION_H) || \
-     (FLEXIO_MCL_IP_CFG_DEFINES_AR_RELEASE_MINOR_VERSION_H != FLEXIO_SPI_IP_CFG_DEFINES_AR_RELEASE_MINOR_VERSION_H))
-    #error "AutoSar Version Numbers of Flexio_Mcl_Ip_Cfg_Defines.h and Flexio_Spi_Ip_CfgDefines.h are different"
-#endif
-#endif /* USE_SPI_MODULE */
-
-#ifdef USE_UART_MODULE
-/* Check if header file and Flexio_Uart_Ip_CfgDefines header file are of the same Autosar version */
-#if ((FLEXIO_MCL_IP_CFG_DEFINES_AR_RELEASE_MAJOR_VERSION_H != FLEXIO_UART_IP_CFG_DEFINES_AR_RELEASE_MAJOR_VERSION) || \
-     (FLEXIO_MCL_IP_CFG_DEFINES_AR_RELEASE_MINOR_VERSION_H != FLEXIO_UART_IP_CFG_DEFINES_AR_RELEASE_MINOR_VERSION))
-    #error "AutoSar Version Numbers of Flexio_Mcl_Ip_Cfg_Defines.h and Flexio_Uart_Ip_CfgDefines.h are different"
-#endif
-#endif /* USE_UART_MODULE */
-
-#ifdef USE_PWM_MODULE
-/* Check if header file and Flexio_Pwm_Ip_CfgDefines header file are of the same Autosar version */
-#if ((FLEXIO_MCL_IP_CFG_DEFINES_AR_RELEASE_MAJOR_VERSION_H != FLEXIO_PWM_IP_CFGDEFINES_AR_RELEASE_MAJOR_VERSION) || \
-     (FLEXIO_MCL_IP_CFG_DEFINES_AR_RELEASE_MINOR_VERSION_H != FLEXIO_PWM_IP_CFGDEFINES_AR_RELEASE_MINOR_VERSION))
-    #error "AutoSar Version Numbers of Flexio_Mcl_Ip_Cfg_Defines.h and Flexio_Pwm_Ip_CfgDefines.h are different"
-#endif
-#endif /* USE_PWM_MODULE */
-
-#ifdef USE_LIN_MODULE
-/* Check if header file and Flexio_Lin_Ip_CfgDefines header file are of the same Autosar version */
-#if ((FLEXIO_MCL_IP_CFG_DEFINES_AR_RELEASE_MAJOR_VERSION_H != FLEXIO_LIN_IP_CFG_DEFINES_AR_RELEASE_MAJOR_VERSION) || \
-     (FLEXIO_MCL_IP_CFG_DEFINES_AR_RELEASE_MINOR_VERSION_H != FLEXIO_LIN_IP_CFG_DEFINES_AR_RELEASE_MINOR_VERSION))
-    #error "AutoSar Version Numbers of Flexio_Mcl_Ip_Cfg_Defines.h and Flexio_Lin_Ip_CfgDefines.h are different"
-#endif
-#endif /* USE_LIN_MODULE */
-#endif /* DISABLE_MCAL_INTERMODULE_ASR_CHECK */
-
-/*==================================================================================================
-*                                            CONSTANTS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                       DEFINES AND MACROS
-==================================================================================================*/
-
-/* Enable/Disable Flexio support from MCL. */
-#define FLEXIO_IP_IS_AVAILABLE                      STD_ON
-
-#define FLEXIO_MCL_IP_DEV_ERROR_DETECT        STD_OFF
-#define FLEXIO_MCL_IP_TIMERSDEN_IS_AVAILABLE  STD_OFF
-#define FLEXIO_MCL_IP_PIN_STS_IS_AVAILABLE    STD_OFF
-
-/*-----------------------------------------------/
-/  FLEXIO HARDWARE INSTANCES                        /
-/-----------------------------------------------*/
-#define FLEXIO_0                        ((uint8)(0U))
-
-/*-----------------------------------------------/
-/  FLEXIO HARDWARE CHANNELS                         /
-/-----------------------------------------------*/
-#define CHANNEL_0                       ((uint8)(0U))
-#define CHANNEL_1                       ((uint8)(1U))
-#define CHANNEL_2                       ((uint8)(2U))
-#define CHANNEL_3                       ((uint8)(3U))
-
-/*-----------------------------------------------/
-/  FLEXIO PINS                                   /
-/-----------------------------------------------*/
-#define PIN_0                           ((uint8)(0U))
-#define PIN_1                           ((uint8)(1U))
-#define PIN_2                           ((uint8)(2U))
-#define PIN_3                           ((uint8)(3U))
-#define PIN_4                           ((uint8)(4U))
-#define PIN_5                           ((uint8)(5U))
-#define PIN_6                           ((uint8)(6U))
-#define PIN_7                           ((uint8)(7U))
-
-
-/*==================================================================================================
-*                                              ENUMS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                  STRUCTURES AND OTHER TYPEDEFS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                  GLOBAL VARIABLE DECLARATIONS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                       FUNCTION PROTOTYPES
-==================================================================================================*/
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* FLEXIO_MCL_IP_CFG_DEFINES_H_ */
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : DMA,CACHE,TRGMUX,FLEXIO
+*   Dependencies         : none
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+
+#ifndef FLEXIO_MCL_IP_CFG_DEFINES_H_
+#define FLEXIO_MCL_IP_CFG_DEFINES_H_
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*==================================================================================================
+*                                        INCLUDE FILES
+* 1) system and project includes
+* 2) needed interfaces from external units
+* 3) internal and external interfaces from this unit
+==================================================================================================*/
+#include "StandardTypes.h"
+#include "BasicTypes.h"
+
+#include "Flexio_Spi_Ip_CfgDefines.h"
+#if defined(SPI_CHANNEL_0_USED) || defined(SPI_CHANNEL_1_USED) || defined(SPI_CHANNEL_2_USED) || defined(SPI_CHANNEL_3_USED)|| defined(SPI_CHANNEL_4_USED) || defined(SPI_CHANNEL_5_USED) || defined(SPI_CHANNEL_6_USED) || defined(SPI_CHANNEL_7_USED)
+    #define USE_SPI_MODULE
+#endif
+#include "Flexio_Uart_Ip_CfgDefines.h"
+#if defined(UART_CHANNEL_0_USED) || defined(UART_CHANNEL_1_USED) || defined(UART_CHANNEL_2_USED) || defined(UART_CHANNEL_3_USED)|| defined(UART_CHANNEL_4_USED) || defined(UART_CHANNEL_5_USED) || defined(UART_CHANNEL_6_USED) || defined(UART_CHANNEL_7_USED)
+    #define USE_UART_MODULE
+#endif
+
+/*==================================================================================================
+*                                 SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+#define FLEXIO_MCL_IP_CFG_DEFINES_VENDOR_ID_H                    43
+#define FLEXIO_MCL_IP_CFG_DEFINES_MODULE_ID_H                    255
+#define FLEXIO_MCL_IP_CFG_DEFINES_AR_RELEASE_MAJOR_VERSION_H     4
+#define FLEXIO_MCL_IP_CFG_DEFINES_AR_RELEASE_MINOR_VERSION_H     4
+#define FLEXIO_MCL_IP_CFG_DEFINES_AR_RELEASE_REVISION_VERSION_H  0
+#define FLEXIO_MCL_IP_CFG_DEFINES_SW_MAJOR_VERSION_H             1
+#define FLEXIO_MCL_IP_CFG_DEFINES_SW_MINOR_VERSION_H             0
+#define FLEXIO_MCL_IP_CFG_DEFINES_SW_PATCH_VERSION_H             0
+
+/*==================================================================================================
+*                                       FILE VERSION CHECKS
+==================================================================================================*/
+#ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
+/* Check if header file and StandardTypes header file are of the same Autosar version */
+#if ((FLEXIO_MCL_IP_CFG_DEFINES_AR_RELEASE_MAJOR_VERSION_H != STD_AR_RELEASE_MAJOR_VERSION) || \
+     (FLEXIO_MCL_IP_CFG_DEFINES_AR_RELEASE_MINOR_VERSION_H != STD_AR_RELEASE_MINOR_VERSION))
+    #error "AutoSar Version Numbers of Flexio_Mcl_Ip_Cfg_Defines.h and StandardTypes.h are different"
+#endif
+
+#ifdef USE_I2C_MODULE
+/* Check if header file and Flexio_I2c_Ip_CfgDefines header file are of the same Autosar version */
+#if ((FLEXIO_MCL_IP_CFG_DEFINES_AR_RELEASE_MAJOR_VERSION_H != FLEXIO_I2C_IP_CFGDEFINES_AR_RELEASE_MAJOR_VERSION) || \
+     (FLEXIO_MCL_IP_CFG_DEFINES_AR_RELEASE_MINOR_VERSION_H != FLEXIO_I2C_IP_CFGDEFINES_AR_RELEASE_MINOR_VERSION))
+    #error "AutoSar Version Numbers of Flexio_Mcl_Ip_Cfg_Defines.h and Flexio_I2c_Ip_CfgDefines.h are different"
+#endif
+#endif /* USE_I2C_MODULE */
+
+#ifdef USE_SPI_MODULE
+/* Check if header file and Flexio_Spi_Ip_CfgDefines header file are of the same Autosar version */
+#if ((FLEXIO_MCL_IP_CFG_DEFINES_AR_RELEASE_MAJOR_VERSION_H != FLEXIO_SPI_IP_CFG_DEFINES_AR_RELEASE_MAJOR_VERSION_H) || \
+     (FLEXIO_MCL_IP_CFG_DEFINES_AR_RELEASE_MINOR_VERSION_H != FLEXIO_SPI_IP_CFG_DEFINES_AR_RELEASE_MINOR_VERSION_H))
+    #error "AutoSar Version Numbers of Flexio_Mcl_Ip_Cfg_Defines.h and Flexio_Spi_Ip_CfgDefines.h are different"
+#endif
+#endif /* USE_SPI_MODULE */
+
+#ifdef USE_UART_MODULE
+/* Check if header file and Flexio_Uart_Ip_CfgDefines header file are of the same Autosar version */
+#if ((FLEXIO_MCL_IP_CFG_DEFINES_AR_RELEASE_MAJOR_VERSION_H != FLEXIO_UART_IP_CFG_DEFINES_AR_RELEASE_MAJOR_VERSION) || \
+     (FLEXIO_MCL_IP_CFG_DEFINES_AR_RELEASE_MINOR_VERSION_H != FLEXIO_UART_IP_CFG_DEFINES_AR_RELEASE_MINOR_VERSION))
+    #error "AutoSar Version Numbers of Flexio_Mcl_Ip_Cfg_Defines.h and Flexio_Uart_Ip_CfgDefines.h are different"
+#endif
+#endif /* USE_UART_MODULE */
+
+#ifdef USE_PWM_MODULE
+/* Check if header file and Flexio_Pwm_Ip_CfgDefines header file are of the same Autosar version */
+#if ((FLEXIO_MCL_IP_CFG_DEFINES_AR_RELEASE_MAJOR_VERSION_H != FLEXIO_PWM_IP_CFGDEFINES_AR_RELEASE_MAJOR_VERSION) || \
+     (FLEXIO_MCL_IP_CFG_DEFINES_AR_RELEASE_MINOR_VERSION_H != FLEXIO_PWM_IP_CFGDEFINES_AR_RELEASE_MINOR_VERSION))
+    #error "AutoSar Version Numbers of Flexio_Mcl_Ip_Cfg_Defines.h and Flexio_Pwm_Ip_CfgDefines.h are different"
+#endif
+#endif /* USE_PWM_MODULE */
+
+#ifdef USE_LIN_MODULE
+/* Check if header file and Flexio_Lin_Ip_CfgDefines header file are of the same Autosar version */
+#if ((FLEXIO_MCL_IP_CFG_DEFINES_AR_RELEASE_MAJOR_VERSION_H != FLEXIO_LIN_IP_CFG_DEFINES_AR_RELEASE_MAJOR_VERSION) || \
+     (FLEXIO_MCL_IP_CFG_DEFINES_AR_RELEASE_MINOR_VERSION_H != FLEXIO_LIN_IP_CFG_DEFINES_AR_RELEASE_MINOR_VERSION))
+    #error "AutoSar Version Numbers of Flexio_Mcl_Ip_Cfg_Defines.h and Flexio_Lin_Ip_CfgDefines.h are different"
+#endif
+#endif /* USE_LIN_MODULE */
+#endif /* DISABLE_MCAL_INTERMODULE_ASR_CHECK */
+
+/*==================================================================================================
+*                                            CONSTANTS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                       DEFINES AND MACROS
+==================================================================================================*/
+
+/* Enable/Disable Flexio support from MCL. */
+#define FLEXIO_IP_IS_AVAILABLE                      STD_ON
+
+#define FLEXIO_MCL_IP_DEV_ERROR_DETECT        STD_OFF
+#define FLEXIO_MCL_IP_TIMERSDEN_IS_AVAILABLE  STD_OFF
+#define FLEXIO_MCL_IP_PIN_STS_IS_AVAILABLE    STD_OFF
+
+/*-----------------------------------------------/
+/  FLEXIO HARDWARE INSTANCES                        /
+/-----------------------------------------------*/
+#define FLEXIO_0                        ((uint8)(0U))
+
+/*-----------------------------------------------/
+/  FLEXIO HARDWARE CHANNELS                         /
+/-----------------------------------------------*/
+#define CHANNEL_0                       ((uint8)(0U))
+#define CHANNEL_1                       ((uint8)(1U))
+#define CHANNEL_2                       ((uint8)(2U))
+#define CHANNEL_3                       ((uint8)(3U))
+
+/*-----------------------------------------------/
+/  FLEXIO PINS                                   /
+/-----------------------------------------------*/
+#define PIN_0                           ((uint8)(0U))
+#define PIN_1                           ((uint8)(1U))
+#define PIN_2                           ((uint8)(2U))
+#define PIN_3                           ((uint8)(3U))
+#define PIN_4                           ((uint8)(4U))
+#define PIN_5                           ((uint8)(5U))
+#define PIN_6                           ((uint8)(6U))
+#define PIN_7                           ((uint8)(7U))
+
+
+/*==================================================================================================
+*                                              ENUMS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                  STRUCTURES AND OTHER TYPEDEFS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                  GLOBAL VARIABLE DECLARATIONS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                       FUNCTION PROTOTYPES
+==================================================================================================*/
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* FLEXIO_MCL_IP_CFG_DEFINES_H_ */

+ 90 - 90
generate/include/Flexio_Mcl_Ip_Cfg_DeviceRegisters.h

@@ -1,90 +1,90 @@
-/*==================================================================================================
-*   Project              : RTD AUTOSAR 4.4
-*   Platform             : CORTEXM
-*   Peripheral           : DMA,CACHE,TRGMUX,FLEXIO
-*   Dependencies         : none
-*
-*   Autosar Version      : 4.4.0
-*   Autosar Revision     : ASR_REL_4_4_REV_0000
-*   Autosar Conf.Variant :
-*   SW Version           : 1.0.0
-*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
-*
-*   (c) Copyright 2020-2021 NXP Semiconductors
-*   All Rights Reserved.
-*
-*   NXP Confidential. This software is owned or controlled by NXP and may only be
-*   used strictly in accordance with the applicable license terms. By expressly
-*   accepting such terms or by downloading, installing, activating and/or otherwise
-*   using the software, you are agreeing that you have read, and that you agree to
-*   comply with and are bound by, such license terms. If you do not agree to be
-*   bound by the applicable license terms, then you may not retain, install,
-*   activate or otherwise use the software.
-==================================================================================================*/
-
-/* Prevention from multiple including the same header */
-#ifndef FLEXIO_MCL_IP_CFG_DEVICE_REGISTERS_H_
-#define FLEXIO_MCL_IP_CFG_DEVICE_REGISTERS_H_
-
-/**
-*   @file    Flexio_Mcl_Ip_Cfg_DeviceRegisters.h
-*
-*   @version 1.0.0
-*
-*   @brief   AUTOSAR Mcl - Flexio Ip Cfg Device Register header file.
-*   @details Contains common register information and specific register information for
-*            Flexio.
-*
-*   @addtogroup FLEXIO_MCL_IP_DRIVER FLEXIO IP Driver
-*   @{
-*/
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-/*==================================================================================================
-*                                        INCLUDE FILES
-* 1) system and project includes
-* 2) needed interfaces from external units
-* 3) internal and external interfaces from this unit
-==================================================================================================*/
-#include "Mcal.h"
-#include "BasicTypes.h"
-#include "S32K146_FLEXIO.h"
-
-/*==================================================================================================
-*                                 SOURCE FILE VERSION INFORMATION
-==================================================================================================*/
-#define FLEXIO_MCL_IP_CFG_DEVICEREGISTERS_VENDOR_ID_H                    43
-#define FLEXIO_MCL_IP_CFG_DEVICEREGISTERS_MODULE_ID_H                    255
-#define FLEXIO_MCL_IP_CFG_DEVICEREGISTERS_AR_RELEASE_MAJOR_VERSION_H     4
-#define FLEXIO_MCL_IP_CFG_DEVICEREGISTERS_AR_RELEASE_MINOR_VERSION_H     4
-#define FLEXIO_MCL_IP_CFG_DEVICEREGISTERS_AR_RELEASE_REVISION_VERSION_H  0
-#define FLEXIO_MCL_IP_CFG_DEVICEREGISTERS_SW_MAJOR_VERSION_H             1
-#define FLEXIO_MCL_IP_CFG_DEVICEREGISTERS_SW_MINOR_VERSION_H             0
-#define FLEXIO_MCL_IP_CFG_DEVICEREGISTERS_SW_PATCH_VERSION_H             0
-
-/*==================================================================================================
-                                      FILE VERSION CHECKS
-==================================================================================================*/
-#ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
-/* Check if header file and Mcal header file are of the same Autosar version */
-#if ((FLEXIO_MCL_IP_CFG_DEVICEREGISTERS_AR_RELEASE_MAJOR_VERSION_H != MCAL_AR_RELEASE_MAJOR_VERSION) || \
-     (FLEXIO_MCL_IP_CFG_DEVICEREGISTERS_AR_RELEASE_MINOR_VERSION_H != MCAL_AR_RELEASE_MINOR_VERSION))
-    #error "AutoSar Version Numbers of Flexio_Mcl_Ip_Cfg_DeviceRegisters.h and Mcal.h are different"
-#endif
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-/** @} */
-
-#endif  /* #ifndef FLEXIO_MCL_IP_CFG_DEVICE_REGISTERS_H_ */
-
-/*==================================================================================================
- *                                        END OF FILE
-==================================================================================================*/
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : DMA,CACHE,TRGMUX,FLEXIO
+*   Dependencies         : none
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+
+/* Prevention from multiple including the same header */
+#ifndef FLEXIO_MCL_IP_CFG_DEVICE_REGISTERS_H_
+#define FLEXIO_MCL_IP_CFG_DEVICE_REGISTERS_H_
+
+/**
+*   @file    Flexio_Mcl_Ip_Cfg_DeviceRegisters.h
+*
+*   @version 1.0.0
+*
+*   @brief   AUTOSAR Mcl - Flexio Ip Cfg Device Register header file.
+*   @details Contains common register information and specific register information for
+*            Flexio.
+*
+*   @addtogroup FLEXIO_MCL_IP_DRIVER FLEXIO IP Driver
+*   @{
+*/
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*==================================================================================================
+*                                        INCLUDE FILES
+* 1) system and project includes
+* 2) needed interfaces from external units
+* 3) internal and external interfaces from this unit
+==================================================================================================*/
+#include "Mcal.h"
+#include "BasicTypes.h"
+#include "S32K146_FLEXIO.h"
+
+/*==================================================================================================
+*                                 SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+#define FLEXIO_MCL_IP_CFG_DEVICEREGISTERS_VENDOR_ID_H                    43
+#define FLEXIO_MCL_IP_CFG_DEVICEREGISTERS_MODULE_ID_H                    255
+#define FLEXIO_MCL_IP_CFG_DEVICEREGISTERS_AR_RELEASE_MAJOR_VERSION_H     4
+#define FLEXIO_MCL_IP_CFG_DEVICEREGISTERS_AR_RELEASE_MINOR_VERSION_H     4
+#define FLEXIO_MCL_IP_CFG_DEVICEREGISTERS_AR_RELEASE_REVISION_VERSION_H  0
+#define FLEXIO_MCL_IP_CFG_DEVICEREGISTERS_SW_MAJOR_VERSION_H             1
+#define FLEXIO_MCL_IP_CFG_DEVICEREGISTERS_SW_MINOR_VERSION_H             0
+#define FLEXIO_MCL_IP_CFG_DEVICEREGISTERS_SW_PATCH_VERSION_H             0
+
+/*==================================================================================================
+                                      FILE VERSION CHECKS
+==================================================================================================*/
+#ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
+/* Check if header file and Mcal header file are of the same Autosar version */
+#if ((FLEXIO_MCL_IP_CFG_DEVICEREGISTERS_AR_RELEASE_MAJOR_VERSION_H != MCAL_AR_RELEASE_MAJOR_VERSION) || \
+     (FLEXIO_MCL_IP_CFG_DEVICEREGISTERS_AR_RELEASE_MINOR_VERSION_H != MCAL_AR_RELEASE_MINOR_VERSION))
+    #error "AutoSar Version Numbers of Flexio_Mcl_Ip_Cfg_DeviceRegisters.h and Mcal.h are different"
+#endif
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+/** @} */
+
+#endif  /* #ifndef FLEXIO_MCL_IP_CFG_DEVICE_REGISTERS_H_ */
+
+/*==================================================================================================
+ *                                        END OF FILE
+==================================================================================================*/

+ 105 - 105
generate/include/Flexio_Mcl_Ip_VS_0_PBcfg.h

@@ -1,105 +1,105 @@
-/*==================================================================================================
-*   Project              : RTD AUTOSAR 4.4
-*   Platform             : CORTEXM
-*   Peripheral           : DMA,CACHE,TRGMUX,FLEXIO
-*   Dependencies         : none
-*
-*   Autosar Version      : 4.4.0
-*   Autosar Revision     : ASR_REL_4_4_REV_0000
-*   Autosar Conf.Variant :
-*   SW Version           : 1.0.0
-*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
-*
-*   (c) Copyright 2020-2021 NXP Semiconductors
-*   All Rights Reserved.
-*
-*   NXP Confidential. This software is owned or controlled by NXP and may only be
-*   used strictly in accordance with the applicable license terms. By expressly
-*   accepting such terms or by downloading, installing, activating and/or otherwise
-*   using the software, you are agreeing that you have read, and that you agree to
-*   comply with and are bound by, such license terms. If you do not agree to be
-*   bound by the applicable license terms, then you may not retain, install,
-*   activate or otherwise use the software.
-==================================================================================================*/
-
-#ifndef FLEXIO_MCL_IP_VS_0_PBCFG_H_
-#define FLEXIO_MCL_IP_VS_0_PBCFG_H_
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-/*==================================================================================================
-*                                        INCLUDE FILES
-* 1) system and project includes
-* 2) needed interfaces from external units
-* 3) internal and external interfaces from this unit
-==================================================================================================*/
-#include "Flexio_Mcl_Ip_Types.h"
-
-/*==================================================================================================
-*                                 SOURCE FILE VERSION INFORMATION
-==================================================================================================*/
-#define FLEXIO_MCL_IP_VS_0_PBCFG_VENDOR_ID_H                        43
-#define FLEXIO_MCL_IP_VS_0_PBCFG_AR_RELEASE_MAJOR_VERSION_H         4
-#define FLEXIO_MCL_IP_VS_0_PBCFG_AR_RELEASE_MINOR_VERSION_H         4
-#define FLEXIO_MCL_IP_VS_0_PBCFG_AR_RELEASE_REVISION_VERSION_H      0
-#define FLEXIO_MCL_IP_VS_0_PBCFG_SW_MAJOR_VERSION_H                 1
-#define FLEXIO_MCL_IP_VS_0_PBCFG_SW_MINOR_VERSION_H                 0
-#define FLEXIO_MCL_IP_VS_0_PBCFG_SW_PATCH_VERSION_H                 0
-
-/*==================================================================================================
-*                                       FILE VERSION CHECKS
-==================================================================================================*/
-/* Check if Flexio_Mcl_Ip_VS_0_PBcfg.h file and Flexio_Mcl_Ip_Types.h file are of the same vendor */
-#if (FLEXIO_MCL_IP_VS_0_PBCFG_VENDOR_ID_H != FLEXIO_MCL_IP_TYPES_VENDOR_ID_H)
-    #error "Flexio_Mcl_Ip_VS_0_PBcfg.h and Flexio_Mcl_Ip_Types.h have different vendor ids"
-#endif
-
-/* Check if Flexio_Mcl_Ip_VS_0_PBcfg.h file and Flexio_Mcl_Ip_Types.h file are of the same Autosar version */
-#if ((FLEXIO_MCL_IP_VS_0_PBCFG_AR_RELEASE_MAJOR_VERSION_H != FLEXIO_MCL_IP_TYPES_AR_RELEASE_MAJOR_VERSION_H) || \
-     (FLEXIO_MCL_IP_VS_0_PBCFG_AR_RELEASE_MINOR_VERSION_H != FLEXIO_MCL_IP_TYPES_AR_RELEASE_MINOR_VERSION_H) || \
-     (FLEXIO_MCL_IP_VS_0_PBCFG_AR_RELEASE_REVISION_VERSION_H != FLEXIO_MCL_IP_TYPES_AR_RELEASE_REVISION_VERSION_H) \
-    )
-    #error "AutoSar Version Numbers of Flexio_Mcl_Ip_VS_0_PBcfg.h and Flexio_Mcl_Ip_Types.h are different"
-#endif
-
-/* Check if Flexio_Mcl_Ip_VS_0_PBcfg.h file and Flexio_Mcl_Ip_Types.h file are of the same Software version */
-#if ((FLEXIO_MCL_IP_VS_0_PBCFG_SW_MAJOR_VERSION_H != FLEXIO_MCL_IP_TYPES_SW_MAJOR_VERSION_H) || \
-     (FLEXIO_MCL_IP_VS_0_PBCFG_SW_MINOR_VERSION_H != FLEXIO_MCL_IP_TYPES_SW_MINOR_VERSION_H) || \
-     (FLEXIO_MCL_IP_VS_0_PBCFG_SW_PATCH_VERSION_H != FLEXIO_MCL_IP_TYPES_SW_PATCH_VERSION_H) \
-    )
-    #error "Software Version Numbers of Flexio_Mcl_Ip_VS_0_PBcfg.h and Flexio_Mcl_Ip_Types.h are different"
-#endif
-
-/*==================================================================================================
-*                                            CONSTANTS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                       DEFINES AND MACROS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                              ENUMS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                  STRUCTURES AND OTHER TYPEDEFS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                  GLOBAL VARIABLE DECLARATIONS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                       FUNCTION PROTOTYPES
-==================================================================================================*/
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* FLEXIO_MCL_IP_VS_0_PBCFG_H_ */
-
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : DMA,CACHE,TRGMUX,FLEXIO
+*   Dependencies         : none
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+
+#ifndef FLEXIO_MCL_IP_VS_0_PBCFG_H_
+#define FLEXIO_MCL_IP_VS_0_PBCFG_H_
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*==================================================================================================
+*                                        INCLUDE FILES
+* 1) system and project includes
+* 2) needed interfaces from external units
+* 3) internal and external interfaces from this unit
+==================================================================================================*/
+#include "Flexio_Mcl_Ip_Types.h"
+
+/*==================================================================================================
+*                                 SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+#define FLEXIO_MCL_IP_VS_0_PBCFG_VENDOR_ID_H                        43
+#define FLEXIO_MCL_IP_VS_0_PBCFG_AR_RELEASE_MAJOR_VERSION_H         4
+#define FLEXIO_MCL_IP_VS_0_PBCFG_AR_RELEASE_MINOR_VERSION_H         4
+#define FLEXIO_MCL_IP_VS_0_PBCFG_AR_RELEASE_REVISION_VERSION_H      0
+#define FLEXIO_MCL_IP_VS_0_PBCFG_SW_MAJOR_VERSION_H                 1
+#define FLEXIO_MCL_IP_VS_0_PBCFG_SW_MINOR_VERSION_H                 0
+#define FLEXIO_MCL_IP_VS_0_PBCFG_SW_PATCH_VERSION_H                 0
+
+/*==================================================================================================
+*                                       FILE VERSION CHECKS
+==================================================================================================*/
+/* Check if Flexio_Mcl_Ip_VS_0_PBcfg.h file and Flexio_Mcl_Ip_Types.h file are of the same vendor */
+#if (FLEXIO_MCL_IP_VS_0_PBCFG_VENDOR_ID_H != FLEXIO_MCL_IP_TYPES_VENDOR_ID_H)
+    #error "Flexio_Mcl_Ip_VS_0_PBcfg.h and Flexio_Mcl_Ip_Types.h have different vendor ids"
+#endif
+
+/* Check if Flexio_Mcl_Ip_VS_0_PBcfg.h file and Flexio_Mcl_Ip_Types.h file are of the same Autosar version */
+#if ((FLEXIO_MCL_IP_VS_0_PBCFG_AR_RELEASE_MAJOR_VERSION_H != FLEXIO_MCL_IP_TYPES_AR_RELEASE_MAJOR_VERSION_H) || \
+     (FLEXIO_MCL_IP_VS_0_PBCFG_AR_RELEASE_MINOR_VERSION_H != FLEXIO_MCL_IP_TYPES_AR_RELEASE_MINOR_VERSION_H) || \
+     (FLEXIO_MCL_IP_VS_0_PBCFG_AR_RELEASE_REVISION_VERSION_H != FLEXIO_MCL_IP_TYPES_AR_RELEASE_REVISION_VERSION_H) \
+    )
+    #error "AutoSar Version Numbers of Flexio_Mcl_Ip_VS_0_PBcfg.h and Flexio_Mcl_Ip_Types.h are different"
+#endif
+
+/* Check if Flexio_Mcl_Ip_VS_0_PBcfg.h file and Flexio_Mcl_Ip_Types.h file are of the same Software version */
+#if ((FLEXIO_MCL_IP_VS_0_PBCFG_SW_MAJOR_VERSION_H != FLEXIO_MCL_IP_TYPES_SW_MAJOR_VERSION_H) || \
+     (FLEXIO_MCL_IP_VS_0_PBCFG_SW_MINOR_VERSION_H != FLEXIO_MCL_IP_TYPES_SW_MINOR_VERSION_H) || \
+     (FLEXIO_MCL_IP_VS_0_PBCFG_SW_PATCH_VERSION_H != FLEXIO_MCL_IP_TYPES_SW_PATCH_VERSION_H) \
+    )
+    #error "Software Version Numbers of Flexio_Mcl_Ip_VS_0_PBcfg.h and Flexio_Mcl_Ip_Types.h are different"
+#endif
+
+/*==================================================================================================
+*                                            CONSTANTS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                       DEFINES AND MACROS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                              ENUMS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                  STRUCTURES AND OTHER TYPEDEFS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                  GLOBAL VARIABLE DECLARATIONS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                       FUNCTION PROTOTYPES
+==================================================================================================*/
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* FLEXIO_MCL_IP_VS_0_PBCFG_H_ */
+

+ 278 - 278
generate/include/Flexio_Spi_Ip_Cfg.h

@@ -1,278 +1,278 @@
-/*==================================================================================================
-*   Project              : RTD AUTOSAR 4.4
-*   Platform             : CORTEXM
-*   Peripheral           : LPSPI
-*   Dependencies         : 
-*
-*   Autosar Version      : 4.4.0
-*   Autosar Revision     : ASR_REL_4_4_REV_0000
-*   Autosar Conf.Variant :
-*   SW Version           : 1.0.0
-*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
-*
-*   (c) Copyright 2020-2021 NXP Semiconductors
-*   All Rights Reserved.
-*
-*   NXP Confidential. This software is owned or controlled by NXP and may only be
-*   used strictly in accordance with the applicable license terms. By expressly
-*   accepting such terms or by downloading, installing, activating and/or otherwise
-*   using the software, you are agreeing that you have read, and that you agree to
-*   comply with and are bound by, such license terms. If you do not agree to be
-*   bound by the applicable license terms, then you may not retain, install,
-*   activate or otherwise use the software.
-==================================================================================================*/
-
-#ifndef FLEXIO_SPI_IP_CFG_H
-#define FLEXIO_SPI_IP_CFG_H
-
-/**
-*   @file     Flexio_Spi_Ip_Cfg.h
-*   @version 1.0.0
-*
-*   @brief   AUTOSAR Spi - Spi configuration header file.
-*   @details This file is the header containing all the necessary information for SPI
-*            module configuration(s).
-*   @addtogroup FLEXIO_DRIVER_CONFIGURATION  Flexio_Spi Driver Configuration
-*   @{
-*/
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-/*==================================================================================================
-*                                        INCLUDE FILES
-* 1) system and project includes
-* 2) needed interfaces from external units
-* 3) internal and external interfaces from this unit
-* 4) user callback header files
-==================================================================================================*/
-#include "Mcal.h"
-#include "OsIf.h"
-
-#include "Flexio_Spi_Ip_VS_0_PBcfg.h"
-
-#include "S32K146_FLEXIO.h"
-/*==================================================================================================
-*                              SOURCE FILE VERSION INFORMATION
-==================================================================================================*/
-
-#define FLEXIO_SPI_IP_VENDOR_ID_CFG                       43
-#define FLEXIO_SPI_IP_AR_RELEASE_MAJOR_VERSION_CFG        4
-#define FLEXIO_SPI_IP_AR_RELEASE_MINOR_VERSION_CFG        4
-#define FLEXIO_SPI_IP_AR_RELEASE_REVISION_VERSION_CFG     0
-#define FLEXIO_SPI_IP_SW_MAJOR_VERSION_CFG                1
-#define FLEXIO_SPI_IP_SW_MINOR_VERSION_CFG                0
-#define FLEXIO_SPI_IP_SW_PATCH_VERSION_CFG                0
-
-/*==================================================================================================
-*                                     FILE VERSION CHECKS
-==================================================================================================*/
-#ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
-    /* Check if current file and Mcal header file are of the same Autosar version */
-    #if ((FLEXIO_SPI_IP_AR_RELEASE_MAJOR_VERSION_CFG != MCAL_AR_RELEASE_MAJOR_VERSION) || \
-         (FLEXIO_SPI_IP_AR_RELEASE_MINOR_VERSION_CFG != MCAL_AR_RELEASE_MINOR_VERSION))
-        #error "AutoSar Version Numbers of Flexio_Spi_Ip_Cfg.h and Mcal.h are different"
-    #endif
-
-    /* Check if current file and OsIf header file are of the same Autosar version */
-    #if ((FLEXIO_SPI_IP_AR_RELEASE_MAJOR_VERSION_CFG != OSIF_AR_RELEASE_MAJOR_VERSION) || \
-         (FLEXIO_SPI_IP_AR_RELEASE_MINOR_VERSION_CFG != OSIF_AR_RELEASE_MINOR_VERSION))
-        #error "AutoSar Version Numbers of Flexio_Spi_Ip_Cfg.h and OsIf.h are different"
-    #endif
-#endif
-
-
-
-/* Check if Flexio_Spi_Ip_VS_0_PBcfg header file and Spi configuration header file are of the same vendor */
-#if (FLEXIO_SPI_IP_VS_0_VENDOR_ID_PBCFG != FLEXIO_SPI_IP_VENDOR_ID_CFG)
-    #error "Flexio_Spi_Ip_VS_0_PBcfg.h and Flexio_Spi_Ip_Cfg.h have different vendor IDs"
-#endif
-    /* Check if Flexio_Spi_Ip_VS_0_PBcfg header file and Spi  configuration header file are of the same Autosar version */
-#if ((FLEXIO_SPI_IP_VS_0_AR_RELEASE_MAJOR_VERSION_PBCFG != FLEXIO_SPI_IP_AR_RELEASE_MAJOR_VERSION_CFG) || \
-     (FLEXIO_SPI_IP_VS_0_AR_RELEASE_MINOR_VERSION_PBCFG != FLEXIO_SPI_IP_AR_RELEASE_MINOR_VERSION_CFG) || \
-     (FLEXIO_SPI_IP_VS_0_AR_RELEASE_REVISION_VERSION_PBCFG != FLEXIO_SPI_IP_AR_RELEASE_REVISION_VERSION_CFG))
-#error "AutoSar Version Numbers of Flexio_Spi_Ip_VS_0_PBcfg.h and Flexio_Spi_Ip_Cfg.h are different"
-#endif
-/* Check if Flexio_Spi_Ip_VS_0_PBcfg header file and Spi configuration header file are of the same software version */
-#if ((FLEXIO_SPI_IP_VS_0_SW_MAJOR_VERSION_PBCFG != FLEXIO_SPI_IP_SW_MAJOR_VERSION_CFG) || \
-     (FLEXIO_SPI_IP_VS_0_SW_MINOR_VERSION_PBCFG != FLEXIO_SPI_IP_SW_MINOR_VERSION_CFG) || \
-     (FLEXIO_SPI_IP_VS_0_SW_PATCH_VERSION_PBCFG != FLEXIO_SPI_IP_SW_PATCH_VERSION_CFG))
-#error "Software Version Numbers of Flexio_Spi_Ip_VS_0_PBcfg.h and Flexio_Spi_Ip_Cfg.h are different"
-#endif
-
-
-
-/*==================================================================================================
-*                                          CONSTANTS
-==================================================================================================*/
-/**
-* @brief Flexio SPI supported enable.
-* @details Flexio SPI supported enable. 
-*/
-#define FLEXIO_SPI_IP_ENABLE     (STD_OFF)
-
-#if (FLEXIO_SPI_IP_ENABLE == STD_ON)
-#define FLEXIO_SPI_IP_CONFIG_EXT \
- FLEXIO_SPI_IP_CONFIG_VS_0_PB \
-
-
-/** @brief Total number of SpiPhyUnit configured. */
-#define FLEXIO_SPI_IP_NUMBER_OF_INSTANCES           (1U)
-
-/** @brief Total number of FLEXIO_SPI HW Unit are supported . */
-#define FLEXIO_SPI_IP_NUMBER_OF_HWUNIT_U8         (uint8)(2U)
-
-/** @brief Total number of Flexio instance. */
-#define FLEXIO_SPI_IP_INSTANCE_COUNT           (FLEXIO_INSTANCE_COUNT)
-
-/** @brief HWUnits enabled/disabled */
-
-#define FLEXIO_SPI_IP_SLAVE_SUPPORT  ((STD_OFF))
-
-
-/**
-* @brief Defines if transfers are made using DMA or FIFO.
-* @details Defines if transfers are made using DMA or FIFO.
-*/
-#define FLEXIO_SPI_IP_DMA_USED     (STD_OFF)
-
-/**
-* @brief If enabled, allows dual MCU clock configuration settings.
-* @details If enabled, allows dual MCU clock configuration settings.
-*/
-#define FLEXIO_SPI_IP_DUAL_CLOCK_MODE  (STD_OFF)
-
-/**
-* @brief Define Timeout Method.
-* @details Define a certain timeout method from OsIf will be used in the driver.
-*/
-#define FLEXIO_SPI_IP_TIMEOUT_METHOD           (OSIF_COUNTER_SYSTEM)
-
-/**
-* @brief          Enable User Mode Support.
-* @details        When SpiAutosarExt/SpiEnableUserModeSupport = TRUE,
-*                 the SPI driver can be executed from both supervisor and user mode.
-*
-* @api
-*/
-#define FLEXIO_SPI_IP_ENABLE_USER_MODE_SUPPORT (STD_OFF)
-
-/**
-* @brief Switches ON or OFF for the detection and reporting of development errors(API parameter checking) at IP level.
-*/
-/** @implements FLEXIO_SPI_IP_DEV_ERROR_DETECT_define  */
-#define FLEXIO_SPI_IP_DEV_ERROR_DETECT     (STD_OFF)
-
-/**
-* @brief Maximum of frame size supported.
-*/
-#define FLEXIO_SPI_IP_FRAMESIZE_MAX_U8                              ((uint8)32U)
-
-/**
-* @brief Maximum of frame size supported.
-*/
-#define FLEXIO_SPI_IP_FRAMESIZE_MIN_U8                              ((uint8)4U)
-
-/** @brief Write to CTRL */
-#define FLEXIO_SPI_IP_CTRL_FLEXEN(x)  FLEXIO_CTRL_FLEXEN(x)
-
-/** @brief Write to  TIMCMP */
-#define FLEXIO_SPI_IP_TIMECMP_BAUDRATE_MASK_U32  ((uint32) 0x00FFu)
-#define FLEXIO_SPI_IP_TIMECMP_FRAMESIZE_MASK_U32 ((uint32) 0xFF00u)
-#define FLEXIO_SPI_IP_TIMCMP_CMP(x)        FLEXIO_TIMCMP_CMP(x)
-
-/** @brief CPOL and CPHA selection */
-#define FLEXIO_SPI_IP_CPOL_LOW_U8          ((uint8) 0U)
-#define FLEXIO_SPI_IP_CPOL_HIGH_U8         ((uint8) 1U)
-#define FLEXIO_SPI_IP_CPHA_LEADING_U8      ((uint8) 0U)
-#define FLEXIO_SPI_IP_CPHA_TRAILING_U8     ((uint8) 1U)
-
-/** @brief Write to  SHIFTCTL */
-#define FLEXIO_SPI_IP_SHIFTCTL_TIMSEL(x)     FLEXIO_SHIFTCTL_TIMSEL(x)
-#define FLEXIO_SPI_IP_SHIFTCTL_PINSEL(x)     FLEXIO_SHIFTCTL_PINSEL(x)
-#define FLEXIO_SPI_IP_SHIFTCTL_PINCFG(x)     FLEXIO_SHIFTCTL_PINCFG(x) 
-#define FLEXIO_SPI_IP_SHIFTCTL_SMOD(x)       FLEXIO_SHIFTCTL_SMOD(x)
-#define FLEXIO_SPI_IP_SHIFTCTL_TIMPOL(x)     FLEXIO_SHIFTCTL_TIMPOL(x)
-
-/** @brief Write to SHIFTCFG */
-#define FLEXIO_SPI_IP_SHIFTCFG_SSTOP(x)      FLEXIO_SHIFTCFG_SSTOP(x)
-#define FLEXIO_SPI_IP_SHIFTCFG_SSTART(x)     FLEXIO_SHIFTCFG_SSTART(x)
-#define FLEXIO_SPI_IP_TIMCFG_TIMDEC(x)       FLEXIO_TIMCFG_TIMDEC(x)
-
-/** @brief Write to TIMCTL  */
-#define FLEXIO_SPI_IP_TIMCTL_PINSEL(x)             FLEXIO_TIMCTL_PINSEL(x)
-#define FLEXIO_SPI_IP_TIMCTL_TRGSEL(x)             FLEXIO_TIMCTL_TRGSEL(x)
-#define FLEXIO_SPI_IP_TIMCTL_TRGSRC(x)             FLEXIO_TIMCTL_TRGSRC(x)
-#define FLEXIO_SPI_IP_TIMCTL_TIMOD(x)              FLEXIO_TIMCTL_TIMOD(x)
-#define FLEXIO_SPI_IP_TIMCTL_TRGPOL(x)             FLEXIO_TIMCTL_TRGPOL(x)
-#define FLEXIO_SPI_IP_TIMCTL_PINPOL(x)             FLEXIO_TIMCTL_PINPOL(x)
-#define FLEXIO_SPI_IP_TIMCTL_PINCFG(x)             FLEXIO_TIMCTL_PINCFG(x)
-#define FLEXIO_SPI_IP_TIMCTL_ONETIM(x)             FLEXIO_TIMCTL_ONETIM(x)
-
-/** @brief Write to TIMCFG  */
-#define FLEXIO_SPI_IP_TIMCFG_TIMOUT(x)             FLEXIO_TIMCFG_TIMOUT(x)
-#define FLEXIO_SPI_IP_TIMCFG_TIMDIS(x)             FLEXIO_TIMCFG_TIMDIS(x)
-#define FLEXIO_SPI_IP_TIMCFG_TIMENA(x)             FLEXIO_TIMCFG_TIMENA(x)
-#define FLEXIO_SPI_IP_TIMCFG_TIMRST(x)             FLEXIO_TIMCFG_TIMRST(x)
-#define FLEXIO_SPI_IP_TIMCFG_DEFAULT_MASTER_VALUE         ((uint32) 0x00000222u)
-#define FLEXIO_SPI_IP_TIMCFG_DEFAULT_SLAVE_CPHA0_VALUE         ((uint32) 0x01200600u)
-#define FLEXIO_SPI_IP_TIMCFG_DEFAULT_SLAVE_CPHA1_VALUE         ((uint32) 0x01206602u)
-
-/** @brief Write to SHIFTSIEN and SHIFTSDEN */
-#define FLEXIO_SPI_IP_SHIFTSIEN_SSIE(x)         FLEXIO_SHIFTSIEN_SSIE(x)
-#define FLEXIO_SPI_IP_SHIFTSDEN_SSDE(x)         FLEXIO_SHIFTSDEN_SSDE(x) 
-
-/**
-* @brief Shifters and Timer index
-*/
-#define FLEXIO_SPI_IP_SHIFTER_0_U8                   ((uint8)0U)
-#define FLEXIO_SPI_IP_SHIFTER_1_U8                   ((uint8)1U)
-#define FLEXIO_SPI_IP_SHIFTER_2_U8                   ((uint8)2U)
-#define FLEXIO_SPI_IP_SHIFTER_3_U8                   ((uint8)3U)
-#define FLEXIO_SPI_IP_SHIFTER_4_U8                   ((uint8)4U)
-#define FLEXIO_SPI_IP_SHIFTER_5_U8                   ((uint8)5U)
-#define FLEXIO_SPI_IP_SHIFTER_6_U8                   ((uint8)6U)
-#define FLEXIO_SPI_IP_SHIFTER_7_U8                   ((uint8)7U)
-
-#define FLEXIO_SPI_IP_TIMER_0_U8                     ((uint8)0U)
-#define FLEXIO_SPI_IP_TIMER_1_U8                     ((uint8)1U)
-#define FLEXIO_SPI_IP_TIMER_2_U8                     ((uint8)2U)
-#define FLEXIO_SPI_IP_TIMER_3_U8                     ((uint8)3U)
-#define FLEXIO_SPI_IP_TIMER_4_U8                     ((uint8)4U)
-#define FLEXIO_SPI_IP_TIMER_5_U8                     ((uint8)5U)
-#define FLEXIO_SPI_IP_TIMER_6_U8                     ((uint8)6U)
-#define FLEXIO_SPI_IP_TIMER_7_U8                     ((uint8)7U)
-
-#endif /*(FLEXIO_SPI_IP_ENABLE == STD_ON)*/
-/*==================================================================================================
- *                                     DEFINES AND MACROS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                            ENUMS
-==================================================================================================*/
-
-
-/*==================================================================================================
-*                               STRUCTURES AND OTHER TYPEDEFS
-==================================================================================================*/
-
-
-/*==================================================================================================
-*                                GLOBAL VARIABLE DECLARATIONS
-==================================================================================================*/
-
-
-/*==================================================================================================
-*                                    FUNCTION PROTOTYPES
-==================================================================================================*/
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif 
-
-/** @} */
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : LPSPI
+*   Dependencies         : 
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+
+#ifndef FLEXIO_SPI_IP_CFG_H
+#define FLEXIO_SPI_IP_CFG_H
+
+/**
+*   @file     Flexio_Spi_Ip_Cfg.h
+*   @version 1.0.0
+*
+*   @brief   AUTOSAR Spi - Spi configuration header file.
+*   @details This file is the header containing all the necessary information for SPI
+*            module configuration(s).
+*   @addtogroup FLEXIO_DRIVER_CONFIGURATION  Flexio_Spi Driver Configuration
+*   @{
+*/
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+/*==================================================================================================
+*                                        INCLUDE FILES
+* 1) system and project includes
+* 2) needed interfaces from external units
+* 3) internal and external interfaces from this unit
+* 4) user callback header files
+==================================================================================================*/
+#include "Mcal.h"
+#include "OsIf.h"
+
+#include "Flexio_Spi_Ip_VS_0_PBcfg.h"
+
+#include "S32K146_FLEXIO.h"
+/*==================================================================================================
+*                              SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+
+#define FLEXIO_SPI_IP_VENDOR_ID_CFG                       43
+#define FLEXIO_SPI_IP_AR_RELEASE_MAJOR_VERSION_CFG        4
+#define FLEXIO_SPI_IP_AR_RELEASE_MINOR_VERSION_CFG        4
+#define FLEXIO_SPI_IP_AR_RELEASE_REVISION_VERSION_CFG     0
+#define FLEXIO_SPI_IP_SW_MAJOR_VERSION_CFG                1
+#define FLEXIO_SPI_IP_SW_MINOR_VERSION_CFG                0
+#define FLEXIO_SPI_IP_SW_PATCH_VERSION_CFG                0
+
+/*==================================================================================================
+*                                     FILE VERSION CHECKS
+==================================================================================================*/
+#ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
+    /* Check if current file and Mcal header file are of the same Autosar version */
+    #if ((FLEXIO_SPI_IP_AR_RELEASE_MAJOR_VERSION_CFG != MCAL_AR_RELEASE_MAJOR_VERSION) || \
+         (FLEXIO_SPI_IP_AR_RELEASE_MINOR_VERSION_CFG != MCAL_AR_RELEASE_MINOR_VERSION))
+        #error "AutoSar Version Numbers of Flexio_Spi_Ip_Cfg.h and Mcal.h are different"
+    #endif
+
+    /* Check if current file and OsIf header file are of the same Autosar version */
+    #if ((FLEXIO_SPI_IP_AR_RELEASE_MAJOR_VERSION_CFG != OSIF_AR_RELEASE_MAJOR_VERSION) || \
+         (FLEXIO_SPI_IP_AR_RELEASE_MINOR_VERSION_CFG != OSIF_AR_RELEASE_MINOR_VERSION))
+        #error "AutoSar Version Numbers of Flexio_Spi_Ip_Cfg.h and OsIf.h are different"
+    #endif
+#endif
+
+
+
+/* Check if Flexio_Spi_Ip_VS_0_PBcfg header file and Spi configuration header file are of the same vendor */
+#if (FLEXIO_SPI_IP_VS_0_VENDOR_ID_PBCFG != FLEXIO_SPI_IP_VENDOR_ID_CFG)
+    #error "Flexio_Spi_Ip_VS_0_PBcfg.h and Flexio_Spi_Ip_Cfg.h have different vendor IDs"
+#endif
+    /* Check if Flexio_Spi_Ip_VS_0_PBcfg header file and Spi  configuration header file are of the same Autosar version */
+#if ((FLEXIO_SPI_IP_VS_0_AR_RELEASE_MAJOR_VERSION_PBCFG != FLEXIO_SPI_IP_AR_RELEASE_MAJOR_VERSION_CFG) || \
+     (FLEXIO_SPI_IP_VS_0_AR_RELEASE_MINOR_VERSION_PBCFG != FLEXIO_SPI_IP_AR_RELEASE_MINOR_VERSION_CFG) || \
+     (FLEXIO_SPI_IP_VS_0_AR_RELEASE_REVISION_VERSION_PBCFG != FLEXIO_SPI_IP_AR_RELEASE_REVISION_VERSION_CFG))
+#error "AutoSar Version Numbers of Flexio_Spi_Ip_VS_0_PBcfg.h and Flexio_Spi_Ip_Cfg.h are different"
+#endif
+/* Check if Flexio_Spi_Ip_VS_0_PBcfg header file and Spi configuration header file are of the same software version */
+#if ((FLEXIO_SPI_IP_VS_0_SW_MAJOR_VERSION_PBCFG != FLEXIO_SPI_IP_SW_MAJOR_VERSION_CFG) || \
+     (FLEXIO_SPI_IP_VS_0_SW_MINOR_VERSION_PBCFG != FLEXIO_SPI_IP_SW_MINOR_VERSION_CFG) || \
+     (FLEXIO_SPI_IP_VS_0_SW_PATCH_VERSION_PBCFG != FLEXIO_SPI_IP_SW_PATCH_VERSION_CFG))
+#error "Software Version Numbers of Flexio_Spi_Ip_VS_0_PBcfg.h and Flexio_Spi_Ip_Cfg.h are different"
+#endif
+
+
+
+/*==================================================================================================
+*                                          CONSTANTS
+==================================================================================================*/
+/**
+* @brief Flexio SPI supported enable.
+* @details Flexio SPI supported enable. 
+*/
+#define FLEXIO_SPI_IP_ENABLE     (STD_OFF)
+
+#if (FLEXIO_SPI_IP_ENABLE == STD_ON)
+#define FLEXIO_SPI_IP_CONFIG_EXT \
+ FLEXIO_SPI_IP_CONFIG_VS_0_PB \
+
+
+/** @brief Total number of SpiPhyUnit configured. */
+#define FLEXIO_SPI_IP_NUMBER_OF_INSTANCES           (1U)
+
+/** @brief Total number of FLEXIO_SPI HW Unit are supported . */
+#define FLEXIO_SPI_IP_NUMBER_OF_HWUNIT_U8         (uint8)(2U)
+
+/** @brief Total number of Flexio instance. */
+#define FLEXIO_SPI_IP_INSTANCE_COUNT           (FLEXIO_INSTANCE_COUNT)
+
+/** @brief HWUnits enabled/disabled */
+
+#define FLEXIO_SPI_IP_SLAVE_SUPPORT  ((STD_OFF))
+
+
+/**
+* @brief Defines if transfers are made using DMA or FIFO.
+* @details Defines if transfers are made using DMA or FIFO.
+*/
+#define FLEXIO_SPI_IP_DMA_USED     (STD_OFF)
+
+/**
+* @brief If enabled, allows dual MCU clock configuration settings.
+* @details If enabled, allows dual MCU clock configuration settings.
+*/
+#define FLEXIO_SPI_IP_DUAL_CLOCK_MODE  (STD_OFF)
+
+/**
+* @brief Define Timeout Method.
+* @details Define a certain timeout method from OsIf will be used in the driver.
+*/
+#define FLEXIO_SPI_IP_TIMEOUT_METHOD           (OSIF_COUNTER_SYSTEM)
+
+/**
+* @brief          Enable User Mode Support.
+* @details        When SpiAutosarExt/SpiEnableUserModeSupport = TRUE,
+*                 the SPI driver can be executed from both supervisor and user mode.
+*
+* @api
+*/
+#define FLEXIO_SPI_IP_ENABLE_USER_MODE_SUPPORT (STD_OFF)
+
+/**
+* @brief Switches ON or OFF for the detection and reporting of development errors(API parameter checking) at IP level.
+*/
+/** @implements FLEXIO_SPI_IP_DEV_ERROR_DETECT_define  */
+#define FLEXIO_SPI_IP_DEV_ERROR_DETECT     (STD_OFF)
+
+/**
+* @brief Maximum of frame size supported.
+*/
+#define FLEXIO_SPI_IP_FRAMESIZE_MAX_U8                              ((uint8)32U)
+
+/**
+* @brief Maximum of frame size supported.
+*/
+#define FLEXIO_SPI_IP_FRAMESIZE_MIN_U8                              ((uint8)4U)
+
+/** @brief Write to CTRL */
+#define FLEXIO_SPI_IP_CTRL_FLEXEN(x)  FLEXIO_CTRL_FLEXEN(x)
+
+/** @brief Write to  TIMCMP */
+#define FLEXIO_SPI_IP_TIMECMP_BAUDRATE_MASK_U32  ((uint32) 0x00FFu)
+#define FLEXIO_SPI_IP_TIMECMP_FRAMESIZE_MASK_U32 ((uint32) 0xFF00u)
+#define FLEXIO_SPI_IP_TIMCMP_CMP(x)        FLEXIO_TIMCMP_CMP(x)
+
+/** @brief CPOL and CPHA selection */
+#define FLEXIO_SPI_IP_CPOL_LOW_U8          ((uint8) 0U)
+#define FLEXIO_SPI_IP_CPOL_HIGH_U8         ((uint8) 1U)
+#define FLEXIO_SPI_IP_CPHA_LEADING_U8      ((uint8) 0U)
+#define FLEXIO_SPI_IP_CPHA_TRAILING_U8     ((uint8) 1U)
+
+/** @brief Write to  SHIFTCTL */
+#define FLEXIO_SPI_IP_SHIFTCTL_TIMSEL(x)     FLEXIO_SHIFTCTL_TIMSEL(x)
+#define FLEXIO_SPI_IP_SHIFTCTL_PINSEL(x)     FLEXIO_SHIFTCTL_PINSEL(x)
+#define FLEXIO_SPI_IP_SHIFTCTL_PINCFG(x)     FLEXIO_SHIFTCTL_PINCFG(x) 
+#define FLEXIO_SPI_IP_SHIFTCTL_SMOD(x)       FLEXIO_SHIFTCTL_SMOD(x)
+#define FLEXIO_SPI_IP_SHIFTCTL_TIMPOL(x)     FLEXIO_SHIFTCTL_TIMPOL(x)
+
+/** @brief Write to SHIFTCFG */
+#define FLEXIO_SPI_IP_SHIFTCFG_SSTOP(x)      FLEXIO_SHIFTCFG_SSTOP(x)
+#define FLEXIO_SPI_IP_SHIFTCFG_SSTART(x)     FLEXIO_SHIFTCFG_SSTART(x)
+#define FLEXIO_SPI_IP_TIMCFG_TIMDEC(x)       FLEXIO_TIMCFG_TIMDEC(x)
+
+/** @brief Write to TIMCTL  */
+#define FLEXIO_SPI_IP_TIMCTL_PINSEL(x)             FLEXIO_TIMCTL_PINSEL(x)
+#define FLEXIO_SPI_IP_TIMCTL_TRGSEL(x)             FLEXIO_TIMCTL_TRGSEL(x)
+#define FLEXIO_SPI_IP_TIMCTL_TRGSRC(x)             FLEXIO_TIMCTL_TRGSRC(x)
+#define FLEXIO_SPI_IP_TIMCTL_TIMOD(x)              FLEXIO_TIMCTL_TIMOD(x)
+#define FLEXIO_SPI_IP_TIMCTL_TRGPOL(x)             FLEXIO_TIMCTL_TRGPOL(x)
+#define FLEXIO_SPI_IP_TIMCTL_PINPOL(x)             FLEXIO_TIMCTL_PINPOL(x)
+#define FLEXIO_SPI_IP_TIMCTL_PINCFG(x)             FLEXIO_TIMCTL_PINCFG(x)
+#define FLEXIO_SPI_IP_TIMCTL_ONETIM(x)             FLEXIO_TIMCTL_ONETIM(x)
+
+/** @brief Write to TIMCFG  */
+#define FLEXIO_SPI_IP_TIMCFG_TIMOUT(x)             FLEXIO_TIMCFG_TIMOUT(x)
+#define FLEXIO_SPI_IP_TIMCFG_TIMDIS(x)             FLEXIO_TIMCFG_TIMDIS(x)
+#define FLEXIO_SPI_IP_TIMCFG_TIMENA(x)             FLEXIO_TIMCFG_TIMENA(x)
+#define FLEXIO_SPI_IP_TIMCFG_TIMRST(x)             FLEXIO_TIMCFG_TIMRST(x)
+#define FLEXIO_SPI_IP_TIMCFG_DEFAULT_MASTER_VALUE         ((uint32) 0x00000222u)
+#define FLEXIO_SPI_IP_TIMCFG_DEFAULT_SLAVE_CPHA0_VALUE         ((uint32) 0x01200600u)
+#define FLEXIO_SPI_IP_TIMCFG_DEFAULT_SLAVE_CPHA1_VALUE         ((uint32) 0x01206602u)
+
+/** @brief Write to SHIFTSIEN and SHIFTSDEN */
+#define FLEXIO_SPI_IP_SHIFTSIEN_SSIE(x)         FLEXIO_SHIFTSIEN_SSIE(x)
+#define FLEXIO_SPI_IP_SHIFTSDEN_SSDE(x)         FLEXIO_SHIFTSDEN_SSDE(x) 
+
+/**
+* @brief Shifters and Timer index
+*/
+#define FLEXIO_SPI_IP_SHIFTER_0_U8                   ((uint8)0U)
+#define FLEXIO_SPI_IP_SHIFTER_1_U8                   ((uint8)1U)
+#define FLEXIO_SPI_IP_SHIFTER_2_U8                   ((uint8)2U)
+#define FLEXIO_SPI_IP_SHIFTER_3_U8                   ((uint8)3U)
+#define FLEXIO_SPI_IP_SHIFTER_4_U8                   ((uint8)4U)
+#define FLEXIO_SPI_IP_SHIFTER_5_U8                   ((uint8)5U)
+#define FLEXIO_SPI_IP_SHIFTER_6_U8                   ((uint8)6U)
+#define FLEXIO_SPI_IP_SHIFTER_7_U8                   ((uint8)7U)
+
+#define FLEXIO_SPI_IP_TIMER_0_U8                     ((uint8)0U)
+#define FLEXIO_SPI_IP_TIMER_1_U8                     ((uint8)1U)
+#define FLEXIO_SPI_IP_TIMER_2_U8                     ((uint8)2U)
+#define FLEXIO_SPI_IP_TIMER_3_U8                     ((uint8)3U)
+#define FLEXIO_SPI_IP_TIMER_4_U8                     ((uint8)4U)
+#define FLEXIO_SPI_IP_TIMER_5_U8                     ((uint8)5U)
+#define FLEXIO_SPI_IP_TIMER_6_U8                     ((uint8)6U)
+#define FLEXIO_SPI_IP_TIMER_7_U8                     ((uint8)7U)
+
+#endif /*(FLEXIO_SPI_IP_ENABLE == STD_ON)*/
+/*==================================================================================================
+ *                                     DEFINES AND MACROS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                            ENUMS
+==================================================================================================*/
+
+
+/*==================================================================================================
+*                               STRUCTURES AND OTHER TYPEDEFS
+==================================================================================================*/
+
+
+/*==================================================================================================
+*                                GLOBAL VARIABLE DECLARATIONS
+==================================================================================================*/
+
+
+/*==================================================================================================
+*                                    FUNCTION PROTOTYPES
+==================================================================================================*/
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif 
+
+/** @} */

+ 103 - 103
generate/include/Flexio_Spi_Ip_CfgDefines.h

@@ -1,103 +1,103 @@
-/*==================================================================================================
-*   Project              : RTD AUTOSAR 4.4
-*   Platform             : CORTEXM
-*   Peripheral           : LPSPI
-*   Dependencies         : 
-*
-*   Autosar Version      : 4.4.0
-*   Autosar Revision     : ASR_REL_4_4_REV_0000
-*   Autosar Conf.Variant :
-*   SW Version           : 1.0.0
-*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
-*
-*   (c) Copyright 2020-2021 NXP Semiconductors
-*   All Rights Reserved.
-*
-*   NXP Confidential. This software is owned or controlled by NXP and may only be
-*   used strictly in accordance with the applicable license terms. By expressly
-*   accepting such terms or by downloading, installing, activating and/or otherwise
-*   using the software, you are agreeing that you have read, and that you agree to
-*   comply with and are bound by, such license terms. If you do not agree to be
-*   bound by the applicable license terms, then you may not retain, install,
-*   activate or otherwise use the software.
-==================================================================================================*/
-
-#ifndef FLEXIO_SPI_IP_CFG_DEFINES_H
-#define FLEXIO_SPI_IP_CFG_DEFINES_H
-
-/**
-*   @file     Flexio_Spi_Ip_CfgDefines.h
-*   @version 1.0.0
-*
-*   @brief   AUTOSAR Spi - Spi configuration header file.
-*   @details This file is the header containing all the necessary information for SPI
-*            module configuration(s).
-*   @addtogroup FLEXIO_DRIVER_CONFIGURATION  Flexio_Spi Driver Configuration
-*   @{
-*/
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-/*==================================================================================================
-*                                        INCLUDE FILES
-* 1) system and project includes
-* 2) needed interfaces from external units
-* 3) internal and external interfaces from this unit
-==================================================================================================*/
-
-/*==================================================================================================
-*                                 SOURCE FILE VERSION INFORMATION
-==================================================================================================*/
-#define FLEXIO_SPI_IP_CFG_DEFINES_VENDOR_ID_H                    43
-#define FLEXIO_SPI_IP_CFG_DEFINES_MODULE_ID_H                    83
-#define FLEXIO_SPI_IP_CFG_DEFINES_AR_RELEASE_MAJOR_VERSION_H     4
-#define FLEXIO_SPI_IP_CFG_DEFINES_AR_RELEASE_MINOR_VERSION_H     4
-#define FLEXIO_SPI_IP_CFG_DEFINES_AR_RELEASE_REVISION_VERSION_H  0
-#define FLEXIO_SPI_IP_CFG_DEFINES_SW_MAJOR_VERSION_H             1
-#define FLEXIO_SPI_IP_CFG_DEFINES_SW_MINOR_VERSION_H             0
-#define FLEXIO_SPI_IP_CFG_DEFINES_SW_PATCH_VERSION_H             0
-
-/*==================================================================================================
-*                                       FILE VERSION CHECKS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                            CONSTANTS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                       DEFINES AND MACROS
-==================================================================================================*/
-
-
-
-/* Macros that indicate FLEXIO channels used by SPI */
-
-/* Macros that indicate FLEXIO pins used by SPI */
-
-/* Macros that indicate FLEXIO channels used by SPI */
-
-/*==================================================================================================
-*                                              ENUMS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                  STRUCTURES AND OTHER TYPEDEFS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                  GLOBAL VARIABLE DECLARATIONS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                       FUNCTION PROTOTYPES
-==================================================================================================*/
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* FLEXIO_SPI_IP_CFG_DEFINES_H */
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : LPSPI
+*   Dependencies         : 
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+
+#ifndef FLEXIO_SPI_IP_CFG_DEFINES_H
+#define FLEXIO_SPI_IP_CFG_DEFINES_H
+
+/**
+*   @file     Flexio_Spi_Ip_CfgDefines.h
+*   @version 1.0.0
+*
+*   @brief   AUTOSAR Spi - Spi configuration header file.
+*   @details This file is the header containing all the necessary information for SPI
+*            module configuration(s).
+*   @addtogroup FLEXIO_DRIVER_CONFIGURATION  Flexio_Spi Driver Configuration
+*   @{
+*/
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*==================================================================================================
+*                                        INCLUDE FILES
+* 1) system and project includes
+* 2) needed interfaces from external units
+* 3) internal and external interfaces from this unit
+==================================================================================================*/
+
+/*==================================================================================================
+*                                 SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+#define FLEXIO_SPI_IP_CFG_DEFINES_VENDOR_ID_H                    43
+#define FLEXIO_SPI_IP_CFG_DEFINES_MODULE_ID_H                    83
+#define FLEXIO_SPI_IP_CFG_DEFINES_AR_RELEASE_MAJOR_VERSION_H     4
+#define FLEXIO_SPI_IP_CFG_DEFINES_AR_RELEASE_MINOR_VERSION_H     4
+#define FLEXIO_SPI_IP_CFG_DEFINES_AR_RELEASE_REVISION_VERSION_H  0
+#define FLEXIO_SPI_IP_CFG_DEFINES_SW_MAJOR_VERSION_H             1
+#define FLEXIO_SPI_IP_CFG_DEFINES_SW_MINOR_VERSION_H             0
+#define FLEXIO_SPI_IP_CFG_DEFINES_SW_PATCH_VERSION_H             0
+
+/*==================================================================================================
+*                                       FILE VERSION CHECKS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                            CONSTANTS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                       DEFINES AND MACROS
+==================================================================================================*/
+
+
+
+/* Macros that indicate FLEXIO channels used by SPI */
+
+/* Macros that indicate FLEXIO pins used by SPI */
+
+/* Macros that indicate FLEXIO channels used by SPI */
+
+/*==================================================================================================
+*                                              ENUMS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                  STRUCTURES AND OTHER TYPEDEFS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                  GLOBAL VARIABLE DECLARATIONS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                       FUNCTION PROTOTYPES
+==================================================================================================*/
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* FLEXIO_SPI_IP_CFG_DEFINES_H */

+ 109 - 109
generate/include/Flexio_Spi_Ip_VS_0_PBcfg.h

@@ -1,109 +1,109 @@
-/*==================================================================================================
-*   Project              : RTD AUTOSAR 4.4
-*   Platform             : CORTEXM
-*   Peripheral           : LPSPI
-*   Dependencies         : 
-*
-*   Autosar Version      : 4.4.0
-*   Autosar Revision     : ASR_REL_4_4_REV_0000
-*   Autosar Conf.Variant :
-*   SW Version           : 1.0.0
-*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
-*
-*   (c) Copyright 2020-2021 NXP Semiconductors
-*   All Rights Reserved.
-*
-*   NXP Confidential. This software is owned or controlled by NXP and may only be
-*   used strictly in accordance with the applicable license terms. By expressly
-*   accepting such terms or by downloading, installing, activating and/or otherwise
-*   using the software, you are agreeing that you have read, and that you agree to
-*   comply with and are bound by, such license terms. If you do not agree to be
-*   bound by the applicable license terms, then you may not retain, install,
-*   activate or otherwise use the software.
-==================================================================================================*/
-
-#ifndef FLEXIO_SPI_IP_VS_0_PBCFG_H
-#define FLEXIO_SPI_IP_VS_0_PBCFG_H
-
-/**   
-*   @file     Flexio_Spi_Ip_PBcfg.h
-*   @version 1.0.0
-*
-*   @brief   AUTOSAR Spi - Post-Build(PB) configuration file code template.
-*   @details Code template for Post-Build(PB) configuration file generation.
-*
-*   @addtogroup FLEXIO_SPI_DRIVER_CONFIGURATION  Flexio_Spi Driver Configuration
-*   @{
-*/
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-/*==================================================================================================
-*                                        INCLUDE FILES
-* 1) system and project includes
-* 2) needed interfaces from external units
-* 3) internal and external interfaces from this unit
-==================================================================================================*/
-
-/*==================================================================================================
-*                              SOURCE FILE VERSION INFORMATION
-==================================================================================================*/
-/* Inclusion of incompatible header files shall be avoided */
-#define FLEXIO_SPI_IP_VS_0_VENDOR_ID_PBCFG                        43
-#define FLEXIO_SPI_IP_VS_0_AR_RELEASE_MAJOR_VERSION_PBCFG         4
-#define FLEXIO_SPI_IP_VS_0_AR_RELEASE_MINOR_VERSION_PBCFG         4
-#define FLEXIO_SPI_IP_VS_0_AR_RELEASE_REVISION_VERSION_PBCFG      0
-#define FLEXIO_SPI_IP_VS_0_SW_MAJOR_VERSION_PBCFG                 1
-#define FLEXIO_SPI_IP_VS_0_SW_MINOR_VERSION_PBCFG                 0
-#define FLEXIO_SPI_IP_VS_0_SW_PATCH_VERSION_PBCFG                 0
-
-/*==================================================================================================
-                                      FILE VERSION CHECKS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                          CONSTANTS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                      DEFINES AND MACROS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                             ENUMS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                STRUCTURES AND OTHER TYPEDEFS
-==================================================================================================*/
-
-
-/*==================================================================================================
-*                                GLOBAL VARIABLE DECLARATIONS
-==================================================================================================*/
-#define FLEXIO_SPI_IP_CONFIG_VS_0_PB \
-
-/*==================================================================================================
-                                   LOCAL FUNCTION PROTOTYPES
-==================================================================================================*/
-
-
-/*==================================================================================================
-                                       LOCAL FUNCTIONS
-==================================================================================================*/
-
-
-/*==================================================================================================
-                                       GLOBAL FUNCTIONS
-==================================================================================================*/
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-/** @} */
-
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : LPSPI
+*   Dependencies         : 
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+
+#ifndef FLEXIO_SPI_IP_VS_0_PBCFG_H
+#define FLEXIO_SPI_IP_VS_0_PBCFG_H
+
+/**   
+*   @file     Flexio_Spi_Ip_PBcfg.h
+*   @version 1.0.0
+*
+*   @brief   AUTOSAR Spi - Post-Build(PB) configuration file code template.
+*   @details Code template for Post-Build(PB) configuration file generation.
+*
+*   @addtogroup FLEXIO_SPI_DRIVER_CONFIGURATION  Flexio_Spi Driver Configuration
+*   @{
+*/
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*==================================================================================================
+*                                        INCLUDE FILES
+* 1) system and project includes
+* 2) needed interfaces from external units
+* 3) internal and external interfaces from this unit
+==================================================================================================*/
+
+/*==================================================================================================
+*                              SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+/* Inclusion of incompatible header files shall be avoided */
+#define FLEXIO_SPI_IP_VS_0_VENDOR_ID_PBCFG                        43
+#define FLEXIO_SPI_IP_VS_0_AR_RELEASE_MAJOR_VERSION_PBCFG         4
+#define FLEXIO_SPI_IP_VS_0_AR_RELEASE_MINOR_VERSION_PBCFG         4
+#define FLEXIO_SPI_IP_VS_0_AR_RELEASE_REVISION_VERSION_PBCFG      0
+#define FLEXIO_SPI_IP_VS_0_SW_MAJOR_VERSION_PBCFG                 1
+#define FLEXIO_SPI_IP_VS_0_SW_MINOR_VERSION_PBCFG                 0
+#define FLEXIO_SPI_IP_VS_0_SW_PATCH_VERSION_PBCFG                 0
+
+/*==================================================================================================
+                                      FILE VERSION CHECKS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                          CONSTANTS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                      DEFINES AND MACROS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                             ENUMS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                STRUCTURES AND OTHER TYPEDEFS
+==================================================================================================*/
+
+
+/*==================================================================================================
+*                                GLOBAL VARIABLE DECLARATIONS
+==================================================================================================*/
+#define FLEXIO_SPI_IP_CONFIG_VS_0_PB \
+
+/*==================================================================================================
+                                   LOCAL FUNCTION PROTOTYPES
+==================================================================================================*/
+
+
+/*==================================================================================================
+                                       LOCAL FUNCTIONS
+==================================================================================================*/
+
+
+/*==================================================================================================
+                                       GLOBAL FUNCTIONS
+==================================================================================================*/
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+/** @} */
+

+ 123 - 123
generate/include/Flexio_Uart_Ip_Cfg.h

@@ -1,123 +1,123 @@
-/*==================================================================================================
-*   Project              : RTD AUTOSAR 4.4
-*   Platform             : CORTEXM
-*   Peripheral           : FLEXIO
-*   Dependencies         : 
-*
-*   Autosar Version      : 4.4.0
-*   Autosar Revision     : ASR_REL_4_4_REV_0000
-*   Autosar Conf.Variant :
-*   SW Version           : 1.0.0
-*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
-*
-*   (c) Copyright 2020-2021 NXP Semiconductors
-*   All Rights Reserved.
-*
-*   NXP Confidential. This software is owned or controlled by NXP and may only be
-*   used strictly in accordance with the applicable license terms. By expressly
-*   accepting such terms or by downloading, installing, activating and/or otherwise
-*   using the software, you are agreeing that you have read, and that you agree to
-*   comply with and are bound by, such license terms. If you do not agree to be
-*   bound by the applicable license terms, then you may not retain, install,
-*   activate or otherwise use the software.
-==================================================================================================*/
-
-#ifndef FLEXIO_UART_IP_CFG_H
-#define FLEXIO_UART_IP_CFG_H
-
-/**
-*   @file
-*   @defgroup flexio_uart_ip Flexio UART IPL
-*   @addtogroup  flexio_uart_ip Flexio UART IPL
-*   @{
-*/
-
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-/*==================================================================================================
-*                                        INCLUDE FILES
-* 1) system and project includes
-* 2) needed interfaces from external units
-* 3) internal and external interfaces from this unit
-* 4) user callback header files
-==================================================================================================*/
-#include "Flexio_Uart_Ip_VS_0_PBCfg.h"
-
-#include "StandardTypes.h"
-/*==================================================================================================
-*                              SOURCE FILE VERSION INFORMATION
-==================================================================================================*/
-#define FLEXIO_UART_IP_CFG_VENDOR_ID                     43
-#define FLEXIO_UART_IP_CFG_AR_RELEASE_MAJOR_VERSION      4
-#define FLEXIO_UART_IP_CFG_AR_RELEASE_MINOR_VERSION      4
-#define FLEXIO_UART_IP_CFG_AR_RELEASE_REVISION_VERSION   0
-#define FLEXIO_UART_IP_CFG_SW_MAJOR_VERSION              1
-#define FLEXIO_UART_IP_CFG_SW_MINOR_VERSION              0
-#define FLEXIO_UART_IP_CFG_SW_PATCH_VERSION              0
-
-/*==================================================================================================
-*                                     FILE VERSION CHECKS
-==================================================================================================*/
-
-/* Checks against Flexio_Uart_Ip_VS_0_PBCfg.h */
-#if (FLEXIO_UART_IP_CFG_VENDOR_ID != FLEXIO_UART_IP_PBCFG_VS_0_VENDOR_ID)
-    #error "Flexio_Uart_Ip_Cfg.h and Flexio_Uart_Ip_VS_0_PBCfg.h have different vendor ids"
-#endif
-#if ((FLEXIO_UART_IP_CFG_AR_RELEASE_MAJOR_VERSION    != FLEXIO_UART_IP_PBCFG_VS_0_AR_RELEASE_MAJOR_VERSION) || \
-     (FLEXIO_UART_IP_CFG_AR_RELEASE_MINOR_VERSION    != FLEXIO_UART_IP_PBCFG_VS_0_AR_RELEASE_MINOR_VERSION) || \
-     (FLEXIO_UART_IP_CFG_AR_RELEASE_REVISION_VERSION != FLEXIO_UART_IP_PBCFG_VS_0_AR_RELEASE_REVISION_VERSION))
-     #error "AUTOSAR Version Numbers of Flexio_Uart_Ip_Cfg.h and Flexio_Uart_Ip_VS_0_PBCfg.h are different"
-#endif
-#if ((FLEXIO_UART_IP_CFG_SW_MAJOR_VERSION != FLEXIO_UART_IP_PBCFG_VS_0_SW_MAJOR_VERSION) || \
-     (FLEXIO_UART_IP_CFG_SW_MINOR_VERSION != FLEXIO_UART_IP_PBCFG_VS_0_SW_MINOR_VERSION) || \
-     (FLEXIO_UART_IP_CFG_SW_PATCH_VERSION != FLEXIO_UART_IP_PBCFG_VS_0_SW_PATCH_VERSION))
-    #error "Software Version Numbers of Flexio_Uart_Ip_Cfg.h and Flexio_Uart_Ip_VS_0_PBCfg.h are different"
-#endif
-
-#ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
-    /* Check if current file and StandardTypes.h header file are of the same Autosar version */
-    #if ((FLEXIO_UART_IP_CFG_AR_RELEASE_MAJOR_VERSION != STD_AR_RELEASE_MAJOR_VERSION) || \
-            (FLEXIO_UART_IP_CFG_AR_RELEASE_MINOR_VERSION != STD_AR_RELEASE_MINOR_VERSION))
-        #error "AutoSar Version Numbers of Flexio_Uart_Ip_Cfg.h and StandardTypes.h are different"
-    #endif
-#endif
-
-/*==================================================================================================
-*                                          CONSTANTS
-==================================================================================================*/
-
-/*==================================================================================================
- *                                     DEFINES AND MACROS
-==================================================================================================*/
-#define FLEXIO_UART_IP_CONFIG_EXT \
-    FLEXIO_UART_IP_CONFIG_VS_0_PB \
-
-
-/*==================================================================================================
-*                                            ENUMS
-==================================================================================================*/
-
-/*==================================================================================================
-*                               STRUCTURES AND OTHER TYPEDEFS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                GLOBAL VARIABLE DECLARATIONS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                    FUNCTION PROTOTYPES
-==================================================================================================*/
-
-
-
-#ifdef __cplusplus
-}
-#endif
-
-/** @} */
-
-#endif /* FLEXIO_UART_IP_CFG_H */
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : FLEXIO
+*   Dependencies         : 
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+
+#ifndef FLEXIO_UART_IP_CFG_H
+#define FLEXIO_UART_IP_CFG_H
+
+/**
+*   @file
+*   @defgroup flexio_uart_ip Flexio UART IPL
+*   @addtogroup  flexio_uart_ip Flexio UART IPL
+*   @{
+*/
+
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+/*==================================================================================================
+*                                        INCLUDE FILES
+* 1) system and project includes
+* 2) needed interfaces from external units
+* 3) internal and external interfaces from this unit
+* 4) user callback header files
+==================================================================================================*/
+#include "Flexio_Uart_Ip_VS_0_PBCfg.h"
+
+#include "StandardTypes.h"
+/*==================================================================================================
+*                              SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+#define FLEXIO_UART_IP_CFG_VENDOR_ID                     43
+#define FLEXIO_UART_IP_CFG_AR_RELEASE_MAJOR_VERSION      4
+#define FLEXIO_UART_IP_CFG_AR_RELEASE_MINOR_VERSION      4
+#define FLEXIO_UART_IP_CFG_AR_RELEASE_REVISION_VERSION   0
+#define FLEXIO_UART_IP_CFG_SW_MAJOR_VERSION              1
+#define FLEXIO_UART_IP_CFG_SW_MINOR_VERSION              0
+#define FLEXIO_UART_IP_CFG_SW_PATCH_VERSION              0
+
+/*==================================================================================================
+*                                     FILE VERSION CHECKS
+==================================================================================================*/
+
+/* Checks against Flexio_Uart_Ip_VS_0_PBCfg.h */
+#if (FLEXIO_UART_IP_CFG_VENDOR_ID != FLEXIO_UART_IP_PBCFG_VS_0_VENDOR_ID)
+    #error "Flexio_Uart_Ip_Cfg.h and Flexio_Uart_Ip_VS_0_PBCfg.h have different vendor ids"
+#endif
+#if ((FLEXIO_UART_IP_CFG_AR_RELEASE_MAJOR_VERSION    != FLEXIO_UART_IP_PBCFG_VS_0_AR_RELEASE_MAJOR_VERSION) || \
+     (FLEXIO_UART_IP_CFG_AR_RELEASE_MINOR_VERSION    != FLEXIO_UART_IP_PBCFG_VS_0_AR_RELEASE_MINOR_VERSION) || \
+     (FLEXIO_UART_IP_CFG_AR_RELEASE_REVISION_VERSION != FLEXIO_UART_IP_PBCFG_VS_0_AR_RELEASE_REVISION_VERSION))
+     #error "AUTOSAR Version Numbers of Flexio_Uart_Ip_Cfg.h and Flexio_Uart_Ip_VS_0_PBCfg.h are different"
+#endif
+#if ((FLEXIO_UART_IP_CFG_SW_MAJOR_VERSION != FLEXIO_UART_IP_PBCFG_VS_0_SW_MAJOR_VERSION) || \
+     (FLEXIO_UART_IP_CFG_SW_MINOR_VERSION != FLEXIO_UART_IP_PBCFG_VS_0_SW_MINOR_VERSION) || \
+     (FLEXIO_UART_IP_CFG_SW_PATCH_VERSION != FLEXIO_UART_IP_PBCFG_VS_0_SW_PATCH_VERSION))
+    #error "Software Version Numbers of Flexio_Uart_Ip_Cfg.h and Flexio_Uart_Ip_VS_0_PBCfg.h are different"
+#endif
+
+#ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
+    /* Check if current file and StandardTypes.h header file are of the same Autosar version */
+    #if ((FLEXIO_UART_IP_CFG_AR_RELEASE_MAJOR_VERSION != STD_AR_RELEASE_MAJOR_VERSION) || \
+            (FLEXIO_UART_IP_CFG_AR_RELEASE_MINOR_VERSION != STD_AR_RELEASE_MINOR_VERSION))
+        #error "AutoSar Version Numbers of Flexio_Uart_Ip_Cfg.h and StandardTypes.h are different"
+    #endif
+#endif
+
+/*==================================================================================================
+*                                          CONSTANTS
+==================================================================================================*/
+
+/*==================================================================================================
+ *                                     DEFINES AND MACROS
+==================================================================================================*/
+#define FLEXIO_UART_IP_CONFIG_EXT \
+    FLEXIO_UART_IP_CONFIG_VS_0_PB \
+
+
+/*==================================================================================================
+*                                            ENUMS
+==================================================================================================*/
+
+/*==================================================================================================
+*                               STRUCTURES AND OTHER TYPEDEFS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                GLOBAL VARIABLE DECLARATIONS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                    FUNCTION PROTOTYPES
+==================================================================================================*/
+
+
+
+#ifdef __cplusplus
+}
+#endif
+
+/** @} */
+
+#endif /* FLEXIO_UART_IP_CFG_H */

+ 107 - 107
generate/include/Flexio_Uart_Ip_CfgDefines.h

@@ -1,107 +1,107 @@
-/*==================================================================================================
-*   Project              : RTD AUTOSAR 4.4
-*   Platform             : CORTEXM
-*   Peripheral           : FLEXIO
-*   Dependencies         : 
-*
-*   Autosar Version      : 4.4.0
-*   Autosar Revision     : ASR_REL_4_4_REV_0000
-*   Autosar Conf.Variant :
-*   SW Version           : 1.0.0
-*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
-*
-*   (c) Copyright 2020-2021 NXP Semiconductors
-*   All Rights Reserved.
-*
-*   NXP Confidential. This software is owned or controlled by NXP and may only be
-*   used strictly in accordance with the applicable license terms. By expressly
-*   accepting such terms or by downloading, installing, activating and/or otherwise
-*   using the software, you are agreeing that you have read, and that you agree to
-*   comply with and are bound by, such license terms. If you do not agree to be
-*   bound by the applicable license terms, then you may not retain, install,
-*   activate or otherwise use the software.
-==================================================================================================*/
-
-#ifndef FLEXIO_UART_IP_CFG_DEFINES_H
-#define FLEXIO_UART_IP_CFG_DEFINES_H
-
-/**
-*   @file
-*   @defgroup flexio_uart_ip Flexio UART IPL
-*   @addtogroup  flexio_uart_ip Flexio UART IPL
-*   @{
-*/
-
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-/*==================================================================================================
-*                                        INCLUDE FILES
-* 1) system and project includes
-* 2) needed interfaces from external units
-* 3) internal and external interfaces from this unit
-* 4) user callback header files
-==================================================================================================*/
-#include "Mcal.h"
-/*==================================================================================================
-*                              SOURCE FILE VERSION INFORMATION
-==================================================================================================*/
-#define FLEXIO_UART_IP_CFG_DEFINES_VENDOR_ID                     43
-#define FLEXIO_UART_IP_CFG_DEFINES_AR_RELEASE_MAJOR_VERSION      4
-#define FLEXIO_UART_IP_CFG_DEFINES_AR_RELEASE_MINOR_VERSION      4
-#define FLEXIO_UART_IP_CFG_DEFINES_AR_RELEASE_REVISION_VERSION   0
-#define FLEXIO_UART_IP_CFG_DEFINES_SW_MAJOR_VERSION              1
-#define FLEXIO_UART_IP_CFG_DEFINES_SW_MINOR_VERSION              0
-#define FLEXIO_UART_IP_CFG_DEFINES_SW_PATCH_VERSION              0
-
-/*==================================================================================================
-*                                     FILE VERSION CHECKS
-==================================================================================================*/
-#ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
-    /* Checks against Mcal.h */
-    #if ((FLEXIO_UART_IP_CFG_DEFINES_AR_RELEASE_MAJOR_VERSION != MCAL_AR_RELEASE_MAJOR_VERSION) || \
-         (FLEXIO_UART_IP_CFG_DEFINES_AR_RELEASE_MINOR_VERSION != MCAL_AR_RELEASE_MINOR_VERSION))
-        #error "AUTOSAR Version Numbers of Flexio_Uart_Ip_CfgDefines.h and Mcal.h are different"
-    #endif
-#endif
-
-/*==================================================================================================
-*                                          CONSTANTS
-==================================================================================================*/
-
-/*==================================================================================================
- *                                     DEFINES AND MACROS
-==================================================================================================*/
-/* Macros that indicate FLEXIO channels used by UART */
-
-/* Macros that indicate FLEXIO pins used by UART */
-
-/* Macros that indicate FLEXIO channels used by UART */
-
-/*==================================================================================================
-*                                            ENUMS
-==================================================================================================*/
-
-/*==================================================================================================
-*                               STRUCTURES AND OTHER TYPEDEFS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                GLOBAL VARIABLE DECLARATIONS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                    FUNCTION PROTOTYPES
-==================================================================================================*/
-
-
-
-#ifdef __cplusplus
-}
-#endif
-
-/** @} */
-
-#endif /* FLEXIO_UART_IP_CFG_DEFINES_H */
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : FLEXIO
+*   Dependencies         : 
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+
+#ifndef FLEXIO_UART_IP_CFG_DEFINES_H
+#define FLEXIO_UART_IP_CFG_DEFINES_H
+
+/**
+*   @file
+*   @defgroup flexio_uart_ip Flexio UART IPL
+*   @addtogroup  flexio_uart_ip Flexio UART IPL
+*   @{
+*/
+
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+/*==================================================================================================
+*                                        INCLUDE FILES
+* 1) system and project includes
+* 2) needed interfaces from external units
+* 3) internal and external interfaces from this unit
+* 4) user callback header files
+==================================================================================================*/
+#include "Mcal.h"
+/*==================================================================================================
+*                              SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+#define FLEXIO_UART_IP_CFG_DEFINES_VENDOR_ID                     43
+#define FLEXIO_UART_IP_CFG_DEFINES_AR_RELEASE_MAJOR_VERSION      4
+#define FLEXIO_UART_IP_CFG_DEFINES_AR_RELEASE_MINOR_VERSION      4
+#define FLEXIO_UART_IP_CFG_DEFINES_AR_RELEASE_REVISION_VERSION   0
+#define FLEXIO_UART_IP_CFG_DEFINES_SW_MAJOR_VERSION              1
+#define FLEXIO_UART_IP_CFG_DEFINES_SW_MINOR_VERSION              0
+#define FLEXIO_UART_IP_CFG_DEFINES_SW_PATCH_VERSION              0
+
+/*==================================================================================================
+*                                     FILE VERSION CHECKS
+==================================================================================================*/
+#ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
+    /* Checks against Mcal.h */
+    #if ((FLEXIO_UART_IP_CFG_DEFINES_AR_RELEASE_MAJOR_VERSION != MCAL_AR_RELEASE_MAJOR_VERSION) || \
+         (FLEXIO_UART_IP_CFG_DEFINES_AR_RELEASE_MINOR_VERSION != MCAL_AR_RELEASE_MINOR_VERSION))
+        #error "AUTOSAR Version Numbers of Flexio_Uart_Ip_CfgDefines.h and Mcal.h are different"
+    #endif
+#endif
+
+/*==================================================================================================
+*                                          CONSTANTS
+==================================================================================================*/
+
+/*==================================================================================================
+ *                                     DEFINES AND MACROS
+==================================================================================================*/
+/* Macros that indicate FLEXIO channels used by UART */
+
+/* Macros that indicate FLEXIO pins used by UART */
+
+/* Macros that indicate FLEXIO channels used by UART */
+
+/*==================================================================================================
+*                                            ENUMS
+==================================================================================================*/
+
+/*==================================================================================================
+*                               STRUCTURES AND OTHER TYPEDEFS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                GLOBAL VARIABLE DECLARATIONS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                    FUNCTION PROTOTYPES
+==================================================================================================*/
+
+
+
+#ifdef __cplusplus
+}
+#endif
+
+/** @} */
+
+#endif /* FLEXIO_UART_IP_CFG_DEFINES_H */

+ 124 - 124
generate/include/Flexio_Uart_Ip_Defines.h

@@ -1,124 +1,124 @@
-/*==================================================================================================
-*   Project              : RTD AUTOSAR 4.4
-*   Platform             : CORTEXM
-*   Peripheral           : FLEXIO
-*   Dependencies         : 
-*
-*   Autosar Version      : 4.4.0
-*   Autosar Revision     : ASR_REL_4_4_REV_0000
-*   Autosar Conf.Variant :
-*   SW Version           : 1.0.0
-*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
-*
-*   (c) Copyright 2020-2021 NXP Semiconductors
-*   All Rights Reserved.
-*
-*   NXP Confidential. This software is owned or controlled by NXP and may only be
-*   used strictly in accordance with the applicable license terms. By expressly
-*   accepting such terms or by downloading, installing, activating and/or otherwise
-*   using the software, you are agreeing that you have read, and that you agree to
-*   comply with and are bound by, such license terms. If you do not agree to be
-*   bound by the applicable license terms, then you may not retain, install,
-*   activate or otherwise use the software.
-==================================================================================================*/
-
-#ifndef FLEXIO_UART_IP_DEFINES_H
-#define FLEXIO_UART_IP_DEFINES_H
-
-/**
-*   @file
-*   @defgroup flexio_uart_ip Flexio UART IPL
-*   @addtogroup  flexio_uart_ip Flexio UART IPL
-*   @{
-*/
-
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-/*==================================================================================================
-*                                        INCLUDE FILES
-* 1) system and project includes
-* 2) needed interfaces from external units
-* 3) internal and external interfaces from this unit
-* 4) user callback header files
-==================================================================================================*/
-#include "Mcal.h"
-
-#include "S32K146_FLEXIO.h"
-/*==================================================================================================
-*                              SOURCE FILE VERSION INFORMATION
-==================================================================================================*/
-#define FLEXIO_UART_IP_DEFINES_VENDOR_ID                     43
-#define FLEXIO_UART_IP_DEFINES_AR_RELEASE_MAJOR_VERSION      4
-#define FLEXIO_UART_IP_DEFINES_AR_RELEASE_MINOR_VERSION      4
-#define FLEXIO_UART_IP_DEFINES_AR_RELEASE_REVISION_VERSION   0
-#define FLEXIO_UART_IP_DEFINES_SW_MAJOR_VERSION              1
-#define FLEXIO_UART_IP_DEFINES_SW_MINOR_VERSION              0
-#define FLEXIO_UART_IP_DEFINES_SW_PATCH_VERSION              0
-
-/*==================================================================================================
-*                                     FILE VERSION CHECKS
-==================================================================================================*/
-#ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
-    /* Checks against Mcal.h */
-    #if ((FLEXIO_UART_IP_DEFINES_AR_RELEASE_MAJOR_VERSION != MCAL_AR_RELEASE_MAJOR_VERSION) || \
-         (FLEXIO_UART_IP_DEFINES_AR_RELEASE_MINOR_VERSION != MCAL_AR_RELEASE_MINOR_VERSION))
-        #error "AUTOSAR Version Numbers of Flexio_Uart_Ip_Defines.h and Mcal.h are different"
-    #endif
-#endif
-
-/*==================================================================================================
-*                                          CONSTANTS
-==================================================================================================*/
-
-/*==================================================================================================
- *                                     DEFINES AND MACROS
-==================================================================================================*/
-
-/* @brief Using FLEXIO */
-#define FLEXIO_UART_IP_IS_USING                         (STD_OFF)
-/* @brief Development error detection */
-#define FLEXIO_UART_IP_DEV_ERROR_DETECT                 (STD_ON)
-
-/* @brief FLEXIO DMA support */
-#define FLEXIO_UART_IP_HAS_DMA_ENABLED                  (STD_ON)
-
-/* @brief Number of available hardware shifter and timer */
-#define FLEXIO_UART_IP_NUMBER_OF_SHIFTER_AND_TIMER      (4U)
-
-/* @brief Uart Osif source counter. This parameter is used to select between different OsIf counter implementation */
-#define FLEXIO_UART_IP_TIMEOUT_TYPE                     (OSIF_COUNTER_SYSTEM)
-
-/* @brief Number of loops before returning FLEXIO_STATUS_TIMEOUT.*/
-#define FLEXIO_UART_IP_TIMEOUT_VALUE_US                 (500000U)
-
-/* @brief Support for User mode. If this parameter has been configured to TRUE, the Uart driver can be executed from both supervisor and user mode. */
-#define FLEXIO_UART_IP_ENABLE_USER_MODE_SUPPORT         (STD_OFF)
-
-/*==================================================================================================
-*                                            ENUMS
-==================================================================================================*/
-
-/*==================================================================================================
-*                               STRUCTURES AND OTHER TYPEDEFS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                GLOBAL VARIABLE DECLARATIONS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                    FUNCTION PROTOTYPES
-==================================================================================================*/
-
-
-
-#ifdef __cplusplus
-}
-#endif
-
-/** @} */
-
-#endif /* FLEXIO_UART_IP_DEFINES_H */
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : FLEXIO
+*   Dependencies         : 
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+
+#ifndef FLEXIO_UART_IP_DEFINES_H
+#define FLEXIO_UART_IP_DEFINES_H
+
+/**
+*   @file
+*   @defgroup flexio_uart_ip Flexio UART IPL
+*   @addtogroup  flexio_uart_ip Flexio UART IPL
+*   @{
+*/
+
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+/*==================================================================================================
+*                                        INCLUDE FILES
+* 1) system and project includes
+* 2) needed interfaces from external units
+* 3) internal and external interfaces from this unit
+* 4) user callback header files
+==================================================================================================*/
+#include "Mcal.h"
+
+#include "S32K146_FLEXIO.h"
+/*==================================================================================================
+*                              SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+#define FLEXIO_UART_IP_DEFINES_VENDOR_ID                     43
+#define FLEXIO_UART_IP_DEFINES_AR_RELEASE_MAJOR_VERSION      4
+#define FLEXIO_UART_IP_DEFINES_AR_RELEASE_MINOR_VERSION      4
+#define FLEXIO_UART_IP_DEFINES_AR_RELEASE_REVISION_VERSION   0
+#define FLEXIO_UART_IP_DEFINES_SW_MAJOR_VERSION              1
+#define FLEXIO_UART_IP_DEFINES_SW_MINOR_VERSION              0
+#define FLEXIO_UART_IP_DEFINES_SW_PATCH_VERSION              0
+
+/*==================================================================================================
+*                                     FILE VERSION CHECKS
+==================================================================================================*/
+#ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
+    /* Checks against Mcal.h */
+    #if ((FLEXIO_UART_IP_DEFINES_AR_RELEASE_MAJOR_VERSION != MCAL_AR_RELEASE_MAJOR_VERSION) || \
+         (FLEXIO_UART_IP_DEFINES_AR_RELEASE_MINOR_VERSION != MCAL_AR_RELEASE_MINOR_VERSION))
+        #error "AUTOSAR Version Numbers of Flexio_Uart_Ip_Defines.h and Mcal.h are different"
+    #endif
+#endif
+
+/*==================================================================================================
+*                                          CONSTANTS
+==================================================================================================*/
+
+/*==================================================================================================
+ *                                     DEFINES AND MACROS
+==================================================================================================*/
+
+/* @brief Using FLEXIO */
+#define FLEXIO_UART_IP_IS_USING                         (STD_OFF)
+/* @brief Development error detection */
+#define FLEXIO_UART_IP_DEV_ERROR_DETECT                 (STD_ON)
+
+/* @brief FLEXIO DMA support */
+#define FLEXIO_UART_IP_HAS_DMA_ENABLED                  (STD_ON)
+
+/* @brief Number of available hardware shifter and timer */
+#define FLEXIO_UART_IP_NUMBER_OF_SHIFTER_AND_TIMER      (4U)
+
+/* @brief Uart Osif source counter. This parameter is used to select between different OsIf counter implementation */
+#define FLEXIO_UART_IP_TIMEOUT_TYPE                     (OSIF_COUNTER_SYSTEM)
+
+/* @brief Number of loops before returning FLEXIO_STATUS_TIMEOUT.*/
+#define FLEXIO_UART_IP_TIMEOUT_VALUE_US                 (500000U)
+
+/* @brief Support for User mode. If this parameter has been configured to TRUE, the Uart driver can be executed from both supervisor and user mode. */
+#define FLEXIO_UART_IP_ENABLE_USER_MODE_SUPPORT         (STD_OFF)
+
+/*==================================================================================================
+*                                            ENUMS
+==================================================================================================*/
+
+/*==================================================================================================
+*                               STRUCTURES AND OTHER TYPEDEFS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                GLOBAL VARIABLE DECLARATIONS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                    FUNCTION PROTOTYPES
+==================================================================================================*/
+
+
+
+#ifdef __cplusplus
+}
+#endif
+
+/** @} */
+
+#endif /* FLEXIO_UART_IP_DEFINES_H */

+ 141 - 141
generate/include/Flexio_Uart_Ip_VS_0_PBcfg.h

@@ -1,141 +1,141 @@
-/*==================================================================================================
-*   Project              : RTD AUTOSAR 4.4
-*   Platform             : CORTEXM
-*   Peripheral           : FLEXIO
-*   Dependencies         : 
-*
-*   Autosar Version      : 4.4.0
-*   Autosar Revision     : ASR_REL_4_4_REV_0000
-*   Autosar Conf.Variant :
-*   SW Version           : 1.0.0
-*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
-*
-*   (c) Copyright 2020-2021 NXP Semiconductors
-*   All Rights Reserved.
-*
-*   NXP Confidential. This software is owned or controlled by NXP and may only be
-*   used strictly in accordance with the applicable license terms. By expressly
-*   accepting such terms or by downloading, installing, activating and/or otherwise
-*   using the software, you are agreeing that you have read, and that you agree to
-*   comply with and are bound by, such license terms. If you do not agree to be
-*   bound by the applicable license terms, then you may not retain, install,
-*   activate or otherwise use the software.
-==================================================================================================*/
-
-#ifndef FLEXIO_UART_IP_PBCFG_VS_0_H
-#define FLEXIO_UART_IP_PBCFG_VS_0_H
-
-/**
-*   @file
-*   @defgroup flexio_uart_ip Flexio UART IPL
-*   @addtogroup  flexio_uart_ip Flexio UART IPL
-*   @{
-*/
-
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-/*==================================================================================================
-                                         INCLUDE FILES
- 1) system and project includes
- 2) needed interfaces from external units
- 3) internal and external interfaces from this unit
-==================================================================================================*/
-
-#include "Flexio_Uart_Ip_Types.h"
-
-/*==================================================================================================
-                                SOURCE FILE VERSION INFORMATION
-==================================================================================================*/
-
-#define FLEXIO_UART_IP_PBCFG_VS_0_VENDOR_ID                     43
-#define FLEXIO_UART_IP_PBCFG_VS_0_AR_RELEASE_MAJOR_VERSION      4
-#define FLEXIO_UART_IP_PBCFG_VS_0_AR_RELEASE_MINOR_VERSION      4
-#define FLEXIO_UART_IP_PBCFG_VS_0_AR_RELEASE_REVISION_VERSION   0
-#define FLEXIO_UART_IP_PBCFG_VS_0_SW_MAJOR_VERSION              1
-#define FLEXIO_UART_IP_PBCFG_VS_0_SW_MINOR_VERSION              0
-#define FLEXIO_UART_IP_PBCFG_VS_0_SW_PATCH_VERSION              0
-
-/*==================================================================================================
-                                      FILE VERSION CHECKS
-==================================================================================================*/
-/* Checks against Flexio_Uart_Ip_Types.h */
-#if (FLEXIO_UART_IP_PBCFG_VS_0_VENDOR_ID != FLEXIO_UART_IP_TYPES_VENDOR_ID)
-    #error "Flexio_Uart_Ip_PBcfg_VS_0.h and Flexio_Uart_Ip_Types.h have different vendor ids"
-#endif
-#if ((FLEXIO_UART_IP_PBCFG_VS_0_AR_RELEASE_MAJOR_VERSION   != FLEXIO_UART_IP_TYPES_AR_RELEASE_MAJOR_VERSION) || \
-     (FLEXIO_UART_IP_PBCFG_VS_0_AR_RELEASE_MINOR_VERSION   != FLEXIO_UART_IP_TYPES_AR_RELEASE_MINOR_VERSION) || \
-     (FLEXIO_UART_IP_PBCFG_VS_0_AR_RELEASE_REVISION_VERSION!= FLEXIO_UART_IP_TYPES_AR_RELEASE_REVISION_VERSION))
-    #error "AUTOSAR Version Numbers of Flexio_Uart_Ip_PBcfg_VS_0.h and Flexio_Uart_Ip_Types.h are different"
-#endif
-#if ((FLEXIO_UART_IP_PBCFG_VS_0_SW_MAJOR_VERSION!= FLEXIO_UART_IP_TYPES_SW_MAJOR_VERSION) || \
-     (FLEXIO_UART_IP_PBCFG_VS_0_SW_MINOR_VERSION!= FLEXIO_UART_IP_TYPES_SW_MINOR_VERSION) || \
-     (FLEXIO_UART_IP_PBCFG_VS_0_SW_PATCH_VERSION!= FLEXIO_UART_IP_TYPES_SW_PATCH_VERSION))
-    #error "Software Version Numbers of Flexio_Uart_Ip_PBcfg_VS_0.h and Flexio_Uart_Ip_Types.h are different"
-#endif
-
-
-/*==================================================================================================
-                          LOCAL TYPEDEFS (STRUCTURES, UNIONS, ENUMS)
-==================================================================================================*/
-
-/*==================================================================================================
-                                        LOCAL MACROS
-==================================================================================================*/
-
-/*==================================================================================================
-                                       LOCAL CONSTANTS
-==================================================================================================*/
-
-/*==================================================================================================
-                                       LOCAL VARIABLES
-==================================================================================================*/
-
-/*==================================================================================================
-                                       GLOBAL CONSTANTS
-==================================================================================================*/
-
-/*==================================================================================================
-                                       GLOBAL VARIABLES
-==================================================================================================*/
-
-
-
-/**
-* @brief    Declare callback functions if any
-*/
-
-#define UART_START_SEC_CODE
-#include "Uart_MemMap.h"
-
-extern void Uart_Ipw_FlexioTransferCallback(const uint32 HwChannel, const Flexio_Uart_Ip_EventType Event, void *UserData);
-
-#define UART_STOP_SEC_CODE
-#include "Uart_MemMap.h"
-
-
-
-#define FLEXIO_UART_IP_CONFIG_VS_0_PB
-
-/*==================================================================================================
-                                   LOCAL FUNCTION PROTOTYPES
-==================================================================================================*/
-
-/*==================================================================================================
-                                       LOCAL FUNCTIONS
-==================================================================================================*/
-
-/*==================================================================================================
-                                       GLOBAL FUNCTIONS
-==================================================================================================*/
-
-
-#ifdef __cplusplus
-}
-#endif
-
-/** @} */
-
-#endif /* FLEXIO_UART_IP_PBCFG_VS_0_H */
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : FLEXIO
+*   Dependencies         : 
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+
+#ifndef FLEXIO_UART_IP_PBCFG_VS_0_H
+#define FLEXIO_UART_IP_PBCFG_VS_0_H
+
+/**
+*   @file
+*   @defgroup flexio_uart_ip Flexio UART IPL
+*   @addtogroup  flexio_uart_ip Flexio UART IPL
+*   @{
+*/
+
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+/*==================================================================================================
+                                         INCLUDE FILES
+ 1) system and project includes
+ 2) needed interfaces from external units
+ 3) internal and external interfaces from this unit
+==================================================================================================*/
+
+#include "Flexio_Uart_Ip_Types.h"
+
+/*==================================================================================================
+                                SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+
+#define FLEXIO_UART_IP_PBCFG_VS_0_VENDOR_ID                     43
+#define FLEXIO_UART_IP_PBCFG_VS_0_AR_RELEASE_MAJOR_VERSION      4
+#define FLEXIO_UART_IP_PBCFG_VS_0_AR_RELEASE_MINOR_VERSION      4
+#define FLEXIO_UART_IP_PBCFG_VS_0_AR_RELEASE_REVISION_VERSION   0
+#define FLEXIO_UART_IP_PBCFG_VS_0_SW_MAJOR_VERSION              1
+#define FLEXIO_UART_IP_PBCFG_VS_0_SW_MINOR_VERSION              0
+#define FLEXIO_UART_IP_PBCFG_VS_0_SW_PATCH_VERSION              0
+
+/*==================================================================================================
+                                      FILE VERSION CHECKS
+==================================================================================================*/
+/* Checks against Flexio_Uart_Ip_Types.h */
+#if (FLEXIO_UART_IP_PBCFG_VS_0_VENDOR_ID != FLEXIO_UART_IP_TYPES_VENDOR_ID)
+    #error "Flexio_Uart_Ip_PBcfg_VS_0.h and Flexio_Uart_Ip_Types.h have different vendor ids"
+#endif
+#if ((FLEXIO_UART_IP_PBCFG_VS_0_AR_RELEASE_MAJOR_VERSION   != FLEXIO_UART_IP_TYPES_AR_RELEASE_MAJOR_VERSION) || \
+     (FLEXIO_UART_IP_PBCFG_VS_0_AR_RELEASE_MINOR_VERSION   != FLEXIO_UART_IP_TYPES_AR_RELEASE_MINOR_VERSION) || \
+     (FLEXIO_UART_IP_PBCFG_VS_0_AR_RELEASE_REVISION_VERSION!= FLEXIO_UART_IP_TYPES_AR_RELEASE_REVISION_VERSION))
+    #error "AUTOSAR Version Numbers of Flexio_Uart_Ip_PBcfg_VS_0.h and Flexio_Uart_Ip_Types.h are different"
+#endif
+#if ((FLEXIO_UART_IP_PBCFG_VS_0_SW_MAJOR_VERSION!= FLEXIO_UART_IP_TYPES_SW_MAJOR_VERSION) || \
+     (FLEXIO_UART_IP_PBCFG_VS_0_SW_MINOR_VERSION!= FLEXIO_UART_IP_TYPES_SW_MINOR_VERSION) || \
+     (FLEXIO_UART_IP_PBCFG_VS_0_SW_PATCH_VERSION!= FLEXIO_UART_IP_TYPES_SW_PATCH_VERSION))
+    #error "Software Version Numbers of Flexio_Uart_Ip_PBcfg_VS_0.h and Flexio_Uart_Ip_Types.h are different"
+#endif
+
+
+/*==================================================================================================
+                          LOCAL TYPEDEFS (STRUCTURES, UNIONS, ENUMS)
+==================================================================================================*/
+
+/*==================================================================================================
+                                        LOCAL MACROS
+==================================================================================================*/
+
+/*==================================================================================================
+                                       LOCAL CONSTANTS
+==================================================================================================*/
+
+/*==================================================================================================
+                                       LOCAL VARIABLES
+==================================================================================================*/
+
+/*==================================================================================================
+                                       GLOBAL CONSTANTS
+==================================================================================================*/
+
+/*==================================================================================================
+                                       GLOBAL VARIABLES
+==================================================================================================*/
+
+
+
+/**
+* @brief    Declare callback functions if any
+*/
+
+#define UART_START_SEC_CODE
+#include "Uart_MemMap.h"
+
+extern void Uart_Ipw_FlexioTransferCallback(const uint32 HwChannel, const Flexio_Uart_Ip_EventType Event, void *UserData);
+
+#define UART_STOP_SEC_CODE
+#include "Uart_MemMap.h"
+
+
+
+#define FLEXIO_UART_IP_CONFIG_VS_0_PB
+
+/*==================================================================================================
+                                   LOCAL FUNCTION PROTOTYPES
+==================================================================================================*/
+
+/*==================================================================================================
+                                       LOCAL FUNCTIONS
+==================================================================================================*/
+
+/*==================================================================================================
+                                       GLOBAL FUNCTIONS
+==================================================================================================*/
+
+
+#ifdef __cplusplus
+}
+#endif
+
+/** @} */
+
+#endif /* FLEXIO_UART_IP_PBCFG_VS_0_H */

+ 123 - 123
generate/include/Ftm_Mcl_Ip_Cfg.h

@@ -1,123 +1,123 @@
-/*==================================================================================================
-*   Project              : RTD AUTOSAR 4.4
-*   Platform             : CORTEXM
-*   Peripheral           : DMA,CACHE,TRGMUX,FLEXIO
-*   Dependencies         : none
-*
-*   Autosar Version      : 4.4.0
-*   Autosar Revision     : ASR_REL_4_4_REV_0000
-*   Autosar Conf.Variant :
-*   SW Version           : 1.0.0
-*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
-*
-*   (c) Copyright 2020-2021 NXP Semiconductors
-*   All Rights Reserved.
-*
-*   NXP Confidential. This software is owned or controlled by NXP and may only be
-*   used strictly in accordance with the applicable license terms. By expressly
-*   accepting such terms or by downloading, installing, activating and/or otherwise
-*   using the software, you are agreeing that you have read, and that you agree to
-*   comply with and are bound by, such license terms. If you do not agree to be
-*   bound by the applicable license terms, then you may not retain, install,
-*   activate or otherwise use the software.
-==================================================================================================*/
-
-#ifndef FTM_MCL_IP_CFG_H
-#define FTM_MCL_IP_CFG_H
-
-/**
- *   @file        Ftm_Mcl_Ip_Cfg.h
- *
- *   @addtogroup     
- *   @brief       MCL IPL Precompile defines header file.
- *   @details     Precompile defines.
- *
- *   @{
- */
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-/*==================================================================================================
-*                                        INCLUDE FILES
-* 1) system and project includes
-* 2) needed interfaces from external units
-* 3) internal and external interfaces from this unit
-==================================================================================================*/
-#include "Ftm_Mcl_Ip_Cfg_DeviceRegisters.h"
-
-/*==================================================================================================
-*                                 SOURCE FILE VERSION INFORMATION
-==================================================================================================*/
-#define FTM_MCL_IP_CFG_VENDOR_ID                    43
-#define FTM_MCL_IP_CFG_AR_RELEASE_MAJOR_VERSION     4
-#define FTM_MCL_IP_CFG_AR_RELEASE_MINOR_VERSION     4
-#define FTM_MCL_IP_CFG_AR_RELEASE_REVISION_VERSION  0
-#define FTM_MCL_IP_CFG_SW_MAJOR_VERSION             1
-#define FTM_MCL_IP_CFG_SW_MINOR_VERSION             0
-#define FTM_MCL_IP_CFG_SW_PATCH_VERSION             0
-
-/*==================================================================================================
-*                                       FILE VERSION CHECKS
-==================================================================================================*/
-/* Check if header file and Ftm_Mcl_Ip_Cfg_DeviceRegisters.h header file are of the same vendor. */
-#if (FTM_MCL_IP_CFG_VENDOR_ID != FTM_MCL_IP_CFG_DEVICEREGISTERS_VENDOR_ID)
-    #error "Vendor IDs of Ftm_Mcl_Ip.h and Ftm_Mcl_Ip_Cfg_DeviceRegisters.h are different."
-#endif
-
-/* Check if header file and Ftm_Mcl_Ip_Cfg_DeviceRegisters.h header file are of the same AUTOSAR version. */
-#if ((FTM_MCL_IP_CFG_AR_RELEASE_MAJOR_VERSION    != FTM_MCL_IP_CFG_DEVICEREGISTERS_AR_RELEASE_MAJOR_VERSION) || \
-     (FTM_MCL_IP_CFG_AR_RELEASE_MINOR_VERSION    != FTM_MCL_IP_CFG_DEVICEREGISTERS_AR_RELEASE_MINOR_VERSION) || \
-     (FTM_MCL_IP_CFG_AR_RELEASE_REVISION_VERSION != FTM_MCL_IP_CFG_DEVICEREGISTERS_AR_RELEASE_REVISION_VERSION))
-    #error "AUTOSAR version numbers of Ftm_Mcl_Ip.h and Ftm_Mcl_Ip_Cfg_DeviceRegisters.h are different."
-#endif
-
-/* Check if header file and Ftm_Mcl_Ip_Cfg_DeviceRegisters.h header file are of the same software version */
-#if ((FTM_MCL_IP_CFG_SW_MAJOR_VERSION != FTM_MCL_IP_CFG_DEVICEREGISTERS_SW_MAJOR_VERSION) || \
-     (FTM_MCL_IP_CFG_SW_MINOR_VERSION != FTM_MCL_IP_CFG_DEVICEREGISTERS_SW_MINOR_VERSION) || \
-     (FTM_MCL_IP_CFG_SW_PATCH_VERSION != FTM_MCL_IP_CFG_DEVICEREGISTERS_SW_PATCH_VERSION))
-    #error "Software version numbers of Ftm_Mcl_Ip.h and Ftm_Mcl_Ip_Cfg_DeviceRegisters.h are different."
-#endif
-
-/*==================================================================================================
-*                                       DEFINES AND MACROS
-==================================================================================================*/
-/* Enable/Disable FTM common timebase API from MCL. */
-#define FTM_MCL_SELECT_COMMON_TIMEBASE_API           (STD_OFF)
-
-/** 
- * @brief      This define specifies the number of FTM modules present on the derivative. It's used for the
- *             Mcl_SelectCommonTimebase API
- */
-#define FTM_MCL_IP_NOF_MODULES                       ((uint8)6U)
-
-/** 
- * @brief Support for User mode.If this parameter has been configured to STD_ON,
- *        the FTM driver code can be executed from both supervisor and user mode.
- */
-#define FTM_MCL_ENABLE_USER_MODE_SUPPORT             (STD_OFF)
-
-/** @brief Switches the Development Error Detection and Notification on or off.  */
-#define FTM_MCL_IP_DEV_ERROR_DETECT                  (STD_ON)
-
-/** @brief */
-#define USER_MODE_REG_PROT_ENABLED                   (FTM_MCL_ENABLE_USER_MODE_SUPPORT)
-
-/* Verification for user mode support. */
-#ifndef MCAL_ENABLE_USER_MODE_SUPPORT
-#if (defined (FTM_MCL_ENABLE_USER_MODE_SUPPORT) && (STD_ON == FTM_MCL_ENABLE_USER_MODE_SUPPORT))
-    #error MCAL_ENABLE_USER_MODE_SUPPORT is not enabled. For running MCL in user mode the MCAL_ENABLE_USER_MODE_SUPPORT needs to be defined.
-#endif
-#endif
-
-
-#ifdef __cplusplus
-}
-#endif
-
-/** @} */
-
-#endif /* FTM_MCL_IP_CFG_H_ */
-
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : DMA,CACHE,TRGMUX,FLEXIO
+*   Dependencies         : none
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+
+#ifndef FTM_MCL_IP_CFG_H
+#define FTM_MCL_IP_CFG_H
+
+/**
+ *   @file        Ftm_Mcl_Ip_Cfg.h
+ *
+ *   @addtogroup     
+ *   @brief       MCL IPL Precompile defines header file.
+ *   @details     Precompile defines.
+ *
+ *   @{
+ */
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*==================================================================================================
+*                                        INCLUDE FILES
+* 1) system and project includes
+* 2) needed interfaces from external units
+* 3) internal and external interfaces from this unit
+==================================================================================================*/
+#include "Ftm_Mcl_Ip_Cfg_DeviceRegisters.h"
+
+/*==================================================================================================
+*                                 SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+#define FTM_MCL_IP_CFG_VENDOR_ID                    43
+#define FTM_MCL_IP_CFG_AR_RELEASE_MAJOR_VERSION     4
+#define FTM_MCL_IP_CFG_AR_RELEASE_MINOR_VERSION     4
+#define FTM_MCL_IP_CFG_AR_RELEASE_REVISION_VERSION  0
+#define FTM_MCL_IP_CFG_SW_MAJOR_VERSION             1
+#define FTM_MCL_IP_CFG_SW_MINOR_VERSION             0
+#define FTM_MCL_IP_CFG_SW_PATCH_VERSION             0
+
+/*==================================================================================================
+*                                       FILE VERSION CHECKS
+==================================================================================================*/
+/* Check if header file and Ftm_Mcl_Ip_Cfg_DeviceRegisters.h header file are of the same vendor. */
+#if (FTM_MCL_IP_CFG_VENDOR_ID != FTM_MCL_IP_CFG_DEVICEREGISTERS_VENDOR_ID)
+    #error "Vendor IDs of Ftm_Mcl_Ip.h and Ftm_Mcl_Ip_Cfg_DeviceRegisters.h are different."
+#endif
+
+/* Check if header file and Ftm_Mcl_Ip_Cfg_DeviceRegisters.h header file are of the same AUTOSAR version. */
+#if ((FTM_MCL_IP_CFG_AR_RELEASE_MAJOR_VERSION    != FTM_MCL_IP_CFG_DEVICEREGISTERS_AR_RELEASE_MAJOR_VERSION) || \
+     (FTM_MCL_IP_CFG_AR_RELEASE_MINOR_VERSION    != FTM_MCL_IP_CFG_DEVICEREGISTERS_AR_RELEASE_MINOR_VERSION) || \
+     (FTM_MCL_IP_CFG_AR_RELEASE_REVISION_VERSION != FTM_MCL_IP_CFG_DEVICEREGISTERS_AR_RELEASE_REVISION_VERSION))
+    #error "AUTOSAR version numbers of Ftm_Mcl_Ip.h and Ftm_Mcl_Ip_Cfg_DeviceRegisters.h are different."
+#endif
+
+/* Check if header file and Ftm_Mcl_Ip_Cfg_DeviceRegisters.h header file are of the same software version */
+#if ((FTM_MCL_IP_CFG_SW_MAJOR_VERSION != FTM_MCL_IP_CFG_DEVICEREGISTERS_SW_MAJOR_VERSION) || \
+     (FTM_MCL_IP_CFG_SW_MINOR_VERSION != FTM_MCL_IP_CFG_DEVICEREGISTERS_SW_MINOR_VERSION) || \
+     (FTM_MCL_IP_CFG_SW_PATCH_VERSION != FTM_MCL_IP_CFG_DEVICEREGISTERS_SW_PATCH_VERSION))
+    #error "Software version numbers of Ftm_Mcl_Ip.h and Ftm_Mcl_Ip_Cfg_DeviceRegisters.h are different."
+#endif
+
+/*==================================================================================================
+*                                       DEFINES AND MACROS
+==================================================================================================*/
+/* Enable/Disable FTM common timebase API from MCL. */
+#define FTM_MCL_SELECT_COMMON_TIMEBASE_API           (STD_OFF)
+
+/** 
+ * @brief      This define specifies the number of FTM modules present on the derivative. It's used for the
+ *             Mcl_SelectCommonTimebase API
+ */
+#define FTM_MCL_IP_NOF_MODULES                       ((uint8)6U)
+
+/** 
+ * @brief Support for User mode.If this parameter has been configured to STD_ON,
+ *        the FTM driver code can be executed from both supervisor and user mode.
+ */
+#define FTM_MCL_ENABLE_USER_MODE_SUPPORT             (STD_OFF)
+
+/** @brief Switches the Development Error Detection and Notification on or off.  */
+#define FTM_MCL_IP_DEV_ERROR_DETECT                  (STD_OFF)
+
+/** @brief */
+#define USER_MODE_REG_PROT_ENABLED                   (FTM_MCL_ENABLE_USER_MODE_SUPPORT)
+
+/* Verification for user mode support. */
+#ifndef MCAL_ENABLE_USER_MODE_SUPPORT
+#if (defined (FTM_MCL_ENABLE_USER_MODE_SUPPORT) && (STD_ON == FTM_MCL_ENABLE_USER_MODE_SUPPORT))
+    #error MCAL_ENABLE_USER_MODE_SUPPORT is not enabled. For running MCL in user mode the MCAL_ENABLE_USER_MODE_SUPPORT needs to be defined.
+#endif
+#endif
+
+
+#ifdef __cplusplus
+}
+#endif
+
+/** @} */
+
+#endif /* FTM_MCL_IP_CFG_H_ */
+

+ 87 - 87
generate/include/Ftm_Mcl_Ip_Cfg_DeviceRegisters.h

@@ -1,87 +1,87 @@
-/*==================================================================================================
-*   Project              : RTD AUTOSAR 4.4
-*   Platform             : CORTEXM
-*   Peripheral           : DMA,CACHE,TRGMUX,FLEXIO
-*   Dependencies         : none
-*
-*   Autosar Version      : 4.4.0
-*   Autosar Revision     : ASR_REL_4_4_REV_0000
-*   Autosar Conf.Variant :
-*   SW Version           : 1.0.0
-*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
-*
-*   (c) Copyright 2020-2021 NXP Semiconductors
-*   All Rights Reserved.
-*
-*   NXP Confidential. This software is owned or controlled by NXP and may only be
-*   used strictly in accordance with the applicable license terms. By expressly
-*   accepting such terms or by downloading, installing, activating and/or otherwise
-*   using the software, you are agreeing that you have read, and that you agree to
-*   comply with and are bound by, such license terms. If you do not agree to be
-*   bound by the applicable license terms, then you may not retain, install,
-*   activate or otherwise use the software.
-==================================================================================================*/
-
-#ifndef FTM_MCL_IP_CFG_DEVICEREGISTERS
-#define FTM_MCL_IP_CFG_DEVICEREGISTERS
-
-/**
- *   @file        Ftm_Mcl_Ip_Cfg_DeviceRegisters.h
- *
- *   @addtogroup     
- *   @brief       MCL IPL Precompile defines header file.
- *   @details     Precompile defines.
- *
- *   @{
- */
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-/*==================================================================================================
-*                                        INCLUDE FILES
-* 1) system and project includes
-* 2) needed interfaces from external units
-* 3) internal and external interfaces from this unit
-==================================================================================================*/
-#include "StandardTypes.h"
-#include "S32K146_FTM.h"
-
-/*==================================================================================================
-*                               HEADER FILE VERSION INFORMATION
-==================================================================================================*/
-#define FTM_MCL_IP_CFG_DEVICEREGISTERS_VENDOR_ID                   43
-#define FTM_MCL_IP_CFG_DEVICEREGISTERS_AR_RELEASE_MAJOR_VERSION    4
-#define FTM_MCL_IP_CFG_DEVICEREGISTERS_AR_RELEASE_MINOR_VERSION    4
-#define FTM_MCL_IP_CFG_DEVICEREGISTERS_AR_RELEASE_REVISION_VERSION 0
-#define FTM_MCL_IP_CFG_DEVICEREGISTERS_SW_MAJOR_VERSION            1
-#define FTM_MCL_IP_CFG_DEVICEREGISTERS_SW_MINOR_VERSION            0
-#define FTM_MCL_IP_CFG_DEVICEREGISTERS_SW_PATCH_VERSION            0
-
-/*==================================================================================================
-*                                      FILE VERSION CHECKS
-==================================================================================================*/
-#ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
-    /* Check if this header file and StandardTypes.h file are of the same Autosar version */
-    #if ((FTM_MCL_IP_CFG_DEVICEREGISTERS_AR_RELEASE_MAJOR_VERSION != STD_AR_RELEASE_MAJOR_VERSION) || \
-         (FTM_MCL_IP_CFG_DEVICEREGISTERS_AR_RELEASE_MINOR_VERSION != STD_AR_RELEASE_MINOR_VERSION))
-        #error "AutoSar Version Numbers of Ftm_Mcl_Ip_Cfg_DeviceRegisters.h and StandardTypes.h are different"
-    #endif
-#endif
-
-/*==================================================================================================
-*                                       DEFINES AND MACROS
-==================================================================================================*/
-/** @brief Get FTM type. */
-#define Ftm_Mcl_Ip_BaseType                          FTM_Type
-
-
-#ifdef __cplusplus
-}
-#endif
-
-/** @} */
-
-#endif /* FTM_MCL_IP_CFG_DEVICEREGISTERS */
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : DMA,CACHE,TRGMUX,FLEXIO
+*   Dependencies         : none
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+
+#ifndef FTM_MCL_IP_CFG_DEVICEREGISTERS
+#define FTM_MCL_IP_CFG_DEVICEREGISTERS
+
+/**
+ *   @file        Ftm_Mcl_Ip_Cfg_DeviceRegisters.h
+ *
+ *   @addtogroup     
+ *   @brief       MCL IPL Precompile defines header file.
+ *   @details     Precompile defines.
+ *
+ *   @{
+ */
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*==================================================================================================
+*                                        INCLUDE FILES
+* 1) system and project includes
+* 2) needed interfaces from external units
+* 3) internal and external interfaces from this unit
+==================================================================================================*/
+#include "StandardTypes.h"
+#include "S32K146_FTM.h"
+
+/*==================================================================================================
+*                               HEADER FILE VERSION INFORMATION
+==================================================================================================*/
+#define FTM_MCL_IP_CFG_DEVICEREGISTERS_VENDOR_ID                   43
+#define FTM_MCL_IP_CFG_DEVICEREGISTERS_AR_RELEASE_MAJOR_VERSION    4
+#define FTM_MCL_IP_CFG_DEVICEREGISTERS_AR_RELEASE_MINOR_VERSION    4
+#define FTM_MCL_IP_CFG_DEVICEREGISTERS_AR_RELEASE_REVISION_VERSION 0
+#define FTM_MCL_IP_CFG_DEVICEREGISTERS_SW_MAJOR_VERSION            1
+#define FTM_MCL_IP_CFG_DEVICEREGISTERS_SW_MINOR_VERSION            0
+#define FTM_MCL_IP_CFG_DEVICEREGISTERS_SW_PATCH_VERSION            0
+
+/*==================================================================================================
+*                                      FILE VERSION CHECKS
+==================================================================================================*/
+#ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
+    /* Check if this header file and StandardTypes.h file are of the same Autosar version */
+    #if ((FTM_MCL_IP_CFG_DEVICEREGISTERS_AR_RELEASE_MAJOR_VERSION != STD_AR_RELEASE_MAJOR_VERSION) || \
+         (FTM_MCL_IP_CFG_DEVICEREGISTERS_AR_RELEASE_MINOR_VERSION != STD_AR_RELEASE_MINOR_VERSION))
+        #error "AutoSar Version Numbers of Ftm_Mcl_Ip_Cfg_DeviceRegisters.h and StandardTypes.h are different"
+    #endif
+#endif
+
+/*==================================================================================================
+*                                       DEFINES AND MACROS
+==================================================================================================*/
+/** @brief Get FTM type. */
+#define Ftm_Mcl_Ip_BaseType                          FTM_Type
+
+
+#ifdef __cplusplus
+}
+#endif
+
+/** @} */
+
+#endif /* FTM_MCL_IP_CFG_DEVICEREGISTERS */

+ 98 - 98
generate/include/Gpio_Dio_Ip_Cfg.h

@@ -1,98 +1,98 @@
-/*==================================================================================================
-*   Project              : RTD AUTOSAR 4.4
-*   Platform             : CORTEXM
-*   Peripheral           : GPIO
-*   Dependencies         : none
-*
-*   Autosar Version      : 4.4.0
-*   Autosar Revision     : ASR_REL_4_4_REV_0000
-*   Autosar Conf.Variant :
-*   SW Version           : 1.0.0
-*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
-*
-*   (c) Copyright 2020-2021 NXP Semiconductors
-*   All Rights Reserved.
-*
-*   NXP Confidential. This software is owned or controlled by NXP and may only be
-*   used strictly in accordance with the applicable license terms. By expressly
-*   accepting such terms or by downloading, installing, activating and/or otherwise
-*   using the software, you are agreeing that you have read, and that you agree to
-*   comply with and are bound by, such license terms. If you do not agree to be
-*   bound by the applicable license terms, then you may not retain, install,
-*   activate or otherwise use the software.
-==================================================================================================*/
-
-#ifndef GPIO_DIO_IP_CFG_H
-#define GPIO_DIO_IP_CFG_H
-
-/**
-*   @file Gpio_Dio_Ip_Cfg.h
-*
-*   @addtogroup DIO_IPL
-*   @{
-*/
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-/*==================================================================================================
-*                                        INCLUDE FILES
-* 1) system and project includes
-* 2) needed interfaces from external units
-* 3) internal and external interfaces from this unit
-==================================================================================================*/
-#include "S32K146_GPIO.h"
-/*==================================================================================================
-*                              SOURCE FILE VERSION INFORMATION
-==================================================================================================*/
-#define GPIO_DIO_IP_VENDOR_ID_CFG_H                       43
-#define GPIO_DIO_IP_AR_RELEASE_MAJOR_VERSION_CFG_H        4
-#define GPIO_DIO_IP_AR_RELEASE_MINOR_VERSION_CFG_H        4
-#define GPIO_DIO_IP_AR_RELEASE_REVISION_VERSION_CFG_H     0
-#define GPIO_DIO_IP_SW_MAJOR_VERSION_CFG_H                1
-#define GPIO_DIO_IP_SW_MINOR_VERSION_CFG_H                0
-#define GPIO_DIO_IP_SW_PATCH_VERSION_CFG_H                0
-
-/*==================================================================================================
-*                                     FILE VERSION CHECKS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                          CONSTANTS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                      DEFINES AND MACROS
-==================================================================================================*//**
-* @brief          Pre-processor switch to enable/disable development error detection for Gpio Ip API
-*
-* @implements     GpioDioErrorDetect_define
-*/
-#define GPIO_DIO_IP_DEV_ERROR_DETECT                         (STD_OFF)
-
-/*==================================================================================================
-*                                             ENUMS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                STRUCTURES AND OTHER TYPEDEFS
-==================================================================================================*/
-
-
-/*==================================================================================================
-*                                GLOBAL VARIABLE DECLARATIONS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                    FUNCTION PROTOTYPES
-==================================================================================================*/
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* GPIO_DIO_IP_CFG_H */
-
-/** @} */
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : GPIO
+*   Dependencies         : none
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+
+#ifndef GPIO_DIO_IP_CFG_H
+#define GPIO_DIO_IP_CFG_H
+
+/**
+*   @file Gpio_Dio_Ip_Cfg.h
+*
+*   @addtogroup DIO_IPL
+*   @{
+*/
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+/*==================================================================================================
+*                                        INCLUDE FILES
+* 1) system and project includes
+* 2) needed interfaces from external units
+* 3) internal and external interfaces from this unit
+==================================================================================================*/
+#include "S32K146_GPIO.h"
+/*==================================================================================================
+*                              SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+#define GPIO_DIO_IP_VENDOR_ID_CFG_H                       43
+#define GPIO_DIO_IP_AR_RELEASE_MAJOR_VERSION_CFG_H        4
+#define GPIO_DIO_IP_AR_RELEASE_MINOR_VERSION_CFG_H        4
+#define GPIO_DIO_IP_AR_RELEASE_REVISION_VERSION_CFG_H     0
+#define GPIO_DIO_IP_SW_MAJOR_VERSION_CFG_H                1
+#define GPIO_DIO_IP_SW_MINOR_VERSION_CFG_H                0
+#define GPIO_DIO_IP_SW_PATCH_VERSION_CFG_H                0
+
+/*==================================================================================================
+*                                     FILE VERSION CHECKS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                          CONSTANTS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                      DEFINES AND MACROS
+==================================================================================================*//**
+* @brief          Pre-processor switch to enable/disable development error detection for Gpio Ip API
+*
+* @implements     GpioDioErrorDetect_define
+*/
+#define GPIO_DIO_IP_DEV_ERROR_DETECT                         (STD_OFF)
+
+/*==================================================================================================
+*                                             ENUMS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                STRUCTURES AND OTHER TYPEDEFS
+==================================================================================================*/
+
+
+/*==================================================================================================
+*                                GLOBAL VARIABLE DECLARATIONS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                    FUNCTION PROTOTYPES
+==================================================================================================*/
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* GPIO_DIO_IP_CFG_H */
+
+/** @} */

+ 127 - 126
generate/include/IntCtrl_Ip_Cfg.h

@@ -1,126 +1,127 @@
-/*==================================================================================================
-*   Project              : RTD AUTOSAR 4.4
-*   Platform             : CORTEXM
-*   Peripheral           : 
-*   Dependencies         : none
-*
-*   Autosar Version      : 4.4.0
-*   Autosar Revision     : ASR_REL_4_4_REV_0000
-*   Autosar Conf.Variant :
-*   SW Version           : 1.0.0
-*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
-*
-*   (c) Copyright 2020-2021 NXP Semiconductors
-*   All Rights Reserved.
-*
-*   NXP Confidential. This software is owned or controlled by NXP and may only be
-*   used strictly in accordance with the applicable license terms. By expressly
-*   accepting such terms or by downloading, installing, activating and/or otherwise
-*   using the software, you are agreeing that you have read, and that you agree to
-*   comply with and are bound by, such license terms. If you do not agree to be
-*   bound by the applicable license terms, then you may not retain, install,
-*   activate or otherwise use the software.
-==================================================================================================*/
-
-#ifndef INTCTRL_IP_CFG_H_
-#define INTCTRL_IP_CFG_H_
-
-/*==================================================================================================
-                                         INCLUDE FILES
-==================================================================================================*/
-#include "IntCtrl_Ip_TypesDef.h"
-
-#ifdef S32K116
-    #include "S32K116_COMMON.h"
-#endif
-#ifdef S32K118
-    #include "S32K118_COMMON.h"
-#endif
-#ifdef S32K142
-    #include "S32K142_COMMON.h"
-#endif
-#ifdef S32K142W
-    #include "S32K142W_COMMON.h"
-#endif
-#ifdef S32K144
-    #include "S32K144_COMMON.h"
-#endif
-#ifdef S32K144W
-    #include "S32K144W_COMMON.h"
-#endif
-#ifdef S32K146
-    #include "S32K146_COMMON.h"
-#endif
-#ifdef S32K148
-    #include "S32K148_COMMON.h"
-#endif
-/*==================================================================================================
-*                              SOURCE FILE VERSION INFORMATION
-==================================================================================================*/
-#define PLATFORM_INTCTRL_IP_CFG_VENDOR_ID                          43
-#define PLATFORM_INTCTRL_IP_CFG_SW_MAJOR_VERSION                   1
-#define PLATFORM_INTCTRL_IP_CFG_SW_MINOR_VERSION                   0
-#define PLATFORM_INTCTRL_IP_CFG_SW_PATCH_VERSION                   0
-/*==================================================================================================
-                                      FILE VERSION CHECKS
-==================================================================================================*/
-/* Check if current file and IntCtrl_Ip_TypesDef header file are of the same vendor */
-#if (PLATFORM_INTCTRL_IP_CFG_VENDOR_ID != PLATFORM_INTCTRL_IP_TYPESDEF_TYPES_VENDOR_ID)
-    #error "IntCtrl_Ip_Cfg.h and IntCtrl_Ip_TypesDef.h have different vendor ids"
-#endif
-
-/* Check if current file and Fls header file are of the same Software version */
-#if ((PLATFORM_INTCTRL_IP_CFG_SW_MAJOR_VERSION != PLATFORM_INTCTRL_IP_TYPESDEF_SW_MAJOR_VERSION) || \
-     (PLATFORM_INTCTRL_IP_CFG_SW_MINOR_VERSION != PLATFORM_INTCTRL_IP_TYPESDEF_SW_MINOR_VERSION) || \
-     (PLATFORM_INTCTRL_IP_CFG_SW_PATCH_VERSION != PLATFORM_INTCTRL_IP_TYPESDEF_SW_PATCH_VERSION) \
-    )
-    #error "Software Version Numbers of IntCtrl_Ip_Cfg.h and IntCtrl_Ip_TypesDef.h are different"
-#endif
-
-/*==================================================================================================
-                                       GLOBAL VARIABLES
-==================================================================================================*/
-#define PLATFORM_START_SEC_CONFIG_DATA_UNSPECIFIED
-#include "Platform_MemMap.h"
-
-/* Definition of the configuration structure for Platform IPW */
-extern const IntCtrl_Ip_CtrlConfigType intCtrlConfig;
-
-
-/* Definition of the configuration structure for non core Platform IPW */
-extern const IntCtrl_Ip_GlobalRouteConfigType intRouteConfig;
-
-/* Declaration of interrupt handlers 
- * NOTE: For application specific handlers, these functions must be implemented in the application code!
- */
-extern void Dma0_Ch0_IRQHandler(void);
-extern void Dma0_Ch1_IRQHandler(void);
-extern void Dma0_Ch2_IRQHandler(void);
-extern void Dma0_Ch3_IRQHandler(void);
-extern void Dma0_Ch4_IRQHandler(void);
-extern void Dma0_Ch5_IRQHandler(void);
-extern void Dma0_Ch6_IRQHandler(void);
-extern void Dma0_Ch7_IRQHandler(void);
-extern void undefined_handler(void);
-extern void Lpspi_Ip_LPSPI_2_IRQHandler(void);
-extern void LPUART_UART_IP_0_IRQHandler(void);
-extern void LPUART_UART_IP_1_IRQHandler(void);
-extern void LPUART_UART_IP_2_IRQHandler(void);
-extern void MCL_FLEXIO_ISR(void);
-extern void CAN0_ORED_IRQHandler(void);
-extern void CAN0_Error_IRQHandler(void);
-extern void CAN0_Wake_Up_IRQHandler(void);
-extern void CAN0_ORED_0_15_MB_IRQHandler(void);
-extern void CAN0_ORED_16_31_MB_IRQHandler(void);
-extern void CAN1_ORED_IRQHandler(void);
-extern void CAN1_Error_IRQHandler(void);
-extern void CAN1_ORED_0_15_MB_IRQHandler(void);
-extern void CAN1_ORED_16_31_MB_IRQHandler(void);
-
-
-
-#define PLATFORM_STOP_SEC_CONFIG_DATA_UNSPECIFIED
-#include "Platform_MemMap.h"
-
-#endif /* INTCTRL_IP_CFG_H_ */
-
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : 
+*   Dependencies         : none
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+
+#ifndef INTCTRL_IP_CFG_H_
+#define INTCTRL_IP_CFG_H_
+
+/*==================================================================================================
+                                         INCLUDE FILES
+==================================================================================================*/
+#include "IntCtrl_Ip_TypesDef.h"
+
+#ifdef S32K116
+    #include "S32K116_COMMON.h"
+#endif
+#ifdef S32K118
+    #include "S32K118_COMMON.h"
+#endif
+#ifdef S32K142
+    #include "S32K142_COMMON.h"
+#endif
+#ifdef S32K142W
+    #include "S32K142W_COMMON.h"
+#endif
+#ifdef S32K144
+    #include "S32K144_COMMON.h"
+#endif
+#ifdef S32K144W
+    #include "S32K144W_COMMON.h"
+#endif
+#ifdef S32K146
+    #include "S32K146_COMMON.h"
+#endif
+#ifdef S32K148
+    #include "S32K148_COMMON.h"
+#endif
+/*==================================================================================================
+*                              SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+#define PLATFORM_INTCTRL_IP_CFG_VENDOR_ID                          43
+#define PLATFORM_INTCTRL_IP_CFG_SW_MAJOR_VERSION                   1
+#define PLATFORM_INTCTRL_IP_CFG_SW_MINOR_VERSION                   0
+#define PLATFORM_INTCTRL_IP_CFG_SW_PATCH_VERSION                   0
+/*==================================================================================================
+                                      FILE VERSION CHECKS
+==================================================================================================*/
+/* Check if current file and IntCtrl_Ip_TypesDef header file are of the same vendor */
+#if (PLATFORM_INTCTRL_IP_CFG_VENDOR_ID != PLATFORM_INTCTRL_IP_TYPESDEF_TYPES_VENDOR_ID)
+    #error "IntCtrl_Ip_Cfg.h and IntCtrl_Ip_TypesDef.h have different vendor ids"
+#endif
+
+/* Check if current file and Fls header file are of the same Software version */
+#if ((PLATFORM_INTCTRL_IP_CFG_SW_MAJOR_VERSION != PLATFORM_INTCTRL_IP_TYPESDEF_SW_MAJOR_VERSION) || \
+     (PLATFORM_INTCTRL_IP_CFG_SW_MINOR_VERSION != PLATFORM_INTCTRL_IP_TYPESDEF_SW_MINOR_VERSION) || \
+     (PLATFORM_INTCTRL_IP_CFG_SW_PATCH_VERSION != PLATFORM_INTCTRL_IP_TYPESDEF_SW_PATCH_VERSION) \
+    )
+    #error "Software Version Numbers of IntCtrl_Ip_Cfg.h and IntCtrl_Ip_TypesDef.h are different"
+#endif
+
+/*==================================================================================================
+                                       GLOBAL VARIABLES
+==================================================================================================*/
+#define PLATFORM_START_SEC_CONFIG_DATA_UNSPECIFIED
+#include "Platform_MemMap.h"
+
+/* Definition of the configuration structure for Platform IPW */
+extern const IntCtrl_Ip_CtrlConfigType intCtrlConfig;
+
+
+/* Definition of the configuration structure for non core Platform IPW */
+extern const IntCtrl_Ip_GlobalRouteConfigType intRouteConfig;
+
+/* Declaration of interrupt handlers 
+ * NOTE: For application specific handlers, these functions must be implemented in the application code!
+ */
+extern void Dma0_Ch0_IRQHandler(void);
+extern void Dma0_Ch1_IRQHandler(void);
+extern void Dma0_Ch2_IRQHandler(void);
+extern void Dma0_Ch3_IRQHandler(void);
+extern void Dma0_Ch4_IRQHandler(void);
+extern void Dma0_Ch5_IRQHandler(void);
+extern void Dma0_Ch6_IRQHandler(void);
+extern void Dma0_Ch7_IRQHandler(void);
+extern void undefined_handler(void);
+extern void Lpspi_Ip_LPSPI_2_IRQHandler(void);
+extern void LPUART_UART_IP_0_IRQHandler(void);
+extern void LPUART_UART_IP_1_IRQHandler(void);
+extern void LPUART_UART_IP_2_IRQHandler(void);
+extern void Adc_1_Isr(void);
+extern void MCL_FLEXIO_ISR(void);
+extern void CAN0_ORED_IRQHandler(void);
+extern void CAN0_Error_IRQHandler(void);
+extern void CAN0_Wake_Up_IRQHandler(void);
+extern void CAN0_ORED_0_15_MB_IRQHandler(void);
+extern void CAN0_ORED_16_31_MB_IRQHandler(void);
+extern void CAN1_ORED_IRQHandler(void);
+extern void CAN1_Error_IRQHandler(void);
+extern void CAN1_ORED_0_15_MB_IRQHandler(void);
+extern void CAN1_ORED_16_31_MB_IRQHandler(void);
+
+
+
+#define PLATFORM_STOP_SEC_CONFIG_DATA_UNSPECIFIED
+#include "Platform_MemMap.h"
+
+#endif /* INTCTRL_IP_CFG_H_ */
+

+ 103 - 103
generate/include/IntCtrl_Ip_CfgDefines.h

@@ -1,103 +1,103 @@
-/*==================================================================================================
-*   Project              : RTD AUTOSAR 4.4
-*   Platform             : CORTEXM
-*   Peripheral           : 
-*   Dependencies         : none
-*
-*   Autosar Version      : 4.4.0
-*   Autosar Revision     : ASR_REL_4_4_REV_0000
-*   Autosar Conf.Variant :
-*   SW Version           : 1.0.0
-*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
-*
-*   (c) Copyright 2020-2021 NXP Semiconductors
-*   All Rights Reserved.
-*
-*   NXP Confidential. This software is owned or controlled by NXP and may only be
-*   used strictly in accordance with the applicable license terms. By expressly
-*   accepting such terms or by downloading, installing, activating and/or otherwise
-*   using the software, you are agreeing that you have read, and that you agree to
-*   comply with and are bound by, such license terms. If you do not agree to be
-*   bound by the applicable license terms, then you may not retain, install,
-*   activate or otherwise use the software.
-==================================================================================================*/
-
-#ifndef INTCTRL_IP_CFG_DEFINES_H_
-#define INTCTRL_IP_CFG_DEFINES_H_
-
-/*==================================================================================================
-                                         INCLUDE FILES
-==================================================================================================*/
-#include "StandardTypes.h"
-
-/*==================================================================================================
-*                              SOURCE FILE VERSION INFORMATION
-==================================================================================================*/
-#define PLATFORM_INTCTRL_IP_CFG_DEFINES_VENDOR_ID                          43
-#define PLATFORM_INTCTRL_IP_CFG_DEFINES_SW_MAJOR_VERSION                   1
-#define PLATFORM_INTCTRL_IP_CFG_DEFINES_SW_MINOR_VERSION                   0
-#define PLATFORM_INTCTRL_IP_CFG_DEFINES_SW_PATCH_VERSION                   0
-
-
-        #include "S32K146.h"
-        
-
-
-/*==================================================================================================
-*                                       LOCAL MACROS
-==================================================================================================*/
-/* Development error detection */
-#define INT_CTRL_IP_DEV_ERROR_DETECT              (STD_OFF)
-
-/* CPU to CPU interrupt (MSI) routing through MSCM */
-#define INT_CTRL_IP_MSI_AVAILABLE                 (STD_OFF)
-
-/* MSI target core count */
-#define INTCTRL_IP_MSI_CORE_CNT                   (0U)
-
-/* MSI vector min */
-#define INTCTRL_IP_DIRECTED_CPU_INT_MIN           (0)
-
-/* MSI vector max */
-#define INTCTRL_IP_DIRECTED_CPU_INT_MAX           (0)
-/* Core count */
-#define INTCTRL_IP_CORE_MASK                      (1U)
-
-/* System interrupt routing through MSCM */
-#define INT_CTRL_IP_MSCM_SYSTEM_INTERRUPT_ROUTER  (STD_ON)
-
-/* INCT CTRL IP standalone APIs */
-#define INT_CTRL_IP_STANDALONE_APIS               (STD_OFF)
-    /* First implemented interrupt vector */
-    #define INT_CTRL_IP_IRQ_MIN                       (DMA0_IRQn)
-    
-    /* Last implemented interrupt vector */
-    #define INT_CTRL_IP_IRQ_MAX                       (FTM5_Ovf_Reload_IRQn)  
-    /* The interrupt counter value*/
-    #define INT_CTRL_IP_IRQ_COUNT                     (102U)
-    /* Arm Cortex M4 */
-    #define INT_CTRL_IP_CORTEXM4                      (STD_ON)
-    #define INT_CTRL_IP_CORTEXR      STD_OFF
-
-
- 
-/* Number of priority bits implemented */
-#define INT_CTRL_IP_NVIC_PRIO_BITS                (4U)
-
-/*Interrupt Router Shared Peripheral Routing Control Register*/
-#define INT_CTRL_IP_ROUTING_CONTROL_REGISTER      (STD_OFF)
-
-/* This instruction invalidates the entire instruction cache or caches */
-#define INT_CTRL_IP_INVALIDATE_CACHE              (STD_OFF)
-
-
-/**
-* @brief Support for User mode.
-*        If this parameter has been configured to 'STD_ON', the Int Ctrl PLATFORM driver code can be executed from both supervisor and user mode.
-*/
-
-#define INTCTRL_PLATFORM_ENABLE_USER_MODE_SUPPORT   (STD_OFF)
-
-
-#endif /* INTCTRL_IP_CFG_DEFINES_H_ */
-
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : 
+*   Dependencies         : none
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+
+#ifndef INTCTRL_IP_CFG_DEFINES_H_
+#define INTCTRL_IP_CFG_DEFINES_H_
+
+/*==================================================================================================
+                                         INCLUDE FILES
+==================================================================================================*/
+#include "StandardTypes.h"
+
+/*==================================================================================================
+*                              SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+#define PLATFORM_INTCTRL_IP_CFG_DEFINES_VENDOR_ID                          43
+#define PLATFORM_INTCTRL_IP_CFG_DEFINES_SW_MAJOR_VERSION                   1
+#define PLATFORM_INTCTRL_IP_CFG_DEFINES_SW_MINOR_VERSION                   0
+#define PLATFORM_INTCTRL_IP_CFG_DEFINES_SW_PATCH_VERSION                   0
+
+
+        #include "S32K146.h"
+        
+
+
+/*==================================================================================================
+*                                       LOCAL MACROS
+==================================================================================================*/
+/* Development error detection */
+#define INT_CTRL_IP_DEV_ERROR_DETECT              (STD_OFF)
+
+/* CPU to CPU interrupt (MSI) routing through MSCM */
+#define INT_CTRL_IP_MSI_AVAILABLE                 (STD_OFF)
+
+/* MSI target core count */
+#define INTCTRL_IP_MSI_CORE_CNT                   (0U)
+
+/* MSI vector min */
+#define INTCTRL_IP_DIRECTED_CPU_INT_MIN           (0)
+
+/* MSI vector max */
+#define INTCTRL_IP_DIRECTED_CPU_INT_MAX           (0)
+/* Core count */
+#define INTCTRL_IP_CORE_MASK                      (1U)
+
+/* System interrupt routing through MSCM */
+#define INT_CTRL_IP_MSCM_SYSTEM_INTERRUPT_ROUTER  (STD_ON)
+
+/* INCT CTRL IP standalone APIs */
+#define INT_CTRL_IP_STANDALONE_APIS               (STD_OFF)
+    /* First implemented interrupt vector */
+    #define INT_CTRL_IP_IRQ_MIN                       (DMA0_IRQn)
+    
+    /* Last implemented interrupt vector */
+    #define INT_CTRL_IP_IRQ_MAX                       (FTM5_Ovf_Reload_IRQn)  
+    /* The interrupt counter value*/
+    #define INT_CTRL_IP_IRQ_COUNT                     (102U)
+    /* Arm Cortex M4 */
+    #define INT_CTRL_IP_CORTEXM4                      (STD_ON)
+    #define INT_CTRL_IP_CORTEXR      STD_OFF
+
+
+ 
+/* Number of priority bits implemented */
+#define INT_CTRL_IP_NVIC_PRIO_BITS                (4U)
+
+/*Interrupt Router Shared Peripheral Routing Control Register*/
+#define INT_CTRL_IP_ROUTING_CONTROL_REGISTER      (STD_OFF)
+
+/* This instruction invalidates the entire instruction cache or caches */
+#define INT_CTRL_IP_INVALIDATE_CACHE              (STD_OFF)
+
+
+/**
+* @brief Support for User mode.
+*        If this parameter has been configured to 'STD_ON', the Int Ctrl PLATFORM driver code can be executed from both supervisor and user mode.
+*/
+
+#define INTCTRL_PLATFORM_ENABLE_USER_MODE_SUPPORT   (STD_OFF)
+
+
+#endif /* INTCTRL_IP_CFG_DEFINES_H_ */
+

+ 239 - 239
generate/include/Lpspi_Ip_Cfg.h

@@ -1,239 +1,239 @@
-/*==================================================================================================
-*   Project              : RTD AUTOSAR 4.4
-*   Platform             : CORTEXM
-*   Peripheral           : LPSPI
-*   Dependencies         : 
-*
-*   Autosar Version      : 4.4.0
-*   Autosar Revision     : ASR_REL_4_4_REV_0000
-*   Autosar Conf.Variant :
-*   SW Version           : 1.0.0
-*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
-*
-*   (c) Copyright 2020-2021 NXP Semiconductors
-*   All Rights Reserved.
-*
-*   NXP Confidential. This software is owned or controlled by NXP and may only be
-*   used strictly in accordance with the applicable license terms. By expressly
-*   accepting such terms or by downloading, installing, activating and/or otherwise
-*   using the software, you are agreeing that you have read, and that you agree to
-*   comply with and are bound by, such license terms. If you do not agree to be
-*   bound by the applicable license terms, then you may not retain, install,
-*   activate or otherwise use the software.
-==================================================================================================*/
-
-#ifndef LPSPI_IP_CFG_H
-#define LPSPI_IP_CFG_H
-
-/**
-*   @file    Lpspi_Ip_Cfg.h
-*   @version 1.0.0
-*
-*   @brief   AUTOSAR Spi - Spi configuration header file.
-*   @details This file is the header containing all the necessary information for SPI
-*            module configuration(s).
-*   @addtogroup LPSPI_DRIVER_CONFIGURATION Lpspi Driver Configuration
-*   @{
-*/
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-/*==================================================================================================
-*                                        INCLUDE FILES
-* 1) system and project includes
-* 2) needed interfaces from external units
-* 3) internal and external interfaces from this unit
-* 4) user callback header files
-==================================================================================================*/
-#include "Mcal.h"
-#include "OsIf.h"
-
-#include "Lpspi_Ip_VS_0_PBcfg.h"
-
-#include "S32K146_LPSPI.h"
-/*==================================================================================================
-*                              SOURCE FILE VERSION INFORMATION
-==================================================================================================*/
-
-#define LPSPI_IP_VENDOR_ID_CFG                       43
-#define LPSPI_IP_AR_RELEASE_MAJOR_VERSION_CFG        4
-#define LPSPI_IP_AR_RELEASE_MINOR_VERSION_CFG        4
-#define LPSPI_IP_AR_RELEASE_REVISION_VERSION_CFG     0
-#define LPSPI_IP_SW_MAJOR_VERSION_CFG                1
-#define LPSPI_IP_SW_MINOR_VERSION_CFG                0
-#define LPSPI_IP_SW_PATCH_VERSION_CFG                0
-
-/*==================================================================================================
-*                                     FILE VERSION CHECKS
-==================================================================================================*/
-#ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
-    /* Check if current file and Mcal header file are of the same Autosar version */
-    #if ((LPSPI_IP_AR_RELEASE_MAJOR_VERSION_CFG != MCAL_AR_RELEASE_MAJOR_VERSION) || \
-         (LPSPI_IP_AR_RELEASE_MINOR_VERSION_CFG != MCAL_AR_RELEASE_MINOR_VERSION))
-        #error "AutoSar Version Numbers of Lpspi_Ip_Cfg.h and Mcal.h are different"
-    #endif
-
-    /* Check if current file and OsIf header file are of the same Autosar version */
-    #if ((LPSPI_IP_AR_RELEASE_MAJOR_VERSION_CFG != OSIF_AR_RELEASE_MAJOR_VERSION) || \
-         (LPSPI_IP_AR_RELEASE_MINOR_VERSION_CFG != OSIF_AR_RELEASE_MINOR_VERSION))
-        #error "AutoSar Version Numbers of Lpspi_Ip_Cfg.h and OsIf.h are different"
-    #endif
-#endif
-
-
-
-/* Check if Lpspi_Ip_VS_0_PBcfg header file and Spi configuration header file are of the same vendor */
-#if (LPSPI_IP_VS_0_VENDOR_ID_PBCFG != LPSPI_IP_VENDOR_ID_CFG)
-    #error "Lpspi_Ip_VS_0_PBcfg.h and Lpspi_Ip_Cfg.h have different vendor IDs"
-#endif
-    /* Check if Lpspi_Ip_VS_0_PBcfg header file and Spi  configuration header file are of the same Autosar version */
-#if ((LPSPI_IP_VS_0_AR_RELEASE_MAJOR_VERSION_PBCFG != LPSPI_IP_AR_RELEASE_MAJOR_VERSION_CFG) || \
-     (LPSPI_IP_VS_0_AR_RELEASE_MINOR_VERSION_PBCFG != LPSPI_IP_AR_RELEASE_MINOR_VERSION_CFG) || \
-     (LPSPI_IP_VS_0_AR_RELEASE_REVISION_VERSION_PBCFG != LPSPI_IP_AR_RELEASE_REVISION_VERSION_CFG))
-#error "AutoSar Version Numbers of Lpspi_Ip_VS_0_PBcfg.h and Lpspi_Ip_Cfg.h are different"
-#endif
-/* Check if Lpspi_Ip_VS_0_PBcfg header file and Spi configuration header file are of the same software version */
-#if ((LPSPI_IP_VS_0_SW_MAJOR_VERSION_PBCFG != LPSPI_IP_SW_MAJOR_VERSION_CFG) || \
-     (LPSPI_IP_VS_0_SW_MINOR_VERSION_PBCFG != LPSPI_IP_SW_MINOR_VERSION_CFG) || \
-     (LPSPI_IP_VS_0_SW_PATCH_VERSION_PBCFG != LPSPI_IP_SW_PATCH_VERSION_CFG))
-#error "Software Version Numbers of Lpspi_Ip_VS_0_PBcfg.h and Lpspi_Ip_Cfg.h are different"
-#endif
-
-
-
-/*==================================================================================================
-*                                          CONSTANTS
-==================================================================================================*/
-#define LPSPI_IP_CONFIG_EXT \
- LPSPI_IP_CONFIG_VS_0_PB \
-
-
-/** @brief Total number of SpiPhyUnit configured. */
-#define LPSPI_IP_NUMBER_OF_INSTANCES           (1U)
-
-/** @brief Number of FIFO entries supported */
-#define LPSPI_IP_FIFO_SIZE_U8   ((uint8)4U)
-
-/** @brief HWUnits enabled/disabled */
-
-#define LPSPI_IP_2_ENABLED  (STD_ON)
-    
-#define LPSPI_IP_SLAVE_SUPPORT  ((STD_OFF))
-
-
-/**
-* @brief Defines if transfers are made using DMA or FIFO.
-* @details Defines if transfers are made using DMA or FIFO.
-*/
-#define LPSPI_IP_DMA_USED     (STD_OFF)
-
-/**
-* @brief If enabled, allows dual MCU clock configuration settings.
-* @details If enabled, allows dual MCU clock configuration settings.
-*/
-#define LPSPI_IP_DUAL_CLOCK_MODE  (STD_OFF)
-
-/**
-* @brief          Enable Dma Fast transfer support.
-* @details        When SpiAutosarExt/SpiEnableDmaFastTransferSupport = TRUE,
-*                 the SPI driver can be supported to transfer multiple Jobs, Channels and CPU used only for processing end of Sequence transfer.
-*/
-#define LPSPI_IP_ENABLE_DMAFASTTRANSFER_SUPPORT   (STD_OFF)
-
-/**
-* @brief          Enable User Mode Support.
-* @details        When SpiAutosarExt/SpiEnableUserModeSupport = TRUE,
-*                 the SPI driver can be executed from both supervisor and user mode.
-*
-* @api
-*/
-#define LPSPI_IP_ENABLE_USER_MODE_SUPPORT   (STD_OFF)
-
-#ifndef MCAL_ENABLE_USER_MODE_SUPPORT
- #ifdef LPSPI_IP_ENABLE_USER_MODE_SUPPORT
-  #if (STD_ON == LPSPI_IP_ENABLE_USER_MODE_SUPPORT)
-   #error MCAL_ENABLE_USER_MODE_SUPPORT is not enabled. For running  Spi in user mode the MCAL_ENABLE_USER_MODE_SUPPORT needs to be defined
-  #endif /* (STD_ON == LPSPI_IP_ENABLE_USER_MODE_SUPPORT) */
- #endif /* ifdef MCAL_ENABLE_USER_MODE_SUPPORT */
-#endif /* ifndef MCAL_ENABLE_USER_MODE_SUPPORT*/
-
-/**
-* @brief SPI registers is controlled by REG_PROT IP.
-*/
-#define LPSPI_IP_REG_PROT_AVAILABLE   (STD_OFF)
-
-#if (STD_ON == LPSPI_IP_REG_PROT_AVAILABLE)
-/**
-* @brief The protection size
-*/
-    #define LPSPI_IP_PROT_MEM_U32                           ((uint32)4U)
-#endif
-
-/**
-* @brief Maximum of frame size supported.
-*/
-#define LPSPI_IP_FRAMESIZE_MAX_U8                              ((uint8)32U)
-
-/**
-* @brief Minimum of frame size supported.
-*/
-#define LPSPI_IP_FRAMESIZE_MIN_U8                              ((uint8)4U)
-
-/**
-* @brief Define Timeout Method.
-* @details Define a certain timeout method from OsIf will be used in the driver.
-*/
-#define LPSPI_IP_TIMEOUT_METHOD           (OSIF_COUNTER_SYSTEM)
-
-/**
-* @brief Switches ON or OFF for the detection and reporting of development errors(API parameter checking) at IP level.
-*/
-/** @implements LPSPI_IP_DEV_ERROR_DETECT_define  */
-#define LPSPI_IP_DEV_ERROR_DETECT     (STD_OFF)
-
-/**
-* @brief Half duplex supported.
-*/
-/** @implements LPSPI_IP_HALF_DUPLEX_MODE_SUPPORT_define  */
-#define LPSPI_IP_HALF_DUPLEX_MODE_SUPPORT     (STD_OFF)
-
-/**
-* @brief Defines the "Number of Loops" timeout.
-* @details Defines the "Number of Loops" timeout used Spi_AsyncTransmitHalfDuplex in half duplex mode
-*         during the wait on TX transmission to complete before start next channel that in receive mode or latest channel in job.
-*        One timeout unit means that no TX or RX was executed(the IF statements are returning FALSE).
-*/
-#define LPSPI_IP_HALF_DUPLEX_TIMEOUT_COUNTER       ((uint32)(50000))
-
-/*==================================================================================================
- *                                     DEFINES AND MACROS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                            ENUMS
-==================================================================================================*/
-
-
-/*==================================================================================================
-*                               STRUCTURES AND OTHER TYPEDEFS
-==================================================================================================*/
-
-
-/*==================================================================================================
-*                                GLOBAL VARIABLE DECLARATIONS
-==================================================================================================*/
-
-
-/*==================================================================================================
-*                                    FUNCTION PROTOTYPES
-==================================================================================================*/
-
-
-#ifdef __cplusplus
-}
-#endif
-#endif 
-
-/** @} */
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : LPSPI
+*   Dependencies         : 
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+
+#ifndef LPSPI_IP_CFG_H
+#define LPSPI_IP_CFG_H
+
+/**
+*   @file    Lpspi_Ip_Cfg.h
+*   @version 1.0.0
+*
+*   @brief   AUTOSAR Spi - Spi configuration header file.
+*   @details This file is the header containing all the necessary information for SPI
+*            module configuration(s).
+*   @addtogroup LPSPI_DRIVER_CONFIGURATION Lpspi Driver Configuration
+*   @{
+*/
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+/*==================================================================================================
+*                                        INCLUDE FILES
+* 1) system and project includes
+* 2) needed interfaces from external units
+* 3) internal and external interfaces from this unit
+* 4) user callback header files
+==================================================================================================*/
+#include "Mcal.h"
+#include "OsIf.h"
+
+#include "Lpspi_Ip_VS_0_PBcfg.h"
+
+#include "S32K146_LPSPI.h"
+/*==================================================================================================
+*                              SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+
+#define LPSPI_IP_VENDOR_ID_CFG                       43
+#define LPSPI_IP_AR_RELEASE_MAJOR_VERSION_CFG        4
+#define LPSPI_IP_AR_RELEASE_MINOR_VERSION_CFG        4
+#define LPSPI_IP_AR_RELEASE_REVISION_VERSION_CFG     0
+#define LPSPI_IP_SW_MAJOR_VERSION_CFG                1
+#define LPSPI_IP_SW_MINOR_VERSION_CFG                0
+#define LPSPI_IP_SW_PATCH_VERSION_CFG                0
+
+/*==================================================================================================
+*                                     FILE VERSION CHECKS
+==================================================================================================*/
+#ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
+    /* Check if current file and Mcal header file are of the same Autosar version */
+    #if ((LPSPI_IP_AR_RELEASE_MAJOR_VERSION_CFG != MCAL_AR_RELEASE_MAJOR_VERSION) || \
+         (LPSPI_IP_AR_RELEASE_MINOR_VERSION_CFG != MCAL_AR_RELEASE_MINOR_VERSION))
+        #error "AutoSar Version Numbers of Lpspi_Ip_Cfg.h and Mcal.h are different"
+    #endif
+
+    /* Check if current file and OsIf header file are of the same Autosar version */
+    #if ((LPSPI_IP_AR_RELEASE_MAJOR_VERSION_CFG != OSIF_AR_RELEASE_MAJOR_VERSION) || \
+         (LPSPI_IP_AR_RELEASE_MINOR_VERSION_CFG != OSIF_AR_RELEASE_MINOR_VERSION))
+        #error "AutoSar Version Numbers of Lpspi_Ip_Cfg.h and OsIf.h are different"
+    #endif
+#endif
+
+
+
+/* Check if Lpspi_Ip_VS_0_PBcfg header file and Spi configuration header file are of the same vendor */
+#if (LPSPI_IP_VS_0_VENDOR_ID_PBCFG != LPSPI_IP_VENDOR_ID_CFG)
+    #error "Lpspi_Ip_VS_0_PBcfg.h and Lpspi_Ip_Cfg.h have different vendor IDs"
+#endif
+    /* Check if Lpspi_Ip_VS_0_PBcfg header file and Spi  configuration header file are of the same Autosar version */
+#if ((LPSPI_IP_VS_0_AR_RELEASE_MAJOR_VERSION_PBCFG != LPSPI_IP_AR_RELEASE_MAJOR_VERSION_CFG) || \
+     (LPSPI_IP_VS_0_AR_RELEASE_MINOR_VERSION_PBCFG != LPSPI_IP_AR_RELEASE_MINOR_VERSION_CFG) || \
+     (LPSPI_IP_VS_0_AR_RELEASE_REVISION_VERSION_PBCFG != LPSPI_IP_AR_RELEASE_REVISION_VERSION_CFG))
+#error "AutoSar Version Numbers of Lpspi_Ip_VS_0_PBcfg.h and Lpspi_Ip_Cfg.h are different"
+#endif
+/* Check if Lpspi_Ip_VS_0_PBcfg header file and Spi configuration header file are of the same software version */
+#if ((LPSPI_IP_VS_0_SW_MAJOR_VERSION_PBCFG != LPSPI_IP_SW_MAJOR_VERSION_CFG) || \
+     (LPSPI_IP_VS_0_SW_MINOR_VERSION_PBCFG != LPSPI_IP_SW_MINOR_VERSION_CFG) || \
+     (LPSPI_IP_VS_0_SW_PATCH_VERSION_PBCFG != LPSPI_IP_SW_PATCH_VERSION_CFG))
+#error "Software Version Numbers of Lpspi_Ip_VS_0_PBcfg.h and Lpspi_Ip_Cfg.h are different"
+#endif
+
+
+
+/*==================================================================================================
+*                                          CONSTANTS
+==================================================================================================*/
+#define LPSPI_IP_CONFIG_EXT \
+ LPSPI_IP_CONFIG_VS_0_PB \
+
+
+/** @brief Total number of SpiPhyUnit configured. */
+#define LPSPI_IP_NUMBER_OF_INSTANCES           (1U)
+
+/** @brief Number of FIFO entries supported */
+#define LPSPI_IP_FIFO_SIZE_U8   ((uint8)4U)
+
+/** @brief HWUnits enabled/disabled */
+
+#define LPSPI_IP_2_ENABLED  (STD_ON)
+    
+#define LPSPI_IP_SLAVE_SUPPORT  ((STD_OFF))
+
+
+/**
+* @brief Defines if transfers are made using DMA or FIFO.
+* @details Defines if transfers are made using DMA or FIFO.
+*/
+#define LPSPI_IP_DMA_USED     (STD_OFF)
+
+/**
+* @brief If enabled, allows dual MCU clock configuration settings.
+* @details If enabled, allows dual MCU clock configuration settings.
+*/
+#define LPSPI_IP_DUAL_CLOCK_MODE  (STD_OFF)
+
+/**
+* @brief          Enable Dma Fast transfer support.
+* @details        When SpiAutosarExt/SpiEnableDmaFastTransferSupport = TRUE,
+*                 the SPI driver can be supported to transfer multiple Jobs, Channels and CPU used only for processing end of Sequence transfer.
+*/
+#define LPSPI_IP_ENABLE_DMAFASTTRANSFER_SUPPORT   (STD_OFF)
+
+/**
+* @brief          Enable User Mode Support.
+* @details        When SpiAutosarExt/SpiEnableUserModeSupport = TRUE,
+*                 the SPI driver can be executed from both supervisor and user mode.
+*
+* @api
+*/
+#define LPSPI_IP_ENABLE_USER_MODE_SUPPORT   (STD_OFF)
+
+#ifndef MCAL_ENABLE_USER_MODE_SUPPORT
+ #ifdef LPSPI_IP_ENABLE_USER_MODE_SUPPORT
+  #if (STD_ON == LPSPI_IP_ENABLE_USER_MODE_SUPPORT)
+   #error MCAL_ENABLE_USER_MODE_SUPPORT is not enabled. For running  Spi in user mode the MCAL_ENABLE_USER_MODE_SUPPORT needs to be defined
+  #endif /* (STD_ON == LPSPI_IP_ENABLE_USER_MODE_SUPPORT) */
+ #endif /* ifdef MCAL_ENABLE_USER_MODE_SUPPORT */
+#endif /* ifndef MCAL_ENABLE_USER_MODE_SUPPORT*/
+
+/**
+* @brief SPI registers is controlled by REG_PROT IP.
+*/
+#define LPSPI_IP_REG_PROT_AVAILABLE   (STD_OFF)
+
+#if (STD_ON == LPSPI_IP_REG_PROT_AVAILABLE)
+/**
+* @brief The protection size
+*/
+    #define LPSPI_IP_PROT_MEM_U32                           ((uint32)4U)
+#endif
+
+/**
+* @brief Maximum of frame size supported.
+*/
+#define LPSPI_IP_FRAMESIZE_MAX_U8                              ((uint8)32U)
+
+/**
+* @brief Minimum of frame size supported.
+*/
+#define LPSPI_IP_FRAMESIZE_MIN_U8                              ((uint8)4U)
+
+/**
+* @brief Define Timeout Method.
+* @details Define a certain timeout method from OsIf will be used in the driver.
+*/
+#define LPSPI_IP_TIMEOUT_METHOD           (OSIF_COUNTER_SYSTEM)
+
+/**
+* @brief Switches ON or OFF for the detection and reporting of development errors(API parameter checking) at IP level.
+*/
+/** @implements LPSPI_IP_DEV_ERROR_DETECT_define  */
+#define LPSPI_IP_DEV_ERROR_DETECT     (STD_OFF)
+
+/**
+* @brief Half duplex supported.
+*/
+/** @implements LPSPI_IP_HALF_DUPLEX_MODE_SUPPORT_define  */
+#define LPSPI_IP_HALF_DUPLEX_MODE_SUPPORT     (STD_OFF)
+
+/**
+* @brief Defines the "Number of Loops" timeout.
+* @details Defines the "Number of Loops" timeout used Spi_AsyncTransmitHalfDuplex in half duplex mode
+*         during the wait on TX transmission to complete before start next channel that in receive mode or latest channel in job.
+*        One timeout unit means that no TX or RX was executed(the IF statements are returning FALSE).
+*/
+#define LPSPI_IP_HALF_DUPLEX_TIMEOUT_COUNTER       ((uint32)(50000))
+
+/*==================================================================================================
+ *                                     DEFINES AND MACROS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                            ENUMS
+==================================================================================================*/
+
+
+/*==================================================================================================
+*                               STRUCTURES AND OTHER TYPEDEFS
+==================================================================================================*/
+
+
+/*==================================================================================================
+*                                GLOBAL VARIABLE DECLARATIONS
+==================================================================================================*/
+
+
+/*==================================================================================================
+*                                    FUNCTION PROTOTYPES
+==================================================================================================*/
+
+
+#ifdef __cplusplus
+}
+#endif
+#endif 
+
+/** @} */

+ 103 - 103
generate/include/Lpspi_Ip_VS_0_PBcfg.h

@@ -1,103 +1,103 @@
-/*==================================================================================================
-*   Project              : RTD AUTOSAR 4.4
-*   Platform             : CORTEXM
-*   Peripheral           : LPSPI
-*   Dependencies         : 
-*
-*   Autosar Version      : 4.4.0
-*   Autosar Revision     : ASR_REL_4_4_REV_0000
-*   Autosar Conf.Variant :
-*   SW Version           : 1.0.0
-*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
-*
-*   (c) Copyright 2020-2021 NXP Semiconductors
-*   All Rights Reserved.
-*
-*   NXP Confidential. This software is owned or controlled by NXP and may only be
-*   used strictly in accordance with the applicable license terms. By expressly
-*   accepting such terms or by downloading, installing, activating and/or otherwise
-*   using the software, you are agreeing that you have read, and that you agree to
-*   comply with and are bound by, such license terms. If you do not agree to be
-*   bound by the applicable license terms, then you may not retain, install,
-*   activate or otherwise use the software.
-==================================================================================================*/
-
-#ifndef LPSPI_IP_VS_0_PBCFG_H
-#define LPSPI_IP_VS_0_PBCFG_H
-
-/**
-*   @file    Lpspi_Ip_PBcfg.h
-*   @version 1.0.0
-*
-*   @brief   AUTOSAR Spi - Post-Build(PB) configuration file code template.
-*   @details Code template for Post-Build(PB) configuration file generation.
-*
-*   @addtogroup LPSPI_DRIVER_CONFIGURATION Lpspi Driver Configuration
-*   @{
-*/
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-/*==================================================================================================
-*                                        INCLUDE FILES
-* 1) system and project includes
-* 2) needed interfaces from external units
-* 3) internal and external interfaces from this unit
-==================================================================================================*/
-
-/*==================================================================================================
-*                              SOURCE FILE VERSION INFORMATION
-==================================================================================================*/
-/* Inclusion of incompatible header files shall be avoided */
-#define LPSPI_IP_VS_0_VENDOR_ID_PBCFG                        43
-#define LPSPI_IP_VS_0_AR_RELEASE_MAJOR_VERSION_PBCFG         4
-#define LPSPI_IP_VS_0_AR_RELEASE_MINOR_VERSION_PBCFG         4
-#define LPSPI_IP_VS_0_AR_RELEASE_REVISION_VERSION_PBCFG      0
-#define LPSPI_IP_VS_0_SW_MAJOR_VERSION_PBCFG                 1
-#define LPSPI_IP_VS_0_SW_MINOR_VERSION_PBCFG                 0
-#define LPSPI_IP_VS_0_SW_PATCH_VERSION_PBCFG                 0
-
-/*==================================================================================================
-                                      FILE VERSION CHECKS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                          CONSTANTS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                      DEFINES AND MACROS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                             ENUMS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                STRUCTURES AND OTHER TYPEDEFS
-==================================================================================================*/
-
-
-/*==================================================================================================
-*                                GLOBAL VARIABLE DECLARATIONS
-==================================================================================================*/
-#define LPSPI_IP_CONFIG_VS_0_PB \
- extern const Lpspi_Ip_ExternalDeviceType Lpspi_Ip_DeviceAttributes_SpiExternalDevice_0_VS_0; \
- extern const Lpspi_Ip_ConfigType Lpspi_Ip_PhyUnitConfig_SpiPhyUnit_0_VS_0; \
-
-
-/*==================================================================================================
-                                   LOCAL FUNCTION PROTOTYPES
-==================================================================================================*/
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-/** @} */
-
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : LPSPI
+*   Dependencies         : 
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+
+#ifndef LPSPI_IP_VS_0_PBCFG_H
+#define LPSPI_IP_VS_0_PBCFG_H
+
+/**
+*   @file    Lpspi_Ip_PBcfg.h
+*   @version 1.0.0
+*
+*   @brief   AUTOSAR Spi - Post-Build(PB) configuration file code template.
+*   @details Code template for Post-Build(PB) configuration file generation.
+*
+*   @addtogroup LPSPI_DRIVER_CONFIGURATION Lpspi Driver Configuration
+*   @{
+*/
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*==================================================================================================
+*                                        INCLUDE FILES
+* 1) system and project includes
+* 2) needed interfaces from external units
+* 3) internal and external interfaces from this unit
+==================================================================================================*/
+
+/*==================================================================================================
+*                              SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+/* Inclusion of incompatible header files shall be avoided */
+#define LPSPI_IP_VS_0_VENDOR_ID_PBCFG                        43
+#define LPSPI_IP_VS_0_AR_RELEASE_MAJOR_VERSION_PBCFG         4
+#define LPSPI_IP_VS_0_AR_RELEASE_MINOR_VERSION_PBCFG         4
+#define LPSPI_IP_VS_0_AR_RELEASE_REVISION_VERSION_PBCFG      0
+#define LPSPI_IP_VS_0_SW_MAJOR_VERSION_PBCFG                 1
+#define LPSPI_IP_VS_0_SW_MINOR_VERSION_PBCFG                 0
+#define LPSPI_IP_VS_0_SW_PATCH_VERSION_PBCFG                 0
+
+/*==================================================================================================
+                                      FILE VERSION CHECKS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                          CONSTANTS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                      DEFINES AND MACROS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                             ENUMS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                STRUCTURES AND OTHER TYPEDEFS
+==================================================================================================*/
+
+
+/*==================================================================================================
+*                                GLOBAL VARIABLE DECLARATIONS
+==================================================================================================*/
+#define LPSPI_IP_CONFIG_VS_0_PB \
+ extern const Lpspi_Ip_ExternalDeviceType Lpspi_Ip_DeviceAttributes_SpiExternalDevice_0_VS_0; \
+ extern const Lpspi_Ip_ConfigType Lpspi_Ip_PhyUnitConfig_SpiPhyUnit_0_VS_0; \
+
+
+/*==================================================================================================
+                                   LOCAL FUNCTION PROTOTYPES
+==================================================================================================*/
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+/** @} */
+

+ 124 - 124
generate/include/Lpuart_Uart_Ip_Cfg.h

@@ -1,124 +1,124 @@
-/*==================================================================================================
-*   Project              : RTD AUTOSAR 4.4
-*   Platform             : CORTEXM
-*   Peripheral           : FLEXIO
-*   Dependencies         : 
-*
-*   Autosar Version      : 4.4.0
-*   Autosar Revision     : ASR_REL_4_4_REV_0000
-*   Autosar Conf.Variant :
-*   SW Version           : 1.0.0
-*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
-*
-*   (c) Copyright 2020-2021 NXP Semiconductors
-*   All Rights Reserved.
-*
-*   NXP Confidential. This software is owned or controlled by NXP and may only be
-*   used strictly in accordance with the applicable license terms. By expressly
-*   accepting such terms or by downloading, installing, activating and/or otherwise
-*   using the software, you are agreeing that you have read, and that you agree to
-*   comply with and are bound by, such license terms. If you do not agree to be
-*   bound by the applicable license terms, then you may not retain, install,
-*   activate or otherwise use the software.
-==================================================================================================*/
-
-#ifndef LPUART_UART_IP_CFG_H
-#define LPUART_UART_IP_CFG_H
-
-/**
-*   @file
-*   @defgroup lpuart_uart_ip Lpuart UART IPL
-*   @addtogroup  lpuart_uart_ip Lpuart UART IPL
-*   @{
-*/
-
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-/*==================================================================================================
-*                                        INCLUDE FILES
-* 1) system and project includes
-* 2) needed interfaces from external units
-* 3) internal and external interfaces from this unit
-* 4) user callback header files
-==================================================================================================*/
-#include "Lpuart_Uart_Ip_VS_0_PBcfg.h"
-
-#include "StandardTypes.h"
-/*==================================================================================================
-*                              SOURCE FILE VERSION INFORMATION
-==================================================================================================*/
-#define LPUART_UART_IP_CFG_VENDOR_ID                     43
-#define LPUART_UART_IP_CFG_AR_RELEASE_MAJOR_VERSION      4
-#define LPUART_UART_IP_CFG_AR_RELEASE_MINOR_VERSION      4
-#define LPUART_UART_IP_CFG_AR_RELEASE_REVISION_VERSION   0
-#define LPUART_UART_IP_CFG_SW_MAJOR_VERSION              1
-#define LPUART_UART_IP_CFG_SW_MINOR_VERSION              0
-#define LPUART_UART_IP_CFG_SW_PATCH_VERSION              0
-
-/*==================================================================================================
-*                                     FILE VERSION CHECKS
-==================================================================================================*/
-
-/* Checks against Lpuart_Uart_Ip_VS_0_PBcfg.h */
-#if (LPUART_UART_IP_CFG_VENDOR_ID != LPUART_UART_IP_PBCFG_VS_0_VENDOR_ID)
-    #error "Lpuart_Uart_Ip_Cfg.h and Lpuart_Uart_Ip_VS_0_PBcfg.h have different vendor ids"
-#endif
-#if ((LPUART_UART_IP_CFG_AR_RELEASE_MAJOR_VERSION    != LPUART_UART_IP_PBCFG_VS_0_AR_RELEASE_MAJOR_VERSION) || \
-     (LPUART_UART_IP_CFG_AR_RELEASE_MINOR_VERSION    != LPUART_UART_IP_PBCFG_VS_0_AR_RELEASE_MINOR_VERSION) || \
-     (LPUART_UART_IP_CFG_AR_RELEASE_REVISION_VERSION != LPUART_UART_IP_PBCFG_VS_0_AR_RELEASE_REVISION_VERSION))
-     #error "AUTOSAR Version Numbers of Lpuart_Uart_Ip_Cfg.h and Lpuart_Uart_Ip_VS_0_PBcfg.h are different"
-#endif
-#if ((LPUART_UART_IP_CFG_SW_MAJOR_VERSION != LPUART_UART_IP_PBCFG_VS_0_SW_MAJOR_VERSION) || \
-     (LPUART_UART_IP_CFG_SW_MINOR_VERSION != LPUART_UART_IP_PBCFG_VS_0_SW_MINOR_VERSION) || \
-     (LPUART_UART_IP_CFG_SW_PATCH_VERSION != LPUART_UART_IP_PBCFG_VS_0_SW_PATCH_VERSION))
-    #error "Software Version Numbers of Lpuart_Uart_Ip_Cfg.h and Lpuart_Uart_Ip_VS_0_PBcfg.h are different"
-#endif
-
-#ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
-    /* Check if current file and StandardTypes.h header file are of the same Autosar version */
-    #if ((LPUART_UART_IP_CFG_AR_RELEASE_MAJOR_VERSION != STD_AR_RELEASE_MAJOR_VERSION) || \
-            (LPUART_UART_IP_CFG_AR_RELEASE_MINOR_VERSION != STD_AR_RELEASE_MINOR_VERSION))
-        #error "AutoSar Version Numbers of Lpuart_Uart_Ip_Cfg.h and StandardTypes.h are different"
-    #endif
-#endif
-
-/*==================================================================================================
-*                                          CONSTANTS
-==================================================================================================*/
-
-/*==================================================================================================
- *                                     DEFINES AND MACROS
-==================================================================================================*/
-#define LPUART_UART_IP_CONFIG_EXT \
-    LPUART_UART_IP_CONFIG_VS_0_PB \
-
-
-
-/*==================================================================================================
-*                                            ENUMS
-==================================================================================================*/
-
-/*==================================================================================================
-*                               STRUCTURES AND OTHER TYPEDEFS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                GLOBAL VARIABLE DECLARATIONS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                    FUNCTION PROTOTYPES
-==================================================================================================*/
-
-
-
-#ifdef __cplusplus
-}
-#endif
-
-/** @} */
-
-#endif /* LPUART_UART_IP_CFG_H */
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : FLEXIO
+*   Dependencies         : 
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+
+#ifndef LPUART_UART_IP_CFG_H
+#define LPUART_UART_IP_CFG_H
+
+/**
+*   @file
+*   @defgroup lpuart_uart_ip Lpuart UART IPL
+*   @addtogroup  lpuart_uart_ip Lpuart UART IPL
+*   @{
+*/
+
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+/*==================================================================================================
+*                                        INCLUDE FILES
+* 1) system and project includes
+* 2) needed interfaces from external units
+* 3) internal and external interfaces from this unit
+* 4) user callback header files
+==================================================================================================*/
+#include "Lpuart_Uart_Ip_VS_0_PBcfg.h"
+
+#include "StandardTypes.h"
+/*==================================================================================================
+*                              SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+#define LPUART_UART_IP_CFG_VENDOR_ID                     43
+#define LPUART_UART_IP_CFG_AR_RELEASE_MAJOR_VERSION      4
+#define LPUART_UART_IP_CFG_AR_RELEASE_MINOR_VERSION      4
+#define LPUART_UART_IP_CFG_AR_RELEASE_REVISION_VERSION   0
+#define LPUART_UART_IP_CFG_SW_MAJOR_VERSION              1
+#define LPUART_UART_IP_CFG_SW_MINOR_VERSION              0
+#define LPUART_UART_IP_CFG_SW_PATCH_VERSION              0
+
+/*==================================================================================================
+*                                     FILE VERSION CHECKS
+==================================================================================================*/
+
+/* Checks against Lpuart_Uart_Ip_VS_0_PBcfg.h */
+#if (LPUART_UART_IP_CFG_VENDOR_ID != LPUART_UART_IP_PBCFG_VS_0_VENDOR_ID)
+    #error "Lpuart_Uart_Ip_Cfg.h and Lpuart_Uart_Ip_VS_0_PBcfg.h have different vendor ids"
+#endif
+#if ((LPUART_UART_IP_CFG_AR_RELEASE_MAJOR_VERSION    != LPUART_UART_IP_PBCFG_VS_0_AR_RELEASE_MAJOR_VERSION) || \
+     (LPUART_UART_IP_CFG_AR_RELEASE_MINOR_VERSION    != LPUART_UART_IP_PBCFG_VS_0_AR_RELEASE_MINOR_VERSION) || \
+     (LPUART_UART_IP_CFG_AR_RELEASE_REVISION_VERSION != LPUART_UART_IP_PBCFG_VS_0_AR_RELEASE_REVISION_VERSION))
+     #error "AUTOSAR Version Numbers of Lpuart_Uart_Ip_Cfg.h and Lpuart_Uart_Ip_VS_0_PBcfg.h are different"
+#endif
+#if ((LPUART_UART_IP_CFG_SW_MAJOR_VERSION != LPUART_UART_IP_PBCFG_VS_0_SW_MAJOR_VERSION) || \
+     (LPUART_UART_IP_CFG_SW_MINOR_VERSION != LPUART_UART_IP_PBCFG_VS_0_SW_MINOR_VERSION) || \
+     (LPUART_UART_IP_CFG_SW_PATCH_VERSION != LPUART_UART_IP_PBCFG_VS_0_SW_PATCH_VERSION))
+    #error "Software Version Numbers of Lpuart_Uart_Ip_Cfg.h and Lpuart_Uart_Ip_VS_0_PBcfg.h are different"
+#endif
+
+#ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
+    /* Check if current file and StandardTypes.h header file are of the same Autosar version */
+    #if ((LPUART_UART_IP_CFG_AR_RELEASE_MAJOR_VERSION != STD_AR_RELEASE_MAJOR_VERSION) || \
+            (LPUART_UART_IP_CFG_AR_RELEASE_MINOR_VERSION != STD_AR_RELEASE_MINOR_VERSION))
+        #error "AutoSar Version Numbers of Lpuart_Uart_Ip_Cfg.h and StandardTypes.h are different"
+    #endif
+#endif
+
+/*==================================================================================================
+*                                          CONSTANTS
+==================================================================================================*/
+
+/*==================================================================================================
+ *                                     DEFINES AND MACROS
+==================================================================================================*/
+#define LPUART_UART_IP_CONFIG_EXT \
+    LPUART_UART_IP_CONFIG_VS_0_PB \
+
+
+
+/*==================================================================================================
+*                                            ENUMS
+==================================================================================================*/
+
+/*==================================================================================================
+*                               STRUCTURES AND OTHER TYPEDEFS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                GLOBAL VARIABLE DECLARATIONS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                    FUNCTION PROTOTYPES
+==================================================================================================*/
+
+
+
+#ifdef __cplusplus
+}
+#endif
+
+/** @} */
+
+#endif /* LPUART_UART_IP_CFG_H */

+ 121 - 121
generate/include/Lpuart_Uart_Ip_Defines.h

@@ -1,121 +1,121 @@
-/*==================================================================================================
-*   Project              : RTD AUTOSAR 4.4
-*   Platform             : CORTEXM
-*   Peripheral           : FLEXIO
-*   Dependencies         : 
-*
-*   Autosar Version      : 4.4.0
-*   Autosar Revision     : ASR_REL_4_4_REV_0000
-*   Autosar Conf.Variant :
-*   SW Version           : 1.0.0
-*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
-*
-*   (c) Copyright 2020-2021 NXP Semiconductors
-*   All Rights Reserved.
-*
-*   NXP Confidential. This software is owned or controlled by NXP and may only be
-*   used strictly in accordance with the applicable license terms. By expressly
-*   accepting such terms or by downloading, installing, activating and/or otherwise
-*   using the software, you are agreeing that you have read, and that you agree to
-*   comply with and are bound by, such license terms. If you do not agree to be
-*   bound by the applicable license terms, then you may not retain, install,
-*   activate or otherwise use the software.
-==================================================================================================*/
-
-#ifndef LPUART_UART_IP_DEFINES_H
-#define LPUART_UART_IP_DEFINES_H
-
-/**
-*   @file
-*   @defgroup lpuart_uart_ip Lpuart UART IPL
-*   @addtogroup  lpuart_uart_ip Lpuart UART IPL
-*   @{
-*/
-
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-/*==================================================================================================
-*                                        INCLUDE FILES
-* 1) system and project includes
-* 2) needed interfaces from external units
-* 3) internal and external interfaces from this unit
-* 4) user callback header files
-==================================================================================================*/
-#include "Mcal.h"
-#include "S32K146_LPUART.h"
-/*==================================================================================================
-*                              SOURCE FILE VERSION INFORMATION
-==================================================================================================*/
-#define LPUART_UART_IP_DEFINES_VENDOR_ID                     43
-#define LPUART_UART_IP_DEFINES_AR_RELEASE_MAJOR_VERSION      4
-#define LPUART_UART_IP_DEFINES_AR_RELEASE_MINOR_VERSION      4
-#define LPUART_UART_IP_DEFINES_AR_RELEASE_REVISION_VERSION   0
-#define LPUART_UART_IP_DEFINES_SW_MAJOR_VERSION              1
-#define LPUART_UART_IP_DEFINES_SW_MINOR_VERSION              0
-#define LPUART_UART_IP_DEFINES_SW_PATCH_VERSION              0
-
-/*==================================================================================================
-*                                     FILE VERSION CHECKS
-==================================================================================================*/
-#ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
-    /* Checks against Mcal.h */
-    #if ((LPUART_UART_IP_DEFINES_AR_RELEASE_MAJOR_VERSION != MCAL_AR_RELEASE_MAJOR_VERSION) || \
-         (LPUART_UART_IP_DEFINES_AR_RELEASE_MINOR_VERSION != MCAL_AR_RELEASE_MINOR_VERSION))
-        #error "AUTOSAR Version Numbers of Lpuart_Uart_Ip_CfgDefines.h and Mcal.h are different"
-    #endif
-#endif
-
-/*==================================================================================================
-*                                          CONSTANTS
-==================================================================================================*/
-
-/*==================================================================================================
- *                                     DEFINES AND MACROS
-==================================================================================================*/
-
-/* @brief Development error detection */
-#define LPUART_UART_IP_DEV_ERROR_DETECT             (STD_ON)
-
-/* @brief Number of available hardware instances */
-#define LPUART_UART_IP_NUMBER_OF_INSTANCES          (3U) /*!< Number of available hardware instances */
-
-/* @brief Uart Osif source counter. This parameter is used to select between different OsIf counter implementation */
-#define LPUART_UART_IP_TIMEOUT_TYPE                 (OSIF_COUNTER_SYSTEM)
-
-/* @brief Number of loops before returning LPUART_STATUS_TIMEOUT.*/
-#define LPUART_UART_IP_TIMEOUT_VALUE_US             (500000U)
-
-/* @brief LPUART DMA support */
-#define LPUART_UART_IP_HAS_DMA_ENABLED              (STD_ON)
-
-/* @brief Support for User mode. If this parameter has been configured to TRUE, the Uart driver can be executed from both supervisor and user mode. */
-#define LPUART_UART_IP_ENABLE_USER_MODE_SUPPORT     (STD_OFF)
-
-/*==================================================================================================
-*                                            ENUMS
-==================================================================================================*/
-
-/*==================================================================================================
-*                               STRUCTURES AND OTHER TYPEDEFS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                GLOBAL VARIABLE DECLARATIONS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                    FUNCTION PROTOTYPES
-==================================================================================================*/
-
-
-
-#ifdef __cplusplus
-}
-#endif
-
-/** @} */
-
-#endif /* LPUART_UART_IP_DEFINES_H */
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : FLEXIO
+*   Dependencies         : 
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+
+#ifndef LPUART_UART_IP_DEFINES_H
+#define LPUART_UART_IP_DEFINES_H
+
+/**
+*   @file
+*   @defgroup lpuart_uart_ip Lpuart UART IPL
+*   @addtogroup  lpuart_uart_ip Lpuart UART IPL
+*   @{
+*/
+
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+/*==================================================================================================
+*                                        INCLUDE FILES
+* 1) system and project includes
+* 2) needed interfaces from external units
+* 3) internal and external interfaces from this unit
+* 4) user callback header files
+==================================================================================================*/
+#include "Mcal.h"
+#include "S32K146_LPUART.h"
+/*==================================================================================================
+*                              SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+#define LPUART_UART_IP_DEFINES_VENDOR_ID                     43
+#define LPUART_UART_IP_DEFINES_AR_RELEASE_MAJOR_VERSION      4
+#define LPUART_UART_IP_DEFINES_AR_RELEASE_MINOR_VERSION      4
+#define LPUART_UART_IP_DEFINES_AR_RELEASE_REVISION_VERSION   0
+#define LPUART_UART_IP_DEFINES_SW_MAJOR_VERSION              1
+#define LPUART_UART_IP_DEFINES_SW_MINOR_VERSION              0
+#define LPUART_UART_IP_DEFINES_SW_PATCH_VERSION              0
+
+/*==================================================================================================
+*                                     FILE VERSION CHECKS
+==================================================================================================*/
+#ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
+    /* Checks against Mcal.h */
+    #if ((LPUART_UART_IP_DEFINES_AR_RELEASE_MAJOR_VERSION != MCAL_AR_RELEASE_MAJOR_VERSION) || \
+         (LPUART_UART_IP_DEFINES_AR_RELEASE_MINOR_VERSION != MCAL_AR_RELEASE_MINOR_VERSION))
+        #error "AUTOSAR Version Numbers of Lpuart_Uart_Ip_CfgDefines.h and Mcal.h are different"
+    #endif
+#endif
+
+/*==================================================================================================
+*                                          CONSTANTS
+==================================================================================================*/
+
+/*==================================================================================================
+ *                                     DEFINES AND MACROS
+==================================================================================================*/
+
+/* @brief Development error detection */
+#define LPUART_UART_IP_DEV_ERROR_DETECT             (STD_ON)
+
+/* @brief Number of available hardware instances */
+#define LPUART_UART_IP_NUMBER_OF_INSTANCES          (3U) /*!< Number of available hardware instances */
+
+/* @brief Uart Osif source counter. This parameter is used to select between different OsIf counter implementation */
+#define LPUART_UART_IP_TIMEOUT_TYPE                 (OSIF_COUNTER_SYSTEM)
+
+/* @brief Number of loops before returning LPUART_STATUS_TIMEOUT.*/
+#define LPUART_UART_IP_TIMEOUT_VALUE_US             (500000U)
+
+/* @brief LPUART DMA support */
+#define LPUART_UART_IP_HAS_DMA_ENABLED              (STD_ON)
+
+/* @brief Support for User mode. If this parameter has been configured to TRUE, the Uart driver can be executed from both supervisor and user mode. */
+#define LPUART_UART_IP_ENABLE_USER_MODE_SUPPORT     (STD_OFF)
+
+/*==================================================================================================
+*                                            ENUMS
+==================================================================================================*/
+
+/*==================================================================================================
+*                               STRUCTURES AND OTHER TYPEDEFS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                GLOBAL VARIABLE DECLARATIONS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                    FUNCTION PROTOTYPES
+==================================================================================================*/
+
+
+
+#ifdef __cplusplus
+}
+#endif
+
+/** @} */
+
+#endif /* LPUART_UART_IP_DEFINES_H */

+ 171 - 171
generate/include/Lpuart_Uart_Ip_VS_0_PBcfg.h

@@ -1,171 +1,171 @@
-/*==================================================================================================
-*   Project              : RTD AUTOSAR 4.4
-*   Platform             : CORTEXM
-*   Peripheral           : FLEXIO
-*   Dependencies         : 
-*
-*   Autosar Version      : 4.4.0
-*   Autosar Revision     : ASR_REL_4_4_REV_0000
-*   Autosar Conf.Variant :
-*   SW Version           : 1.0.0
-*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
-*
-*   (c) Copyright 2020-2021 NXP Semiconductors
-*   All Rights Reserved.
-*
-*   NXP Confidential. This software is owned or controlled by NXP and may only be
-*   used strictly in accordance with the applicable license terms. By expressly
-*   accepting such terms or by downloading, installing, activating and/or otherwise
-*   using the software, you are agreeing that you have read, and that you agree to
-*   comply with and are bound by, such license terms. If you do not agree to be
-*   bound by the applicable license terms, then you may not retain, install,
-*   activate or otherwise use the software.
-==================================================================================================*/
-
-#ifndef LPUART_UART_IP_PBCFG_VS_0_H
-#define LPUART_UART_IP_PBCFG_VS_0_H
-
-/**
-*   @file
-*   @defgroup lpuart_uart_ip Lpuart UART IPL
-*   @addtogroup  lpuart_uart_ip Lpuart UART IPL
-*   @{
-*/
-
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-/*==================================================================================================
-                                         INCLUDE FILES
- 1) system and project includes
- 2) needed interfaces from external units
- 3) internal and external interfaces from this unit
-==================================================================================================*/
-
-#include "Lpuart_Uart_Ip_Types.h"
-
-/*==================================================================================================
-                                SOURCE FILE VERSION INFORMATION
-==================================================================================================*/
-
-#define LPUART_UART_IP_PBCFG_VS_0_VENDOR_ID                     43
-#define LPUART_UART_IP_PBCFG_VS_0_AR_RELEASE_MAJOR_VERSION      4
-#define LPUART_UART_IP_PBCFG_VS_0_AR_RELEASE_MINOR_VERSION      4
-#define LPUART_UART_IP_PBCFG_VS_0_AR_RELEASE_REVISION_VERSION   0
-#define LPUART_UART_IP_PBCFG_VS_0_SW_MAJOR_VERSION              1
-#define LPUART_UART_IP_PBCFG_VS_0_SW_MINOR_VERSION              0
-#define LPUART_UART_IP_PBCFG_VS_0_SW_PATCH_VERSION              0
-
-/*==================================================================================================
-                                      FILE VERSION CHECKS
-==================================================================================================*/
-/* Checks against Lpuart_Uart_Ip_Types.h */
-#if (LPUART_UART_IP_PBCFG_VS_0_VENDOR_ID != LPUART_UART_IP_TYPES_VENDOR_ID)
-    #error "Lpuart_Uart_Ip_PBCfg_VS_0.h and Lpuart_Uart_Ip_Types.h have different vendor ids"
-#endif
-#if ((LPUART_UART_IP_PBCFG_VS_0_AR_RELEASE_MAJOR_VERSION   != LPUART_UART_IP_TYPES_AR_RELEASE_MAJOR_VERSION) || \
-     (LPUART_UART_IP_PBCFG_VS_0_AR_RELEASE_MINOR_VERSION   != LPUART_UART_IP_TYPES_AR_RELEASE_MINOR_VERSION) || \
-     (LPUART_UART_IP_PBCFG_VS_0_AR_RELEASE_REVISION_VERSION!= LPUART_UART_IP_TYPES_AR_RELEASE_REVISION_VERSION))
-    #error "AUTOSAR Version Numbers of Lpuart_Uart_Ip_PBCfg_VS_0.h and Lpuart_Uart_Ip_Types.h are different"
-#endif
-#if ((LPUART_UART_IP_PBCFG_VS_0_SW_MAJOR_VERSION!= LPUART_UART_IP_TYPES_SW_MAJOR_VERSION) || \
-     (LPUART_UART_IP_PBCFG_VS_0_SW_MINOR_VERSION!= LPUART_UART_IP_TYPES_SW_MINOR_VERSION) || \
-     (LPUART_UART_IP_PBCFG_VS_0_SW_PATCH_VERSION!= LPUART_UART_IP_TYPES_SW_PATCH_VERSION))
-    #error "Software Version Numbers of Lpuart_Uart_Ip_PBCfg_VS_0.h and Lpuart_Uart_Ip_Types.h are different"
-#endif
-
-
-/*==================================================================================================
-                          LOCAL TYPEDEFS (STRUCTURES, UNIONS, ENUMS)
-==================================================================================================*/
-
-/*==================================================================================================
-                                        GLOBAL MACROS
-==================================================================================================*/
-/**
-* @brief          Link Uart channels symbolic names with Uart hardware channel IDs.
-* @details        Link Uart channels symbolic names with Uart hardware channel IDs.
-*
-* @api
-*/
-
-
-                
-#ifndef LPUART_UART_IP_INSTANCE_USING_0
-    #define LPUART_UART_IP_INSTANCE_USING_0    0U
-#endif
-
-                        
-#ifndef LPUART_UART_IP_INSTANCE_USING_1
-    #define LPUART_UART_IP_INSTANCE_USING_1    1U
-#endif
-
-                        
-#ifndef LPUART_UART_IP_INSTANCE_USING_2
-    #define LPUART_UART_IP_INSTANCE_USING_2    2U
-#endif
-
-        
-
-/*==================================================================================================
-                                       LOCAL CONSTANTS
-==================================================================================================*/
-
-/*==================================================================================================
-                                       LOCAL VARIABLES
-==================================================================================================*/
-
-/*==================================================================================================
-                                       GLOBAL CONSTANTS
-==================================================================================================*/
-
-/*==================================================================================================
-                                       GLOBAL VARIABLES
-==================================================================================================*/
-
-
-
-
-/**
-* @brief    Declare callback functions if any
-*/
-
-#define UART_START_SEC_CODE
-#include "Uart_MemMap.h"
-
-extern void Uart_Ipw_LpuartCallback(const uint8 HwInstance, const Lpuart_Uart_Ip_EventType Event, void *UserData);
-
-#define UART_STOP_SEC_CODE
-#include "Uart_MemMap.h"
-
-
-
-#define LPUART_UART_IP_CONFIG_VS_0_PB \
-extern const Lpuart_Uart_Ip_UserConfigType Lpuart_Uart_Ip_xHwConfigPB_0_VS_0;\
-extern const Lpuart_Uart_Ip_UserConfigType Lpuart_Uart_Ip_xHwConfigPB_1_VS_0;\
-extern const Lpuart_Uart_Ip_UserConfigType Lpuart_Uart_Ip_xHwConfigPB_2_VS_0;\
-
-
-
-/*==================================================================================================
-                                   LOCAL FUNCTION PROTOTYPES
-==================================================================================================*/
-
-/*==================================================================================================
-                                       LOCAL FUNCTIONS
-==================================================================================================*/
-
-/*==================================================================================================
-                                       GLOBAL FUNCTIONS
-==================================================================================================*/
-
-
-#ifdef __cplusplus
-}
-#endif
-
-/** @} */
-
-#endif /* LPUART_UART_IP_PBCFG_VS_0_H */
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : FLEXIO
+*   Dependencies         : 
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+
+#ifndef LPUART_UART_IP_PBCFG_VS_0_H
+#define LPUART_UART_IP_PBCFG_VS_0_H
+
+/**
+*   @file
+*   @defgroup lpuart_uart_ip Lpuart UART IPL
+*   @addtogroup  lpuart_uart_ip Lpuart UART IPL
+*   @{
+*/
+
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+/*==================================================================================================
+                                         INCLUDE FILES
+ 1) system and project includes
+ 2) needed interfaces from external units
+ 3) internal and external interfaces from this unit
+==================================================================================================*/
+
+#include "Lpuart_Uart_Ip_Types.h"
+
+/*==================================================================================================
+                                SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+
+#define LPUART_UART_IP_PBCFG_VS_0_VENDOR_ID                     43
+#define LPUART_UART_IP_PBCFG_VS_0_AR_RELEASE_MAJOR_VERSION      4
+#define LPUART_UART_IP_PBCFG_VS_0_AR_RELEASE_MINOR_VERSION      4
+#define LPUART_UART_IP_PBCFG_VS_0_AR_RELEASE_REVISION_VERSION   0
+#define LPUART_UART_IP_PBCFG_VS_0_SW_MAJOR_VERSION              1
+#define LPUART_UART_IP_PBCFG_VS_0_SW_MINOR_VERSION              0
+#define LPUART_UART_IP_PBCFG_VS_0_SW_PATCH_VERSION              0
+
+/*==================================================================================================
+                                      FILE VERSION CHECKS
+==================================================================================================*/
+/* Checks against Lpuart_Uart_Ip_Types.h */
+#if (LPUART_UART_IP_PBCFG_VS_0_VENDOR_ID != LPUART_UART_IP_TYPES_VENDOR_ID)
+    #error "Lpuart_Uart_Ip_PBCfg_VS_0.h and Lpuart_Uart_Ip_Types.h have different vendor ids"
+#endif
+#if ((LPUART_UART_IP_PBCFG_VS_0_AR_RELEASE_MAJOR_VERSION   != LPUART_UART_IP_TYPES_AR_RELEASE_MAJOR_VERSION) || \
+     (LPUART_UART_IP_PBCFG_VS_0_AR_RELEASE_MINOR_VERSION   != LPUART_UART_IP_TYPES_AR_RELEASE_MINOR_VERSION) || \
+     (LPUART_UART_IP_PBCFG_VS_0_AR_RELEASE_REVISION_VERSION!= LPUART_UART_IP_TYPES_AR_RELEASE_REVISION_VERSION))
+    #error "AUTOSAR Version Numbers of Lpuart_Uart_Ip_PBCfg_VS_0.h and Lpuart_Uart_Ip_Types.h are different"
+#endif
+#if ((LPUART_UART_IP_PBCFG_VS_0_SW_MAJOR_VERSION!= LPUART_UART_IP_TYPES_SW_MAJOR_VERSION) || \
+     (LPUART_UART_IP_PBCFG_VS_0_SW_MINOR_VERSION!= LPUART_UART_IP_TYPES_SW_MINOR_VERSION) || \
+     (LPUART_UART_IP_PBCFG_VS_0_SW_PATCH_VERSION!= LPUART_UART_IP_TYPES_SW_PATCH_VERSION))
+    #error "Software Version Numbers of Lpuart_Uart_Ip_PBCfg_VS_0.h and Lpuart_Uart_Ip_Types.h are different"
+#endif
+
+
+/*==================================================================================================
+                          LOCAL TYPEDEFS (STRUCTURES, UNIONS, ENUMS)
+==================================================================================================*/
+
+/*==================================================================================================
+                                        GLOBAL MACROS
+==================================================================================================*/
+/**
+* @brief          Link Uart channels symbolic names with Uart hardware channel IDs.
+* @details        Link Uart channels symbolic names with Uart hardware channel IDs.
+*
+* @api
+*/
+
+
+                
+#ifndef LPUART_UART_IP_INSTANCE_USING_0
+    #define LPUART_UART_IP_INSTANCE_USING_0    0U
+#endif
+
+                        
+#ifndef LPUART_UART_IP_INSTANCE_USING_1
+    #define LPUART_UART_IP_INSTANCE_USING_1    1U
+#endif
+
+                        
+#ifndef LPUART_UART_IP_INSTANCE_USING_2
+    #define LPUART_UART_IP_INSTANCE_USING_2    2U
+#endif
+
+        
+
+/*==================================================================================================
+                                       LOCAL CONSTANTS
+==================================================================================================*/
+
+/*==================================================================================================
+                                       LOCAL VARIABLES
+==================================================================================================*/
+
+/*==================================================================================================
+                                       GLOBAL CONSTANTS
+==================================================================================================*/
+
+/*==================================================================================================
+                                       GLOBAL VARIABLES
+==================================================================================================*/
+
+
+
+
+/**
+* @brief    Declare callback functions if any
+*/
+
+#define UART_START_SEC_CODE
+#include "Uart_MemMap.h"
+
+extern void Uart_Ipw_LpuartCallback(const uint8 HwInstance, const Lpuart_Uart_Ip_EventType Event, void *UserData);
+
+#define UART_STOP_SEC_CODE
+#include "Uart_MemMap.h"
+
+
+
+#define LPUART_UART_IP_CONFIG_VS_0_PB \
+extern const Lpuart_Uart_Ip_UserConfigType Lpuart_Uart_Ip_xHwConfigPB_0_VS_0;\
+extern const Lpuart_Uart_Ip_UserConfigType Lpuart_Uart_Ip_xHwConfigPB_1_VS_0;\
+extern const Lpuart_Uart_Ip_UserConfigType Lpuart_Uart_Ip_xHwConfigPB_2_VS_0;\
+
+
+
+/*==================================================================================================
+                                   LOCAL FUNCTION PROTOTYPES
+==================================================================================================*/
+
+/*==================================================================================================
+                                       LOCAL FUNCTIONS
+==================================================================================================*/
+
+/*==================================================================================================
+                                       GLOBAL FUNCTIONS
+==================================================================================================*/
+
+
+#ifdef __cplusplus
+}
+#endif
+
+/** @} */
+
+#endif /* LPUART_UART_IP_PBCFG_VS_0_H */

+ 826 - 836
generate/include/Mcu_Cfg.h

@@ -1,836 +1,826 @@
-/*==================================================================================================
-*   Project              : RTD AUTOSAR 4.4
-*   Platform             : CORTEXM
-*   Peripheral           : 
-*   Dependencies         : none
-*
-*   Autosar Version      : 4.4.0
-*   Autosar Revision     : ASR_REL_4_4_REV_0000
-*   Autosar Conf.Variant :
-*   SW Version           : 1.0.0
-*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
-*
-*   (c) Copyright 2020-2021 NXP Semiconductors
-*   All Rights Reserved.
-*
-*   NXP Confidential. This software is owned or controlled by NXP and may only be
-*   used strictly in accordance with the applicable license terms. By expressly
-*   accepting such terms or by downloading, installing, activating and/or otherwise
-*   using the software, you are agreeing that you have read, and that you agree to
-*   comply with and are bound by, such license terms. If you do not agree to be
-*   bound by the applicable license terms, then you may not retain, install,
-*   activate or otherwise use the software.
-==================================================================================================*/
-/**
-*   @file       Mcu_Cfg.h
-*   @implements Mcu_Cfg.h_Artifact
-*   @version    1.0.0
-*
-*   @brief      AUTOSAR Mcu - Configuration file for the driver.
-*   @details    Precompile parameters and extern configuration.
-*
-*   @addtogroup MCU
-*   @{
-*/
-
-
-#ifndef MCU_CFG_H
-#define MCU_CFG_H
-
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-
-/*==================================================================================================
-                                         INCLUDE FILES
- 1) system and project includes
- 2) needed interfaces from external units
- 3) internal and external interfaces from this unit
-==================================================================================================*/
-
-#include "Mcal.h"
-#include "Clock_Ip_Cfg.h"
-#include "Power_Ip_Cfg.h"
-#include "Ram_Ip_Cfg.h"
-#include "Mcu_VS_0_PBcfg.h"
-
-/*==================================================================================================
-                               SOURCE FILE VERSION INFORMATION
-==================================================================================================*/
-
-#define MCU_CFG_VENDOR_ID                       43
-#define MCU_CFG_AR_RELEASE_MAJOR_VERSION        4
-#define MCU_CFG_AR_RELEASE_MINOR_VERSION        4
-#define MCU_CFG_AR_RELEASE_REVISION_VERSION     0
-#define MCU_CFG_SW_MAJOR_VERSION                1
-#define MCU_CFG_SW_MINOR_VERSION                0
-#define MCU_CFG_SW_PATCH_VERSION                0
-
-/*==================================================================================================
-*                                     FILE VERSION CHECKS
-==================================================================================================*/
-#ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
-/* Check if header file and Mcal header file are of the same Autosar version */
-#if ((MCU_CFG_AR_RELEASE_MAJOR_VERSION != MCAL_AR_RELEASE_MAJOR_VERSION) || \
-     (MCU_CFG_AR_RELEASE_MINOR_VERSION != MCAL_AR_RELEASE_MINOR_VERSION))
-    #error "AutoSar Version Numbers of Mcu_Cfg.h and Mcal.h are different"
-#endif
-#endif
-
-/* Check if header file and Clock_Ip_Cfg.h file are of the same vendor */
-#if (MCU_CFG_VENDOR_ID != CLOCK_IP_CFG_VENDOR_ID)
-    #error "Mcu_Cfg.h and Clock_Ip_Cfg.h have different vendor ids"
-#endif
-
-/* Check if header file and Clock_Ip_Cfg.h file are of the same Autosar version */
-#if ((MCU_CFG_AR_RELEASE_MAJOR_VERSION != CLOCK_IP_CFG_AR_RELEASE_MAJOR_VERSION) || \
-     (MCU_CFG_AR_RELEASE_MINOR_VERSION != CLOCK_IP_CFG_AR_RELEASE_MINOR_VERSION) || \
-     (MCU_CFG_AR_RELEASE_REVISION_VERSION != CLOCK_IP_CFG_AR_RELEASE_REVISION_VERSION) \
-    )
-    #error "AutoSar Version Numbers of Mcu_Cfg.h and Clock_Ip_Cfg.h are different"
-#endif
-
-/* Check if header file and Clock_Ip_Cfg.h file are of the same Software version */
-#if ((MCU_CFG_SW_MAJOR_VERSION != CLOCK_IP_CFG_SW_MAJOR_VERSION) || \
-     (MCU_CFG_SW_MINOR_VERSION != CLOCK_IP_CFG_SW_MINOR_VERSION) || \
-     (MCU_CFG_SW_PATCH_VERSION != CLOCK_IP_CFG_SW_PATCH_VERSION) \
-    )
-    #error "Software Version Numbers of Mcu_Cfg.h and Clock_Ip_Cfg.h are different"
-#endif
-
-/* Check if header file and Power_Ip_Cfg.h file are of the same vendor */
-#if (MCU_CFG_VENDOR_ID != POWER_IP_CFG_VENDOR_ID)
-    #error "Mcu_Cfg.h and Power_Ip_Cfg.h have different vendor ids"
-#endif
-
-/* Check if header file and Power_Ip_Cfg.h file are of the same Autosar version */
-#if ((MCU_CFG_AR_RELEASE_MAJOR_VERSION != POWER_IP_CFG_AR_RELEASE_MAJOR_VERSION) || \
-     (MCU_CFG_AR_RELEASE_MINOR_VERSION != POWER_IP_CFG_AR_RELEASE_MINOR_VERSION) || \
-     (MCU_CFG_AR_RELEASE_REVISION_VERSION != POWER_IP_CFG_AR_RELEASE_REVISION_VERSION) \
-    )
-    #error "AutoSar Version Numbers of Mcu_Cfg.h and Power_Ip_Cfg.h are different"
-#endif
-
-/* Check if header file and Power_Ip_Cfg.h file are of the same Software version */
-#if ((MCU_CFG_SW_MAJOR_VERSION != POWER_IP_CFG_SW_MAJOR_VERSION) || \
-     (MCU_CFG_SW_MINOR_VERSION != POWER_IP_CFG_SW_MINOR_VERSION) || \
-     (MCU_CFG_SW_PATCH_VERSION != POWER_IP_CFG_SW_PATCH_VERSION) \
-    )
-    #error "Software Version Numbers of Mcu_Cfg.h and Power_Ip_Cfg.h are different"
-#endif
-
-/* Check if header file and Ram_Ip_Cfg.h file are of the same vendor */
-#if (MCU_CFG_VENDOR_ID != RAM_IP_CFG_VENDOR_ID)
-    #error "Mcu_Cfg.h and Ram_Ip_Cfg.h have different vendor ids"
-#endif
-
-/* Check if header file and Ram_Ip_Cfg.h file are of the same Autosar version */
-#if ((MCU_CFG_AR_RELEASE_MAJOR_VERSION != RAM_IP_CFG_AR_RELEASE_MAJOR_VERSION) || \
-     (MCU_CFG_AR_RELEASE_MINOR_VERSION != RAM_IP_CFG_AR_RELEASE_MINOR_VERSION) || \
-     (MCU_CFG_AR_RELEASE_REVISION_VERSION != RAM_IP_CFG_AR_RELEASE_REVISION_VERSION) \
-    )
-    #error "AutoSar Version Numbers of Mcu_Cfg.h and Ram_Ip_Cfg.h are different"
-#endif
-
-/* Check if header file and Ram_Ip_Cfg.h file are of the same Software version */
-#if ((MCU_CFG_SW_MAJOR_VERSION != RAM_IP_CFG_SW_MAJOR_VERSION) || \
-     (MCU_CFG_SW_MINOR_VERSION != RAM_IP_CFG_SW_MINOR_VERSION) || \
-     (MCU_CFG_SW_PATCH_VERSION != RAM_IP_CFG_SW_PATCH_VERSION) \
-    )
-    #error "Software Version Numbers of Mcu_Cfg.h and Ram_Ip_Cfg.h are different"
-#endif
-
-/* Check if header file and Mcu_VS_0_PBcfg.h file are of the same vendor */
-#if (MCU_CFG_VENDOR_ID != MCU_VS_0_PBCFG_VENDOR_ID)
-    #error "Mcu_Cfg.h and Mcu_VS_0_PBcfg.h have different vendor ids"
-#endif
-
-/* Check if header file and Mcu_VS_0_PBcfg.h file are of the same Autosar version */
-#if ((MCU_CFG_AR_RELEASE_MAJOR_VERSION != MCU_VS_0_PBCFG_AR_RELEASE_MAJOR_VERSION) || \
-     (MCU_CFG_AR_RELEASE_MINOR_VERSION != MCU_VS_0_PBCFG_AR_RELEASE_MINOR_VERSION) || \
-     (MCU_CFG_AR_RELEASE_REVISION_VERSION != MCU_VS_0_PBCFG_AR_RELEASE_REVISION_VERSION) \
-    )
-    #error "AutoSar Version Numbers of Mcu_Cfg.h and Mcu_VS_0_PBcfg.h are different"
-#endif
-
-/* Check if header file and Mcu_VS_0_PBcfg.h file are of the same Software version */
-#if ((MCU_CFG_SW_MAJOR_VERSION != MCU_VS_0_PBCFG_SW_MAJOR_VERSION) || \
-     (MCU_CFG_SW_MINOR_VERSION != MCU_VS_0_PBCFG_SW_MINOR_VERSION) || \
-     (MCU_CFG_SW_PATCH_VERSION != MCU_VS_0_PBCFG_SW_PATCH_VERSION) \
-    )
-    #error "Software Version Numbers of Mcu_Cfg.h and Mcu_VS_0_PBcfg.h are different"
-#endif
-/*==================================================================================================
-                                           DEFINES AND MACROS
-==================================================================================================*/
-
-
-
-/**
-* @brief      Specifies the InstanceId of this module instance.
-*/
-
-#define MCU_INSTANCE_ID                 ((uint8)0x0U)
-
-/**
-@{
-* @brief            Service Ids for MCU APIs.
-*/
-
-
-#define MCU_INIT_ID                     ((uint8)0x00U)
-
-#define MCU_INITRAMSECTION_ID           ((uint8)0x01U)
-
-#define MCU_INITCLOCK_ID                ((uint8)0x02U)
-
-#define MCU_DISTRIBUTEPLLCLOCK_ID       ((uint8)0x03U)
-
-#define MCU_GETPLLSTATUS_ID             ((uint8)0x04U)
-
-#define MCU_GETRESETREASON_ID           ((uint8)0x05U)
-
-#define MCU_GETRESETRAWVALUE_ID         ((uint8)0x06U)
-
-#define MCU_PERFORMRESET_ID             ((uint8)0x07U)
-
-#define MCU_SETMODE_ID                  ((uint8)0x08U)
-
-#define MCU_GETVERSIONINFO_ID           ((uint8)0x09U)
-
-#define MCU_GETRAMSTATE_ID              ((uint8)0x0AU)
-
-/**@}*/
-
-
-/**
-@{
-* @brief            Service Ids for NonASR MCU APIs.
-*/
-
-
-#define MCU_GETPOWERDOMAIN_ID           ((uint8)0x0BU)
-
-#define MCU_GETPERIPHERALSTATE_ID       ((uint8)0x0CU)
-
-#define MCU_GETSYSTEMSTATE_ID           ((uint8)0x0DU)
-
-#define MCU_GETPOWERMODESTATE_ID        ((uint8)0x0EU)
-
-#define MCU_GETMEMCONFIG_ID             ((uint8)0x13U)
-
-#define MCU_GETMIDRSTRUCTURE_ID         ((uint8)0x14U)
-
-#define MCU_SSCMGETSTATUS_ID            ((uint8)0x15U)
-
-#define MCU_SSCMGETUOPT_ID              ((uint8)0x16U)
-
-#define MCU_DISABLECMU_ID               ((uint8)0x17U)
-
-#define MCU_EMIOSCONFIGUREGPREN_ID      ((uint8)0x18U)
-
-#define MCU_GETCLOCKFREQUENCY_ID        ((uint8)0x19U)
-
-#define MCU_SLEEPONEXIT_ID              ((uint8)0x1AU)
-
-#define MCU_SRAMRETENCONFIG_ID          ((uint8)0x1BU)
-
-
-/**@}*/
-
-
-/**
-* @brief            Pre-processor switch for enabling the default error detection and reporting to the DET.
-*                   The detection of default errors is configurable (ON / OFF) at pre-compile time.
-*/
-#define MCU_DEV_ERROR_DETECT   (STD_OFF)
-
-
-
-/**
-* @brief            If this parameter is set to TRUE, the Power Management Controller (PMC) initialization has to be disabled from the MCU driver.
-*/
-#define MCU_DISABLE_PMC_INIT      (STD_OFF)
-
-/**
-* @brief            If this parameter is set to TRUE, the Reset Control Module (RMC) initialization has to be disabled from the MCU driver.
-*/
-#define MCU_DISABLE_RCM_INIT   (STD_OFF)
-
-/**
-* @brief            If this parameter is set to TRUE, the System Mode Controller (SMC) initialization has to be disabled from the MCU driver.
-*/
-#define MCU_DISABLE_SMC_INIT   (STD_OFF)
-/**
-* @brief            Pre-processor switch to enable/disable the API to read out the modules version information.
-*/
-#define MCU_VERSION_INFO_API   (STD_OFF)
-
-
-/**
-* @brief            Pre-processor switch to enable/disable the API Mcu_GetRamState.
-*/
-#define MCU_GET_RAM_STATE_API           (STD_OFF)
-
-
-/**
-* @brief            If this parameter is set to FALSE, the clock initialization has to be disabled from the MCU driver.
-*/
-#define MCU_INIT_CLOCK   (STD_ON)
-
-
-/**
-* @brief            This parameter shall be set True, if the H/W does not have a PLL or the PLL circuitry is enabled after the power on without S/W intervention.
-*/
-#define MCU_NO_PLL   (STD_OFF)
-
-/**
-* @brief            define for interrupt CMU, PMC, SCG peripheral
-*/
-#define MCU_CMU_PMC_SCG_INTERRUPT  (STD_OFF)
-
-#if (MCU_PERFORM_RESET_API == STD_ON)
-/**
-* @brief            The user callout reset is/isn't available (STD_ON/STD_OFF) - called by MCU right before Mcu_PerformReset().
-*/
-#define MCU_RESET_CALLOUT_USED   (STD_OFF)
-#endif
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-/**
-* @brief            ISR Mcu_CmuClockFail_ISR is/isn't available
-*/
-#define MCU_CMU_ERROR_ISR_USED                  (STD_OFF)
-
-/**
-* @brief            Enable the usage of Non-Autosar API Mcu_GetPeripheral_State() for getting infos about peripheral state from MC_ME module.
-*/
-#define MCU_GET_PERIPH_STATE_API   (STD_OFF)
-
-/**
-* @brief            Enable the usage of Non-Autosar API Mcu_GetPowerMode_State() for getting infos system platform configuration.
-*/
-#define MCU_POWERMODE_STATE_API   (STD_OFF)
-
-/**
-* @brief            Enable the usage of Non-Autosar API Mcu_GetPowerDomain_Status. Get PMU state: operable or not.
-*/
-#define MCU_GET_POWER_DOMAIN_API   (STD_OFF)
-
-/**
-* @brief            Enable the usage of Non-Autosar API Mcu_GetSystem_State() for getting system platform configuration information. Get (SSCM_STATUS | SSCM_MEMCONFIG).
-*/
-#define MCU_GET_SYSTEM_STATE_API  (STD_OFF)
-
-/**
-* @brief            Enable the usage of Non-Autosar API Mcu_SscmGetMemConfig(). Get SSCM_MEMCONFIG.
-*/
-#define MCU_GET_MEM_CONFIG_API    (STD_OFF)
-
-/**
-* @brief            Enable the usage of Non-Autosar API Mcu_SscmGetStatus(). Get SSCM_STATUS.
-*/
-#define MCU_SSCM_GET_STATUS_API   (STD_OFF)
-
-/**
-* @brief            Enable the usage of Non-Autosar API Mcu_SscmGetUopt(). Get SSCM_UOPT.
-*/
-#define MCU_SSCM_GET_UOPT_API     (STD_OFF)
-
-/**
-* @brief            Enable the usage of Non-Autosar API  Mcu_GetMidrStructure(). Returns .
-*/
-#define MCU_GET_MIDR_API          (STD_OFF)
-
-/**
-* @brief            Enable the usage of Non-Autosar API  Mcu_EmiosConfigureGpren().
-*/
-#define MCU_EMIOS_CONFIGURE_GPREN_API          (STD_OFF)
-
-/**
-* @brief            Enable the usage of Non-Autosar API  Mcu_Disable_CMU().
-*/
-#define MCU_DISABLE_CMU_API     (STD_OFF)
-
-/**
-* @brief            Enable the usage of Non-Autosar API  Mcu_GetClockFrequency().
-*/
-#define MCU_GET_CLOCK_FREQUENCY_API     (STD_OFF)
-
-/**
-* @brief            Enable/Disable the API for reporting the Dem Error.
-*/
-#define MCU_DISABLE_DEM_REPORT_ERROR_STATUS     (STD_ON)
-
-
-
-/**
-* @brief            Enable the usage of Non-Autosar API  Mcu_SRAMRetentionConfig().
-*/
-#define MCU_SRAM_RETEN_CONFIG_API    (STD_OFF)
-
-/**
-* @brief           Enable/Disable the Ram Notification.
-*/
-#define MCU_DISABLE_RAM_CONFIG         (STD_ON)
-
-/**
-* @brief           Enable/Disable the Flash Notification.
-*/
-#define MCU_DISABLE_FLASH_CONFIG       (STD_ON)
-
-/**
-* @brief            ISR Mcu_VoltageError_ISR is/isn't available (STD_ON/STD_OFF)
-*/
-#if (MCU_CMU_PMC_SCG_INTERRUPT == STD_ON)
-#define MCU_VOLTAGE_ERROR_ISR_USED   (STD_OFF)
-#endif
-/**
-* @brief            Maximum number of MCU Clock configurations.
-*/
-#define MCU_MAX_CLKCONFIGS   ((uint32)1U)
-
-
-/**
-* @brief            Maximum number of MCU Mode configurations.
-*/
-#define MCU_MAX_MODECONFIGS   ((uint32)3U)
-
-
-/**
-* @brief            Maximum number of MCU Ram configurations.
-*/
-#define MCU_MAX_RAMCONFIGS   ((uint32)0U)
-#define MCU_MAX_NORAMCONFIGS
-
-
-/**
-* @brief            Pre-compile Support.
-*/
-#define MCU_PRECOMPILE_SUPPORT   (STD_ON)
-
-#ifdef MCU_GET_MIDR_API
-  #if (MCU_GET_MIDR_API == STD_ON)
-/**
-* @brief            Number of total available SIUL2 (SIUL2 + SIUL2_AE) units.
-*/
-
-#define MCU_SIUL2_TOTAL_UNITS                    ((uint8)0U)
-  #endif
-#endif
-
-
-
-/**
-* @brief            Number of Clock Muxes per CGM module
-*/
-
-
-/**
-* @brief            Index of CGMs module
-*/
-
-
-#ifdef MCU_ERROR_ISR_NOTIFICATION
-/* This is used to clear CMU flags from the RGM interrupt */
-#define MCU_CMU_CLEAR_CLOCK_IRQ_FLAG            (MCU_CMU_ERROR_ISR_USED)
-#endif
-
-#if !(defined (CLOCK_IP_S32K1))
-/**
-* @brief        Support for User mode.
-*               If this parameter has been configured to 'TRUE' the Mcu driver can be executed from both supervisor and user mode.
-*/
-#define MCU_ENABLE_USER_MODE_SUPPORT  (STD_OFF)
-
-/** Check the driver user mode is enabled only when the MCAL_ENABLE_USER_MODE_SUPPORT is enabled */
-#ifndef MCAL_ENABLE_USER_MODE_SUPPORT
-  #if (MCU_ENABLE_USER_MODE_SUPPORT == STD_ON)
-    #error MCAL_ENABLE_USER_MODE_SUPPORT is not enabled. For running Mcu in user mode the MCAL_ENABLE_USER_MODE_SUPPORT needs to be defined.
-  #endif /* (MCU_ENABLE_USER_MODE_SUPPORT == STD_ON) */
-#endif /* ifndef MCAL_ENABLE_USER_MODE_SUPPORT */
-
-#endif /* CLOCK_IP_S32K1 */
-
-/**
-* @brief  The function Mcu_GetResetRawValue shall return an implementation specific value which does
-*         not correspond to a valid value of the reset status register and is not equal to 0 if this
-*         function is called prior to calling of the function Mcu_Init, and if supported by the
-*         hardware.
-*
-*/
-
-#define MCU_RAW_RESET_DEFAULT      ((uint32)0xFFFFFFFFUL)
-
-/** @brief This is the corresponding bit of Stop Acknowledge Error reset in the returned value of Mcu_GetResetRawReason */
-#define MCU_RAW_RESET_SACKERR      ((uint32)0x00002000U)                                                              
-/** @brief This is the corresponding bit of MDM-AP System Reset Request in the returned value of Mcu_GetResetRawReason */
-#define MCU_RAW_RESET_MDM_AP       ((uint32)0x00000800U)                                                              
-/** @brief This is the corresponding bit of Software reset in the returned value of Mcu_GetResetRawReason */
-#define MCU_RAW_RESET_SW           ((uint32)0x00000400U)                                                              
-/** @brief This is the corresponding bit of Stop Core Lockup reset in the returned value of Mcu_GetResetRawReason */
-#define MCU_RAW_RESET_LOCKUP       ((uint32)0x00000200U)                                                              
-/** @brief This is the corresponding bit of JTAG generated reset in the returned value of Mcu_GetResetRawReason */
-#define MCU_RAW_RESET_JTAG         ((uint32)0x00000100U)                                                              
-/** @brief This is the corresponding bit of Power-on reset in the returned value of Mcu_GetResetRawReason */
-#define MCU_RAW_RESET_POR          ((uint32)0x00000080U)
-/** @brief This is the corresponding bit of external pin reset in the returned value of Mcu_GetResetRawReason */
-#define MCU_RAW_RESET_PIN          ((uint32)0x00000040U)
-/** @brief This is the corresponding bit of watchdog reset in the returned value of Mcu_GetResetRawReason */
-#define MCU_RAW_RESET_WDOG         ((uint32)0x00000020U)
-/** @brief This is the corresponding bit of CMU Loss-of-Lock reset in the returned value of Mcu_GetResetRawReason */
-#define MCU_RAW_RESET_CMU_LOC      ((uint32)0x00000010U)
-/** @brief This is the corresponding bit of Loss-of-Lock reset in the returned value of Mcu_GetResetRawReason */
-#define MCU_RAW_RESET_LOL          ((uint32)0x00000008U)
-/** @brief This is the corresponding bit of Loss-of-Clock reset in the returned value of Mcu_GetResetRawReason */
-#define MCU_RAW_RESET_LOC          ((uint32)0x00000004U)
-/** @brief This is the corresponding bit of Low-Voltage Detect reset or High-Voltage Detect reset in the returned value of Mcu_GetResetRawReason */
-#define MCU_RAW_RESET_LVD          ((uint32)0x00000002U)
-
-
-/**
-* @brief           This define controls the availability of function Mcu_SleepOnExit
-*/
-#define MCU_SLEEPONEXIT_SUPPORT     (STD_ON)
-
-/*==================================================================================================
-                                           DEFINES AND MACROS
-==================================================================================================*/
-#if (MCU_DEV_ERROR_DETECT == STD_ON)
-/**
-@{
-* @brief            Default error values are of type uint8.
-*                   The following errors and exceptions shall be detectable by the MCU module depending on its
-*                   build version (Default/production mode).
-*
-*/
-
-#define MCU_E_PARAM_CONFIG              ((uint8)0x0AU)
-
-#if (MCU_INIT_CLOCK == STD_ON)
-    #define MCU_E_PARAM_CLOCK               ((uint8)0x0BU)
-#endif
-
-#define MCU_E_PARAM_MODE                ((uint8)0x0CU)
-
-#ifndef MCU_MAX_NORAMCONFIGS
-    #define MCU_E_PARAM_RAMSECTION          ((uint8)0x0DU)
-#endif
-
-#if (MCU_INIT_CLOCK == STD_ON) && (MCU_NO_PLL == STD_OFF)
-    #define MCU_E_PLL_NOT_LOCKED            ((uint8)0x0EU)
-#endif
-
-#define MCU_E_UNINIT                    ((uint8)0x0FU)
-
-#if (MCU_VERSION_INFO_API == STD_ON) || (MCU_GET_MIDR_API == STD_ON)
-    #define MCU_E_PARAM_POINTER             ((uint8)0x10U)
-#endif
-
-#define MCU_E_INIT_FAILED               ((uint8)0x11U)
-#define MCU_E_ALREADY_INITIALIZED       ((uint8)0x13U)
-
-#if (MCU_DISABLE_CMU_API == STD_ON)
-    #define MCU_E_CMU_INDEX_OUT_OF_RANGE    ((uint8)0x22U)
-#endif
-
-/**@}*/
-#endif /* (MCU_DEV_ERROR_DETECT == STD_ON) */
-
-
-#ifdef MCU_ERROR_ISR_NOTIFICATION
-/**
-@{
-* @brief            Error ISR values are of type uint8.
-*                   The following error codes are reported by the error ISR.
-*/
-#if (MCU_CMU_ERROR_ISR_USED == STD_ON)
-    #define MCU_E_ISR_CLOCK_FAILURE                 ((uint8)0x01U)
-#endif
-
-#endif /* MCU_ERROR_ISR_NOTIFICATION */
-
-/*==================================================================================================
-                                 STRUCTURES AND OTHER TYPEDEFS
-==================================================================================================*/
-
-/**
-* @brief            The Mcu_ModeType specifies the identification (ID) for a MCU mode, configured via configuration structure.
-* @details          The type shall be uint8, uint16 or uint32.
-*
-* @implements     Mcu_ModeType_typedef
-*
-*/
-typedef uint32 Mcu_ModeType;
-
-/**
-* @brief            The Mcu_RamSectionType specifies the identification (ID) for a RAM section, configured via the configuration structure.
-*                   The type shall be uint8, uint16 or uint32, based on best performance.
-* @implements Mcu_RamSectionType_typedef
-*/
-typedef uint32 Mcu_RamSectionType;
-
-/**
-* @brief            The Mcu_RamWriteSizeType specifies the RAM section write size.
-*                   The type shall be uint8, uint16 or uint32, based on best performance.
-*
-*/
-typedef uint32 Mcu_RamWriteSizeType;
-
-
-#if (MCU_INIT_CLOCK == STD_ON)
-/**
-* @brief          Defines the identification (ID) for clock setting configured via the configuration structure.
-* @details        The type shall be uint8, uint16 or uint32, depending on uC platform.
-*
-* @implements Mcu_ClockType_typedef
-*/
-typedef uint32 Mcu_ClockType;
-#endif /* (MCU_INIT_CLOCK == STD_ON) */
-
-
-/**
-* @brief            The type Mcu_RawResetType specifies the reset reason in raw register format, read from a reset status register.
-* @details          The type shall be uint8, uint16 or uint32 based on best performance.
-*
-* @implements Mcu_RawResetType_typedef
-*
-*/
-typedef uint32 Mcu_RawResetType;   /**< @brief Destructive and Functional Reset Events Log. */
-
-/**
-* @brief            DEM error reporting configuration.
-* @details          This structure contains information DEM error reporting
-*/
-typedef struct
-{
-    Mcal_DemErrorType Mcu_E_TimeoutFailureCfg;
-    Mcal_DemErrorType Mcu_E_InvalidFxoscConfigCfg;
-    Mcal_DemErrorType Mcu_E_ClockMuxSwitchFailureCfg;
-    Mcal_DemErrorType Mcu_E_ClockFailureCfg;
-    Mcal_DemErrorType Mcu_E_SwitchModeFailureCfg;
-} Mcu_DemConfigType;
-
-#if (MCU_POWERMODE_STATE_API == STD_ON)
-/**
-* @brief            State of the current power mode.
-* @details          Used to store the value of register value.
-*/
-typedef uint32 Mcu_PowerModeStateType;
-#endif /* (MCU_POWERMODE_STATE_API == STD_ON) */
-/*==================================================================================================
-                                       CONSTANTS
-==================================================================================================*/
-#if (MCU_INIT_CLOCK == STD_ON)
-/**
-* @brief            Create defines with the IDs assigned to Mcu Clock configurations.
-*                   These IDs will be transmitted as input parameters for Mcu_InitClock() API.
-*/
-
-
-#define McuClockSettingConfig_0   ((Mcu_ClockType)0U)
-
-#define McuConf_McuClockSettingConfig_McuClockSettingConfig_0   ((Mcu_ClockType)0U)
-
-
-#endif
-
-/**
-* @brief            Create defines with the IDs assigned to Mcu Mode configurations.
-*                   These IDs will be transmitted as input parameters for Mcu_SetMode() API.
-*/
-
-
-#define McuModeSettingConf_Run   ((Mcu_ModeType)0U)
-
-#define McuConf_McuModeSettingConf_McuModeSettingConf_Run   ((Mcu_ModeType)0U)
-
-
-#define McuModeSettingConf_HSRun   ((Mcu_ModeType)1U)
-
-#define McuConf_McuModeSettingConf_McuModeSettingConf_HSRun   ((Mcu_ModeType)1U)
-
-
-#define McuModeSettingConf_VLPR   ((Mcu_ModeType)2U)
-
-#define McuConf_McuModeSettingConf_McuModeSettingConf_VLPR   ((Mcu_ModeType)2U)
-
-
-/**
-* @brief            Create defines with the IDs assigned to Mcu RAM Section configurations.
-*                   These IDs will be transmitted as input parameters for Mcu_InitRamSection() API.
-*/
-
-
-
-/*==================================================================================================
-                                             ENUMS
-==================================================================================================*/
-
-/**
-* @brief            Type of the return value of the function Mcu_GetPllStatus.
-* @details          The type of Mcu_PllStatusType is an enumeration with the following values:
-*                       MCU_PLL_LOCKED, MCU_PLL_UNLOCKED, MCU_PLL_STATUS_UNDEFINED.
-*
-* @implements     Mcu_PllStatusType_Enumeration
-*
-*/
-typedef enum
-{
-    MCU_PLL_LOCKED = 0x33U,            /**< @brief PLL is locked.         */
-    MCU_PLL_UNLOCKED = 0xCCU,          /**< @brief PLL is unlocked.       */
-    MCU_PLL_STATUS_UNDEFINED = 0x5AU   /**< @brief PLL Status is unknown. */
-
-} Mcu_PllStatusType;
-
-
-/**
-* @brief            The type Mcu_ResetType, represents the different reset that a specified MCU can have.
-* @details          The MCU module shall provide at least the values MCU_POWER_ON_RESET and MCU_RESET_UNDEFINED for the enumeration Mcu_ResetType.
-*
-* @implements Mcu_ResetType_Enumeration
-*/
-typedef Power_Ip_ResetType Mcu_ResetType;
-
-#if (MCU_GET_RAM_STATE_API == STD_ON)
-/**
-* @brief            Ram State of the microcontroller.
-* @details          This is the Ram State data type returned by the function Mcu_GetRamState() of the Mcu module.
-* @implements Mcu_RamStateType_Enumeration
-*/
-typedef enum
-{
-    MCU_RAMSTATE_INVALID = 0x99U,   /**< @brief RAM content is not valid or unknown (default). */
-    MCU_RAMSTATE_VALID   = 0x66U    /**< @brief RAM content is valid. */
-
-} Mcu_RamStateType;
-#endif /* (MCU_GET_RAM_STATE_API == STD_ON) */
-
-#ifdef MCU_PREPARE_MEMORY_CONFIG
-/**
-* @brief            The stage of the flash and ram controllers configuration.
-* @details          This is used to specify the entry and exit point of the flash and ram controllers configuration.
-*/
-typedef enum
-{
-    MCU_RAM_MEMORY_CONFIG_ENTRY_POINT      = 0x77U,
-    MCU_RAM_MEMORY_CONFIG_EXIT_POINT       = 0x88U
-
-} Mcu_MemoryConfigStageType;
-#endif
-
-#if (defined(MCU_PMC_NOTIFICATION) && (MCU_ENTER_LOW_POWER_MODE == STD_ON))
-/**
-* @brief            Power management controller events.
-* @details          The various events triggered by the power management controller.
-*/
-typedef enum
-{
-    MCU_LAST_MILE_REGULATOR_DISABLED = 0x55U
-
-} Mcu_PowerManagementEventType;
-#endif
-
-#ifdef MCU_SLEEPONEXIT_SUPPORT
-  #if (MCU_SLEEPONEXIT_SUPPORT == STD_ON)
-typedef enum
-{
-    MCU_SLEEP_ON_EXIT_DISABLED = 0U,   /**< @brief Disable SLEEPONEXIT bit (default). */
-    MCU_SLEEP_ON_EXIT_ENABLED   /**< @brief Enable SLEEPONEXIT bit. */
-
-} Mcu_SleepOnExitType;
-  #endif
-#endif
-
-#if (MCU_SRAM_RETEN_CONFIG_API ==STD_ON)
-/**
-* @brief            Type of parameter value of the function Mcu_SRAMRetentionConfig.
-* @details          The type of Mcu_SRAMRetenConfigType is an enumeration with the following values:
-*                       MCU_SRAML_RETEN, MCU_SRAMU_RETEN, MCU_SRAMLU_RETEN, MCU_NO_SRAMLU_RETEN.
-*/
-typedef Power_Ip_SRAMRetenConfigType Mcu_SRAMRetenConfigType;
-#endif
-/*==================================================================================================
-                                           DEFINES AND MACROS
-==================================================================================================*/
-/**
-* @brief            This macro is used to define the position of the first reset reason.
-*
-*/
-#define MCU_FIRST_RESET_REASON_POS_U32      ((uint32)MCU_POWER_ON_RESET)
-
-/*==================================================================================================
-                                 GLOBAL VARIABLE DECLARATIONS
-==================================================================================================*/
-
-#if (MCU_DISABLE_DEM_REPORT_ERROR_STATUS == STD_OFF)
-#define MCU_START_SEC_VAR_CLEARED_UNSPECIFIED
-
-#include "Mcu_MemMap.h"
-
-/**
-* @brief            Local copy of the pointer to the configuration data
-*/
-extern const Mcu_DemConfigType * Mcu_pDemCfgPtr;
-
-#define MCU_STOP_SEC_VAR_CLEARED_UNSPECIFIED
-
-#include "Mcu_MemMap.h"
-
-
-#define MCU_START_SEC_CONFIG_DATA_UNSPECIFIED
-
-#include "Mcu_MemMap.h"
-
-extern const Mcu_DemConfigType Mcu_Dem_Config;
-
-#define MCU_STOP_SEC_CONFIG_DATA_UNSPECIFIED
-
-#include "Mcu_MemMap.h"
-#endif /* (MCU_DISABLE_DEM_REPORT_ERROR_STATUS == STD_OFF) */
-
-
-/*==================================================================================================
-*                                    FUNCTION PROTOTYPES
-==================================================================================================*/
-#define MCU_START_SEC_CODE
-
-#include "Mcu_MemMap.h"
-
-
-
-
-
-
-
-
-
-
-
-
-
-#define MCU_STOP_SEC_CODE
-
-#include "Mcu_MemMap.h"
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* #ifndef MCU_CFG_H */
-
-/** @} */
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : 
+*   Dependencies         : none
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+/**
+*   @file       Mcu_Cfg.h
+*   @implements Mcu_Cfg.h_Artifact
+*   @version    1.0.0
+*
+*   @brief      AUTOSAR Mcu - Configuration file for the driver.
+*   @details    Precompile parameters and extern configuration.
+*
+*   @addtogroup MCU
+*   @{
+*/
+
+
+#ifndef MCU_CFG_H
+#define MCU_CFG_H
+
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+/*==================================================================================================
+                                         INCLUDE FILES
+ 1) system and project includes
+ 2) needed interfaces from external units
+ 3) internal and external interfaces from this unit
+==================================================================================================*/
+
+#include "Mcal.h"
+#include "Clock_Ip_Cfg.h"
+#include "Power_Ip_Cfg.h"
+#include "Ram_Ip_Cfg.h"
+#include "Mcu_VS_0_PBcfg.h"
+
+/*==================================================================================================
+                               SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+
+#define MCU_CFG_VENDOR_ID                       43
+#define MCU_CFG_AR_RELEASE_MAJOR_VERSION        4
+#define MCU_CFG_AR_RELEASE_MINOR_VERSION        4
+#define MCU_CFG_AR_RELEASE_REVISION_VERSION     0
+#define MCU_CFG_SW_MAJOR_VERSION                1
+#define MCU_CFG_SW_MINOR_VERSION                0
+#define MCU_CFG_SW_PATCH_VERSION                0
+
+/*==================================================================================================
+*                                     FILE VERSION CHECKS
+==================================================================================================*/
+#ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
+/* Check if header file and Mcal header file are of the same Autosar version */
+#if ((MCU_CFG_AR_RELEASE_MAJOR_VERSION != MCAL_AR_RELEASE_MAJOR_VERSION) || \
+     (MCU_CFG_AR_RELEASE_MINOR_VERSION != MCAL_AR_RELEASE_MINOR_VERSION))
+    #error "AutoSar Version Numbers of Mcu_Cfg.h and Mcal.h are different"
+#endif
+#endif
+
+/* Check if header file and Clock_Ip_Cfg.h file are of the same vendor */
+#if (MCU_CFG_VENDOR_ID != CLOCK_IP_CFG_VENDOR_ID)
+    #error "Mcu_Cfg.h and Clock_Ip_Cfg.h have different vendor ids"
+#endif
+
+/* Check if header file and Clock_Ip_Cfg.h file are of the same Autosar version */
+#if ((MCU_CFG_AR_RELEASE_MAJOR_VERSION != CLOCK_IP_CFG_AR_RELEASE_MAJOR_VERSION) || \
+     (MCU_CFG_AR_RELEASE_MINOR_VERSION != CLOCK_IP_CFG_AR_RELEASE_MINOR_VERSION) || \
+     (MCU_CFG_AR_RELEASE_REVISION_VERSION != CLOCK_IP_CFG_AR_RELEASE_REVISION_VERSION) \
+    )
+    #error "AutoSar Version Numbers of Mcu_Cfg.h and Clock_Ip_Cfg.h are different"
+#endif
+
+/* Check if header file and Clock_Ip_Cfg.h file are of the same Software version */
+#if ((MCU_CFG_SW_MAJOR_VERSION != CLOCK_IP_CFG_SW_MAJOR_VERSION) || \
+     (MCU_CFG_SW_MINOR_VERSION != CLOCK_IP_CFG_SW_MINOR_VERSION) || \
+     (MCU_CFG_SW_PATCH_VERSION != CLOCK_IP_CFG_SW_PATCH_VERSION) \
+    )
+    #error "Software Version Numbers of Mcu_Cfg.h and Clock_Ip_Cfg.h are different"
+#endif
+
+/* Check if header file and Power_Ip_Cfg.h file are of the same vendor */
+#if (MCU_CFG_VENDOR_ID != POWER_IP_CFG_VENDOR_ID)
+    #error "Mcu_Cfg.h and Power_Ip_Cfg.h have different vendor ids"
+#endif
+
+/* Check if header file and Power_Ip_Cfg.h file are of the same Autosar version */
+#if ((MCU_CFG_AR_RELEASE_MAJOR_VERSION != POWER_IP_CFG_AR_RELEASE_MAJOR_VERSION) || \
+     (MCU_CFG_AR_RELEASE_MINOR_VERSION != POWER_IP_CFG_AR_RELEASE_MINOR_VERSION) || \
+     (MCU_CFG_AR_RELEASE_REVISION_VERSION != POWER_IP_CFG_AR_RELEASE_REVISION_VERSION) \
+    )
+    #error "AutoSar Version Numbers of Mcu_Cfg.h and Power_Ip_Cfg.h are different"
+#endif
+
+/* Check if header file and Power_Ip_Cfg.h file are of the same Software version */
+#if ((MCU_CFG_SW_MAJOR_VERSION != POWER_IP_CFG_SW_MAJOR_VERSION) || \
+     (MCU_CFG_SW_MINOR_VERSION != POWER_IP_CFG_SW_MINOR_VERSION) || \
+     (MCU_CFG_SW_PATCH_VERSION != POWER_IP_CFG_SW_PATCH_VERSION) \
+    )
+    #error "Software Version Numbers of Mcu_Cfg.h and Power_Ip_Cfg.h are different"
+#endif
+
+/* Check if header file and Ram_Ip_Cfg.h file are of the same vendor */
+#if (MCU_CFG_VENDOR_ID != RAM_IP_CFG_VENDOR_ID)
+    #error "Mcu_Cfg.h and Ram_Ip_Cfg.h have different vendor ids"
+#endif
+
+/* Check if header file and Ram_Ip_Cfg.h file are of the same Autosar version */
+#if ((MCU_CFG_AR_RELEASE_MAJOR_VERSION != RAM_IP_CFG_AR_RELEASE_MAJOR_VERSION) || \
+     (MCU_CFG_AR_RELEASE_MINOR_VERSION != RAM_IP_CFG_AR_RELEASE_MINOR_VERSION) || \
+     (MCU_CFG_AR_RELEASE_REVISION_VERSION != RAM_IP_CFG_AR_RELEASE_REVISION_VERSION) \
+    )
+    #error "AutoSar Version Numbers of Mcu_Cfg.h and Ram_Ip_Cfg.h are different"
+#endif
+
+/* Check if header file and Ram_Ip_Cfg.h file are of the same Software version */
+#if ((MCU_CFG_SW_MAJOR_VERSION != RAM_IP_CFG_SW_MAJOR_VERSION) || \
+     (MCU_CFG_SW_MINOR_VERSION != RAM_IP_CFG_SW_MINOR_VERSION) || \
+     (MCU_CFG_SW_PATCH_VERSION != RAM_IP_CFG_SW_PATCH_VERSION) \
+    )
+    #error "Software Version Numbers of Mcu_Cfg.h and Ram_Ip_Cfg.h are different"
+#endif
+
+/* Check if header file and Mcu_VS_0_PBcfg.h file are of the same vendor */
+#if (MCU_CFG_VENDOR_ID != MCU_VS_0_PBCFG_VENDOR_ID)
+    #error "Mcu_Cfg.h and Mcu_VS_0_PBcfg.h have different vendor ids"
+#endif
+
+/* Check if header file and Mcu_VS_0_PBcfg.h file are of the same Autosar version */
+#if ((MCU_CFG_AR_RELEASE_MAJOR_VERSION != MCU_VS_0_PBCFG_AR_RELEASE_MAJOR_VERSION) || \
+     (MCU_CFG_AR_RELEASE_MINOR_VERSION != MCU_VS_0_PBCFG_AR_RELEASE_MINOR_VERSION) || \
+     (MCU_CFG_AR_RELEASE_REVISION_VERSION != MCU_VS_0_PBCFG_AR_RELEASE_REVISION_VERSION) \
+    )
+    #error "AutoSar Version Numbers of Mcu_Cfg.h and Mcu_VS_0_PBcfg.h are different"
+#endif
+
+/* Check if header file and Mcu_VS_0_PBcfg.h file are of the same Software version */
+#if ((MCU_CFG_SW_MAJOR_VERSION != MCU_VS_0_PBCFG_SW_MAJOR_VERSION) || \
+     (MCU_CFG_SW_MINOR_VERSION != MCU_VS_0_PBCFG_SW_MINOR_VERSION) || \
+     (MCU_CFG_SW_PATCH_VERSION != MCU_VS_0_PBCFG_SW_PATCH_VERSION) \
+    )
+    #error "Software Version Numbers of Mcu_Cfg.h and Mcu_VS_0_PBcfg.h are different"
+#endif
+/*==================================================================================================
+                                           DEFINES AND MACROS
+==================================================================================================*/
+
+
+
+/**
+* @brief      Specifies the InstanceId of this module instance.
+*/
+
+#define MCU_INSTANCE_ID                 ((uint8)0x0U)
+
+/**
+@{
+* @brief            Service Ids for MCU APIs.
+*/
+
+
+#define MCU_INIT_ID                     ((uint8)0x00U)
+
+#define MCU_INITRAMSECTION_ID           ((uint8)0x01U)
+
+#define MCU_INITCLOCK_ID                ((uint8)0x02U)
+
+#define MCU_DISTRIBUTEPLLCLOCK_ID       ((uint8)0x03U)
+
+#define MCU_GETPLLSTATUS_ID             ((uint8)0x04U)
+
+#define MCU_GETRESETREASON_ID           ((uint8)0x05U)
+
+#define MCU_GETRESETRAWVALUE_ID         ((uint8)0x06U)
+
+#define MCU_PERFORMRESET_ID             ((uint8)0x07U)
+
+#define MCU_SETMODE_ID                  ((uint8)0x08U)
+
+#define MCU_GETVERSIONINFO_ID           ((uint8)0x09U)
+
+#define MCU_GETRAMSTATE_ID              ((uint8)0x0AU)
+
+/**@}*/
+
+
+/**
+@{
+* @brief            Service Ids for NonASR MCU APIs.
+*/
+
+
+#define MCU_GETPOWERDOMAIN_ID           ((uint8)0x0BU)
+
+#define MCU_GETPERIPHERALSTATE_ID       ((uint8)0x0CU)
+
+#define MCU_GETSYSTEMSTATE_ID           ((uint8)0x0DU)
+
+#define MCU_GETPOWERMODESTATE_ID        ((uint8)0x0EU)
+
+#define MCU_GETMEMCONFIG_ID             ((uint8)0x13U)
+
+#define MCU_GETMIDRSTRUCTURE_ID         ((uint8)0x14U)
+
+#define MCU_SSCMGETSTATUS_ID            ((uint8)0x15U)
+
+#define MCU_SSCMGETUOPT_ID              ((uint8)0x16U)
+
+#define MCU_DISABLECMU_ID               ((uint8)0x17U)
+
+#define MCU_EMIOSCONFIGUREGPREN_ID      ((uint8)0x18U)
+
+#define MCU_GETCLOCKFREQUENCY_ID        ((uint8)0x19U)
+
+#define MCU_SLEEPONEXIT_ID              ((uint8)0x1AU)
+
+#define MCU_SRAMRETENCONFIG_ID          ((uint8)0x1BU)
+
+
+/**@}*/
+
+
+/**
+* @brief            Pre-processor switch for enabling the default error detection and reporting to the DET.
+*                   The detection of default errors is configurable (ON / OFF) at pre-compile time.
+*/
+#define MCU_DEV_ERROR_DETECT   (STD_OFF)
+
+
+
+/**
+* @brief            If this parameter is set to TRUE, the Power Management Controller (PMC) initialization has to be disabled from the MCU driver.
+*/
+#define MCU_DISABLE_PMC_INIT      (STD_OFF)
+
+/**
+* @brief            If this parameter is set to TRUE, the Reset Control Module (RMC) initialization has to be disabled from the MCU driver.
+*/
+#define MCU_DISABLE_RCM_INIT   (STD_OFF)
+
+/**
+* @brief            If this parameter is set to TRUE, the System Mode Controller (SMC) initialization has to be disabled from the MCU driver.
+*/
+#define MCU_DISABLE_SMC_INIT   (STD_OFF)
+/**
+* @brief            Pre-processor switch to enable/disable the API to read out the modules version information.
+*/
+#define MCU_VERSION_INFO_API   (STD_OFF)
+
+
+/**
+* @brief            Pre-processor switch to enable/disable the API Mcu_GetRamState.
+*/
+#define MCU_GET_RAM_STATE_API           (STD_OFF)
+
+
+/**
+* @brief            If this parameter is set to FALSE, the clock initialization has to be disabled from the MCU driver.
+*/
+#define MCU_INIT_CLOCK   (STD_ON)
+
+
+/**
+* @brief            This parameter shall be set True, if the H/W does not have a PLL or the PLL circuitry is enabled after the power on without S/W intervention.
+*/
+#define MCU_NO_PLL   (STD_OFF)
+
+/**
+* @brief            define for interrupt CMU, PMC, SCG peripheral
+*/
+#define MCU_CMU_PMC_SCG_INTERRUPT  (STD_OFF)
+
+#if (MCU_PERFORM_RESET_API == STD_ON)
+/**
+* @brief            The user callout reset is/isn't available (STD_ON/STD_OFF) - called by MCU right before Mcu_PerformReset().
+*/
+#define MCU_RESET_CALLOUT_USED   (STD_OFF)
+#endif
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+/**
+* @brief            ISR Mcu_CmuClockFail_ISR is/isn't available
+*/
+#define MCU_CMU_ERROR_ISR_USED                  (STD_OFF)
+
+/**
+* @brief            Enable the usage of Non-Autosar API Mcu_GetPeripheral_State() for getting infos about peripheral state from MC_ME module.
+*/
+#define MCU_GET_PERIPH_STATE_API   (STD_OFF)
+
+/**
+* @brief            Enable the usage of Non-Autosar API Mcu_GetPowerMode_State() for getting infos system platform configuration.
+*/
+#define MCU_POWERMODE_STATE_API   (STD_OFF)
+
+/**
+* @brief            Enable the usage of Non-Autosar API Mcu_GetPowerDomain_Status. Get PMU state: operable or not.
+*/
+#define MCU_GET_POWER_DOMAIN_API   (STD_OFF)
+
+/**
+* @brief            Enable the usage of Non-Autosar API Mcu_GetSystem_State() for getting system platform configuration information. Get (SSCM_STATUS | SSCM_MEMCONFIG).
+*/
+#define MCU_GET_SYSTEM_STATE_API  (STD_OFF)
+
+/**
+* @brief            Enable the usage of Non-Autosar API Mcu_SscmGetMemConfig(). Get SSCM_MEMCONFIG.
+*/
+#define MCU_GET_MEM_CONFIG_API    (STD_OFF)
+
+/**
+* @brief            Enable the usage of Non-Autosar API Mcu_SscmGetStatus(). Get SSCM_STATUS.
+*/
+#define MCU_SSCM_GET_STATUS_API   (STD_OFF)
+
+/**
+* @brief            Enable the usage of Non-Autosar API Mcu_SscmGetUopt(). Get SSCM_UOPT.
+*/
+#define MCU_SSCM_GET_UOPT_API     (STD_OFF)
+
+/**
+* @brief            Enable the usage of Non-Autosar API  Mcu_GetMidrStructure(). Returns .
+*/
+#define MCU_GET_MIDR_API          (STD_OFF)
+
+/**
+* @brief            Enable the usage of Non-Autosar API  Mcu_EmiosConfigureGpren().
+*/
+#define MCU_EMIOS_CONFIGURE_GPREN_API          (STD_OFF)
+
+/**
+* @brief            Enable the usage of Non-Autosar API  Mcu_Disable_CMU().
+*/
+#define MCU_DISABLE_CMU_API     (STD_OFF)
+
+/**
+* @brief            Enable the usage of Non-Autosar API  Mcu_GetClockFrequency().
+*/
+#define MCU_GET_CLOCK_FREQUENCY_API     (STD_ON)
+
+/**
+* @brief            Enable/Disable the API for reporting the Dem Error.
+*/
+#define MCU_DISABLE_DEM_REPORT_ERROR_STATUS     (STD_ON)
+
+
+
+/**
+* @brief            Enable the usage of Non-Autosar API  Mcu_SRAMRetentionConfig().
+*/
+#define MCU_SRAM_RETEN_CONFIG_API    (STD_OFF)
+
+/**
+* @brief           Enable/Disable the Ram Notification.
+*/
+#define MCU_DISABLE_RAM_CONFIG         (STD_ON)
+
+/**
+* @brief           Enable/Disable the Flash Notification.
+*/
+#define MCU_DISABLE_FLASH_CONFIG       (STD_ON)
+
+/**
+* @brief            ISR Mcu_VoltageError_ISR is/isn't available (STD_ON/STD_OFF)
+*/
+#if (MCU_CMU_PMC_SCG_INTERRUPT == STD_ON)
+#define MCU_VOLTAGE_ERROR_ISR_USED   (STD_OFF)
+#endif
+/**
+* @brief            Maximum number of MCU Clock configurations.
+*/
+#define MCU_MAX_CLKCONFIGS   ((uint32)1U)
+
+
+/**
+* @brief            Maximum number of MCU Mode configurations.
+*/
+#define MCU_MAX_MODECONFIGS   ((uint32)1U)
+
+
+/**
+* @brief            Maximum number of MCU Ram configurations.
+*/
+#define MCU_MAX_RAMCONFIGS   ((uint32)0U)
+#define MCU_MAX_NORAMCONFIGS
+
+
+/**
+* @brief            Pre-compile Support.
+*/
+#define MCU_PRECOMPILE_SUPPORT   (STD_ON)
+
+#ifdef MCU_GET_MIDR_API
+  #if (MCU_GET_MIDR_API == STD_ON)
+/**
+* @brief            Number of total available SIUL2 (SIUL2 + SIUL2_AE) units.
+*/
+
+#define MCU_SIUL2_TOTAL_UNITS                    ((uint8)0U)
+  #endif
+#endif
+
+
+
+/**
+* @brief            Number of Clock Muxes per CGM module
+*/
+
+
+/**
+* @brief            Index of CGMs module
+*/
+
+
+#ifdef MCU_ERROR_ISR_NOTIFICATION
+/* This is used to clear CMU flags from the RGM interrupt */
+#define MCU_CMU_CLEAR_CLOCK_IRQ_FLAG            (MCU_CMU_ERROR_ISR_USED)
+#endif
+
+#if !(defined (CLOCK_IP_S32K1))
+/**
+* @brief        Support for User mode.
+*               If this parameter has been configured to 'TRUE' the Mcu driver can be executed from both supervisor and user mode.
+*/
+#define MCU_ENABLE_USER_MODE_SUPPORT  (STD_OFF)
+
+/** Check the driver user mode is enabled only when the MCAL_ENABLE_USER_MODE_SUPPORT is enabled */
+#ifndef MCAL_ENABLE_USER_MODE_SUPPORT
+  #if (MCU_ENABLE_USER_MODE_SUPPORT == STD_ON)
+    #error MCAL_ENABLE_USER_MODE_SUPPORT is not enabled. For running Mcu in user mode the MCAL_ENABLE_USER_MODE_SUPPORT needs to be defined.
+  #endif /* (MCU_ENABLE_USER_MODE_SUPPORT == STD_ON) */
+#endif /* ifndef MCAL_ENABLE_USER_MODE_SUPPORT */
+
+#endif /* CLOCK_IP_S32K1 */
+
+/**
+* @brief  The function Mcu_GetResetRawValue shall return an implementation specific value which does
+*         not correspond to a valid value of the reset status register and is not equal to 0 if this
+*         function is called prior to calling of the function Mcu_Init, and if supported by the
+*         hardware.
+*
+*/
+
+#define MCU_RAW_RESET_DEFAULT      ((uint32)0xFFFFFFFFUL)
+
+/** @brief This is the corresponding bit of Stop Acknowledge Error reset in the returned value of Mcu_GetResetRawReason */
+#define MCU_RAW_RESET_SACKERR      ((uint32)0x00002000U)                                                              
+/** @brief This is the corresponding bit of MDM-AP System Reset Request in the returned value of Mcu_GetResetRawReason */
+#define MCU_RAW_RESET_MDM_AP       ((uint32)0x00000800U)                                                              
+/** @brief This is the corresponding bit of Software reset in the returned value of Mcu_GetResetRawReason */
+#define MCU_RAW_RESET_SW           ((uint32)0x00000400U)                                                              
+/** @brief This is the corresponding bit of Stop Core Lockup reset in the returned value of Mcu_GetResetRawReason */
+#define MCU_RAW_RESET_LOCKUP       ((uint32)0x00000200U)                                                              
+/** @brief This is the corresponding bit of JTAG generated reset in the returned value of Mcu_GetResetRawReason */
+#define MCU_RAW_RESET_JTAG         ((uint32)0x00000100U)                                                              
+/** @brief This is the corresponding bit of Power-on reset in the returned value of Mcu_GetResetRawReason */
+#define MCU_RAW_RESET_POR          ((uint32)0x00000080U)
+/** @brief This is the corresponding bit of external pin reset in the returned value of Mcu_GetResetRawReason */
+#define MCU_RAW_RESET_PIN          ((uint32)0x00000040U)
+/** @brief This is the corresponding bit of watchdog reset in the returned value of Mcu_GetResetRawReason */
+#define MCU_RAW_RESET_WDOG         ((uint32)0x00000020U)
+/** @brief This is the corresponding bit of CMU Loss-of-Lock reset in the returned value of Mcu_GetResetRawReason */
+#define MCU_RAW_RESET_CMU_LOC      ((uint32)0x00000010U)
+/** @brief This is the corresponding bit of Loss-of-Lock reset in the returned value of Mcu_GetResetRawReason */
+#define MCU_RAW_RESET_LOL          ((uint32)0x00000008U)
+/** @brief This is the corresponding bit of Loss-of-Clock reset in the returned value of Mcu_GetResetRawReason */
+#define MCU_RAW_RESET_LOC          ((uint32)0x00000004U)
+/** @brief This is the corresponding bit of Low-Voltage Detect reset or High-Voltage Detect reset in the returned value of Mcu_GetResetRawReason */
+#define MCU_RAW_RESET_LVD          ((uint32)0x00000002U)
+
+
+/**
+* @brief           This define controls the availability of function Mcu_SleepOnExit
+*/
+#define MCU_SLEEPONEXIT_SUPPORT     (STD_ON)
+
+/*==================================================================================================
+                                           DEFINES AND MACROS
+==================================================================================================*/
+#if (MCU_DEV_ERROR_DETECT == STD_ON)
+/**
+@{
+* @brief            Default error values are of type uint8.
+*                   The following errors and exceptions shall be detectable by the MCU module depending on its
+*                   build version (Default/production mode).
+*
+*/
+
+#define MCU_E_PARAM_CONFIG              ((uint8)0x0AU)
+
+#if (MCU_INIT_CLOCK == STD_ON)
+    #define MCU_E_PARAM_CLOCK               ((uint8)0x0BU)
+#endif
+
+#define MCU_E_PARAM_MODE                ((uint8)0x0CU)
+
+#ifndef MCU_MAX_NORAMCONFIGS
+    #define MCU_E_PARAM_RAMSECTION          ((uint8)0x0DU)
+#endif
+
+#if (MCU_INIT_CLOCK == STD_ON) && (MCU_NO_PLL == STD_OFF)
+    #define MCU_E_PLL_NOT_LOCKED            ((uint8)0x0EU)
+#endif
+
+#define MCU_E_UNINIT                    ((uint8)0x0FU)
+
+#if (MCU_VERSION_INFO_API == STD_ON) || (MCU_GET_MIDR_API == STD_ON)
+    #define MCU_E_PARAM_POINTER             ((uint8)0x10U)
+#endif
+
+#define MCU_E_INIT_FAILED               ((uint8)0x11U)
+#define MCU_E_ALREADY_INITIALIZED       ((uint8)0x13U)
+
+#if (MCU_DISABLE_CMU_API == STD_ON)
+    #define MCU_E_CMU_INDEX_OUT_OF_RANGE    ((uint8)0x22U)
+#endif
+
+/**@}*/
+#endif /* (MCU_DEV_ERROR_DETECT == STD_ON) */
+
+
+#ifdef MCU_ERROR_ISR_NOTIFICATION
+/**
+@{
+* @brief            Error ISR values are of type uint8.
+*                   The following error codes are reported by the error ISR.
+*/
+#if (MCU_CMU_ERROR_ISR_USED == STD_ON)
+    #define MCU_E_ISR_CLOCK_FAILURE                 ((uint8)0x01U)
+#endif
+
+#endif /* MCU_ERROR_ISR_NOTIFICATION */
+
+/*==================================================================================================
+                                 STRUCTURES AND OTHER TYPEDEFS
+==================================================================================================*/
+
+/**
+* @brief            The Mcu_ModeType specifies the identification (ID) for a MCU mode, configured via configuration structure.
+* @details          The type shall be uint8, uint16 or uint32.
+*
+* @implements     Mcu_ModeType_typedef
+*
+*/
+typedef uint32 Mcu_ModeType;
+
+/**
+* @brief            The Mcu_RamSectionType specifies the identification (ID) for a RAM section, configured via the configuration structure.
+*                   The type shall be uint8, uint16 or uint32, based on best performance.
+* @implements Mcu_RamSectionType_typedef
+*/
+typedef uint32 Mcu_RamSectionType;
+
+/**
+* @brief            The Mcu_RamWriteSizeType specifies the RAM section write size.
+*                   The type shall be uint8, uint16 or uint32, based on best performance.
+*
+*/
+typedef uint32 Mcu_RamWriteSizeType;
+
+
+#if (MCU_INIT_CLOCK == STD_ON)
+/**
+* @brief          Defines the identification (ID) for clock setting configured via the configuration structure.
+* @details        The type shall be uint8, uint16 or uint32, depending on uC platform.
+*
+* @implements Mcu_ClockType_typedef
+*/
+typedef uint32 Mcu_ClockType;
+#endif /* (MCU_INIT_CLOCK == STD_ON) */
+
+
+/**
+* @brief            The type Mcu_RawResetType specifies the reset reason in raw register format, read from a reset status register.
+* @details          The type shall be uint8, uint16 or uint32 based on best performance.
+*
+* @implements Mcu_RawResetType_typedef
+*
+*/
+typedef uint32 Mcu_RawResetType;   /**< @brief Destructive and Functional Reset Events Log. */
+
+/**
+* @brief            DEM error reporting configuration.
+* @details          This structure contains information DEM error reporting
+*/
+typedef struct
+{
+    Mcal_DemErrorType Mcu_E_TimeoutFailureCfg;
+    Mcal_DemErrorType Mcu_E_InvalidFxoscConfigCfg;
+    Mcal_DemErrorType Mcu_E_ClockMuxSwitchFailureCfg;
+    Mcal_DemErrorType Mcu_E_ClockFailureCfg;
+    Mcal_DemErrorType Mcu_E_SwitchModeFailureCfg;
+} Mcu_DemConfigType;
+
+#if (MCU_POWERMODE_STATE_API == STD_ON)
+/**
+* @brief            State of the current power mode.
+* @details          Used to store the value of register value.
+*/
+typedef uint32 Mcu_PowerModeStateType;
+#endif /* (MCU_POWERMODE_STATE_API == STD_ON) */
+/*==================================================================================================
+                                       CONSTANTS
+==================================================================================================*/
+#if (MCU_INIT_CLOCK == STD_ON)
+/**
+* @brief            Create defines with the IDs assigned to Mcu Clock configurations.
+*                   These IDs will be transmitted as input parameters for Mcu_InitClock() API.
+*/
+
+
+#define McuClockSettingConfig_0   ((Mcu_ClockType)0U)
+
+#define McuConf_McuClockSettingConfig_McuClockSettingConfig_0   ((Mcu_ClockType)0U)
+
+
+#endif
+
+/**
+* @brief            Create defines with the IDs assigned to Mcu Mode configurations.
+*                   These IDs will be transmitted as input parameters for Mcu_SetMode() API.
+*/
+
+
+#define McuModeSettingConf_Run   ((Mcu_ModeType)0U)
+
+#define McuConf_McuModeSettingConf_McuModeSettingConf_Run   ((Mcu_ModeType)0U)
+
+
+/**
+* @brief            Create defines with the IDs assigned to Mcu RAM Section configurations.
+*                   These IDs will be transmitted as input parameters for Mcu_InitRamSection() API.
+*/
+
+
+
+/*==================================================================================================
+                                             ENUMS
+==================================================================================================*/
+
+/**
+* @brief            Type of the return value of the function Mcu_GetPllStatus.
+* @details          The type of Mcu_PllStatusType is an enumeration with the following values:
+*                       MCU_PLL_LOCKED, MCU_PLL_UNLOCKED, MCU_PLL_STATUS_UNDEFINED.
+*
+* @implements     Mcu_PllStatusType_Enumeration
+*
+*/
+typedef enum
+{
+    MCU_PLL_LOCKED = 0x33U,            /**< @brief PLL is locked.         */
+    MCU_PLL_UNLOCKED = 0xCCU,          /**< @brief PLL is unlocked.       */
+    MCU_PLL_STATUS_UNDEFINED = 0x5AU   /**< @brief PLL Status is unknown. */
+
+} Mcu_PllStatusType;
+
+
+/**
+* @brief            The type Mcu_ResetType, represents the different reset that a specified MCU can have.
+* @details          The MCU module shall provide at least the values MCU_POWER_ON_RESET and MCU_RESET_UNDEFINED for the enumeration Mcu_ResetType.
+*
+* @implements Mcu_ResetType_Enumeration
+*/
+typedef Power_Ip_ResetType Mcu_ResetType;
+
+#if (MCU_GET_RAM_STATE_API == STD_ON)
+/**
+* @brief            Ram State of the microcontroller.
+* @details          This is the Ram State data type returned by the function Mcu_GetRamState() of the Mcu module.
+* @implements Mcu_RamStateType_Enumeration
+*/
+typedef enum
+{
+    MCU_RAMSTATE_INVALID = 0x99U,   /**< @brief RAM content is not valid or unknown (default). */
+    MCU_RAMSTATE_VALID   = 0x66U    /**< @brief RAM content is valid. */
+
+} Mcu_RamStateType;
+#endif /* (MCU_GET_RAM_STATE_API == STD_ON) */
+
+#ifdef MCU_PREPARE_MEMORY_CONFIG
+/**
+* @brief            The stage of the flash and ram controllers configuration.
+* @details          This is used to specify the entry and exit point of the flash and ram controllers configuration.
+*/
+typedef enum
+{
+    MCU_RAM_MEMORY_CONFIG_ENTRY_POINT      = 0x77U,
+    MCU_RAM_MEMORY_CONFIG_EXIT_POINT       = 0x88U
+
+} Mcu_MemoryConfigStageType;
+#endif
+
+#if (defined(MCU_PMC_NOTIFICATION) && (MCU_ENTER_LOW_POWER_MODE == STD_ON))
+/**
+* @brief            Power management controller events.
+* @details          The various events triggered by the power management controller.
+*/
+typedef enum
+{
+    MCU_LAST_MILE_REGULATOR_DISABLED = 0x55U
+
+} Mcu_PowerManagementEventType;
+#endif
+
+#ifdef MCU_SLEEPONEXIT_SUPPORT
+  #if (MCU_SLEEPONEXIT_SUPPORT == STD_ON)
+typedef enum
+{
+    MCU_SLEEP_ON_EXIT_DISABLED = 0U,   /**< @brief Disable SLEEPONEXIT bit (default). */
+    MCU_SLEEP_ON_EXIT_ENABLED   /**< @brief Enable SLEEPONEXIT bit. */
+
+} Mcu_SleepOnExitType;
+  #endif
+#endif
+
+#if (MCU_SRAM_RETEN_CONFIG_API ==STD_ON)
+/**
+* @brief            Type of parameter value of the function Mcu_SRAMRetentionConfig.
+* @details          The type of Mcu_SRAMRetenConfigType is an enumeration with the following values:
+*                       MCU_SRAML_RETEN, MCU_SRAMU_RETEN, MCU_SRAMLU_RETEN, MCU_NO_SRAMLU_RETEN.
+*/
+typedef Power_Ip_SRAMRetenConfigType Mcu_SRAMRetenConfigType;
+#endif
+/*==================================================================================================
+                                           DEFINES AND MACROS
+==================================================================================================*/
+/**
+* @brief            This macro is used to define the position of the first reset reason.
+*
+*/
+#define MCU_FIRST_RESET_REASON_POS_U32      ((uint32)MCU_POWER_ON_RESET)
+
+/*==================================================================================================
+                                 GLOBAL VARIABLE DECLARATIONS
+==================================================================================================*/
+
+#if (MCU_DISABLE_DEM_REPORT_ERROR_STATUS == STD_OFF)
+#define MCU_START_SEC_VAR_CLEARED_UNSPECIFIED
+
+#include "Mcu_MemMap.h"
+
+/**
+* @brief            Local copy of the pointer to the configuration data
+*/
+extern const Mcu_DemConfigType * Mcu_pDemCfgPtr;
+
+#define MCU_STOP_SEC_VAR_CLEARED_UNSPECIFIED
+
+#include "Mcu_MemMap.h"
+
+
+#define MCU_START_SEC_CONFIG_DATA_UNSPECIFIED
+
+#include "Mcu_MemMap.h"
+
+extern const Mcu_DemConfigType Mcu_Dem_Config;
+
+#define MCU_STOP_SEC_CONFIG_DATA_UNSPECIFIED
+
+#include "Mcu_MemMap.h"
+#endif /* (MCU_DISABLE_DEM_REPORT_ERROR_STATUS == STD_OFF) */
+
+
+/*==================================================================================================
+*                                    FUNCTION PROTOTYPES
+==================================================================================================*/
+#define MCU_START_SEC_CODE
+
+#include "Mcu_MemMap.h"
+
+
+
+
+
+
+
+
+
+
+
+
+
+#define MCU_STOP_SEC_CODE
+
+#include "Mcu_MemMap.h"
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* #ifndef MCU_CFG_H */
+
+/** @} */

+ 117 - 117
generate/include/Mcu_VS_0_PBcfg.h

@@ -1,117 +1,117 @@
-/*==================================================================================================
-*   Project              : RTD AUTOSAR 4.4
-*   Platform             : CORTEXM
-*   Peripheral           : 
-*   Dependencies         : none
-*
-*   Autosar Version      : 4.4.0
-*   Autosar Revision     : ASR_REL_4_4_REV_0000
-*   Autosar Conf.Variant :
-*   SW Version           : 1.0.0
-*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
-*
-*   (c) Copyright 2020-2021 NXP Semiconductors
-*   All Rights Reserved.
-*
-*   NXP Confidential. This software is owned or controlled by NXP and may only be
-*   used strictly in accordance with the applicable license terms. By expressly
-*   accepting such terms or by downloading, installing, activating and/or otherwise
-*   using the software, you are agreeing that you have read, and that you agree to
-*   comply with and are bound by, such license terms. If you do not agree to be
-*   bound by the applicable license terms, then you may not retain, install,
-*   activate or otherwise use the software.
-==================================================================================================*/
-/**
-*   @file       Mcu_VS_0_PBcfg.h
-*   @implements Mcu_PBcfg.h_Artifact
-*   @version    1.0.0
-*
-*   @brief      AUTOSAR Mcu - Data structures for the Mcu driver.
-*   @details    Postbuild structure configurations for the driver initalization.
-*
-*   @addtogroup MCU
-*   @{
-*/
-
-
-#ifndef MCU_VS_0_PBCFG_H
-#define MCU_VS_0_PBCFG_H
-
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-
-
-/*==================================================================================================
-                                         INCLUDE FILES
- 1) system and project includes
- 2) needed interfaces from external units
- 3) internal and external interfaces from this unit
-==================================================================================================*/
-
-/*==================================================================================================
-                                SOURCE FILE VERSION INFORMATION
-==================================================================================================*/
-#define MCU_VS_0_PBCFG_VENDOR_ID                     43
-#define MCU_VS_0_PBCFG_AR_RELEASE_MAJOR_VERSION      4
-#define MCU_VS_0_PBCFG_AR_RELEASE_MINOR_VERSION      4
-#define MCU_VS_0_PBCFG_AR_RELEASE_REVISION_VERSION   0
-#define MCU_VS_0_PBCFG_SW_MAJOR_VERSION              1
-#define MCU_VS_0_PBCFG_SW_MINOR_VERSION              0
-#define MCU_VS_0_PBCFG_SW_PATCH_VERSION              0
-
-/*==================================================================================================
-                                      FILE VERSION CHECKS
-==================================================================================================*/
-
-
-/*==================================================================================================
-                          LOCAL TYPEDEFS (STRUCTURES, UNIONS, ENUMS)
-==================================================================================================*/
-
-/*==================================================================================================
-                                        LOCAL MACROS
-==================================================================================================*/
-
-/*==================================================================================================
-                                       LOCAL CONSTANTS
-==================================================================================================*/
-
-/*==================================================================================================
-                                       LOCAL VARIABLES
-==================================================================================================*/
-
-/*==================================================================================================
-                                       GLOBAL CONSTANTS
-==================================================================================================*/
-
-/*==================================================================================================
-                                       GLOBAL VARIABLES
-==================================================================================================*/
-
-
-
-/*==================================================================================================
-                                   LOCAL FUNCTION PROTOTYPES
-==================================================================================================*/
-
-/*==================================================================================================
-                                       LOCAL FUNCTIONS
-==================================================================================================*/
-
-/*==================================================================================================
-                                       GLOBAL FUNCTIONS
-==================================================================================================*/
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* #ifndef MCU_VS_0_PBCFG_H */
-
-/** @} */
-
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : 
+*   Dependencies         : none
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+/**
+*   @file       Mcu_VS_0_PBcfg.h
+*   @implements Mcu_PBcfg.h_Artifact
+*   @version    1.0.0
+*
+*   @brief      AUTOSAR Mcu - Data structures for the Mcu driver.
+*   @details    Postbuild structure configurations for the driver initalization.
+*
+*   @addtogroup MCU
+*   @{
+*/
+
+
+#ifndef MCU_VS_0_PBCFG_H
+#define MCU_VS_0_PBCFG_H
+
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+
+
+/*==================================================================================================
+                                         INCLUDE FILES
+ 1) system and project includes
+ 2) needed interfaces from external units
+ 3) internal and external interfaces from this unit
+==================================================================================================*/
+
+/*==================================================================================================
+                                SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+#define MCU_VS_0_PBCFG_VENDOR_ID                     43
+#define MCU_VS_0_PBCFG_AR_RELEASE_MAJOR_VERSION      4
+#define MCU_VS_0_PBCFG_AR_RELEASE_MINOR_VERSION      4
+#define MCU_VS_0_PBCFG_AR_RELEASE_REVISION_VERSION   0
+#define MCU_VS_0_PBCFG_SW_MAJOR_VERSION              1
+#define MCU_VS_0_PBCFG_SW_MINOR_VERSION              0
+#define MCU_VS_0_PBCFG_SW_PATCH_VERSION              0
+
+/*==================================================================================================
+                                      FILE VERSION CHECKS
+==================================================================================================*/
+
+
+/*==================================================================================================
+                          LOCAL TYPEDEFS (STRUCTURES, UNIONS, ENUMS)
+==================================================================================================*/
+
+/*==================================================================================================
+                                        LOCAL MACROS
+==================================================================================================*/
+
+/*==================================================================================================
+                                       LOCAL CONSTANTS
+==================================================================================================*/
+
+/*==================================================================================================
+                                       LOCAL VARIABLES
+==================================================================================================*/
+
+/*==================================================================================================
+                                       GLOBAL CONSTANTS
+==================================================================================================*/
+
+/*==================================================================================================
+                                       GLOBAL VARIABLES
+==================================================================================================*/
+
+
+
+/*==================================================================================================
+                                   LOCAL FUNCTION PROTOTYPES
+==================================================================================================*/
+
+/*==================================================================================================
+                                       LOCAL FUNCTIONS
+==================================================================================================*/
+
+/*==================================================================================================
+                                       GLOBAL FUNCTIONS
+==================================================================================================*/
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* #ifndef MCU_VS_0_PBCFG_H */
+
+/** @} */
+

+ 143 - 143
generate/include/OsIf_Cfg.h

@@ -1,143 +1,143 @@
-/*==================================================================================================
-* Project : RTD AUTOSAR 4.4
-* Platform : CORTEXM
-* Peripheral : S32K14X
-* Dependencies : none
-*
-* Autosar Version : 4.4.0
-* Autosar Revision : ASR_REL_4_4_REV_0000
-* Autosar Conf.Variant :
-* SW Version : 1.0.0
-* Build Version : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
-*
-* (c) Copyright 2020-2021 NXP Semiconductors
-* All Rights Reserved.
-*
-* NXP Confidential. This software is owned or controlled by NXP and may only be
-* used strictly in accordance with the applicable license terms. By expressly
-* accepting such terms or by downloading, installing, activating and/or otherwise
-* using the software, you are agreeing that you have read, and that you agree to
-* comply with and are bound by, such license terms. If you do not agree to be
-* bound by the applicable license terms, then you may not retain, install,
-* activate or otherwise use the software.
-==================================================================================================*/
-#ifndef OSIF_CFG_H
-#define OSIF_CFG_H
-
-/**
-*   @file
-*
-*   @addtogroup osif_drv
-*   @{
-*/
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-/*==================================================================================================
-*                                          INCLUDE FILES
-* 1) system and project includes
-* 2) needed interfaces from external units
-* 3) internal and external interfaces from this unit
-==================================================================================================*/
-#include "StandardTypes.h"
-#include "S32K146_SYSTICK.h"
-/*==================================================================================================
-*                                 SOURCE FILE VERSION INFORMATION
-==================================================================================================*/
-#define OSIF_CFG_VENDOR_ID                    43
-#define OSIF_CFG_AR_RELEASE_MAJOR_VERSION     4
-#define OSIF_CFG_AR_RELEASE_MINOR_VERSION     4
-#define OSIF_CFG_AR_RELEASE_REVISION_VERSION  0
-#define OSIF_CFG_SW_MAJOR_VERSION             1
-#define OSIF_CFG_SW_MINOR_VERSION             0
-#define OSIF_CFG_SW_PATCH_VERSION             0
-
-/*==================================================================================================
-*                                       FILE VERSION CHECKS
-==================================================================================================*/
-/* Checks against OsIf_Cfg.h */
-#ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
-    #if ((OSIF_CFG_AR_RELEASE_MAJOR_VERSION != STD_AR_RELEASE_MAJOR_VERSION) || \
-         (OSIF_CFG_AR_RELEASE_MINOR_VERSION != STD_AR_RELEASE_MINOR_VERSION))
-        #error "AutoSar Version Numbers of OsIf_Cfg.h and StandardTypes.h are different"
-    #endif
-#endif
-
-/*==================================================================================================
-*                                            CONSTANTS
-==================================================================================================*/
-/** @violates @ref Mcal_h_REF_2 unused macro. */
-#define MCAL_ARM_MARCH      (16)  /* for ARM M4 Thumb2      */
-/** @violates @ref Mcal_h_REF_2 unused macro. */
-#define MCAL_ARM_AARCH32    (32)  /* for ARM ARCH32         */
-/** @violates @ref Mcal_h_REF_2 unused macro. */
-#define MCAL_ARM_AARCH64    (64)  /* for ARM ARCH64         */
-/** @violates @ref Mcal_h_REF_2 unused macro. */
-#define MCAL_ARM_RARCH      (52)  /* for ARM R platform     */
-
-/*==================================================================================================
-*                                       DEFINES AND MACROS
-==================================================================================================*/
-
-/* ARM_MARCH - is used to specify the ARM architecture MCAL_MARCH, MCAL_RARCH, MCAL_AARCH32, MCAL_AARCH64 */
-#define MCAL_PLATFORM_ARM  MCAL_ARM_MARCH
-        
-    
-
- 
-/* General OSIF configuration */
-#define OSIF_MODULE_ID                   (255U)
-
-#define OSIF_DRIVER_INSTANCE             (0U)
-
-#define OSIF_ENABLE_USER_MODE_SUPPORT    (STD_OFF)
-
-#ifndef MCAL_ENABLE_USER_MODE_SUPPORT
-    #if (STD_ON == OSIF_ENABLE_USER_MODE_SUPPORT)
-        #error MCAL_ENABLE_USER_MODE_SUPPORT is not enabled. For running OsIf in user mode, MCAL_ENABLE_USER_MODE_SUPPORT needs to be defined.
-    #endif /* (STD_ON == OSIF_ENABLE_USER_MODE_SUPPORT */
-#endif /* ifndef MCAL_ENABLE_USER_MODE_SUPPORT */
-
-#define OSIF_ENABLE_MULTICORE_SUPPORT    (STD_OFF)
-
-#define OSIF_MAX_COREIDX_SUPPORTED       (1U)  
-
-#define OSIF_DEV_ERROR_DETECT            (STD_OFF)
-
-#define USING_OS_BAREMETAL
-
-#define OSIF_USE_SYSTEM_TIMER            (STD_ON)
-
-#define OSIF_USE_CUSTOM_TIMER            (STD_OFF)
-
-/* Autosar OS Specific */
-
-
-/* Baremetal Specific */
-#define OSIF_USE_SYSTICK                 (STD_ON)
-
-
-/*==================================================================================================
-*                                              ENUMS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                  STRUCTURES AND OTHER TYPEDEFS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                  GLOBAL VARIABLE DECLARATIONS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                       FUNCTION PROTOTYPES
-==================================================================================================*/
-
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */   
-#endif /* OSIF_CFG_H */
-/** @} */
+/*==================================================================================================
+* Project : RTD AUTOSAR 4.4
+* Platform : CORTEXM
+* Peripheral : S32K14X
+* Dependencies : none
+*
+* Autosar Version : 4.4.0
+* Autosar Revision : ASR_REL_4_4_REV_0000
+* Autosar Conf.Variant :
+* SW Version : 1.0.0
+* Build Version : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
+*
+* (c) Copyright 2020-2021 NXP Semiconductors
+* All Rights Reserved.
+*
+* NXP Confidential. This software is owned or controlled by NXP and may only be
+* used strictly in accordance with the applicable license terms. By expressly
+* accepting such terms or by downloading, installing, activating and/or otherwise
+* using the software, you are agreeing that you have read, and that you agree to
+* comply with and are bound by, such license terms. If you do not agree to be
+* bound by the applicable license terms, then you may not retain, install,
+* activate or otherwise use the software.
+==================================================================================================*/
+#ifndef OSIF_CFG_H
+#define OSIF_CFG_H
+
+/**
+*   @file
+*
+*   @addtogroup osif_drv
+*   @{
+*/
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+/*==================================================================================================
+*                                          INCLUDE FILES
+* 1) system and project includes
+* 2) needed interfaces from external units
+* 3) internal and external interfaces from this unit
+==================================================================================================*/
+#include "StandardTypes.h"
+#include "S32K146_SYSTICK.h"
+/*==================================================================================================
+*                                 SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+#define OSIF_CFG_VENDOR_ID                    43
+#define OSIF_CFG_AR_RELEASE_MAJOR_VERSION     4
+#define OSIF_CFG_AR_RELEASE_MINOR_VERSION     4
+#define OSIF_CFG_AR_RELEASE_REVISION_VERSION  0
+#define OSIF_CFG_SW_MAJOR_VERSION             1
+#define OSIF_CFG_SW_MINOR_VERSION             0
+#define OSIF_CFG_SW_PATCH_VERSION             0
+
+/*==================================================================================================
+*                                       FILE VERSION CHECKS
+==================================================================================================*/
+/* Checks against OsIf_Cfg.h */
+#ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
+    #if ((OSIF_CFG_AR_RELEASE_MAJOR_VERSION != STD_AR_RELEASE_MAJOR_VERSION) || \
+         (OSIF_CFG_AR_RELEASE_MINOR_VERSION != STD_AR_RELEASE_MINOR_VERSION))
+        #error "AutoSar Version Numbers of OsIf_Cfg.h and StandardTypes.h are different"
+    #endif
+#endif
+
+/*==================================================================================================
+*                                            CONSTANTS
+==================================================================================================*/
+/** @violates @ref Mcal_h_REF_2 unused macro. */
+#define MCAL_ARM_MARCH      (16)  /* for ARM M4 Thumb2      */
+/** @violates @ref Mcal_h_REF_2 unused macro. */
+#define MCAL_ARM_AARCH32    (32)  /* for ARM ARCH32         */
+/** @violates @ref Mcal_h_REF_2 unused macro. */
+#define MCAL_ARM_AARCH64    (64)  /* for ARM ARCH64         */
+/** @violates @ref Mcal_h_REF_2 unused macro. */
+#define MCAL_ARM_RARCH      (52)  /* for ARM R platform     */
+
+/*==================================================================================================
+*                                       DEFINES AND MACROS
+==================================================================================================*/
+
+/* ARM_MARCH - is used to specify the ARM architecture MCAL_MARCH, MCAL_RARCH, MCAL_AARCH32, MCAL_AARCH64 */
+#define MCAL_PLATFORM_ARM  MCAL_ARM_MARCH
+        
+    
+
+ 
+/* General OSIF configuration */
+#define OSIF_MODULE_ID                   (255U)
+
+#define OSIF_DRIVER_INSTANCE             (0U)
+
+#define OSIF_ENABLE_USER_MODE_SUPPORT    (STD_OFF)
+
+#ifndef MCAL_ENABLE_USER_MODE_SUPPORT
+    #if (STD_ON == OSIF_ENABLE_USER_MODE_SUPPORT)
+        #error MCAL_ENABLE_USER_MODE_SUPPORT is not enabled. For running OsIf in user mode, MCAL_ENABLE_USER_MODE_SUPPORT needs to be defined.
+    #endif /* (STD_ON == OSIF_ENABLE_USER_MODE_SUPPORT */
+#endif /* ifndef MCAL_ENABLE_USER_MODE_SUPPORT */
+
+#define OSIF_ENABLE_MULTICORE_SUPPORT    (STD_OFF)
+
+#define OSIF_MAX_COREIDX_SUPPORTED       (1U)  
+
+#define OSIF_DEV_ERROR_DETECT            (STD_OFF)
+
+#define USING_OS_BAREMETAL
+
+#define OSIF_USE_SYSTEM_TIMER            (STD_ON)
+
+#define OSIF_USE_CUSTOM_TIMER            (STD_OFF)
+
+/* Autosar OS Specific */
+
+
+/* Baremetal Specific */
+#define OSIF_USE_SYSTICK                 (STD_ON)
+
+
+/*==================================================================================================
+*                                              ENUMS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                  STRUCTURES AND OTHER TYPEDEFS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                  GLOBAL VARIABLE DECLARATIONS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                       FUNCTION PROTOTYPES
+==================================================================================================*/
+
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */   
+#endif /* OSIF_CFG_H */
+/** @} */

+ 125 - 125
generate/include/Os_cfg.h

@@ -1,125 +1,125 @@
-/**
-*   @file    Os_cfg.h
-*   @version 1.0.0
-*
-*   @brief   AUTOSAR Os - Project configuration.
-*   @details Header file describing all Autosar MCAL Os_cfg present in the current project.
-*
-*   @addtogroup BASE_COMPONENT
-*   @{
-*/
-/*==================================================================================================
-*   Project              : RTD AUTOSAR 4.4
-*   Platform             : CORTEXM
-*   Peripheral           : generic
-*   Dependencies         : 
-*
-*   Autosar Version      : 4.4.0
-*   Autosar Revision     : ASR_REL_4_4_REV_0000
-*   Autosar Conf.Variant :
-*   SW Version           : 1.0.0
-*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
-*
-*   (c) Copyright 2020-2021 NXP Semiconductors
-*   All Rights Reserved.
-==================================================================================================*/
-/*==================================================================================================
-==================================================================================================*/
-/**
-* @file        Os_cfg.h
-*/
-/** 
-* @page misra_violations MISRA-C:2004 violations
-*
-* @section [global]
-*          Violates MISRA 2004 Required Rule 5.1, Identifiers (internal and external) shall not rely 
-*          on the significance of more than 31 characters. The used compilers use more than 31 chars for
-*          identifiers.
-*/
-
-#ifndef OS_CFG_H
-#define OS_CFG_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*==================================================================================================
-*                                         INCLUDE FILES
-* 1) system and project includes
-* 2) needed interfaces from external units
-* 3) internal and external interfaces from this unit
-==================================================================================================*/
-/** 
-* @file        Os_cfg.h
-* @brief Include Standard types & defines
-*/
-#include "Std_Types.h"
-
-/*==================================================================================================
-*                               SOURCE FILE VERSION INFORMATION
-==================================================================================================*/
-
-/** 
-@{
-* @brief Parameters that shall be published within the Os_cfg header file.
-*       The integration of incompatible files shall be avoided.
-*/
-#define OS_CFG_VENDOR_ID                       43
-#define OS_CFG_MODULE_ID                       0x01
-#define OS_CFG_AR_RELEASE_MAJOR_VERSION_H      4
-#define OS_CFG_AR_RELEASE_MINOR_VERSION_H      4
-#define OS_CFG_AR_RELEASE_REVISION_VERSION_H   0
-#define OS_CFG_SW_MAJOR_VERSION_H              1
-#define OS_CFG_SW_MINOR_VERSION_H              0
-#define OS_CFG_SW_PATCH_VERSION_H              0
-/**@}*/
-/*==================================================================================================
-*                                      FILE VERSION CHECKS
-==================================================================================================*/
-#ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
-    /* Check if source file and Std_Types.h header file are of the same Autosar version */
-    #if ((OS_CFG_AR_RELEASE_MAJOR_VERSION_H != STD_AR_RELEASE_MAJOR_VERSION) || \
-         (OS_CFG_AR_RELEASE_MINOR_VERSION_H != STD_AR_RELEASE_MINOR_VERSION))
-        #error "AutoSar Version Numbers of Os_cfg.h and Std_Types.h are different"
-    #endif
-#endif
-
-/*==================================================================================================
-*                                           CONSTANTS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                       DEFINES AND MACROS
-==================================================================================================*/
-    #define OsCounter_0   0
-    #define OS_TICKS2NS_OsCounter_0(x) 10000U 
-    #define OS_TICKS2US_OsCounter_0(x) 10U 
-
-
-/*==================================================================================================
-*                                             ENUMS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                 STRUCTURES AND OTHER TYPEDEFS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                 GLOBAL VARIABLE DECLARATIONS
-==================================================================================================*/
-
-/*==================================================================================================
-*                                     FUNCTION PROTOTYPES
-==================================================================================================*/
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* OS_CFG_H */
-
-/** @} */
-
-
+/**
+*   @file    Os_cfg.h
+*   @version 1.0.0
+*
+*   @brief   AUTOSAR Os - Project configuration.
+*   @details Header file describing all Autosar MCAL Os_cfg present in the current project.
+*
+*   @addtogroup BASE_COMPONENT
+*   @{
+*/
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : generic
+*   Dependencies         : 
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+==================================================================================================*/
+/*==================================================================================================
+==================================================================================================*/
+/**
+* @file        Os_cfg.h
+*/
+/** 
+* @page misra_violations MISRA-C:2004 violations
+*
+* @section [global]
+*          Violates MISRA 2004 Required Rule 5.1, Identifiers (internal and external) shall not rely 
+*          on the significance of more than 31 characters. The used compilers use more than 31 chars for
+*          identifiers.
+*/
+
+#ifndef OS_CFG_H
+#define OS_CFG_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*==================================================================================================
+*                                         INCLUDE FILES
+* 1) system and project includes
+* 2) needed interfaces from external units
+* 3) internal and external interfaces from this unit
+==================================================================================================*/
+/** 
+* @file        Os_cfg.h
+* @brief Include Standard types & defines
+*/
+#include "Std_Types.h"
+
+/*==================================================================================================
+*                               SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+
+/** 
+@{
+* @brief Parameters that shall be published within the Os_cfg header file.
+*       The integration of incompatible files shall be avoided.
+*/
+#define OS_CFG_VENDOR_ID                       43
+#define OS_CFG_MODULE_ID                       0x01
+#define OS_CFG_AR_RELEASE_MAJOR_VERSION_H      4
+#define OS_CFG_AR_RELEASE_MINOR_VERSION_H      4
+#define OS_CFG_AR_RELEASE_REVISION_VERSION_H   0
+#define OS_CFG_SW_MAJOR_VERSION_H              1
+#define OS_CFG_SW_MINOR_VERSION_H              0
+#define OS_CFG_SW_PATCH_VERSION_H              0
+/**@}*/
+/*==================================================================================================
+*                                      FILE VERSION CHECKS
+==================================================================================================*/
+#ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
+    /* Check if source file and Std_Types.h header file are of the same Autosar version */
+    #if ((OS_CFG_AR_RELEASE_MAJOR_VERSION_H != STD_AR_RELEASE_MAJOR_VERSION) || \
+         (OS_CFG_AR_RELEASE_MINOR_VERSION_H != STD_AR_RELEASE_MINOR_VERSION))
+        #error "AutoSar Version Numbers of Os_cfg.h and Std_Types.h are different"
+    #endif
+#endif
+
+/*==================================================================================================
+*                                           CONSTANTS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                       DEFINES AND MACROS
+==================================================================================================*/
+    #define OsCounter_0   0
+    #define OS_TICKS2NS_OsCounter_0(x) 10000U 
+    #define OS_TICKS2US_OsCounter_0(x) 10U 
+
+
+/*==================================================================================================
+*                                             ENUMS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                 STRUCTURES AND OTHER TYPEDEFS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                 GLOBAL VARIABLE DECLARATIONS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                     FUNCTION PROTOTYPES
+==================================================================================================*/
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* OS_CFG_H */
+
+/** @} */
+
+

+ 140 - 0
generate/include/Pdb_Adc_Ip_Cfg.h

@@ -0,0 +1,140 @@
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : ADC
+*   Dependencies         : none
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+
+#ifndef PDB_ADC_IP_CFG_H
+#define PDB_ADC_IP_CFG_H
+
+/**
+*   @file
+*
+*   @addtogroup pdb_adc_ip_config Pdb Adc IPL Configuration
+*   @{
+*/
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+/*==================================================================================================
+*                                        INCLUDE FILES
+* 1) system and project includes
+* 2) needed interfaces from external units
+* 3) internal and external interfaces from this unit
+==================================================================================================*/
+#include "Pdb_Adc_Ip_Types.h"
+#include "Pdb_Adc_Ip_VS_0_PBcfg.h"
+
+/*==================================================================================================
+*                              SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+
+#define PDB_ADC_IP_VENDOR_ID_CFG_H                      43
+#define PDB_ADC_IP_AR_RELEASE_MAJOR_VERSION_CFG_H       4
+#define PDB_ADC_IP_AR_RELEASE_MINOR_VERSION_CFG_H       4
+#define PDB_ADC_IP_AR_RELEASE_REVISION_VERSION_CFG_H    0
+#define PDB_ADC_IP_SW_MAJOR_VERSION_CFG_H               1
+#define PDB_ADC_IP_SW_MINOR_VERSION_CFG_H               0
+#define PDB_ADC_IP_SW_PATCH_VERSION_CFG_H               0
+
+/*==================================================================================================
+*                                     FILE VERSION CHECKS
+==================================================================================================*/
+/* Check if Pdb_Adc_Ip_Cfg.h file and Pdb_Adc_Ip_Types.h file are of the same vendor */
+#if (PDB_ADC_IP_VENDOR_ID_CFG_H != PDB_ADC_IP_VENDOR_ID_TYPES_H)
+    #error "Pdb_Adc_Ip_Cfg.h and Pdb_Adc_Ip_Types.h have different vendor ids"
+#endif
+
+/* Check if Pdb_Adc_Ip_Cfg.h file and Pdb_Adc_Ip_Types.h file are of the same Autosar version */
+#if ((PDB_ADC_IP_AR_RELEASE_MAJOR_VERSION_CFG_H != PDB_ADC_IP_AR_RELEASE_MAJOR_VERSION_TYPES_H) || \
+     (PDB_ADC_IP_AR_RELEASE_MINOR_VERSION_CFG_H != PDB_ADC_IP_AR_RELEASE_MINOR_VERSION_TYPES_H) || \
+     (PDB_ADC_IP_AR_RELEASE_REVISION_VERSION_CFG_H != PDB_ADC_IP_AR_RELEASE_REVISION_VERSION_TYPES_H) \
+    )
+    #error "AutoSar Version Numbers of Pdb_Adc_Ip_Cfg.h and Pdb_Adc_Ip_Types.h are different"
+#endif
+
+/* Check if Pdb_Adc_Ip_Cfg.h file and Pdb_Adc_Ip_Types.h file are of the same Software version */
+#if ((PDB_ADC_IP_SW_MAJOR_VERSION_CFG_H != PDB_ADC_IP_SW_MAJOR_VERSION_TYPES_H) || \
+     (PDB_ADC_IP_SW_MINOR_VERSION_CFG_H != PDB_ADC_IP_SW_MINOR_VERSION_TYPES_H) || \
+     (PDB_ADC_IP_SW_PATCH_VERSION_CFG_H != PDB_ADC_IP_SW_PATCH_VERSION_TYPES_H) \
+    )
+  #error "Software Version Numbers of Pdb_Adc_Ip_Cfg.h and Pdb_Adc_Ip_Types.h are different"
+#endif
+
+/* Check if Pdb_Adc_Ip_Cfg.h file and Pdb_Adc_Ip_VS_0_PBcfg.h file are of the same vendor */
+#if (PDB_ADC_IP_VENDOR_ID_CFG_H != PDB_ADC_IP_VENDOR_ID_VS_0_PBCFG_H)
+    #error "Pdb_Adc_Ip_Cfg.h and Pdb_Adc_Ip_VS_0_PBcfg.h have different vendor ids"
+#endif
+
+/* Check if Pdb_Adc_Ip_Cfg.h file and Pdb_Adc_Ip_VS_0_PBcfg.h file are of the same Autosar version */
+#if ((PDB_ADC_IP_AR_RELEASE_MAJOR_VERSION_CFG_H != PDB_ADC_IP_AR_RELEASE_MAJOR_VERSION_VS_0_PBCFG_H) || \
+     (PDB_ADC_IP_AR_RELEASE_MINOR_VERSION_CFG_H != PDB_ADC_IP_AR_RELEASE_MINOR_VERSION_VS_0_PBCFG_H) || \
+     (PDB_ADC_IP_AR_RELEASE_REVISION_VERSION_CFG_H != PDB_ADC_IP_AR_RELEASE_REVISION_VERSION_VS_0_PBCFG_H) \
+    )
+    #error "AutoSar Version Numbers of Pdb_Adc_Ip_Cfg.h and Pdb_Adc_Ip_VS_0_PBcfg.h are different"
+#endif
+
+/* Check if Pdb_Adc_Ip_Cfg.h file and Pdb_Adc_Ip_VS_0_PBcfg.h file are of the same Software version */
+#if ((PDB_ADC_IP_SW_MAJOR_VERSION_CFG_H != PDB_ADC_IP_SW_MAJOR_VERSION_VS_0_PBCFG_H) || \
+     (PDB_ADC_IP_SW_MINOR_VERSION_CFG_H != PDB_ADC_IP_SW_MINOR_VERSION_VS_0_PBCFG_H) || \
+     (PDB_ADC_IP_SW_PATCH_VERSION_CFG_H != PDB_ADC_IP_SW_PATCH_VERSION_VS_0_PBCFG_H) \
+    )
+  #error "Software Version Numbers of Pdb_Adc_Ip_Cfg.h and Pdb_Adc_Ip_VS_0_PBcfg.h are different"
+#endif
+
+/*==================================================================================================
+*                                          CONSTANTS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                      DEFINES AND MACROS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                             ENUMS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                STRUCTURES AND OTHER TYPEDEFS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                GLOBAL VARIABLE DECLARATIONS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                      LOCAL CONSTANTS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                    FUNCTION PROTOTYPES
+==================================================================================================*/
+
+#ifdef __cplusplus
+}
+#endif
+
+/** @} */
+
+#endif /* PDB_ADC_IP_CFG_H */
+

+ 122 - 0
generate/include/Pdb_Adc_Ip_CfgDefines.h

@@ -0,0 +1,122 @@
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : ADC
+*   Dependencies         : none
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+
+#ifndef PDB_ADC_IP_CFGDEFINES_H
+#define PDB_ADC_IP_CFGDEFINES_H
+
+/**
+*   @file
+*
+*   @addtogroup pdb_adc_ip_config Pdb Adc IPL Configuration
+*   @{
+*/
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+/*==================================================================================================
+*                                         INCLUDE FILES
+* 1) system and project includes
+* 2) needed interfaces from external units
+* 3) internal and external interfaces from this unit
+==================================================================================================*/
+#include "S32K146_PDB.h"
+#include "S32K146_SIM.h"
+#include "OsIf.h"
+
+/*==================================================================================================
+*                                SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+#define PDB_ADC_IP_VENDOR_ID_CFGDEFINES_H                      43
+#define PDB_ADC_IP_AR_RELEASE_MAJOR_VERSION_CFGDEFINES_H       4
+#define PDB_ADC_IP_AR_RELEASE_MINOR_VERSION_CFGDEFINES_H       4
+#define PDB_ADC_IP_AR_RELEASE_REVISION_VERSION_CFGDEFINES_H    0
+#define PDB_ADC_IP_SW_MAJOR_VERSION_CFGDEFINES_H               1
+#define PDB_ADC_IP_SW_MINOR_VERSION_CFGDEFINES_H               0
+#define PDB_ADC_IP_SW_PATCH_VERSION_CFGDEFINES_H               0
+/*==================================================================================================
+*                                      FILE VERSION CHECKS
+==================================================================================================*/
+#ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
+/* Check AutoSar version */
+#if ((PDB_ADC_IP_AR_RELEASE_MAJOR_VERSION_CFGDEFINES_H != OSIF_AR_RELEASE_MAJOR_VERSION) || \
+     (PDB_ADC_IP_AR_RELEASE_MINOR_VERSION_CFGDEFINES_H != OSIF_AR_RELEASE_MINOR_VERSION)    \
+    )
+    #error "AutoSar Version Numbers of Pdb_Adc_Ip_CfgDefines.h and OsIf.h are different"
+#endif
+#endif /* DISABLE_MCAL_INTERMODULE_ASR_CHECK */
+/*==================================================================================================
+*                          LOCAL TYPEDEFS (STRUCTURES, UNIONS, ENUMS)
+==================================================================================================*/
+
+/*==================================================================================================
+*                                        LOCAL MACROS
+==================================================================================================*/
+
+/* @brief PDB has instance back to back mode between PDB0 CH0 and PDB1 CH0 pre-triggers */
+#define FEATURE_PDB_HAS_INSTANCE_BACKTOBACK     (STD_OFF)
+
+/* @brief PDB has inter-channel back to back mode between PDBx CH0 and PDBx CH1 pre-triggers */
+#define FEATURE_PDB_HAS_INTERCHANNEL_BACKTOBACK (STD_OFF)
+
+#define PDB_ADC_IP_DEV_ERROR_DETECT             (STD_OFF)
+#define PDB_ADC_IP_ENABLE_USER_MODE_SUPPORT     (STD_OFF)
+
+/*==================================================================================================
+*                                       LOCAL CONSTANTS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                       LOCAL VARIABLES
+==================================================================================================*/
+
+/*==================================================================================================
+*                                       GLOBAL CONSTANTS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                       GLOBAL VARIABLES
+==================================================================================================*/
+
+/*==================================================================================================
+*                                   LOCAL FUNCTION PROTOTYPES
+==================================================================================================*/
+
+/*==================================================================================================
+*                                       LOCAL FUNCTIONS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                       GLOBAL FUNCTIONS
+==================================================================================================*/
+
+#ifdef __cplusplus
+}
+#endif
+
+/** @} */
+
+#endif /* PDB_ADC_IP_CFGDEFINES_H */
+

+ 118 - 0
generate/include/Pdb_Adc_Ip_VS_0_PBcfg.h

@@ -0,0 +1,118 @@
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : ADC
+*   Dependencies         : none
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+
+#ifndef PDB_ADC_IP_VS_0_PBCFG_H
+#define PDB_ADC_IP_VS_0_PBCFG_H
+
+/**
+*   @file
+*
+*   @addtogroup pdb_adc_ip_config Pdb Adc IPL Configuration
+*   @{
+*/
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+/*==================================================================================================
+*                                        INCLUDE FILES
+* 1) system and project includes
+* 2) needed interfaces from external units
+* 3) internal and external interfaces from this unit
+==================================================================================================*/
+#include "Pdb_Adc_Ip_Types.h"
+
+/*==================================================================================================
+*                              SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+#define PDB_ADC_IP_VENDOR_ID_VS_0_PBCFG_H                     43
+#define PDB_ADC_IP_AR_RELEASE_MAJOR_VERSION_VS_0_PBCFG_H      4
+#define PDB_ADC_IP_AR_RELEASE_MINOR_VERSION_VS_0_PBCFG_H      4
+#define PDB_ADC_IP_AR_RELEASE_REVISION_VERSION_VS_0_PBCFG_H   0
+#define PDB_ADC_IP_SW_MAJOR_VERSION_VS_0_PBCFG_H              1
+#define PDB_ADC_IP_SW_MINOR_VERSION_VS_0_PBCFG_H              0
+#define PDB_ADC_IP_SW_PATCH_VERSION_VS_0_PBCFG_H              0
+
+/*==================================================================================================
+*                                     FILE VERSION CHECKS
+==================================================================================================*/
+/* Check if Pdb_Adc_Ip_VS_0_PBcfg.h file and Pdb_Adc_Ip_Types.h file are of the same vendor */
+#if (PDB_ADC_IP_VENDOR_ID_VS_0_PBCFG_H != PDB_ADC_IP_VENDOR_ID_TYPES_H)
+    #error "Pdb_Adc_Ip_VS_0_PBcfg.h and Pdb_Adc_Ip_Types.h have different vendor ids"
+#endif
+
+/* Check if Pdb_Adc_Ip_VS_0_PBcfg.h file and Pdb_Adc_Ip_Types.h file are of the same Autosar version */
+#if ((PDB_ADC_IP_AR_RELEASE_MAJOR_VERSION_VS_0_PBCFG_H != PDB_ADC_IP_AR_RELEASE_MAJOR_VERSION_TYPES_H) || \
+     (PDB_ADC_IP_AR_RELEASE_MINOR_VERSION_VS_0_PBCFG_H != PDB_ADC_IP_AR_RELEASE_MINOR_VERSION_TYPES_H) || \
+     (PDB_ADC_IP_AR_RELEASE_REVISION_VERSION_VS_0_PBCFG_H != PDB_ADC_IP_AR_RELEASE_REVISION_VERSION_TYPES_H) \
+    )
+    #error "AutoSar Version Numbers of Pdb_Adc_Ip_VS_0_PBcfg.h and Pdb_Adc_Ip_Types.h are different"
+#endif
+
+/* Check if Pdb_Adc_Ip_VS_0_PBcfg.h file and Pdb_Adc_Ip_Types.h file are of the same Software version */
+#if ((PDB_ADC_IP_SW_MAJOR_VERSION_VS_0_PBCFG_H != PDB_ADC_IP_SW_MAJOR_VERSION_TYPES_H) || \
+     (PDB_ADC_IP_SW_MINOR_VERSION_VS_0_PBCFG_H != PDB_ADC_IP_SW_MINOR_VERSION_TYPES_H) || \
+     (PDB_ADC_IP_SW_PATCH_VERSION_VS_0_PBCFG_H != PDB_ADC_IP_SW_PATCH_VERSION_TYPES_H) \
+    )
+  #error "Software Version Numbers of Pdb_Adc_Ip_VS_0_PBcfg.h and Pdb_Adc_Ip_Types.h are different"
+#endif
+
+/*==================================================================================================
+*                                      DEFINES AND MACROS
+==================================================================================================*/
+
+/*==================================================================================================
+*                                      EXTERN DECLARATIONS
+==================================================================================================*/
+#define ADC_START_SEC_CODE
+#include "Adc_MemMap.h"
+
+
+#define ADC_STOP_SEC_CODE
+#include "Adc_MemMap.h"
+/*==================================================================================================
+*                                          CONSTANTS
+==================================================================================================*/
+#define ADC_START_SEC_CONFIG_DATA_UNSPECIFIED
+#include "Adc_MemMap.h"
+
+/**
+* @brief          PDB Ip Config for Hardware Unit ADC1 for configuration variant VS_0.
+*/
+extern const Pdb_Adc_Ip_ConfigType PdbAdcIpConfig_0_VS_0;
+
+
+
+#define ADC_STOP_SEC_CONFIG_DATA_UNSPECIFIED
+#include "Adc_MemMap.h"
+
+#ifdef __cplusplus
+}
+#endif
+
+/** @} */
+
+#endif /* PDB_ADC_IP_VS_0_PBCFG_H */
+

+ 113 - 113
generate/include/Platform_Cfg.h

@@ -1,113 +1,113 @@
-/*==================================================================================================
-*   Project              : RTD AUTOSAR 4.4
-*   Platform             : CORTEXM
-*   Peripheral           : 
-*   Dependencies         : none
-*
-*   Autosar Version      : 4.4.0
-*   Autosar Revision     : ASR_REL_4_4_REV_0000
-*   Autosar Conf.Variant :
-*   SW Version           : 1.0.0
-*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
-*
-*   (c) Copyright 2020-2021 NXP Semiconductors
-*   All Rights Reserved.
-*
-*   NXP Confidential. This software is owned or controlled by NXP and may only be
-*   used strictly in accordance with the applicable license terms. By expressly
-*   accepting such terms or by downloading, installing, activating and/or otherwise
-*   using the software, you are agreeing that you have read, and that you agree to
-*   comply with and are bound by, such license terms. If you do not agree to be
-*   bound by the applicable license terms, then you may not retain, install,
-*   activate or otherwise use the software.
-==================================================================================================*/
-
-#ifndef PLATFORM_CFG_H_
-#define PLATFORM_CFG_H_
-
-/*==================================================================================================
-                                         INCLUDE FILES
-==================================================================================================*/
-#include "Platform_TypesDef.h"
-#include "Platform_CfgDefines.h"
-
-/*==================================================================================================
-*                              SOURCE FILE VERSION INFORMATION
-==================================================================================================*/
-#define PLATFORM_CFG_VENDOR_ID                     43
-#define PLATFORM_CFG_AR_RELEASE_MAJOR_VERSION      4
-#define PLATFORM_CFG_AR_RELEASE_MINOR_VERSION      4
-#define PLATFORM_CFG_AR_RELEASE_REVISION_VERSION   0
-#define PLATFORM_CFG_SW_MAJOR_VERSION              1
-#define PLATFORM_CFG_SW_MINOR_VERSION              0
-#define PLATFORM_CFG_SW_PATCH_VERSION              0
-
-/*==================================================================================================
-*                                     FILE VERSION CHECKS
-==================================================================================================*/
-/* Check if current file and Platform_TypesDef header file are of the same vendor */
-#if (PLATFORM_CFG_VENDOR_ID != PLATFORM_TYPESDEF_VENDOR_ID)
-    #error "Platform_Cfg.h and Platform_TypesDef.h have different vendor ids"
-#endif
-/* Check if current file and Platform_TypesDef header file are of the same Autosar version */
-#if ((PLATFORM_CFG_AR_RELEASE_MAJOR_VERSION    != PLATFORM_TYPESDEF_AR_RELEASE_MAJOR_VERSION) || \
-     (PLATFORM_CFG_AR_RELEASE_MINOR_VERSION    != PLATFORM_TYPESDEF_AR_RELEASE_MINOR_VERSION) || \
-     (PLATFORM_CFG_AR_RELEASE_REVISION_VERSION != PLATFORM_TYPESDEF_AR_RELEASE_REVISION_VERSION) \
-    )
-    #error "AutoSar Version Numbers of Platform_Cfg.h and Platform_TypesDef.h are different"
-#endif
-/* Check if current file and Platform_TypesDef header file are of the same Software version */
-#if ((PLATFORM_CFG_SW_MAJOR_VERSION != PLATFORM_TYPESDEF_SW_MAJOR_VERSION) || \
-     (PLATFORM_CFG_SW_MINOR_VERSION != PLATFORM_TYPESDEF_SW_MINOR_VERSION) || \
-     (PLATFORM_CFG_SW_PATCH_VERSION != PLATFORM_TYPESDEF_SW_PATCH_VERSION) \
-    )
-    #error "Software Version Numbers of Platform_Cfg.h and Platform_TypesDef.h are different"
-#endif
-
-/* Check if current file and Platform_CfgDefines header file are of the same vendor */
-#if (PLATFORM_CFG_VENDOR_ID != PLATFORM_CFGDEFINES_VENDOR_ID)
-    #error "Platform_Cfg.h and Platform_CfgDefines.h have diPlatform_CfgDefinesfferent vendor ids"
-#endif
-/* Check if current file and Platform_CfgDefines header file are of the same Autosar version */
-#if ((PLATFORM_CFG_AR_RELEASE_MAJOR_VERSION    != PLATFORM_CFGDEFINES_AR_RELEASE_MAJOR_VERSION) || \
-     (PLATFORM_CFG_AR_RELEASE_MINOR_VERSION    != PLATFORM_CFGDEFINES_AR_RELEASE_MINOR_VERSION) || \
-     (PLATFORM_CFG_AR_RELEASE_REVISION_VERSION != PLATFORM_CFGDEFINES_AR_RELEASE_REVISION_VERSION) \
-    )
-    #error "AutoSar Version Numbers of Platform_Cfg.h and Platform_CfgDefines.h are different"
-#endif
-/* Check if current file and Platform_CfgDefines header file are of the same Software version */
-#if ((PLATFORM_CFG_SW_MAJOR_VERSION != PLATFORM_CFGDEFINES_SW_MAJOR_VERSION) || \
-     (PLATFORM_CFG_SW_MINOR_VERSION != PLATFORM_CFGDEFINES_SW_MINOR_VERSION) || \
-     (PLATFORM_CFG_SW_PATCH_VERSION != PLATFORM_CFGDEFINES_SW_PATCH_VERSION) \
-    )
-    #error "Software Version Numbers of Platform_Cfg.h and Platform_CfgDefines.h are different"
-#endif
-
-
-
-/*==================================================================================================
-                                      FILE VERSION CHECKS
-==================================================================================================*/
-
-/* TBD */
-
-
-/*==================================================================================================
-                                       GLOBAL VARIABLES
-==================================================================================================*/
-
-
-
-/*==================================================================================================
-                                       DEFINES AND MACROS
-==================================================================================================*/
-#define PLATFORM_START_SEC_CONFIG_DATA_UNSPECIFIED
-#include "Platform_MemMap.h"
-
-
-
-
-#define PLATFORM_STOP_SEC_CONFIG_DATA_UNSPECIFIED
-#include "Platform_MemMap.h"
-#endif /* PLATFORM_CFG_H_ */
-
+/*==================================================================================================
+*   Project              : RTD AUTOSAR 4.4
+*   Platform             : CORTEXM
+*   Peripheral           : 
+*   Dependencies         : none
+*
+*   Autosar Version      : 4.4.0
+*   Autosar Revision     : ASR_REL_4_4_REV_0000
+*   Autosar Conf.Variant :
+*   SW Version           : 1.0.0
+*   Build Version        : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
+*
+*   (c) Copyright 2020-2021 NXP Semiconductors
+*   All Rights Reserved.
+*
+*   NXP Confidential. This software is owned or controlled by NXP and may only be
+*   used strictly in accordance with the applicable license terms. By expressly
+*   accepting such terms or by downloading, installing, activating and/or otherwise
+*   using the software, you are agreeing that you have read, and that you agree to
+*   comply with and are bound by, such license terms. If you do not agree to be
+*   bound by the applicable license terms, then you may not retain, install,
+*   activate or otherwise use the software.
+==================================================================================================*/
+
+#ifndef PLATFORM_CFG_H_
+#define PLATFORM_CFG_H_
+
+/*==================================================================================================
+                                         INCLUDE FILES
+==================================================================================================*/
+#include "Platform_TypesDef.h"
+#include "Platform_CfgDefines.h"
+
+/*==================================================================================================
+*                              SOURCE FILE VERSION INFORMATION
+==================================================================================================*/
+#define PLATFORM_CFG_VENDOR_ID                     43
+#define PLATFORM_CFG_AR_RELEASE_MAJOR_VERSION      4
+#define PLATFORM_CFG_AR_RELEASE_MINOR_VERSION      4
+#define PLATFORM_CFG_AR_RELEASE_REVISION_VERSION   0
+#define PLATFORM_CFG_SW_MAJOR_VERSION              1
+#define PLATFORM_CFG_SW_MINOR_VERSION              0
+#define PLATFORM_CFG_SW_PATCH_VERSION              0
+
+/*==================================================================================================
+*                                     FILE VERSION CHECKS
+==================================================================================================*/
+/* Check if current file and Platform_TypesDef header file are of the same vendor */
+#if (PLATFORM_CFG_VENDOR_ID != PLATFORM_TYPESDEF_VENDOR_ID)
+    #error "Platform_Cfg.h and Platform_TypesDef.h have different vendor ids"
+#endif
+/* Check if current file and Platform_TypesDef header file are of the same Autosar version */
+#if ((PLATFORM_CFG_AR_RELEASE_MAJOR_VERSION    != PLATFORM_TYPESDEF_AR_RELEASE_MAJOR_VERSION) || \
+     (PLATFORM_CFG_AR_RELEASE_MINOR_VERSION    != PLATFORM_TYPESDEF_AR_RELEASE_MINOR_VERSION) || \
+     (PLATFORM_CFG_AR_RELEASE_REVISION_VERSION != PLATFORM_TYPESDEF_AR_RELEASE_REVISION_VERSION) \
+    )
+    #error "AutoSar Version Numbers of Platform_Cfg.h and Platform_TypesDef.h are different"
+#endif
+/* Check if current file and Platform_TypesDef header file are of the same Software version */
+#if ((PLATFORM_CFG_SW_MAJOR_VERSION != PLATFORM_TYPESDEF_SW_MAJOR_VERSION) || \
+     (PLATFORM_CFG_SW_MINOR_VERSION != PLATFORM_TYPESDEF_SW_MINOR_VERSION) || \
+     (PLATFORM_CFG_SW_PATCH_VERSION != PLATFORM_TYPESDEF_SW_PATCH_VERSION) \
+    )
+    #error "Software Version Numbers of Platform_Cfg.h and Platform_TypesDef.h are different"
+#endif
+
+/* Check if current file and Platform_CfgDefines header file are of the same vendor */
+#if (PLATFORM_CFG_VENDOR_ID != PLATFORM_CFGDEFINES_VENDOR_ID)
+    #error "Platform_Cfg.h and Platform_CfgDefines.h have diPlatform_CfgDefinesfferent vendor ids"
+#endif
+/* Check if current file and Platform_CfgDefines header file are of the same Autosar version */
+#if ((PLATFORM_CFG_AR_RELEASE_MAJOR_VERSION    != PLATFORM_CFGDEFINES_AR_RELEASE_MAJOR_VERSION) || \
+     (PLATFORM_CFG_AR_RELEASE_MINOR_VERSION    != PLATFORM_CFGDEFINES_AR_RELEASE_MINOR_VERSION) || \
+     (PLATFORM_CFG_AR_RELEASE_REVISION_VERSION != PLATFORM_CFGDEFINES_AR_RELEASE_REVISION_VERSION) \
+    )
+    #error "AutoSar Version Numbers of Platform_Cfg.h and Platform_CfgDefines.h are different"
+#endif
+/* Check if current file and Platform_CfgDefines header file are of the same Software version */
+#if ((PLATFORM_CFG_SW_MAJOR_VERSION != PLATFORM_CFGDEFINES_SW_MAJOR_VERSION) || \
+     (PLATFORM_CFG_SW_MINOR_VERSION != PLATFORM_CFGDEFINES_SW_MINOR_VERSION) || \
+     (PLATFORM_CFG_SW_PATCH_VERSION != PLATFORM_CFGDEFINES_SW_PATCH_VERSION) \
+    )
+    #error "Software Version Numbers of Platform_Cfg.h and Platform_CfgDefines.h are different"
+#endif
+
+
+
+/*==================================================================================================
+                                      FILE VERSION CHECKS
+==================================================================================================*/
+
+/* TBD */
+
+
+/*==================================================================================================
+                                       GLOBAL VARIABLES
+==================================================================================================*/
+
+
+
+/*==================================================================================================
+                                       DEFINES AND MACROS
+==================================================================================================*/
+#define PLATFORM_START_SEC_CONFIG_DATA_UNSPECIFIED
+#include "Platform_MemMap.h"
+
+
+
+
+#define PLATFORM_STOP_SEC_CONFIG_DATA_UNSPECIFIED
+#include "Platform_MemMap.h"
+#endif /* PLATFORM_CFG_H_ */
+

Някои файлове не бяха показани, защото твърде много файлове са промени