This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM263P4: SysConfig

Part Number: AM263P4
Other Parts Discussed in Thread: SYSCONFIG

Tool/software:

Hey, I am evaluating the SDK ADC example "adc_burst_mode_oversampling_am263px-cc_r5fss0-0_nortos_ti-arm-clang".

The following combinations of SysConfig and SDK give compiled successfully.

  *SysConfig : 1.21.0

  *MCU+ SDK for AM263Px : 10.0.0.35

However, the following combinations of the latest SysConfig and SDK give

an error stating that the following PMIC driver is not defined.

Please tell me how to solve this.

(error #10234-D: unresolved symbols remain
 error #10010: errors encountered during linking; )

  *SysConfig : 1.22.0

  *MCU+ SDK for AM263Px : 10.1.0.34

Thanks, T. Hirata

[Error masage]

Building target: "adc_burst_mode_oversampling_am263px-cc_r5fss0-0_nortos_ti-arm-clang.out"
Invoking: Arm Linker
"C:/ti/ti-cgt-armllvm_4.0.0.LTS/bin/tiarmclang.exe" -mcpu=cortex-r5 -mfloat-abi=hard -mfpu=vfpv3-d16 -mlittle-endian -mthumb -Os -DSOC_AM263PX -g -Wall -Wno-gnu-variable-sized-type-not-at-end -Wno-unused-function -Wl,-m"adc_burst_mode_oversampling.Release.map" -Wl,-i"C:/ti/mcu_plus_sdk_am263px_10_01_00_34/source/kernel/nortos/lib" -Wl,-i"C:/ti/mcu_plus_sdk_am263px_10_01_00_34/source/drivers/lib" -Wl,-i"C:/ti/mcu_plus_sdk_am263px_10_01_00_34/source/board/lib" -Wl,-i"C:/ti/ti-cgt-armllvm_4.0.0.LTS/lib" -Wl,--reread_libs -Wl,--diag_suppress=10063 -Wl,--diag_wrap=off -Wl,--display_error_number -Wl,--warn_sections -Wl,--xml_link_info="adc_burst_mode_oversampling_am263px-cc_r5fss0-0_nortos_ti-arm-clang_linkInfo.xml" -Wl,--ram_model -o "adc_burst_mode_oversampling_am263px-cc_r5fss0-0_nortos_ti-arm-clang.out" "./adc_burst_mode_oversampling.o" "./syscfg/ti_dpl_config.o" "./syscfg/ti_drivers_config.o" "./syscfg/ti_drivers_open_close.o" "./syscfg/ti_pinmux_config.o" "./syscfg/ti_power_clock_config.o" "./syscfg/ti_board_config.o" "./syscfg/ti_board_open_close.o" "./syscfg/ti_enet_config.o" "./syscfg/ti_enet_open_close.o" "./syscfg/ti_enet_soc.o" "./syscfg/ti_enet_lwipif.o" "./main.o" -Wl,-l"syscfg/linker.cmd" -Wl,-lnortos.am263px.r5f.ti-arm-clang.release.lib -Wl,-ldrivers.am263px.r5f.ti-arm-clang.release.lib -Wl,-lboard.am263px.r5f.ti-arm-clang.release.lib -Wl,-llibc.a -Wl,-llibsysbm.a
makefile:150: recipe for target 'adc_burst_mode_oversampling_am263px-cc_r5fss0-0_nortos_ti-arm-clang.out' failed

undefined first referenced
symbol in file
--------- ----------------
PMIC_close ./syscfg/ti_board_open_close.o
PMIC_configure ./syscfg/ti_board_open_close.o
PMIC_open ./syscfg/ti_board_open_close.o

error #10234-D: unresolved symbols remain
error #10010: errors encountered during linking; "adc_burst_mode_oversampling_am263px-cc_r5fss0-0_nortos_ti-arm-clang.out" not built
tiarmclang: error: tiarmlnk command failed with exit code 1 (use -v to see invocation)
gmake[1]: *** [adc_burst_mode_oversampling_am263px-cc_r5fss0-0_nortos_ti-arm-clang.out] Error 1
makefile:146: recipe for target 'all' failed
gmake: *** [all] Error 2

**** Build Finished ****

  • Hi 亨 平田

    If PMIC is added, could you remove it and then try to build the example!

    Regards,
    Akshit

  • In the latest SDK, TI have moved the PMIC code to 'pmic_blackbird.am263px.r5f.ti-arm-clang.debug.lib' or 'pmic_blackbird.am263px.r5f.ti-arm-clang.release.lib'.

    You need to include either of the above libraries in your linker step.

    See the background here:

    (2) MCU-PLUS-SDK-AM263PX: v10.1.0.34: PMIC Object Code is Missing From Board Lib - Arm-based microcontrollers forum - Arm-based microcontrollers - TI E2E support forums

  • Hirata-san, Are you sure you have selected the correct answer to your problem?

  • The linker error was resolved by deleting the PMIC in SysConfig.

    Thank you.

  • The linker error "goes away" but you still need the PMIC LDO4 for the ADC to work correctly as per (+) MCU-PLUS-SDK-AM263PX: Problem with PMIC LDO4 not working in AM263Px ADC example on control card - Arm-based microcontrollers forum - Arm-based microcontrollers - TI E2E support forums

    LDO4 is not switched on by default.

    The answer is not to delete the PMIC configuration, the answer to add the PMIC library ('pmic_blackbird.am263px.r5f.ti-arm-clang.debug.lib' ) to your project as per my previous post.

    You need these in your project when using SDK 10.1.0.34:

    Try deleting the whole project and reimporting the example from SDK 10.1.0.34. 

  • Hi, Kier

    By adding the PMIC library ('pmic_blackbird.am263px.r5f.ti-arm-clang.debug.lib') to the project, the linker error disappeared.

    Also, I was able to turn on the PMIC's LDO4 in the ADC example.

    Thank you very much. It was very helpful.

  • Hi, Kier

    /**
     * These arguments were used when this file was generated. They will be automatically applied on subsequent loads
     * via the GUI or CLI. Run CLI with '--help' for additional information on how to override these arguments.
     * @cliArgs --device "AM263Px" --part "AM263P4" --package "ZCZ_C" --context "r5fss0-0" --product "MCU_PLUS_SDK_AM263Px@10.01.00"
     * @v2CliArgs --device "AM263P4-Q1" --package "NFBGA (ZCZ-C)" --context "r5fss0-0" --product "MCU_PLUS_SDK_AM263Px@10.01.00"
     * @versions {"tool":"1.22.0+3893"}
     */
    
    /**
     * Import the modules used in this configuration.
     */
    const flash           = scripting.addModule("/board/flash/flash", {}, false);
    const flash1          = flash.addInstance();
    const pmic            = scripting.addModule("/board/pmic/pmic", {}, false);
    const pmic1           = pmic.addInstance();
    const adc             = scripting.addModule("/drivers/adc/adc", {}, false);
    const adc1            = adc.addInstance();
    const adc2            = adc.addInstance();
    const adc3            = adc.addInstance();
    const adc4            = adc.addInstance();
    const adc5            = adc.addInstance();
    const dac             = scripting.addModule("/drivers/dac/dac", {}, false);
    const dac1            = dac.addInstance();
    const ecap            = scripting.addModule("/drivers/ecap/ecap", {}, false);
    const ecap1           = ecap.addInstance();
    const ecap2           = ecap.addInstance();
    const ecap3           = ecap.addInstance();
    const ecap4           = ecap.addInstance();
    const ecap5           = ecap.addInstance();
    const ecap6           = ecap.addInstance();
    const ecap7           = ecap.addInstance();
    const ecap8           = ecap.addInstance();
    const edma            = scripting.addModule("/drivers/edma/edma", {}, false);
    const edma1           = edma.addInstance();
    const epwm            = scripting.addModule("/drivers/epwm/epwm", {}, false);
    const epwm1           = epwm.addInstance();
    const epwm2           = epwm.addInstance();
    const epwm3           = epwm.addInstance();
    const epwm4           = epwm.addInstance();
    const epwm5           = epwm.addInstance();
    const gpio            = scripting.addModule("/drivers/gpio/gpio", {}, false);
    const gpio1           = gpio.addInstance();
    const gpio2           = gpio.addInstance();
    const gpio3           = gpio.addInstance();
    const gpio4           = gpio.addInstance();
    const gpio5           = gpio.addInstance();
    const gpio6           = gpio.addInstance();
    const gpio7           = gpio.addInstance();
    const gpio8           = gpio.addInstance();
    const gpio9           = gpio.addInstance();
    const gpio10          = gpio.addInstance();
    const gpio11          = gpio.addInstance();
    const gpio12          = gpio.addInstance();
    const gpio13          = gpio.addInstance();
    const gpio14          = gpio.addInstance();
    const gpio15          = gpio.addInstance();
    const gpio16          = gpio.addInstance();
    const gpio17          = gpio.addInstance();
    const gpio18          = gpio.addInstance();
    const gpio19          = gpio.addInstance();
    const gpio20          = gpio.addInstance();
    const gpio21          = gpio.addInstance();
    const gpio22          = gpio.addInstance();
    const gpio23          = gpio.addInstance();
    const gpio24          = gpio.addInstance();
    const gpio25          = gpio.addInstance();
    const gpio26          = gpio.addInstance();
    const gpio27          = gpio.addInstance();
    const gpio28          = gpio.addInstance();
    const gpio29          = gpio.addInstance();
    const gpio30          = gpio.addInstance();
    const gpio31          = gpio.addInstance();
    const gpio32          = gpio.addInstance();
    const gpio33          = gpio.addInstance();
    const gpio34          = gpio.addInstance();
    const gpio35          = gpio.addInstance();
    const gpio36          = gpio.addInstance();
    const gpio37          = gpio.addInstance();
    const gpio38          = gpio.addInstance();
    const gpio39          = gpio.addInstance();
    const gpio40          = gpio.addInstance();
    const gpio41          = gpio.addInstance();
    const gpio42          = gpio.addInstance();
    const gpio43          = gpio.addInstance();
    const gpio44          = gpio.addInstance();
    const gpio45          = gpio.addInstance();
    const gpio46          = gpio.addInstance();
    const gpio47          = gpio.addInstance();
    const gpio48          = gpio.addInstance();
    const gpio49          = gpio.addInstance();
    const gpio50          = gpio.addInstance();
    const gpio51          = gpio.addInstance();
    const gpio52          = gpio.addInstance();
    const gpio53          = gpio.addInstance();
    const gpio54          = gpio.addInstance();
    const gpio55          = gpio.addInstance();
    const gpio56          = gpio.addInstance();
    const gpio57          = gpio.addInstance();
    const gpio58          = gpio.addInstance();
    const gpio59          = gpio.addInstance();
    const gpio60          = gpio.addInstance();
    const gpio61          = gpio.addInstance();
    const gpio62          = gpio.addInstance();
    const gpio63          = gpio.addInstance();
    const gpio64          = gpio.addInstance();
    const i2c             = scripting.addModule("/drivers/i2c/i2c", {}, false);
    const i2c1            = i2c.addInstance();
    const mcspi           = scripting.addModule("/drivers/mcspi/mcspi", {}, false);
    const mcspi1          = mcspi.addInstance();
    const mcspi2          = mcspi.addInstance();
    const mcspi3          = mcspi.addInstance();
    const mcspi4          = mcspi.addInstance();
    const mcspi5          = mcspi.addInstance();
    const mcspi6          = mcspi.addInstance();
    const rti             = scripting.addModule("/drivers/rti/rti", {}, false);
    const rti1            = rti.addInstance();
    const debug_log       = scripting.addModule("/kernel/dpl/debug_log");
    const dpl_cfg         = scripting.addModule("/kernel/dpl/dpl_cfg");
    const mpu_armv7       = scripting.addModule("/kernel/dpl/mpu_armv7", {}, false);
    const mpu_armv71      = mpu_armv7.addInstance();
    const mpu_armv72      = mpu_armv7.addInstance();
    const mpu_armv73      = mpu_armv7.addInstance();
    const mpu_armv74      = mpu_armv7.addInstance();
    const mpu_armv75      = mpu_armv7.addInstance();
    const default_linker  = scripting.addModule("/memory_configurator/default_linker", {}, false);
    const default_linker1 = default_linker.addInstance();
    const general         = scripting.addModule("/memory_configurator/general", {}, false);
    const general1        = general.addInstance();
    const region          = scripting.addModule("/memory_configurator/region", {}, false);
    const region1         = region.addInstance();
    const section         = scripting.addModule("/memory_configurator/section", {}, false);
    const section1        = section.addInstance();
    const section2        = section.addInstance();
    const section3        = section.addInstance();
    const section4        = section.addInstance();
    const section5        = section.addInstance();
    const section6        = section.addInstance();
    const section7        = section.addInstance();
    const section8        = section.addInstance();
    const section9        = section.addInstance();
    const section10       = section.addInstance();
    const section11       = section.addInstance();
    const section12       = section.addInstance();
    const input_xbar      = scripting.addModule("/xbar/input_xbar/input_xbar", {}, false);
    const input_xbar1     = input_xbar.addInstance();
    const input_xbar2     = input_xbar.addInstance();
    const input_xbar3     = input_xbar.addInstance();
    const input_xbar4     = input_xbar.addInstance();
    const input_xbar5     = input_xbar.addInstance();
    const input_xbar6     = input_xbar.addInstance();
    const input_xbar7     = input_xbar.addInstance();
    const input_xbar8     = input_xbar.addInstance();
    const int_xbar        = scripting.addModule("/xbar/int_xbar/int_xbar", {}, false);
    const int_xbar1       = int_xbar.addInstance();
    
    /**
     * Write custom configuration values to the imported modules.
     */
    flash1.protocol                               = "8d_8d_8d";
    flash1.strDtr_bitP                            = 16;
    flash1.xspiWipRdCmd                           = "0x05";
    flash1.fourByteEnableSeq                      = "0";
    flash1.strDtr_isAddrReg                       = true;
    flash1.strDtr_cmdRegRd                        = "0x85";
    flash1.strDtr_cmdRegWr                        = "0x81";
    flash1.strDtr_shift                           = 255;
    flash1.strDtr_mask                            = "255";
    flash1.$name                                  = "CONFIG_FLASH0";
    flash1.peripheralDriver.$name                 = "CONFIG_OSPI0";
    flash1.peripheralDriver.inputClkFreq          = 100000000;
    flash1.peripheralDriver.OSPI.$assign          = "OSPI0";
    flash1.peripheralDriver.OSPI.CLK.$assign      = "OSPI0_CLK";
    flash1.peripheralDriver.OSPI.CSn0.$assign     = "OSPI0_CSn0";
    flash1.peripheralDriver.OSPI.DQS.$assign      = "UART1_TXD";
    flash1.peripheralDriver.OSPI.D7.$assign       = "MCAN1_TX";
    flash1.peripheralDriver.OSPI.D6.$assign       = "MCAN1_RX";
    flash1.peripheralDriver.OSPI.D5.$assign       = "MCAN0_TX";
    flash1.peripheralDriver.OSPI.D4.$assign       = "MCAN0_RX";
    flash1.peripheralDriver.OSPI.D3.$assign       = "OSPI0_D3";
    flash1.peripheralDriver.OSPI.D2.$assign       = "OSPI0_D2";
    flash1.peripheralDriver.OSPI.D1.$assign       = "OSPI0_D1";
    flash1.peripheralDriver.OSPI.D0.$assign       = "OSPI0_D0";
    flash1.peripheralDriver.OSPI.RESET_OUT0.$used = false;
    flash1.peripheralDriver.child.$name           = "drivers_ospi_v0_ospi_v0_am263px_template0";
    
    pmic1.$name = "CONFIG_PMIC0";
    
    adc1.adcClockPrescaler   = "ADC_CLK_DIV_4_0";
    adc1.interruptPulseMode  = "ADC_PULSE_END_OF_CONV";
    adc1.soc0Channel         = "ADC_CH_ADCIN0_ADCIN1";
    adc1.adcSignalMode       = "ADC_MODE_DIFFERENTIAL";
    adc1.soc3Channel         = "ADC_CH_ADCIN0_ADCIN1";
    adc1.soc13Channel        = "ADC_CH_ADCIN0_ADCIN1";
    adc1.soc14Channel        = "ADC_CH_ADCIN0_ADCIN1";
    adc1.soc15Channel        = "ADC_CH_ADCIN0_ADCIN1";
    adc1.burstSize           = 4;
    adc1.enableBurstMode     = true;
    adc1.soc7Channel         = "ADC_CH_ADCIN2_ADCIN3";
    adc1.soc8Channel         = "ADC_CH_ADCIN4_ADCIN5";
    adc1.soc11Channel        = "ADC_CH_ADCIN4_ADCIN5";
    adc1.soc4Channel         = "ADC_CH_ADCIN2_ADCIN3";
    adc1.soc12Channel        = "ADC_CH_ADCIN0_ADCIN1";
    adc1.interrupt1SOCSource = "ADC_SOC_NUMBER11";
    adc1.soc1Channel         = "ADC_CH_ADCIN2_ADCIN3";
    adc1.soc2Channel         = "ADC_CH_ADCIN4_ADCIN5";
    adc1.soc5Channel         = "ADC_CH_ADCIN4_ADCIN5";
    adc1.soc6Channel         = "ADC_CH_ADCIN0_ADCIN1";
    adc1.soc9Channel         = "ADC_CH_ADCIN0_ADCIN1";
    adc1.soc10Channel        = "ADC_CH_ADCIN2_ADCIN3";
    adc1.enableConverter     = true;
    adc1.enableInterrupt1    = true;
    adc1.socHighPriorityMode = "ADC_PRI_ALL_HIPRI";
    adc1.soc0Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc1.soc1Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc1.soc2Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc1.soc3Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc1.soc4Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc1.soc5Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc1.soc6Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc1.soc7Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc1.soc8Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc1.soc9Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc1.soc10Trigger        = "ADC_TRIGGER_EPWM7_SOCA";
    adc1.soc11Trigger        = "ADC_TRIGGER_EPWM7_SOCA";
    adc1.burstTrigger        = "ADC_TRIGGER_EPWM7_SOCA";
    adc1.$name               = "CFG_ADC0";
    adc1.ADC.$assign         = "ADC0";
    adc1.ADC.AIN0.$assign    = "ADC0_AIN0";
    adc1.ADC.AIN1.$assign    = "ADC0_AIN1";
    adc1.ADC.AIN2.$assign    = "ADC0_AIN2";
    adc1.ADC.AIN3.$assign    = "ADC0_AIN3";
    adc1.ADC.AIN4.$assign    = "ADC0_AIN4";
    adc1.ADC.AIN5.$assign    = "ADC0_AIN5";
    
    adc2.adcClockPrescaler   = "ADC_CLK_DIV_4_0";
    adc2.interruptPulseMode  = "ADC_PULSE_END_OF_CONV";
    adc2.enableConverter     = true;
    adc2.soc0Channel         = "ADC_CH_ADCIN0_ADCIN1";
    adc2.adcSignalMode       = "ADC_MODE_DIFFERENTIAL";
    adc2.soc3Channel         = "ADC_CH_ADCIN0_ADCIN1";
    adc2.soc12Channel        = "ADC_CH_ADCIN0_ADCIN1";
    adc2.soc13Channel        = "ADC_CH_ADCIN0_ADCIN1";
    adc2.soc14Channel        = "ADC_CH_ADCIN0_ADCIN1";
    adc2.soc15Channel        = "ADC_CH_ADCIN0_ADCIN1";
    adc2.soc4Channel         = "ADC_CH_ADCIN2_ADCIN3";
    adc2.soc7Channel         = "ADC_CH_ADCIN2_ADCIN3";
    adc2.soc8Channel         = "ADC_CH_ADCIN4_ADCIN5";
    adc2.soc11Channel        = "ADC_CH_ADCIN4_ADCIN5";
    adc2.burstSize           = 4;
    adc2.enableBurstMode     = true;
    adc2.soc1Channel         = "ADC_CH_ADCIN2_ADCIN3";
    adc2.soc2Channel         = "ADC_CH_ADCIN4_ADCIN5";
    adc2.soc5Channel         = "ADC_CH_ADCIN4_ADCIN5";
    adc2.soc6Channel         = "ADC_CH_ADCIN0_ADCIN1";
    adc2.soc9Channel         = "ADC_CH_ADCIN0_ADCIN1";
    adc2.soc10Channel        = "ADC_CH_ADCIN2_ADCIN3";
    adc2.socHighPriorityMode = "ADC_PRI_ALL_HIPRI";
    adc2.soc0Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc2.soc1Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc2.soc2Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc2.soc3Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc2.soc4Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc2.soc5Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc2.soc6Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc2.soc7Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc2.soc8Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc2.soc9Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc2.soc10Trigger        = "ADC_TRIGGER_EPWM7_SOCA";
    adc2.soc11Trigger        = "ADC_TRIGGER_EPWM7_SOCA";
    adc2.burstTrigger        = "ADC_TRIGGER_EPWM7_SOCA";
    adc2.$name               = "CFG_ADC1";
    adc2.ADC.$assign         = "ADC1";
    adc2.ADC.AIN0.$assign    = "ADC1_AIN0";
    adc2.ADC.AIN1.$assign    = "ADC1_AIN1";
    adc2.ADC.AIN2.$assign    = "ADC1_AIN2";
    adc2.ADC.AIN3.$assign    = "ADC1_AIN3";
    adc2.ADC.AIN4.$assign    = "ADC1_AIN4";
    adc2.ADC.AIN5.$assign    = "ADC1_AIN5";
    
    adc3.adcClockPrescaler   = "ADC_CLK_DIV_4_0";
    adc3.interruptPulseMode  = "ADC_PULSE_END_OF_CONV";
    adc3.enableConverter     = true;
    adc3.soc0Channel         = "ADC_CH_ADCIN0_ADCIN1";
    adc3.adcSignalMode       = "ADC_MODE_DIFFERENTIAL";
    adc3.soc3Channel         = "ADC_CH_ADCIN0_ADCIN1";
    adc3.soc12Channel        = "ADC_CH_ADCIN0_ADCIN1";
    adc3.soc13Channel        = "ADC_CH_ADCIN0_ADCIN1";
    adc3.soc14Channel        = "ADC_CH_ADCIN0_ADCIN1";
    adc3.soc15Channel        = "ADC_CH_ADCIN0_ADCIN1";
    adc3.soc4Channel         = "ADC_CH_ADCIN2_ADCIN3";
    adc3.soc7Channel         = "ADC_CH_ADCIN2_ADCIN3";
    adc3.soc8Channel         = "ADC_CH_ADCIN4_ADCIN5";
    adc3.soc11Channel        = "ADC_CH_ADCIN4_ADCIN5";
    adc3.burstSize           = 4;
    adc3.enableBurstMode     = true;
    adc3.soc1Channel         = "ADC_CH_ADCIN2_ADCIN3";
    adc3.soc2Channel         = "ADC_CH_ADCIN4_ADCIN5";
    adc3.soc5Channel         = "ADC_CH_ADCIN4_ADCIN5";
    adc3.soc6Channel         = "ADC_CH_ADCIN0_ADCIN1";
    adc3.soc9Channel         = "ADC_CH_ADCIN0_ADCIN1";
    adc3.soc10Channel        = "ADC_CH_ADCIN2_ADCIN3";
    adc3.socHighPriorityMode = "ADC_PRI_ALL_HIPRI";
    adc3.soc0Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc3.soc1Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc3.soc2Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc3.soc3Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc3.soc4Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc3.soc5Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc3.soc6Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc3.soc7Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc3.soc8Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc3.soc9Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc3.soc10Trigger        = "ADC_TRIGGER_EPWM7_SOCA";
    adc3.soc11Trigger        = "ADC_TRIGGER_EPWM7_SOCA";
    adc3.burstTrigger        = "ADC_TRIGGER_EPWM7_SOCA";
    adc3.$name               = "CFG_ADC2";
    adc3.ADC.$assign         = "ADC2";
    adc3.ADC.AIN0.$assign    = "ADC2_AIN0";
    adc3.ADC.AIN1.$assign    = "ADC2_AIN1";
    adc3.ADC.AIN2.$assign    = "ADC2_AIN2";
    adc3.ADC.AIN3.$assign    = "ADC2_AIN3";
    adc3.ADC.AIN4.$assign    = "ADC2_AIN4";
    adc3.ADC.AIN5.$assign    = "ADC2_AIN5";
    
    adc4.adcClockPrescaler   = "ADC_CLK_DIV_4_0";
    adc4.interruptPulseMode  = "ADC_PULSE_END_OF_CONV";
    adc4.enableConverter     = true;
    adc4.soc0Channel         = "ADC_CH_ADCIN0_ADCIN1";
    adc4.adcSignalMode       = "ADC_MODE_DIFFERENTIAL";
    adc4.soc3Channel         = "ADC_CH_ADCIN0_ADCIN1";
    adc4.soc12Channel        = "ADC_CH_ADCIN0_ADCIN1";
    adc4.soc13Channel        = "ADC_CH_ADCIN0_ADCIN1";
    adc4.soc14Channel        = "ADC_CH_ADCIN0_ADCIN1";
    adc4.soc15Channel        = "ADC_CH_ADCIN0_ADCIN1";
    adc4.soc4Channel         = "ADC_CH_ADCIN2_ADCIN3";
    adc4.soc7Channel         = "ADC_CH_ADCIN2_ADCIN3";
    adc4.soc8Channel         = "ADC_CH_ADCIN4_ADCIN5";
    adc4.soc11Channel        = "ADC_CH_ADCIN4_ADCIN5";
    adc4.burstSize           = 4;
    adc4.enableBurstMode     = true;
    adc4.soc1Channel         = "ADC_CH_ADCIN2_ADCIN3";
    adc4.soc2Channel         = "ADC_CH_ADCIN4_ADCIN5";
    adc4.soc5Channel         = "ADC_CH_ADCIN4_ADCIN5";
    adc4.soc6Channel         = "ADC_CH_ADCIN0_ADCIN1";
    adc4.soc9Channel         = "ADC_CH_ADCIN0_ADCIN1";
    adc4.soc10Channel        = "ADC_CH_ADCIN2_ADCIN3";
    adc4.socHighPriorityMode = "ADC_PRI_ALL_HIPRI";
    adc4.soc0Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc4.soc1Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc4.soc2Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc4.soc3Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc4.soc4Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc4.soc5Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc4.soc6Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc4.soc7Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc4.soc8Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc4.soc9Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc4.soc10Trigger        = "ADC_TRIGGER_EPWM7_SOCA";
    adc4.soc11Trigger        = "ADC_TRIGGER_EPWM7_SOCA";
    adc4.burstTrigger        = "ADC_TRIGGER_EPWM7_SOCA";
    adc4.$name               = "CFG_ADC3";
    adc4.ADC.$assign         = "ADC3";
    adc4.ADC.AIN0.$assign    = "ADC3_AIN0";
    adc4.ADC.AIN1.$assign    = "ADC3_AIN1";
    adc4.ADC.AIN2.$assign    = "ADC3_AIN2";
    adc4.ADC.AIN3.$assign    = "ADC3_AIN3";
    adc4.ADC.AIN4.$assign    = "ADC3_AIN4";
    adc4.ADC.AIN5.$assign    = "ADC3_AIN5";
    
    adc5.adcClockPrescaler   = "ADC_CLK_DIV_4_0";
    adc5.interruptPulseMode  = "ADC_PULSE_END_OF_CONV";
    adc5.enableConverter     = true;
    adc5.burstSize           = 4;
    adc5.enableBurstMode     = true;
    adc5.socHighPriorityMode = "ADC_PRI_ALL_HIPRI";
    adc5.soc0Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc5.soc1Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc5.soc2Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc5.soc3Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc5.burstTrigger        = "ADC_TRIGGER_EPWM7_SOCA";
    adc5.$name               = "CFG_ADC4";
    adc5.ADC.$assign         = "ADC4";
    adc5.ADC.AIN0.$assign    = "ADC4_AIN0";
    adc5.ADC.AIN1.$used      = false;
    adc5.ADC.AIN2.$used      = false;
    adc5.ADC.AIN3.$used      = false;
    adc5.ADC.AIN4.$used      = false;
    adc5.ADC.AIN5.$used      = false;
    
    dac1.$name        = "CFG_DAC";
    dac1.enableOutput = true;
    
    ecap1.eventStop           = "ECAP_EVENT_4";
    ecap1.eventOnePolarity    = "ECAP_EVNT_FALLING_EDGE";
    ecap1.eventThreePolarity  = "ECAP_EVNT_FALLING_EDGE";
    ecap1.useInterrupts       = false;
    ecap1.counterResetOnEvent = ["ECAP_EVENT_1","ECAP_EVENT_2","ECAP_EVENT_3","ECAP_EVENT_4"];
    ecap1.ecapInput           = "ECAP_INPUT_INPUTXBAR0";
    ecap1.useDMA              = true;
    ecap1.dmaSource           = "ECAP_CAP_MODE_DMA_TRIGGER_SRC_CEVT4";
    ecap1.emulationMode       = "ECAP_EMULATION_FREE_RUN";
    ecap1.$name               = "CFG_ECAP0";
    
    ecap2.eventStop           = "ECAP_EVENT_4";
    ecap2.eventOnePolarity    = "ECAP_EVNT_FALLING_EDGE";
    ecap2.eventThreePolarity  = "ECAP_EVNT_FALLING_EDGE";
    ecap2.useInterrupts       = false;
    ecap2.counterResetOnEvent = ["ECAP_EVENT_1","ECAP_EVENT_2","ECAP_EVENT_3","ECAP_EVENT_4"];
    ecap2.useDMA              = true;
    ecap2.dmaSource           = "ECAP_CAP_MODE_DMA_TRIGGER_SRC_CEVT4";
    ecap2.emulationMode       = "ECAP_EMULATION_FREE_RUN";
    ecap2.ecapBase            = "CSL_CONTROLSS_ECAP1_U_BASE";
    ecap2.$name               = "CFG_ECAP1";
    
    ecap3.eventStop           = "ECAP_EVENT_4";
    ecap3.eventOnePolarity    = "ECAP_EVNT_FALLING_EDGE";
    ecap3.eventThreePolarity  = "ECAP_EVNT_FALLING_EDGE";
    ecap3.useInterrupts       = false;
    ecap3.counterResetOnEvent = ["ECAP_EVENT_1","ECAP_EVENT_2","ECAP_EVENT_3","ECAP_EVENT_4"];
    ecap3.useDMA              = true;
    ecap3.dmaSource           = "ECAP_CAP_MODE_DMA_TRIGGER_SRC_CEVT4";
    ecap3.emulationMode       = "ECAP_EMULATION_FREE_RUN";
    ecap3.ecapBase            = "CSL_CONTROLSS_ECAP2_U_BASE";
    ecap3.ecapInput           = "ECAP_INPUT_INPUTXBAR2";
    ecap3.$name               = "CFG_ECAP2";
    
    ecap4.eventStop           = "ECAP_EVENT_4";
    ecap4.eventOnePolarity    = "ECAP_EVNT_FALLING_EDGE";
    ecap4.eventThreePolarity  = "ECAP_EVNT_FALLING_EDGE";
    ecap4.useInterrupts       = false;
    ecap4.counterResetOnEvent = ["ECAP_EVENT_1","ECAP_EVENT_2","ECAP_EVENT_3","ECAP_EVENT_4"];
    ecap4.useDMA              = true;
    ecap4.dmaSource           = "ECAP_CAP_MODE_DMA_TRIGGER_SRC_CEVT4";
    ecap4.emulationMode       = "ECAP_EMULATION_FREE_RUN";
    ecap4.ecapInput           = "ECAP_INPUT_INPUTXBAR3";
    ecap4.ecapBase            = "CSL_CONTROLSS_ECAP3_U_BASE";
    ecap4.$name               = "CFG_ECAP3";
    
    ecap5.eventStop           = "ECAP_EVENT_4";
    ecap5.eventOnePolarity    = "ECAP_EVNT_FALLING_EDGE";
    ecap5.eventThreePolarity  = "ECAP_EVNT_FALLING_EDGE";
    ecap5.useInterrupts       = false;
    ecap5.counterResetOnEvent = ["ECAP_EVENT_1","ECAP_EVENT_2","ECAP_EVENT_3","ECAP_EVENT_4"];
    ecap5.useDMA              = true;
    ecap5.dmaSource           = "ECAP_CAP_MODE_DMA_TRIGGER_SRC_CEVT4";
    ecap5.emulationMode       = "ECAP_EMULATION_FREE_RUN";
    ecap5.ecapBase            = "CSL_CONTROLSS_ECAP4_U_BASE";
    ecap5.ecapInput           = "ECAP_INPUT_INPUTXBAR4";
    ecap5.$name               = "CFG_ECAP4";
    
    ecap6.eventStop           = "ECAP_EVENT_4";
    ecap6.eventOnePolarity    = "ECAP_EVNT_FALLING_EDGE";
    ecap6.eventThreePolarity  = "ECAP_EVNT_FALLING_EDGE";
    ecap6.useInterrupts       = false;
    ecap6.counterResetOnEvent = ["ECAP_EVENT_1","ECAP_EVENT_2","ECAP_EVENT_3","ECAP_EVENT_4"];
    ecap6.useDMA              = true;
    ecap6.dmaSource           = "ECAP_CAP_MODE_DMA_TRIGGER_SRC_CEVT4";
    ecap6.emulationMode       = "ECAP_EMULATION_FREE_RUN";
    ecap6.ecapBase            = "CSL_CONTROLSS_ECAP5_U_BASE";
    ecap6.ecapInput           = "ECAP_INPUT_INPUTXBAR5";
    ecap6.$name               = "CFG_ECAP5";
    
    ecap7.eventStop           = "ECAP_EVENT_4";
    ecap7.eventOnePolarity    = "ECAP_EVNT_FALLING_EDGE";
    ecap7.eventThreePolarity  = "ECAP_EVNT_FALLING_EDGE";
    ecap7.useInterrupts       = false;
    ecap7.counterResetOnEvent = ["ECAP_EVENT_1","ECAP_EVENT_2","ECAP_EVENT_3","ECAP_EVENT_4"];
    ecap7.useDMA              = true;
    ecap7.dmaSource           = "ECAP_CAP_MODE_DMA_TRIGGER_SRC_CEVT4";
    ecap7.emulationMode       = "ECAP_EMULATION_FREE_RUN";
    ecap7.ecapBase            = "CSL_CONTROLSS_ECAP6_U_BASE";
    ecap7.ecapInput           = "ECAP_INPUT_INPUTXBAR6";
    ecap7.$name               = "CFG_ECAP6";
    
    ecap8.eventStop           = "ECAP_EVENT_4";
    ecap8.eventOnePolarity    = "ECAP_EVNT_FALLING_EDGE";
    ecap8.eventThreePolarity  = "ECAP_EVNT_FALLING_EDGE";
    ecap8.useInterrupts       = false;
    ecap8.counterResetOnEvent = ["ECAP_EVENT_1","ECAP_EVENT_2","ECAP_EVENT_3","ECAP_EVENT_4"];
    ecap8.useDMA              = true;
    ecap8.dmaSource           = "ECAP_CAP_MODE_DMA_TRIGGER_SRC_CEVT4";
    ecap8.emulationMode       = "ECAP_EMULATION_FREE_RUN";
    ecap8.ecapBase            = "CSL_CONTROLSS_ECAP7_U_BASE";
    ecap8.ecapInput           = "ECAP_INPUT_INPUTXBAR7";
    ecap8.$name               = "CFG_ECAP7";
    
    epwm1.epwmActionQualifier_EPWM_AQ_OUTPUT_A_ON_TIMEBASE_UP_CMPA   = "EPWM_AQ_OUTPUT_HIGH";
    epwm1.epwmActionQualifier_EPWM_AQ_OUTPUT_A_ON_TIMEBASE_DOWN_CMPA = "EPWM_AQ_OUTPUT_LOW";
    epwm1.epwmEventTrigger_EPWM_SOC_A_triggerEnable                  = true;
    epwm1.epwmEventTrigger_EPWM_SOC_A_triggerEventPrescalar          = "1";
    epwm1.epwmTimebase_hsClockDiv                                    = "EPWM_HSCLOCK_DIVIDER_10";
    epwm1.epwmCounterCompare_shadowLoadModeCMPA                      = "EPWM_COMP_LOAD_ON_CNTR_PERIOD";
    epwm1.epwmEventTrigger_EPWM_SOC_A_triggerSource                  = "EPWM_SOC_TBCTR_U_CMPA";
    epwm1.epwmEventTrigger_enableInterrupt                           = true;
    epwm1.epwmEventTrigger_interruptSource                           = "EPWM_INT_TBCTR_U_CMPA";
    epwm1.epwmTimebase_emulationMode                                 = "EPWM_EMULATION_STOP_AFTER_FULL_CYCLE";
    epwm1.epwmTimebase_clockDiv                                      = "EPWM_CLOCK_DIVIDER_32";
    epwm1.epwmGroup                                                  = "EPWM_GROUP1";
    epwm1.epwmTimebase_period                                        = 65535;
    epwm1.epwmCounterCompare_cmpA                                    = 625;
    epwm1.$name                                                      = "CFG_EPWM_ADC";
    epwm1.EPWM.$assign                                               = "EPWM7";
    epwm1.EPWM.A.$assign                                             = "EPWM7_A";
    epwm1.EPWM.B.$assign                                             = "EPWM7_B";
    
    epwm2.epwmTimebase_syncOutPulseMode = ["EPWM_SYNC_OUT_PULSE_ON_SOFTWARE"];
    epwm2.$name                         = "CFG_EPWM0";
    epwm2.EPWM.$assign                  = "EPWM0";
    epwm2.EPWM.A.$assign                = "EPWM0_A";
    epwm2.EPWM.B.$assign                = "EPWM0_B";
    epwm2.EPWM.B.$used                  = false;
    
    epwm3.epwmTimebase_syncOutPulseMode = ["EPWM_SYNC_OUT_PULSE_ON_SOFTWARE"];
    epwm3.$name                         = "CFG_EPWM1";
    epwm3.EPWM.$assign                  = "EPWM1";
    epwm3.EPWM.A.$assign                = "EPWM1_A";
    epwm3.EPWM.B.$assign                = "EPWM1_B";
    epwm3.EPWM.B.$used                  = false;
    
    epwm4.epwmTimebase_syncOutPulseMode = ["EPWM_SYNC_OUT_PULSE_ON_SOFTWARE"];
    epwm4.$name                         = "CFG_EPWM2";
    epwm4.EPWM.$assign                  = "EPWM2";
    epwm4.EPWM.A.$assign                = "EPWM2_A";
    epwm4.EPWM.B.$assign                = "EPWM2_B";
    epwm4.EPWM.B.$used                  = false;
    
    epwm5.epwmTimebase_syncOutPulseMode = ["EPWM_SYNC_OUT_PULSE_ON_SOFTWARE"];
    epwm5.$name                         = "CFG_EPWM3";
    epwm5.EPWM.$assign                  = "EPWM3";
    epwm5.EPWM.A.$assign                = "EPWM3_A";
    epwm5.EPWM.B.$assign                = "EPWM3_B";
    epwm5.EPWM.B.$used                  = false;
    
    gpio1.pinDir         = "OUTPUT";
    gpio1.$name          = "CFG_LED";
    gpio1.GPIO_n.$assign = "LIN2_TXD";
    
    gpio2.$name          = "CFG_FAN1";
    gpio2.GPIO_n.$assign = "EPWM8_A";
    
    gpio3.$name          = "CFG_FAN2";
    gpio3.GPIO_n.$assign = "EPWM8_B";
    
    gpio4.$name          = "CFG_FAN3";
    gpio4.GPIO_n.$assign = "EPWM9_A";
    
    gpio5.$name          = "CFG_FAN4";
    gpio5.GPIO_n.$assign = "EPWM9_B";
    
    gpio6.$name          = "CFG_FAN5";
    gpio6.GPIO_n.$assign = "EPWM10_A";
    
    gpio7.$name          = "CFG_FAN6";
    gpio7.GPIO_n.$assign = "EPWM11_A";
    
    gpio8.$name          = "CFG_FAN7";
    gpio8.GPIO_n.$assign = "EPWM11_B";
    
    gpio9.pinDir         = "OUTPUT";
    gpio9.$name          = "CFG_DO00_OCCONR";
    gpio9.GPIO_n.$assign = "PR0_MDIO_MDIO";
    
    gpio10.pinDir         = "OUTPUT";
    gpio10.$name          = "CFG_DO01_LBOF";
    gpio10.GPIO_n.$assign = "PR0_MDIO_MDC";
    
    gpio11.pinDir         = "OUTPUT";
    gpio11.$name          = "CFG_DO02_BYPAS";
    gpio11.GPIO_n.$assign = "PR0_PRU0_GPIO5";
    
    gpio12.pinDir         = "OUTPUT";
    gpio12.$name          = "CFG_DO04_FANR";
    gpio12.GPIO_n.$assign = "PR0_PRU0_GPIO10";
    
    gpio13.pinDir         = "OUTPUT";
    gpio13.$name          = "CFG_DO05";
    gpio13.GPIO_n.$assign = "PR0_PRU0_GPIO8";
    
    gpio14.pinDir         = "OUTPUT";
    gpio14.$name          = "CFG_DO06_B_OCR";
    gpio14.GPIO_n.$assign = "PR0_PRU1_GPIO5";
    
    gpio15.pinDir         = "OUTPUT";
    gpio15.$name          = "CFG_DO07_B_OPR";
    gpio15.GPIO_n.$assign = "PR0_PRU1_GPIO9";
    
    gpio16.pinDir         = "OUTPUT";
    gpio16.$name          = "CFG_DO08";
    gpio16.GPIO_n.$assign = "PR0_PRU1_GPIO10";
    
    gpio17.pinDir         = "OUTPUT";
    gpio17.$name          = "CFG_DO09";
    gpio17.GPIO_n.$assign = "PR0_PRU1_GPIO8";
    
    gpio18.pinDir         = "OUTPUT";
    gpio18.$name          = "CFG_DO10";
    gpio18.GPIO_n.$assign = "PR0_PRU1_GPIO0";
    
    gpio19.pinDir         = "OUTPUT";
    gpio19.$name          = "CFG_DO11";
    gpio19.GPIO_n.$assign = "PR0_PRU1_GPIO1";
    
    gpio20.$name          = "CFG_DI00_OCCON";
    gpio20.GPIO_n.$assign = "PR0_PRU1_GPIO2";
    
    gpio21.$name          = "CFG_DI01_LBON";
    gpio21.GPIO_n.$assign = "PR0_PRU1_GPIO3";
    
    gpio22.$name          = "CFG_DI02_FANKON";
    gpio22.GPIO_n.$assign = "PR0_PRU1_GPIO16";
    
    gpio23.$name          = "CFG_DI03_RST";
    gpio23.GPIO_n.$assign = "PR0_PRU1_GPIO15";
    
    gpio24.$name          = "CFG_DI04";
    gpio24.GPIO_n.$assign = "PR0_PRU1_GPIO11";
    
    gpio25.$name          = "CFG_DI05";
    gpio25.GPIO_n.$assign = "PR0_PRU1_GPIO12";
    
    gpio26.$name          = "CFG_DI06_FUSEON1";
    gpio26.GPIO_n.$assign = "PR0_PRU1_GPIO13";
    
    gpio27.$name          = "CFG_DI07_FUSEON2";
    gpio27.GPIO_n.$assign = "PR0_PRU1_GPIO14";
    
    gpio28.$name          = "CFG_DI08_FUSEON3";
    gpio28.GPIO_n.$assign = "PR0_PRU1_GPIO19";
    
    gpio29.$name          = "CFG_DI09_FUSEON4";
    gpio29.GPIO_n.$assign = "PR0_PRU1_GPIO18";
    
    gpio30.$name          = "CFG_DI10_GID1";
    gpio30.GPIO_n.$assign = "SDFM0_CLK0";
    
    gpio31.$name          = "CFG_DI11_GID2";
    gpio31.GPIO_n.$assign = "SDFM0_D0";
    
    gpio32.$name          = "CFG_DI12_GID3";
    gpio32.GPIO_n.$assign = "SDFM0_CLK1";
    
    gpio33.$name          = "CFG_DI13_P24BON";
    gpio33.GPIO_n.$assign = "SDFM0_D1";
    
    gpio34.$name          = "CFG_DI14_P24FON";
    gpio34.GPIO_n.$assign = "SDFM0_CLK2";
    
    gpio35.$name          = "CFG_DI15";
    gpio35.GPIO_n.$assign = "SDFM0_D2";
    
    gpio36.$name          = "CFG_DI16";
    gpio36.GPIO_n.$assign = "SDFM0_CLK3";
    
    gpio37.$name          = "CFG_DI17";
    gpio37.GPIO_n.$assign = "SDFM0_D3";
    
    gpio38.pinDir         = "OUTPUT";
    gpio38.$name          = "CFG_LD1";
    gpio38.GPIO_n.$assign = "EPWM14_A";
    
    gpio39.pinDir         = "OUTPUT";
    gpio39.$name          = "CFG_LD2";
    gpio39.GPIO_n.$assign = "EPWM14_B";
    
    gpio40.pinDir         = "OUTPUT";
    gpio40.$name          = "CFG_LD3";
    gpio40.GPIO_n.$assign = "EPWM15_A";
    
    gpio41.pinDir         = "OUTPUT";
    gpio41.$name          = "CFG_LD4";
    gpio41.GPIO_n.$assign = "EPWM15_B";
    
    gpio42.pinDir         = "OUTPUT";
    gpio42.$name          = "CFG_LD5";
    gpio42.GPIO_n.$assign = "MMC_DAT2";
    
    gpio43.pinDir         = "OUTPUT";
    gpio43.$name          = "CFG_LD6";
    gpio43.GPIO_n.$assign = "MMC_DAT3";
    
    gpio44.pinDir         = "OUTPUT";
    gpio44.$name          = "CFG_LD7";
    gpio44.GPIO_n.$assign = "MMC_SDWP";
    
    gpio45.pinDir         = "OUTPUT";
    gpio45.$name          = "CFG_LD8";
    gpio45.GPIO_n.$assign = "MMC_SDCD";
    
    gpio46.pinDir         = "OUTPUT";
    gpio46.$name          = "CFG_TOUT1";
    gpio46.GPIO_n.$assign = "EPWM12_B";
    
    gpio47.pinDir         = "OUTPUT";
    gpio47.$name          = "CFG_TOUT2";
    gpio47.GPIO_n.$assign = "EPWM13_A";
    
    gpio48.pinDir         = "OUTPUT";
    gpio48.$name          = "CFG_TOUT3";
    gpio48.GPIO_n.$assign = "EPWM13_B";
    
    gpio49.pinDir         = "OUTPUT";
    gpio49.$name          = "CFG_TOUT4";
    gpio49.GPIO_n.$assign = "EXT_REFCLK0";
    
    gpio50.pinDir         = "OUTPUT";
    gpio50.$name          = "CFG_TOUT5";
    gpio50.GPIO_n.$assign = "CLKOUT0";
    
    gpio51.$name          = "CFG_FAN8";
    gpio51.GPIO_n.$assign = "EPWM3_B";
    
    gpio52.pinDir         = "OUTPUT";
    gpio52.$name          = "CFG_DO03_LBONR";
    gpio52.GPIO_n.$assign = "PR0_PRU0_GPIO9";
    
    gpio53.$name          = "CFG_FRAM_CS0";
    gpio53.pinDir         = "OUTPUT";
    gpio53.pu_pd          = "pu";
    gpio53.GPIO_n.$assign = "EQEP0_B";
    
    gpio54.pinDir         = "OUTPUT";
    gpio54.pu_pd          = "pu";
    gpio54.$name          = "CFG_FRAM_CS1";
    gpio54.GPIO_n.$assign = "EPWM12_A";
    
    gpio55.$name          = "CFG_SPIRDY0";
    gpio55.GPIO_n.$assign = "I2C1_SDA";
    
    gpio56.$name          = "CFG_SPIRDY2";
    gpio56.GPIO_n.$assign = "UART0_RXD";
    gpio56.GPIO_n.$used   = false;
    
    gpio57.$name          = "CFG_SPIRDY3";
    gpio57.GPIO_n.$assign = "UART0_TXD";
    gpio57.GPIO_n.$used   = false;
    
    gpio58.$name          = "CFG_SPIRDY5";
    gpio58.GPIO_n.$assign = "EPWM4_B";
    
    gpio59.$name          = "CFG_GPO";
    gpio59.GPIO_n.$assign = "MCAN2_RX";
    
    gpio60.$name          = "CFG_SAFE_OUT";
    gpio60.GPIO_n.$assign = "MCAN2_TX";
    
    gpio61.$name          = "CFG_IP15ON";
    gpio61.GPIO_n.$assign = "EPWM0_B";
    
    gpio62.$name          = "CFG_P12ON";
    gpio62.GPIO_n.$assign = "EPWM1_B";
    
    gpio63.$name          = "CFG_IM15ON";
    gpio63.GPIO_n.$assign = "EPWM2_B";
    
    gpio64.$name          = "CFG_OSPI0_RST";
    gpio64.pinDir         = "OUTPUT";
    gpio64.defaultValue   = "1";
    gpio64.GPIO_n.$assign = "EPWM10_B";
    
    i2c1.$name           = "CONFIG_I2C0";
    i2c1.I2C.$assign     = "I2C2";
    i2c1.I2C.SCL.$assign = "UART0_RTSn";
    i2c1.I2C.SDA.$assign = "UART0_CTSn";
    i2c1.I2C_child.$name = "drivers_i2c_v1_i2c_v1_template0";
    
    mcspi1.$name                       = "CONFIG_MCSPI0";
    pmic1.peripheralDriver             = mcspi1;
    mcspi1.SPI.$assign                 = "SPI1";
    mcspi1.SPI.CLK.$assign             = "SPI1_CLK";
    mcspi1.SPI.D0.$assign              = "SPI1_D0";
    mcspi1.SPI.D1.$assign              = "SPI1_D1";
    mcspi1.mcspiChannel[0].$name       = "CONFIG_MCSPI_CH0";
    mcspi1.mcspiChannel[0].CSn.$assign = "SPI1_CS0";
    mcspi1.child.$name                 = "drivers_mcspi_v1_mcspi_v1_template1";
    
    mcspi2.$name                                      = "CFG_MCSPI4";
    mcspi2.pinMode                                    = 3;
    mcspi2.intrEnable                                 = "DMA";
    mcspi2.SPI.$assign                                = "SPI4";
    mcspi2.SPI.CLK.$assign                            = "EQEP0_A";
    mcspi2.SPI.D0.$assign                             = "EQEP0_STROBE";
    mcspi2.SPI.D1.$assign                             = "EQEP0_INDEX";
    mcspi2.mcspiChannel[0].$name                      = "CONFIG_MCSPI_CH1";
    mcspi2.mcspiChannel[0].bitRate                    = 50000000;
    mcspi2.mcspiChannel[0].mcspiRxConfigXbar.$name    = "CFG_DMA_TRIG_XBAR8";
    mcspi2.mcspiChannel[0].mcspiRxConfigXbar.instance = "DMA_TRIG_XBAR_EDMA_MODULE_8";
    mcspi2.mcspiChannel[0].mcspiTxConfigXbar.$name    = "CFG_DMA_TRIG_XBAR9";
    mcspi2.mcspiChannel[0].mcspiTxConfigXbar.instance = "DMA_TRIG_XBAR_EDMA_MODULE_9";
    mcspi2.child.$name                                = "drivers_mcspi_v1_mcspi_v1_template0";
    
    mcspi3.$name                                      = "CFG_MCSPI0";
    mcspi3.intrEnable                                 = "DMA";
    mcspi3.SPI.$assign                                = "SPI0";
    mcspi3.SPI.CLK.$assign                            = "SPI0_CLK";
    mcspi3.SPI.D0.$assign                             = "SPI0_D0";
    mcspi3.SPI.D1.$assign                             = "SPI0_D1";
    mcspi3.mcspiChannel[0].$name                      = "CONFIG_MCSPI_CH2";
    mcspi3.mcspiChannel[0].bitRate                    = 5000000;
    mcspi3.mcspiChannel[0].CSn.$assign                = "SPI0_CS0";
    mcspi3.mcspiChannel[0].mcspiRxConfigXbar.$name    = "CFG_DMA_TRIG_XBAR12";
    mcspi3.mcspiChannel[0].mcspiRxConfigXbar.instance = "DMA_TRIG_XBAR_EDMA_MODULE_12";
    mcspi3.mcspiChannel[0].mcspiTxConfigXbar.$name    = "CFG_DMA_TRIG_XBAR13";
    mcspi3.mcspiChannel[0].mcspiTxConfigXbar.instance = "DMA_TRIG_XBAR_EDMA_MODULE_13";
    mcspi3.child.$name                                = "drivers_mcspi_v1_mcspi_v1_template2";
    
    mcspi4.$name                                      = "CFG_MCSPI2";
    mcspi4.intrEnable                                 = "DMA";
    mcspi4.SPI.$assign                                = "SPI2";
    mcspi4.SPI.CLK.$assign                            = "LIN1_TXD";
    mcspi4.SPI.D0.$assign                             = "LIN2_RXD";
    mcspi4.SPI.D1.$assign                             = "LIN2_TXD";
    mcspi4.SPI.D1.$used                               = false;
    mcspi4.mcspiChannel[0].$name                      = "CONFIG_MCSPI_CH3";
    mcspi4.mcspiChannel[0].bitRate                    = 5000000;
    mcspi4.mcspiChannel[0].CSn.$assign                = "LIN1_RXD";
    mcspi4.mcspiChannel[0].mcspiRxConfigXbar.$name    = "CFG_DMA_TRIG_XBAR14";
    mcspi4.mcspiChannel[0].mcspiRxConfigXbar.instance = "DMA_TRIG_XBAR_EDMA_MODULE_14";
    mcspi4.mcspiChannel[0].mcspiTxConfigXbar.$name    = "CFG_DMA_TRIG_XBAR15";
    mcspi4.mcspiChannel[0].mcspiTxConfigXbar.instance = "DMA_TRIG_XBAR_EDMA_MODULE_15";
    mcspi4.child.$name                                = "drivers_mcspi_v1_mcspi_v1_template3";
    
    mcspi5.$name                                      = "CFG_MCSPI3";
    mcspi5.intrEnable                                 = "DMA";
    mcspi5.SPI.$assign                                = "SPI3";
    mcspi5.SPI.CLK.$assign                            = "I2C1_SDA";
    mcspi5.SPI.CLK.$used                              = false;
    mcspi5.SPI.D0.$assign                             = "UART0_RTSn";
    mcspi5.SPI.D0.$used                               = false;
    mcspi5.SPI.D1.$assign                             = "UART0_CTSn";
    mcspi5.SPI.D1.$used                               = false;
    mcspi5.mcspiChannel[0].$name                      = "CONFIG_MCSPI_CH3_COPY";
    mcspi5.mcspiChannel[0].bitRate                    = 5000000;
    mcspi5.mcspiChannel[0].CSn.$assign                = "I2C1_SCL";
    mcspi5.mcspiChannel[0].mcspiRxConfigXbar.$name    = "CFG_DMA_TRIG_XBAR16";
    mcspi5.mcspiChannel[0].mcspiRxConfigXbar.instance = "DMA_TRIG_XBAR_EDMA_MODULE_16";
    mcspi5.mcspiChannel[0].mcspiTxConfigXbar.$name    = "CFG_DMA_TRIG_XBAR17";
    mcspi5.mcspiChannel[0].mcspiTxConfigXbar.instance = "DMA_TRIG_XBAR_EDMA_MODULE_17";
    mcspi5.child.$name                                = "drivers_mcspi_v1_mcspi_v1_template3_COPY";
    
    mcspi6.intrEnable                  = "POLLED";
    mcspi6.$name                       = "CFG_MCSPI5";
    mcspi6.SPI.$assign                 = "SPI5";
    mcspi6.SPI.CLK.$assign             = "EPWM5_B";
    mcspi6.SPI.D0.$assign              = "EPWM6_A";
    mcspi6.SPI.D1.$assign              = "EPWM6_B";
    mcspi6.mcspiChannel[0].$name       = "CONFIG_MCSPI_CH3_COPY_COPY";
    mcspi6.mcspiChannel[0].bitRate     = 5000000;
    mcspi6.mcspiChannel[0].CSn.$assign = "EPWM5_A";
    mcspi6.child.$name                 = "drivers_mcspi_v1_mcspi_v1_template3_COPY_COPY";
    
    edma1.$name                                         = "CONFIG_EDMA0";
    mcspi1.edmaDriver                                   = edma1;
    mcspi2.edmaDriver                                   = edma1;
    mcspi3.edmaDriver                                   = edma1;
    mcspi4.edmaDriver                                   = edma1;
    mcspi5.edmaDriver                                   = edma1;
    mcspi6.edmaDriver                                   = edma1;
    edma1.edmaRmDmaCh[0].$name                          = "CONFIG_EDMA_RM0";
    edma1.edmaRmQdmaCh[0].$name                         = "CONFIG_EDMA_RM1";
    edma1.edmaRmTcc[0].$name                            = "CONFIG_EDMA_RM2";
    edma1.edmaRmParam[0].$name                          = "CONFIG_EDMA_RM3";
    edma1.edmaChannel.create(8);
    edma1.edmaChannel[0].$name                          = "CONFIG_EDMA_CH0";
    edma1.edmaChannel[0].channelTrigger                 = "ECAP0_DMA_INT";
    edma1.edmaChannel[0].xbarConfig.$name               = "CFG_DMA_TRIG_XBAR0";
    edma1.edmaChannel[0].xbarConfig.xbarConfig.$name    = "CFG_DMA_XBAR0";
    edma1.edmaChannel[1].$name                          = "CONFIG_EDMA_CH1";
    edma1.edmaChannel[1].channelTrigger                 = "ECAP1_DMA_INT";
    edma1.edmaChannel[1].xbarConfig.$name               = "CFG_DMA_TRIG_XBAR1";
    edma1.edmaChannel[1].xbarConfig.instance            = "DMA_TRIG_XBAR_EDMA_MODULE_1";
    edma1.edmaChannel[1].xbarConfig.xbarConfig.instance = "DMA_XBAR_DMA_TRIG_XBAR_1";
    edma1.edmaChannel[1].xbarConfig.xbarConfig.$name    = "CFG_DMA_XBAR1";
    edma1.edmaChannel[2].$name                          = "CONFIG_EDMA_CH2";
    edma1.edmaChannel[2].channelTrigger                 = "ECAP2_DMA_INT";
    edma1.edmaChannel[2].xbarConfig.instance            = "DMA_TRIG_XBAR_EDMA_MODULE_2";
    edma1.edmaChannel[2].xbarConfig.$name               = "CFG_DMA_TRIG_XBAR2";
    edma1.edmaChannel[2].xbarConfig.xbarConfig.instance = "DMA_XBAR_DMA_TRIG_XBAR_2";
    edma1.edmaChannel[2].xbarConfig.xbarConfig.$name    = "CFG_DMA_XBAR2";
    edma1.edmaChannel[3].$name                          = "CONFIG_EDMA_CH3";
    edma1.edmaChannel[3].channelTrigger                 = "ECAP3_DMA_INT";
    edma1.edmaChannel[3].xbarConfig.$name               = "CFG_DMA_TRIG_XBAR3";
    edma1.edmaChannel[3].xbarConfig.instance            = "DMA_TRIG_XBAR_EDMA_MODULE_3";
    edma1.edmaChannel[3].xbarConfig.xbarConfig.$name    = "CFG_DMA_XBAR3";
    edma1.edmaChannel[3].xbarConfig.xbarConfig.instance = "DMA_XBAR_DMA_TRIG_XBAR_3";
    edma1.edmaChannel[4].$name                          = "CONFIG_EDMA_CH4";
    edma1.edmaChannel[4].channelTrigger                 = "ECAP4_DMA_INT";
    edma1.edmaChannel[4].xbarConfig.$name               = "CFG_DMA_TRIG_XBAR4";
    edma1.edmaChannel[4].xbarConfig.instance            = "DMA_TRIG_XBAR_EDMA_MODULE_4";
    edma1.edmaChannel[4].xbarConfig.xbarConfig.$name    = "CFG_DMA_XBAR4";
    edma1.edmaChannel[4].xbarConfig.xbarConfig.instance = "DMA_XBAR_DMA_TRIG_XBAR_4";
    edma1.edmaChannel[5].$name                          = "CONFIG_EDMA_CH5";
    edma1.edmaChannel[5].channelTrigger                 = "ECAP5_DMA_INT";
    edma1.edmaChannel[5].xbarConfig.$name               = "CFG_DMA_TRIG_XBAR5";
    edma1.edmaChannel[5].xbarConfig.instance            = "DMA_TRIG_XBAR_EDMA_MODULE_5";
    edma1.edmaChannel[5].xbarConfig.xbarConfig.$name    = "CFG_DMA_XBAR5";
    edma1.edmaChannel[5].xbarConfig.xbarConfig.instance = "DMA_XBAR_DMA_TRIG_XBAR_5";
    edma1.edmaChannel[6].$name                          = "CONFIG_EDMA_CH6";
    edma1.edmaChannel[6].channelTrigger                 = "ECAP6_DMA_INT";
    edma1.edmaChannel[6].xbarConfig.$name               = "CFG_DMA_TRIG_XBAR6";
    edma1.edmaChannel[6].xbarConfig.instance            = "DMA_TRIG_XBAR_EDMA_MODULE_6";
    edma1.edmaChannel[6].xbarConfig.xbarConfig.$name    = "CFG_DMA_XBAR6";
    edma1.edmaChannel[6].xbarConfig.xbarConfig.instance = "DMA_XBAR_DMA_TRIG_XBAR_6";
    edma1.edmaChannel[7].$name                          = "CONFIG_EDMA_CH7";
    edma1.edmaChannel[7].channelTrigger                 = "ECAP7_DMA_INT";
    edma1.edmaChannel[7].xbarConfig.$name               = "CFG_DMA_TRIG_XBAR7";
    edma1.edmaChannel[7].xbarConfig.instance            = "DMA_TRIG_XBAR_EDMA_MODULE_7";
    edma1.edmaChannel[7].xbarConfig.xbarConfig.$name    = "CFG_DMA_XBAR7";
    edma1.edmaChannel[7].xbarConfig.xbarConfig.instance = "DMA_XBAR_DMA_TRIG_XBAR_7";
    
    rti1.counter0Enable = true;
    rti1.compare0Enable = true;
    rti1.usecPerTick0   = 100000;
    rti1.enableIntr0    = true;
    rti1.eventCallback0 = "rtiEvent0";
    rti1.$name          = "CFG_RTI0";
    rti1.RTI.$assign    = "RTI1";
    
    const soc_ctrl_adc    = scripting.addModule("/drivers/soc_ctrl/v0/subModules/soc_ctrl_adc", {}, false);
    const soc_ctrl_adc1   = soc_ctrl_adc.addInstance({}, false);
    soc_ctrl_adc1.$name   = "soc_ctrl_adc0";
    adc.adcReferences     = soc_ctrl_adc1;
    const soc_ctrl        = scripting.addModule("/drivers/soc_ctrl/soc_ctrl", {}, false);
    soc_ctrl.soc_ctrl_adc = soc_ctrl_adc1;
    
    const soc_ctrl_cmpss    = scripting.addModule("/drivers/soc_ctrl/v0/subModules/soc_ctrl_cmpss", {}, false);
    const soc_ctrl_cmpss1   = soc_ctrl_cmpss.addInstance({}, false);
    soc_ctrl_cmpss1.$name   = "soc_ctrl_cmpss0";
    soc_ctrl.soc_ctrl_cmpss = soc_ctrl_cmpss1;
    
    const soc_ctrl_epwm    = scripting.addModule("/drivers/soc_ctrl/v0/subModules/soc_ctrl_epwm", {}, false);
    const soc_ctrl_epwm1   = soc_ctrl_epwm.addInstance({}, false);
    soc_ctrl_epwm1.$name   = "soc_ctrl_epwm0";
    soc_ctrl.soc_ctrl_epwm = soc_ctrl_epwm1;
    epwm.epwmTbClkSync     = soc_ctrl_epwm1;
    
    const soc_ctrl_sdfm    = scripting.addModule("/drivers/soc_ctrl/v0/subModules/soc_ctrl_sdfm", {}, false);
    const soc_ctrl_sdfm1   = soc_ctrl_sdfm.addInstance({}, false);
    soc_ctrl_sdfm1.$name   = "soc_ctrl_sdfm0";
    soc_ctrl.soc_ctrl_sdfm = soc_ctrl_sdfm1;
    
    debug_log.enableUartLog            = true;
    debug_log.uartLog.$name            = "CONFIG_UART0";
    debug_log.uartLog.UART.$assign     = "UART0";
    debug_log.uartLog.UART.RXD.$assign = "UART0_RXD";
    debug_log.uartLog.UART.TXD.$assign = "UART0_TXD";
    debug_log.uartLog.child.$name      = "drivers_uart_v2_uart_v2_template0";
    
    mpu_armv71.$name             = "CONFIG_MPU_REGION0";
    mpu_armv71.size              = 31;
    mpu_armv71.attributes        = "Device";
    mpu_armv71.accessPermissions = "Supervisor RD+WR, User RD";
    mpu_armv71.allowExecute      = false;
    
    mpu_armv72.$name             = "CONFIG_MPU_REGION1";
    mpu_armv72.size              = 15;
    mpu_armv72.accessPermissions = "Supervisor RD+WR, User RD";
    
    mpu_armv73.$name             = "CONFIG_MPU_REGION2";
    mpu_armv73.size              = 15;
    mpu_armv73.accessPermissions = "Supervisor RD+WR, User RD";
    mpu_armv73.baseAddr          = 0x41010000;
    
    mpu_armv74.$name             = "CONFIG_MPU_REGION3";
    mpu_armv74.accessPermissions = "Supervisor RD+WR, User RD";
    mpu_armv74.baseAddr          = 0x70000000;
    mpu_armv74.size              = 21;
    
    mpu_armv75.$name    = "CONFIG_MPU_REGION5";
    mpu_armv75.baseAddr = 0x80000000;
    mpu_armv75.size     = 31;
    
    default_linker1.$name = "memory_configurator_default_linker0";
    
    general1.$name        = "CONFIG_GENERAL0";
    general1.linker.$name = "TIARMCLANG0";
    
    region1.$name                                = "MEMORY_REGION_CONFIGURATION0";
    region1.memory_region.create(11);
    region1.memory_region[0].type                = "TCMA";
    region1.memory_region[0].$name               = "R5F_VECS";
    region1.memory_region[0].size                = 0x40;
    region1.memory_region[0].auto                = false;
    region1.memory_region[1].type                = "TCMA";
    region1.memory_region[1].$name               = "R5F_TCMA";
    region1.memory_region[1].size                = 0x7FC0;
    region1.memory_region[2].type                = "TCMB";
    region1.memory_region[2].size                = 0x8000;
    region1.memory_region[2].$name               = "R5F_TCMB";
    region1.memory_region[3].$name               = "SBL";
    region1.memory_region[3].auto                = false;
    region1.memory_region[3].size                = 0x40000;
    region1.memory_region[4].$name               = "OCRAM";
    region1.memory_region[4].auto                = false;
    region1.memory_region[4].manualStartAddress  = 0x70040000;
    region1.memory_region[4].size                = 0x40000;
    region1.memory_region[5].type                = "FLASH";
    region1.memory_region[5].auto                = false;
    region1.memory_region[5].manualStartAddress  = 0x60100000;
    region1.memory_region[5].size                = 0x80000;
    region1.memory_region[5].$name               = "FLASH";
    region1.memory_region[6].$name               = "USER_SHM_MEM";
    region1.memory_region[6].auto                = false;
    region1.memory_region[6].manualStartAddress  = 0x701D0000;
    region1.memory_region[6].size                = 0x4000;
    region1.memory_region[6].isShared            = true;
    region1.memory_region[6].shared_cores        = ["r5fss0-1","r5fss1-0","r5fss1-1"];
    region1.memory_region[7].$name               = "LOG_SHM_MEM";
    region1.memory_region[7].auto                = false;
    region1.memory_region[7].manualStartAddress  = 0x701D4000;
    region1.memory_region[7].size                = 0x4000;
    region1.memory_region[7].isShared            = true;
    region1.memory_region[7].shared_cores        = ["r5fss0-1","r5fss1-0","r5fss1-1"];
    region1.memory_region[8].type                = "CUSTOM";
    region1.memory_region[8].$name               = "RTOS_NORTOS_IPC_SHM_MEM";
    region1.memory_region[8].auto                = false;
    region1.memory_region[8].manualStartAddress  = 0x72000000;
    region1.memory_region[8].size                = 0x3E80;
    region1.memory_region[8].isShared            = true;
    region1.memory_region[8].shared_cores        = ["r5fss0-1","r5fss1-0","r5fss1-1"];
    region1.memory_region[9].type                = "CUSTOM";
    region1.memory_region[9].$name               = "MAILBOX_HSM";
    region1.memory_region[9].auto                = false;
    region1.memory_region[9].manualStartAddress  = 0x44000000;
    region1.memory_region[9].size                = 0x3CE;
    region1.memory_region[9].isShared            = true;
    region1.memory_region[9].shared_cores        = ["r5fss0-1","r5fss1-0","r5fss1-1"];
    region1.memory_region[10].type               = "CUSTOM";
    region1.memory_region[10].$name              = "MAILBOX_R5F";
    region1.memory_region[10].auto               = false;
    region1.memory_region[10].manualStartAddress = 0x44000400;
    region1.memory_region[10].size               = 0x3CE;
    region1.memory_region[10].isShared           = true;
    region1.memory_region[10].shared_cores       = ["r5fss0-1","r5fss1-0","r5fss1-1"];
    
    section1.load_memory                  = "R5F_VECS";
    section1.group                        = false;
    section1.$name                        = "Vector Table";
    section1.output_section.create(1);
    section1.output_section[0].$name      = ".vectors";
    section1.output_section[0].palignment = true;
    
    section2.load_memory                  = "OCRAM";
    section2.$name                        = "Text Segments";
    section2.output_section.create(5);
    section2.output_section[0].$name      = ".text.hwi";
    section2.output_section[0].palignment = true;
    section2.output_section[1].$name      = ".text.cache";
    section2.output_section[1].palignment = true;
    section2.output_section[2].$name      = ".text.mpu";
    section2.output_section[2].palignment = true;
    section2.output_section[3].$name      = ".text.boot";
    section2.output_section[3].palignment = true;
    section2.output_section[4].$name      = ".text:abort";
    section2.output_section[4].palignment = true;
    
    section3.load_memory                  = "OCRAM";
    section3.$name                        = "Code and Read-Only Data";
    section3.output_section.create(2);
    section3.output_section[0].$name      = ".text";
    section3.output_section[0].palignment = true;
    section3.output_section[1].$name      = ".rodata";
    section3.output_section[1].palignment = true;
    
    section4.load_memory                  = "OCRAM";
    section4.$name                        = "Data Segment";
    section4.output_section.create(1);
    section4.output_section[0].$name      = ".data";
    section4.output_section[0].palignment = true;
    
    section5.load_memory                             = "OCRAM";
    section5.$name                                   = "Memory Segments";
    section5.output_section.create(3);
    section5.output_section[0].$name                 = ".bss";
    section5.output_section[0].output_sections_start = "__BSS_START";
    section5.output_section[0].output_sections_end   = "__BSS_END";
    section5.output_section[0].palignment            = true;
    section5.output_section[1].$name                 = ".sysmem";
    section5.output_section[1].palignment            = true;
    section5.output_section[2].$name                 = ".stack";
    section5.output_section[2].palignment            = true;
    
    section6.load_memory                              = "OCRAM";
    section6.$name                                    = "Stack Segments";
    section6.output_section.create(5);
    section6.output_section[0].$name                  = ".irqstack";
    section6.output_section[0].output_sections_start  = "__IRQ_STACK_START";
    section6.output_section[0].output_sections_end    = "__IRQ_STACK_END";
    section6.output_section[0].input_section.create(1);
    section6.output_section[0].input_section[0].$name = ". = . + __IRQ_STACK_SIZE;";
    section6.output_section[1].$name                  = ".fiqstack";
    section6.output_section[1].output_sections_start  = "__FIQ_STACK_START";
    section6.output_section[1].output_sections_end    = "__FIQ_STACK_END";
    section6.output_section[1].input_section.create(1);
    section6.output_section[1].input_section[0].$name = ". = . + __FIQ_STACK_SIZE;";
    section6.output_section[2].$name                  = ".svcstack";
    section6.output_section[2].output_sections_start  = "__SVC_STACK_START";
    section6.output_section[2].output_sections_end    = "__SVC_STACK_END";
    section6.output_section[2].input_section.create(1);
    section6.output_section[2].input_section[0].$name = ". = . + __SVC_STACK_SIZE;";
    section6.output_section[3].$name                  = ".abortstack";
    section6.output_section[3].output_sections_start  = "__ABORT_STACK_START";
    section6.output_section[3].output_sections_end    = "__ABORT_STACK_END";
    section6.output_section[3].input_section.create(1);
    section6.output_section[3].input_section[0].$name = ". = . + __ABORT_STACK_SIZE;";
    section6.output_section[4].$name                  = ".undefinedstack";
    section6.output_section[4].output_sections_start  = "__UNDEFINED_STACK_START";
    section6.output_section[4].output_sections_end    = "__UNDEFINED_STACK_END";
    section6.output_section[4].input_section.create(1);
    section6.output_section[4].input_section[0].$name = ". = . + __UNDEFINED_STACK_SIZE;";
    
    section7.load_memory                  = "OCRAM";
    section7.$name                        = "Initialization and Exception Handling";
    section7.output_section.create(3);
    section7.output_section[0].$name      = ".ARM.exidx";
    section7.output_section[0].palignment = true;
    section7.output_section[1].$name      = ".init_array";
    section7.output_section[1].palignment = true;
    section7.output_section[2].$name      = ".fini_array";
    section7.output_section[2].palignment = true;
    
    section8.load_memory                 = "USER_SHM_MEM";
    section8.type                        = "NOLOAD";
    section8.$name                       = "User Shared Memory";
    section8.group                       = false;
    section8.output_section.create(1);
    section8.output_section[0].$name     = ".bss.user_shared_mem";
    section8.output_section[0].alignment = 0;
    
    section9.load_memory                 = "LOG_SHM_MEM";
    section9.$name                       = "Log Shared Memory";
    section9.group                       = false;
    section9.type                        = "NOLOAD";
    section9.output_section.create(1);
    section9.output_section[0].$name     = ".bss.log_shared_mem";
    section9.output_section[0].alignment = 0;
    
    section10.load_memory                 = "RTOS_NORTOS_IPC_SHM_MEM";
    section10.type                        = "NOLOAD";
    section10.$name                       = "IPC Shared Memory";
    section10.group                       = false;
    section10.output_section.create(1);
    section10.output_section[0].$name     = ".bss.ipc_vring_mem";
    section10.output_section[0].alignment = 0;
    
    section11.load_memory                 = "MAILBOX_HSM";
    section11.type                        = "NOLOAD";
    section11.$name                       = "SIPC HSM Queue Memory";
    section11.group                       = false;
    section11.output_section.create(1);
    section11.output_section[0].$name     = ".bss.sipc_hsm_queue_mem";
    section11.output_section[0].alignment = 0;
    
    section12.load_memory                 = "MAILBOX_R5F";
    section12.$name                       = "SIPC R5F Queue Memory";
    section12.group                       = false;
    section12.type                        = "NOLOAD";
    section12.output_section.create(1);
    section12.output_section[0].$name     = ".bss.sipc_secure_host_queue_mem";
    section12.output_section[0].alignment = 0;
    
    input_xbar1.$name      = "CFG_INPUT_XBAR0";
    input_xbar1.xbarOutput = "GPIO59";
    
    input_xbar2.$name      = "CFG_INPUT_XBAR1";
    input_xbar2.instance   = "INPUT_XBAR_1";
    input_xbar2.xbarOutput = "GPIO60";
    
    input_xbar3.$name      = "CFG_INPUT_XBAR2";
    input_xbar3.xbarOutput = "GPIO61";
    input_xbar3.instance   = "INPUT_XBAR_2";
    
    input_xbar4.$name      = "CFG_INPUT_XBAR3";
    input_xbar4.xbarOutput = "GPIO62";
    input_xbar4.instance   = "INPUT_XBAR_3";
    
    input_xbar5.$name      = "CFG_INPUT_XBAR4";
    input_xbar5.xbarOutput = "GPIO63";
    input_xbar5.instance   = "INPUT_XBAR_4";
    
    input_xbar6.$name      = "CFG_INPUT_XBAR5";
    input_xbar6.xbarOutput = "GPIO65";
    input_xbar6.instance   = "INPUT_XBAR_5";
    
    input_xbar7.$name      = "CFG_INPUT_XBAR6";
    input_xbar7.xbarOutput = "GPIO66";
    input_xbar7.instance   = "INPUT_XBAR_6";
    
    input_xbar8.$name      = "CFG_INPUT_XBAR7";
    input_xbar8.xbarOutput = "GPIO67";
    input_xbar8.instance   = "INPUT_XBAR_7";
    
    int_xbar1.xbarOutput = ["ADC0_INT1"];
    int_xbar1.$name      = "CFG_INT_XBAR0";
    
    /*
     *  Copyright (C) 2022-2023 Texas Instruments Incorporated
     *
     *  Redistribution and use in source and binary forms, with or without
     *  modification, are permitted provided that the following conditions
     *  are met:
     *
     *    Redistributions of source code must retain the above copyright
     *    notice, this list of conditions and the following disclaimer.
     *
     *    Redistributions in binary form must reproduce the above copyright
     *    notice, this list of conditions and the following disclaimer in the
     *    documentation and/or other materials provided with the
     *    distribution.
     *
     *    Neither the name of Texas Instruments Incorporated nor the names of
     *    its contributors may be used to endorse or promote products derived
     *    from this software without specific prior written permission.
     *
     *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
     *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
     *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
     *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
     *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
     *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
     *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
     *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
     *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     *  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     */
    
    //ADC�Ŏg�p�����EPWM�@�\���A�T���v���v���O�����E�݌v��(DMP57-31)���ēx�ݒ�ύX�ɂȂ�܂����BEPWM16��EPWM7�Ɠǂݑւ�
    
    /* ========================================================================== */
    /*                             Include Files                                  */
    /* ========================================================================== */
    #include <kernel/dpl/DebugP.h>
    #include <kernel/dpl/ClockP.h>
    #include <kernel/dpl/HwiP.h>
    #include <drivers/epwm.h>
    #include <drivers/adc.h>
    
    /*------------------------------------------------------ */
    #include <drivers/gpio.h>
    #include <kernel/dpl/AddrTranslateP.h>
    /*------------------------------------------------------ */
    
    #include "ti_drivers_config.h"
    #include "ti_drivers_open_close.h"
    #include "ti_board_open_close.h"
    
    /*------------------------------------------------------ */
    #include <board/ioexp/ioexp_tca6424.h>
    #include <drivers/i2c.h>
    /*------------------------------------------------------ */
    
    /*------------------------------------------------------ */
    #define LED_ON           (0x01U)
    #define LED_OFF          (0x00U)
    #define LED_BLINK_COUNT  (10U)
    /*------------------------------------------------------ */
    
    /*
     * In this example, epwm7(ePWM_ADC) is configured to periodically trigger
     * a series of conversions (SOC0,1,2) on ADC1 in differential mode
     * to convert inputs ADC1_AIN0-ADC1_AIN1, ADC1_AIN2-ADC1_AIN3, ADC1_AIN4-ADC1_AIN5,
     * and ADC2 in differential mode
     * to convert inputs ADC2_AIN0-ADC2_AIN1, ADC2_AIN2-ADC2_AIN3, ADC2_AIN4-ADC2_AIN5.
     *
     * Note:  In differential mode, the outputs are symmetric across "2112 or 0x840"
     *        i.e.,
     *          if there is a 1v on differential input, expected output should be around
     *          2752 or 0xAC0.
     *          if there is a -1v on differential input, expected output should be around
     *          1472 or 0x5C0.
     *
     *        Expect overflow if the readings are above 4224
     *
     * ADC1 Interrupt ISR is used to read results of ADC1_AIN0-ADC1_AIN1, ADC1_AIN2-ADC1_AIN3,
     * ADC1_AIN4-ADC1_AIN5,  ADC2_AIN0-ADC2_AIN1, ADC2_AIN2-ADC2_AIN3, ADC2_AIN4-ADC2_AIN5
     *
     *
     * The below watch variables can be used to view ADC conversion results.
     *
     * Watch Variables
     * gAdc0Result0 - Digital representation of the differential voltage
     *                on pins ADC1_AIN0-ADC1_AIN1, ADC1_AIN2-ADC1_AIN3, ADC1_AIN4-ADC1_AIN5
     * gAdc0result1 - Digital representation of the differential voltage
     *                on pins ADC2_AIN0-ADC2_AIN1, ADC2_AIN2-ADC2_AIN3, ADC2_AIN4-ADC2_AIN5
     *
     * External Connections
     * ADC1_AIN0-ADC1_AIN1, ADC1_AIN2-ADC1_AIN3, ADC1_AIN4-ADC1_AIN5 pins and
     * ADC2_AIN0-ADC2_AIN1, ADC2_AIN2-ADC2_AIN3, ADC2_AIN4-ADC2_AIN5 pins
     * should be connected to signals to be converted.
     *
     * Check example.syscfg
     *
     */
    
    /*------------------------------------------------------ */
    /* Number of ADC conversions required */
    //#define ADC_CONVERSION_COUNT     1024
    #define ADC_CONVERSION_COUNT     100  // <<< Modified on 2024-11-28 >>>
    
    #define DIDO_COUNT  25
    
    /*------------------------------------------------------ */
    // ADC3_MUX_SEL
    /* TCA6424 PORT 0, Number 5 -> ioIndex : 0*8 + 5 = 5*/
    #define IO_MUX_ADC3_MUX_SEL                        (5U)
    
    // ADC5_MUX_SEL
    /* TCA6424 PORT 1, Number 0  -> ioIndex : 1*8 + 0 = 8 */
    #define IO_MUX_ADC5_MUX_SEL                        (8U)
    
    /* MCAN_SEL PIN OUTPUT   -> 0 */
    #define TCA6424_IO_MUX_ADC_PORT_LINE_STATE_LOW     (TCA6424_OUT_STATE_LOW)
    /* MCAN_STB PIN OUTPUT   -> 1 */
    #define TCA6424_IO_MUX_ADC_PORT_LINE_STATE_HIGH    (TCA6424_OUT_STATE_HIGH)
    /*------------------------------------------------------ */
    
    
    /* ========================================================================== */
    /*                            Global Variables                                */
    /* ========================================================================== */
    static TCA6424_Config  gTCA6424_Config;
    
    /*------------------------------------------------------ */
    /* Global variables and objects */
    /* Variable to store conversion results from all 3 pins  */
    uint16_t gAdc0Result0[ADC_CONVERSION_COUNT];
    uint16_t gAdc0Result1[ADC_CONVERSION_COUNT];
    uint16_t gAdc0Result2[ADC_CONVERSION_COUNT];
    
    uint16_t gAdc1Result0[ADC_CONVERSION_COUNT];
    uint16_t gAdc1Result1[ADC_CONVERSION_COUNT];
    uint16_t gAdc1Result2[ADC_CONVERSION_COUNT];
    
    uint16_t gAdc2Result0[ADC_CONVERSION_COUNT];
    uint16_t gAdc2Result1[ADC_CONVERSION_COUNT];
    uint16_t gAdc2Result2[ADC_CONVERSION_COUNT];
    
    uint16_t gAdc3Result0[ADC_CONVERSION_COUNT];
    uint16_t gAdc3Result1[ADC_CONVERSION_COUNT];
    uint16_t gAdc3Result2[ADC_CONVERSION_COUNT];
    
    uint16_t gAdc4Result0[ADC_CONVERSION_COUNT];
    
    uint32_t gAdc0baseAddr = CFG_ADC0_BASE_ADDR;
    uint32_t gAdc1baseAddr = CFG_ADC1_BASE_ADDR;
    uint32_t gAdc2baseAddr = CFG_ADC2_BASE_ADDR;
    uint32_t gAdc3baseAddr = CFG_ADC3_BASE_ADDR;
    uint32_t gAdc4baseAddr = CFG_ADC4_BASE_ADDR;
    
    static HwiP_Object  gAdcHwiObject;
    
    /*------------------------------------------------------ */
    uint32_t LED_BaseAddr;
    //uint32_t pinNum;
    
    volatile uint32_t gLedState, gBlinkCount;
    /*------------------------------------------------------ */
    
    /*------------------------------------------------------ */
    // Digital Input (24: DI18, Spare:6)
    uint32_t OCCON_BaseAddr;
    uint32_t LBON_BaseAddr;
    uint32_t FANKON_BaseAddr;
    uint32_t RST_BaseAddr;
    uint32_t DI04_BaseAddr;
    uint32_t DI05_BaseAddr;
    uint32_t FUSEON1_BaseAddr;
    uint32_t FUSEON2_BaseAddr;
    uint32_t FUSEON3_BaseAddr;
    uint32_t FUSEON4_BaseAddr;
    uint32_t GID1_BaseAddr;
    uint32_t GID2_BaseAddr;
    uint32_t GID3_BaseAddr;
    uint32_t P24BON_BaseAddr;
    uint32_t P24FON_BaseAddr;
    uint32_t DI15_BaseAddr;
    uint32_t DI16_BaseAddr;
    uint32_t DI17_BaseAddr;
    
    uint32_t DI18_BaseAddr;    // Spare DI
    uint32_t DI19_BaseAddr;    // Spare DI
    uint32_t DI20_BaseAddr;    // Spare DI
    uint32_t DI21_BaseAddr;    // Spare DI
    uint32_t DI22_BaseAddr;    // Spare DI
    uint32_t DI23_BaseAddr;    // Spare DI
    
    // Digital Output (24)
    uint32_t OCCONR_BaseAddr;
    uint32_t LBOF_BaseAddr;
    uint32_t BYPAS_BaseAddr;
    uint32_t LBONR_BaseAddr;
    uint32_t FANR_BaseAddr;
    uint32_t DO05_BaseAddr;
    uint32_t B_OCR_BaseAddr;
    uint32_t B_OPR_BaseAddr;
    uint32_t DO08_BaseAddr;
    uint32_t DO09_BaseAddr;
    uint32_t DO10_BaseAddr;
    uint32_t DO11_BaseAddr;
    
    uint32_t LD1_BaseAddr;
    uint32_t LD2_BaseAddr;
    uint32_t LD3_BaseAddr;
    uint32_t LD4_BaseAddr;
    uint32_t LD5_BaseAddr;
    uint32_t LD6_BaseAddr;
    uint32_t LD7_BaseAddr;
    uint32_t LD8_BaseAddr;
    
    uint32_t TOUT1_BaseAddr;
    uint32_t TOUT2_BaseAddr;
    uint32_t TOUT3_BaseAddr;
    uint32_t TOUT4_BaseAddr;
    uint32_t TOUT5_BaseAddr;
    /*------------------------------------------------------ */
    
    
    /*------------------------------------------------------ */
    /* Variable to store the count of completed conversions
    Initialising conversion count to 0 */
    volatile uint32_t gAdcConversionCount = 0;
    /*------------------------------------------------------ */
    
    
    /*------------------------------------------------------ */
    volatile uint16_t dido_cnt = 0;
    
    volatile uint32_t out_data = 1;
    volatile uint32_t out_data_old;
    volatile uint32_t in_data;
    
    uint32_t in_data_array[DIDO_COUNT];
    uint32_t out_data_array[DIDO_COUNT];
    /*------------------------------------------------------ */
    
    /*------------------------------------------------------ */
    uint32_t            startTimeInUSec, elapsedTimeInUsecs;    // <<< Added on 25-2-20 >>>
    /*------------------------------------------------------ */
    
    
    /* Function Prototypes */
    static void App_adcISR(void *args);
    
    // set_bit_value�֐��̃v���g�^�C�v�錾
    uint32_t set_bit_value(uint32_t data, uint32_t bit_position, uint32_t bit_value);
    
    int32_t TCA6424_Transceiver(void);
    
    
    
    void adc_differential_dido_main(void *args)
    {
        int32_t  status;
    
        /* Initialising a Interrupt parameter */
        HwiP_Params  hwiPrms;
    
        /* variable to iterate ADC_CONVERSION_COUNT */
        uint32_t     loopCnt = 0;
    
    
        /* Open drivers to open the UART driver for console */
        Drivers_open();
        Board_driversOpen();
    
        status = TCA6424_Transceiver();
        DebugP_assert(status == SystemP_SUCCESS);
    
            /*
            * Integrate with Syscfg
            * Set the SOC0 configuration for differential mode input across
            * ADC1_AIN0-ADC1_AIN1, ADC1_AIN2-ADC1_AIN3, ADC1_AIN4-ADC1_AIN5
            * and the SOC1 configuration for differential mode input across
            * ADC2_AIN0-ADC2_AIN1, ADC2_AIN2-ADC2_AIN3, ADC2_AIN4-ADC2_AIN5
    
            * In Syscfg, the compare A value is set to 1000 and the period to 1999.
            * EPWM ADC trigger source is Time-base counter equal to CMPA when the
            * timer is incrementing.
            * Since ePWM clock is 50MHz(using divider of 4), this would give 25kHz
            * sampling rate. The sample rate can also be modulated by changing the
            * ePWM period directly (ensure that the compare A value is less than
            * the period).
            */
    
        DebugP_log("ADC Differential Mode Test Started ...\r\n");
    
        /* Register & enable interrupt */
        HwiP_Params_init(&hwiPrms);
    
        hwiPrms.intNum      = CSLR_R5FSS0_CORE0_CONTROLSS_INTRXBAR0_OUT_0;
        hwiPrms.priority    = 0;                        /* setting high priority. optional */
        hwiPrms.callback    = &App_adcISR;
        status              = HwiP_construct(&gAdcHwiObject, &hwiPrms);
        DebugP_assert(status == SystemP_SUCCESS);
    
    
        /*------------------------------------------------------ */
        /* Get address after translation translate */
        LED_BaseAddr = (uint32_t) AddrTranslateP_getLocalAddr(CFG_LED_BASE_ADDR);
    //    LED_pinNum       = CFG_LED_PIN;
    
        gLedState = LED_ON;
        gBlinkCount = 0;
    
        /* Set LED GPIO pin in output mode */
        GPIO_setDirMode(LED_BaseAddr, CFG_LED_PIN, CFG_LED_DIR);
        /* Set LED GPIO pin HIGH (Initial setting) */
        GPIO_pinWriteHigh(LED_BaseAddr, CFG_LED_PIN);
        /*------------------------------------------------------ */
    
    
        /*------------------------------------------------------ */
        // Digital Input
        OCCON_BaseAddr = (uint32_t) AddrTranslateP_getLocalAddr(CFG_DI00_OCCON_BASE_ADDR);
        LBON_BaseAddr = (uint32_t) AddrTranslateP_getLocalAddr(CFG_DI01_LBON_BASE_ADDR);
        FANKON_BaseAddr = (uint32_t) AddrTranslateP_getLocalAddr(CFG_DI02_FANKON_BASE_ADDR);
        RST_BaseAddr = (uint32_t) AddrTranslateP_getLocalAddr(CFG_DI03_RST_BASE_ADDR);
        DI04_BaseAddr = (uint32_t) AddrTranslateP_getLocalAddr(CFG_DI04_BASE_ADDR);
        DI05_BaseAddr = (uint32_t) AddrTranslateP_getLocalAddr(CFG_DI05_BASE_ADDR);
        FUSEON1_BaseAddr = (uint32_t) AddrTranslateP_getLocalAddr(CFG_DI06_FUSEON1_BASE_ADDR);
        FUSEON2_BaseAddr = (uint32_t) AddrTranslateP_getLocalAddr(CFG_DI07_FUSEON2_BASE_ADDR);
        FUSEON3_BaseAddr = (uint32_t) AddrTranslateP_getLocalAddr(CFG_DI08_FUSEON3_BASE_ADDR);
        FUSEON4_BaseAddr = (uint32_t) AddrTranslateP_getLocalAddr(CFG_DI09_FUSEON4_BASE_ADDR);
        GID1_BaseAddr = (uint32_t) AddrTranslateP_getLocalAddr(CFG_DI10_GID1_BASE_ADDR);
        GID2_BaseAddr = (uint32_t) AddrTranslateP_getLocalAddr(CFG_DI11_GID2_BASE_ADDR);
        GID3_BaseAddr = (uint32_t) AddrTranslateP_getLocalAddr(CFG_DI12_GID3_BASE_ADDR);
        P24BON_BaseAddr = (uint32_t) AddrTranslateP_getLocalAddr(CFG_DI13_P24BON_BASE_ADDR);
        P24FON_BaseAddr = (uint32_t) AddrTranslateP_getLocalAddr(CFG_DI14_P24FON_BASE_ADDR);
        DI15_BaseAddr = (uint32_t) AddrTranslateP_getLocalAddr(CFG_DI15_BASE_ADDR);
        DI16_BaseAddr = (uint32_t) AddrTranslateP_getLocalAddr(CFG_DI16_BASE_ADDR);
        DI17_BaseAddr = (uint32_t) AddrTranslateP_getLocalAddr(CFG_DI17_BASE_ADDR);
    
    /*
        DI18_BaseAddr = (uint32_t) AddrTranslateP_getLocalAddr(CFG_DI18_BASE_ADDR); // Spare DI
        DI19_BaseAddr = (uint32_t) AddrTranslateP_getLocalAddr(CFG_DI19_BASE_ADDR); // Spare DI
        DI20_BaseAddr = (uint32_t) AddrTranslateP_getLocalAddr(CFG_DI20_BASE_ADDR); // Spare DI
        DI21_BaseAddr = (uint32_t) AddrTranslateP_getLocalAddr(CFG_DI21_BASE_ADDR); // Spare DI
        DI22_BaseAddr = (uint32_t) AddrTranslateP_getLocalAddr(CFG_DI22_BASE_ADDR); // Spare DI
        DI23_BaseAddr = (uint32_t) AddrTranslateP_getLocalAddr(CFG_DI23_BASE_ADDR); // Spare DI
    */
        // Digital Output
        OCCONR_BaseAddr = (uint32_t) AddrTranslateP_getLocalAddr(CFG_DO00_OCCONR_BASE_ADDR);
        LBOF_BaseAddr   = (uint32_t) AddrTranslateP_getLocalAddr(CFG_DO01_LBOF_BASE_ADDR);
        BYPAS_BaseAddr  = (uint32_t) AddrTranslateP_getLocalAddr(CFG_DO02_BYPAS_BASE_ADDR);
        LBONR_BaseAddr  = (uint32_t) AddrTranslateP_getLocalAddr(CFG_DO03_LBONR_BASE_ADDR);
        FANR_BaseAddr   = (uint32_t) AddrTranslateP_getLocalAddr(CFG_DO04_FANR_BASE_ADDR);
        DO05_BaseAddr   = (uint32_t) AddrTranslateP_getLocalAddr(CFG_DO05_BASE_ADDR);
        B_OCR_BaseAddr  = (uint32_t) AddrTranslateP_getLocalAddr(CFG_DO06_B_OCR_BASE_ADDR);
        B_OPR_BaseAddr  = (uint32_t) AddrTranslateP_getLocalAddr(CFG_DO07_B_OPR_BASE_ADDR);
        DO08_BaseAddr   = (uint32_t) AddrTranslateP_getLocalAddr(CFG_DO08_BASE_ADDR);
        DO09_BaseAddr   = (uint32_t) AddrTranslateP_getLocalAddr(CFG_DO09_BASE_ADDR);
        DO10_BaseAddr   = (uint32_t) AddrTranslateP_getLocalAddr(CFG_DO10_BASE_ADDR);
        DO11_BaseAddr   = (uint32_t) AddrTranslateP_getLocalAddr(CFG_DO11_BASE_ADDR);
    
        LD1_BaseAddr   = (uint32_t) AddrTranslateP_getLocalAddr(CFG_LD1_BASE_ADDR);
        LD2_BaseAddr   = (uint32_t) AddrTranslateP_getLocalAddr(CFG_LD2_BASE_ADDR);
        LD3_BaseAddr   = (uint32_t) AddrTranslateP_getLocalAddr(CFG_LD3_BASE_ADDR);
        LD4_BaseAddr   = (uint32_t) AddrTranslateP_getLocalAddr(CFG_LD4_BASE_ADDR);
        LD5_BaseAddr   = (uint32_t) AddrTranslateP_getLocalAddr(CFG_LD5_BASE_ADDR);
        LD6_BaseAddr   = (uint32_t) AddrTranslateP_getLocalAddr(CFG_LD6_BASE_ADDR);
        LD7_BaseAddr   = (uint32_t) AddrTranslateP_getLocalAddr(CFG_LD7_BASE_ADDR);
        LD8_BaseAddr   = (uint32_t) AddrTranslateP_getLocalAddr(CFG_LD8_BASE_ADDR);
    
        TOUT1_BaseAddr = (uint32_t) AddrTranslateP_getLocalAddr(CFG_TOUT1_BASE_ADDR);
        TOUT2_BaseAddr = (uint32_t) AddrTranslateP_getLocalAddr(CFG_TOUT2_BASE_ADDR);
        TOUT3_BaseAddr = (uint32_t) AddrTranslateP_getLocalAddr(CFG_TOUT3_BASE_ADDR);
        TOUT4_BaseAddr = (uint32_t) AddrTranslateP_getLocalAddr(CFG_TOUT4_BASE_ADDR);
        TOUT5_BaseAddr = (uint32_t) AddrTranslateP_getLocalAddr(CFG_TOUT5_BASE_ADDR);
        /*------------------------------------------------------ */
    
        /*------------------------------------------------------ */
        // Digital Input
        GPIO_setDirMode(OCCON_BaseAddr, CFG_DI00_OCCON_PIN, CFG_DI00_OCCON_DIR);
        GPIO_pinWriteLow(OCCON_BaseAddr, CFG_DI00_OCCON_PIN);
        GPIO_setDirMode(LBON_BaseAddr, CFG_DI01_LBON_PIN, CFG_DI01_LBON_DIR);
        GPIO_pinWriteLow(LBON_BaseAddr, CFG_DI01_LBON_PIN);
        GPIO_setDirMode(FANKON_BaseAddr, CFG_DI02_FANKON_PIN, CFG_DI02_FANKON_DIR);
        GPIO_pinWriteLow(FANKON_BaseAddr, CFG_DI02_FANKON_PIN);
        GPIO_setDirMode(RST_BaseAddr, CFG_DI03_RST_PIN, CFG_DI03_RST_DIR);
        GPIO_pinWriteLow(RST_BaseAddr, CFG_DI03_RST_PIN);
        GPIO_setDirMode(DI04_BaseAddr, CFG_DI04_PIN, CFG_DI04_DIR);
        GPIO_pinWriteLow(DI04_BaseAddr, CFG_DI04_PIN);
        GPIO_setDirMode(DI05_BaseAddr, CFG_DI05_PIN, CFG_DI05_DIR);
        GPIO_pinWriteLow(DI05_BaseAddr, CFG_DI05_PIN);
        GPIO_setDirMode(FUSEON1_BaseAddr, CFG_DI06_FUSEON1_PIN, CFG_DI06_FUSEON1_DIR);
        GPIO_pinWriteLow(FUSEON1_BaseAddr, CFG_DI06_FUSEON1_PIN);
        GPIO_setDirMode(FUSEON2_BaseAddr, CFG_DI07_FUSEON2_PIN, CFG_DI07_FUSEON2_DIR);
        GPIO_pinWriteLow(FUSEON2_BaseAddr, CFG_DI07_FUSEON2_PIN);
        GPIO_setDirMode(FUSEON3_BaseAddr, CFG_DI08_FUSEON3_PIN, CFG_DI08_FUSEON3_DIR);
        GPIO_pinWriteLow(FUSEON3_BaseAddr, CFG_DI08_FUSEON3_PIN);
        GPIO_setDirMode(FUSEON4_BaseAddr, CFG_DI09_FUSEON4_PIN, CFG_DI09_FUSEON4_DIR);
        GPIO_pinWriteLow(FUSEON4_BaseAddr, CFG_DI09_FUSEON4_PIN);
        GPIO_setDirMode(GID1_BaseAddr, CFG_DI10_GID1_PIN, CFG_DI10_GID1_DIR);
        GPIO_pinWriteLow(GID1_BaseAddr, CFG_DI10_GID1_PIN);
        GPIO_setDirMode(GID2_BaseAddr, CFG_DI11_GID2_PIN, CFG_DI11_GID2_DIR);
        GPIO_pinWriteLow(GID2_BaseAddr, CFG_DI11_GID2_PIN);
        GPIO_setDirMode(GID3_BaseAddr, CFG_DI12_GID3_PIN, CFG_DI12_GID3_DIR);
        GPIO_pinWriteLow(GID3_BaseAddr, CFG_DI12_GID3_PIN);
        GPIO_setDirMode(P24BON_BaseAddr, CFG_DI13_P24BON_PIN, CFG_DI13_P24BON_DIR);
        GPIO_pinWriteLow(P24BON_BaseAddr, CFG_DI13_P24BON_PIN);
        GPIO_setDirMode(P24FON_BaseAddr, CFG_DI14_P24FON_PIN, CFG_DI14_P24FON_DIR);
        GPIO_pinWriteLow(P24FON_BaseAddr, CFG_DI14_P24FON_PIN);
        GPIO_setDirMode(DI15_BaseAddr, CFG_DI15_PIN, CFG_DI15_DIR);
        GPIO_pinWriteLow(DI15_BaseAddr, CFG_DI15_PIN);
        GPIO_setDirMode(DI16_BaseAddr, CFG_DI16_PIN, CFG_DI16_DIR);
        GPIO_pinWriteLow(DI16_BaseAddr, CFG_DI16_PIN);
        GPIO_setDirMode(DI17_BaseAddr, CFG_DI17_PIN, CFG_DI17_DIR);
        GPIO_pinWriteLow(DI17_BaseAddr, CFG_DI17_PIN);
    
    /*  GPIO_setDirMode(DI18_BaseAddr, CFG_DI18_PIN, CFG_DI18_DIR); // Spare Input
        GPIO_pinWriteLow(DI18_BaseAddr, CFG_DI18_PIN);
        GPIO_setDirMode(DI19_BaseAddr, CFG_DI19_PIN, CFG_DI19_DIR); // Spare Input
        GPIO_pinWriteLow(DI19_BaseAddr, CFG_DI19_PIN);
        GPIO_setDirMode(DI20_BaseAddr, CFG_DI20_PIN, CFG_DI20_DIR); // Spare Input
        GPIO_pinWriteLow(DI20_BaseAddr, CFG_DI20_PIN);
        GPIO_setDirMode(DI21_BaseAddr, CFG_DI21_PIN, CFG_DI21_DIR); // Spare Input
        GPIO_pinWriteLow(DI21_BaseAddr, CFG_DI21_PIN);
        GPIO_setDirMode(DI22_BaseAddr, CFG_DI22_PIN, CFG_DI22_DIR); // Spare Input
        GPIO_pinWriteLow(DI22_BaseAddr, CFG_DI22_PIN);
        GPIO_setDirMode(DI23_BaseAddr, CFG_DI23_PIN, CFG_DI23_DIR); // Spare Input
        GPIO_pinWriteLow(DI23_BaseAddr, CFG_DI23_PIN);
    */
        // Digital Output
        GPIO_setDirMode(OCCONR_BaseAddr, CFG_DO00_OCCONR_PIN, CFG_DO00_OCCONR_DIR);
        GPIO_pinWriteLow(OCCONR_BaseAddr, CFG_DO00_OCCONR_PIN);
        GPIO_setDirMode(LBOF_BaseAddr, CFG_DO01_LBOF_PIN, CFG_DO01_LBOF_DIR);
        GPIO_pinWriteLow(LBOF_BaseAddr, CFG_DO01_LBOF_PIN);
        GPIO_setDirMode(BYPAS_BaseAddr, CFG_DO02_BYPAS_PIN, CFG_DO02_BYPAS_DIR);
        GPIO_pinWriteLow(BYPAS_BaseAddr, CFG_DO02_BYPAS_PIN);
        GPIO_setDirMode(LBONR_BaseAddr, CFG_DO03_LBONR_PIN, CFG_DO03_LBONR_DIR);
        GPIO_pinWriteLow(LBONR_BaseAddr, CFG_DO03_LBONR_PIN);
        GPIO_setDirMode(FANR_BaseAddr, CFG_DO04_FANR_PIN, CFG_DO04_FANR_DIR);
        GPIO_pinWriteLow(FANR_BaseAddr, CFG_DO04_FANR_PIN);
        GPIO_setDirMode(DO05_BaseAddr, CFG_DO05_PIN, CFG_DO05_DIR);
        GPIO_pinWriteLow(DO05_BaseAddr, CFG_DO05_PIN);
        GPIO_setDirMode(B_OCR_BaseAddr, CFG_DO06_B_OCR_PIN, CFG_DO06_B_OCR_DIR);
        GPIO_pinWriteLow(B_OCR_BaseAddr, CFG_DO06_B_OCR_PIN);
        GPIO_setDirMode(B_OPR_BaseAddr, CFG_DO07_B_OPR_PIN, CFG_DO07_B_OPR_DIR);
        GPIO_pinWriteLow(B_OPR_BaseAddr, CFG_DO07_B_OPR_PIN);
        GPIO_setDirMode(DO08_BaseAddr, CFG_DO08_PIN, CFG_DO08_DIR);
        GPIO_pinWriteLow(DO08_BaseAddr, CFG_DO08_PIN);
        GPIO_setDirMode(DO09_BaseAddr, CFG_DO09_PIN, CFG_DO09_DIR);
        GPIO_pinWriteLow(DO09_BaseAddr, CFG_DO09_PIN);
        GPIO_setDirMode(DO10_BaseAddr, CFG_DO10_PIN, CFG_DO10_DIR);
        GPIO_pinWriteLow(DO10_BaseAddr, CFG_DO10_PIN);
        GPIO_setDirMode(DO11_BaseAddr, CFG_DO11_PIN, CFG_DO11_DIR);
        GPIO_pinWriteLow(DO11_BaseAddr, CFG_DO11_PIN);
    
        GPIO_setDirMode(LD1_BaseAddr, CFG_LD1_PIN, CFG_LD1_DIR);
        GPIO_pinWriteLow(LD1_BaseAddr, CFG_LD1_PIN);
        GPIO_setDirMode(LD2_BaseAddr, CFG_LD2_PIN, CFG_LD2_DIR);
        GPIO_pinWriteLow(LD2_BaseAddr, CFG_LD2_PIN);
        GPIO_setDirMode(LD3_BaseAddr, CFG_LD3_PIN, CFG_LD3_DIR);
        GPIO_pinWriteLow(LD3_BaseAddr, CFG_LD3_PIN);
        GPIO_setDirMode(LD4_BaseAddr, CFG_LD4_PIN, CFG_LD4_DIR);
        GPIO_pinWriteLow(LD4_BaseAddr, CFG_LD4_PIN);
        GPIO_setDirMode(LD5_BaseAddr, CFG_LD5_PIN, CFG_LD5_DIR);
        GPIO_pinWriteLow(LD5_BaseAddr, CFG_LD5_PIN);
        GPIO_setDirMode(LD6_BaseAddr, CFG_LD6_PIN, CFG_LD6_DIR);
        GPIO_pinWriteLow(LD6_BaseAddr, CFG_LD6_PIN);
        GPIO_setDirMode(LD7_BaseAddr, CFG_LD7_PIN, CFG_LD7_DIR);
        GPIO_pinWriteLow(LD7_BaseAddr, CFG_LD7_PIN);
        GPIO_setDirMode(LD8_BaseAddr, CFG_LD8_PIN, CFG_LD8_DIR);
        GPIO_pinWriteLow(LD8_BaseAddr, CFG_LD8_PIN);
    
        GPIO_setDirMode(TOUT1_BaseAddr, CFG_TOUT1_PIN, CFG_TOUT1_DIR);
        GPIO_pinWriteLow(TOUT1_BaseAddr, CFG_TOUT1_PIN);
        GPIO_setDirMode(TOUT2_BaseAddr, CFG_TOUT2_PIN, CFG_TOUT2_DIR);
        GPIO_pinWriteLow(TOUT2_BaseAddr, CFG_TOUT2_PIN);
        GPIO_setDirMode(TOUT3_BaseAddr, CFG_TOUT3_PIN, CFG_TOUT3_DIR);
        GPIO_pinWriteLow(TOUT3_BaseAddr, CFG_TOUT3_PIN);
        GPIO_setDirMode(TOUT4_BaseAddr, CFG_TOUT4_PIN, CFG_TOUT4_DIR);
        GPIO_pinWriteLow(TOUT4_BaseAddr, CFG_TOUT4_PIN);
        GPIO_setDirMode(TOUT5_BaseAddr, CFG_TOUT5_PIN, CFG_TOUT5_DIR);
        GPIO_pinWriteLow(TOUT5_BaseAddr, CFG_TOUT5_PIN);
        /*------------------------------------------------------ */
    
        /*------------------------------------------------------ */
        /* Setting the EPWM TB counter mode to up count mode*/
        EPWM_setTimeBaseCounterMode(CFG_EPWM_ADC_BASE_ADDR, EPWM_COUNTER_MODE_UP);
        /*------------------------------------------------------ */
    
        /*------------------------------------------------------ */
        /* Start the RTI counter */
        (void)RTI_counterEnable(CFG_RTI0_BASE_ADDR, RTI_TMR_CNT_BLK_INDEX_0);
        /*------------------------------------------------------ */
    
    
         /* Wait until required number of ADC conversions are completed */
        while( gAdcConversionCount < ADC_CONVERSION_COUNT );
    
        /* Remove ePWM trigger to stop ADC conversions */
        EPWM_disableADCTrigger(CFG_EPWM_ADC_BASE_ADDR, EPWM_SOC_A);
    
        /*------------------------------------------------------ */
        /* Stop the RTI counter */
        (void)RTI_counterDisable(CFG_RTI0_BASE_ADDR, RTI_TMR_CNT_BLK_INDEX_0);
        /*------------------------------------------------------ */
    
        loopCnt = 0;
    
    //  printf("data= %x \r\n", out_data);
    
        /* Print few elements from the result buffer */
        DebugP_log("ADC0-0   ADC0-1   ADC0-2    ADC1-0   ADC1-1   ADC1-2    ADC2-0   ADC2-1   ADC2-2    ADC3-0   ADC3-1   ADC3-2   ADC4-0\r\n");
        DebugP_log("------------------------    ------------------------    ------------------------    ------------------------   ------\r\n");
        while(loopCnt < ADC_CONVERSION_COUNT)
        {
            DebugP_log("%d  ,   %d  ,  %d  ,   %d  ,  %d  ,  %d  ,   %d  ,  %d  ,   %d  ,  %d  ,  %d  ,  %d  ,   %d\r\n",
                            gAdc0Result0[loopCnt],
                            gAdc0Result1[loopCnt],
                            gAdc0Result2[loopCnt],
                            gAdc1Result0[loopCnt],
                            gAdc1Result1[loopCnt],
                            gAdc1Result2[loopCnt],
                            gAdc2Result0[loopCnt],
                            gAdc2Result1[loopCnt],
                            gAdc2Result2[loopCnt],
                            gAdc3Result0[loopCnt],
                            gAdc3Result1[loopCnt],
                            gAdc3Result2[loopCnt],
                            gAdc4Result0[loopCnt]);
    
    
    //      loopCnt += 100;
            loopCnt += 1;   // <<< Modified on 2024-11-28 >>>
        }
    
        DebugP_log("ADC Differential Mode Test Passed\r\n");
    
        loopCnt = 0;
        while(loopCnt < DIDO_COUNT)
        {
            // DI: 18, DO:25(DO:12,LED8,Test:5)
            if (in_data_array[loopCnt] != out_data_array[loopCnt]) {
                DebugP_log("%d, NG : output data=%x, input data=%x \r\n",
                           loopCnt, out_data_array[loopCnt], in_data_array[loopCnt]);
            } else {
                DebugP_log("%d, OK : output data=%x, input data=%x \r\n",
                           loopCnt, out_data_array[loopCnt], in_data_array[loopCnt]);
            }
            loopCnt += 1;
        };
    
        DebugP_log("DI/DO Test Passed\r\n");
        DebugP_log("All tests have passed!!\r\n");
    
        DebugP_log("Task Period = %u (micro sec) \r\n", elapsedTimeInUsecs);    // <<< Added on 25-2-20 >>>
    
        Board_driversClose();
        Drivers_close();
    }
    
    static void App_adcISR(void *args)
    {
        /* Store results */
    
        /* [ADC0] */
        /* Averaging the results of four SOCs (0-11) since burst size is configured for 4 SOCs */
    
        gAdc0Result0[gAdcConversionCount] =(
            ADC_readResult(CFG_ADC0_RESULT_BASE_ADDR, ADC_SOC_NUMBER0)+
            ADC_readResult(CFG_ADC0_RESULT_BASE_ADDR, ADC_SOC_NUMBER3)+
            ADC_readResult(CFG_ADC0_RESULT_BASE_ADDR, ADC_SOC_NUMBER6)+
            ADC_readResult(CFG_ADC0_RESULT_BASE_ADDR, ADC_SOC_NUMBER9)
            )>>2;
        gAdc0Result1[gAdcConversionCount] =(
            ADC_readResult(CFG_ADC0_RESULT_BASE_ADDR, ADC_SOC_NUMBER1)+
            ADC_readResult(CFG_ADC0_RESULT_BASE_ADDR, ADC_SOC_NUMBER4)+
            ADC_readResult(CFG_ADC0_RESULT_BASE_ADDR, ADC_SOC_NUMBER7)+
            ADC_readResult(CFG_ADC0_RESULT_BASE_ADDR, ADC_SOC_NUMBER10)
            )>>2;
        gAdc0Result2[gAdcConversionCount] =(
            ADC_readResult(CFG_ADC0_RESULT_BASE_ADDR, ADC_SOC_NUMBER2)+
            ADC_readResult(CFG_ADC0_RESULT_BASE_ADDR, ADC_SOC_NUMBER5)+
            ADC_readResult(CFG_ADC0_RESULT_BASE_ADDR, ADC_SOC_NUMBER8)+
            ADC_readResult(CFG_ADC0_RESULT_BASE_ADDR, ADC_SOC_NUMBER11)
            )>>2;
    
        /* [ADC1] */
        /* Averaging the results of four SOCs (0-11) since burst size is configured for 4 SOCs */
        gAdc1Result0[gAdcConversionCount] =(
            ADC_readResult(CFG_ADC1_RESULT_BASE_ADDR, ADC_SOC_NUMBER0)+
            ADC_readResult(CFG_ADC1_RESULT_BASE_ADDR, ADC_SOC_NUMBER3)+
            ADC_readResult(CFG_ADC1_RESULT_BASE_ADDR, ADC_SOC_NUMBER6)+
            ADC_readResult(CFG_ADC1_RESULT_BASE_ADDR, ADC_SOC_NUMBER9)
            )>>2;
    
        gAdc1Result1[gAdcConversionCount] =(
            ADC_readResult(CFG_ADC1_RESULT_BASE_ADDR, ADC_SOC_NUMBER1)+
            ADC_readResult(CFG_ADC1_RESULT_BASE_ADDR, ADC_SOC_NUMBER4)+
            ADC_readResult(CFG_ADC1_RESULT_BASE_ADDR, ADC_SOC_NUMBER7)+
            ADC_readResult(CFG_ADC1_RESULT_BASE_ADDR, ADC_SOC_NUMBER10)
            )>>2;
        gAdc1Result2[gAdcConversionCount] =(
            ADC_readResult(CFG_ADC1_RESULT_BASE_ADDR, ADC_SOC_NUMBER2)+
            ADC_readResult(CFG_ADC1_RESULT_BASE_ADDR, ADC_SOC_NUMBER5)+
            ADC_readResult(CFG_ADC1_RESULT_BASE_ADDR, ADC_SOC_NUMBER8)+
            ADC_readResult(CFG_ADC1_RESULT_BASE_ADDR, ADC_SOC_NUMBER11)
            )>>2;
    
        /* [ADC2] */
        /* Averaging the results of four SOCs (0-11) since burst size is configured for 4 SOCs */
        gAdc2Result0[gAdcConversionCount] =(
            ADC_readResult(CFG_ADC2_RESULT_BASE_ADDR, ADC_SOC_NUMBER0)+
            ADC_readResult(CFG_ADC2_RESULT_BASE_ADDR, ADC_SOC_NUMBER3)+
            ADC_readResult(CFG_ADC2_RESULT_BASE_ADDR, ADC_SOC_NUMBER6)+
            ADC_readResult(CFG_ADC2_RESULT_BASE_ADDR, ADC_SOC_NUMBER9)
            )>>2;
        gAdc2Result1[gAdcConversionCount] =(
            ADC_readResult(CFG_ADC2_RESULT_BASE_ADDR, ADC_SOC_NUMBER1)+
            ADC_readResult(CFG_ADC2_RESULT_BASE_ADDR, ADC_SOC_NUMBER4)+
            ADC_readResult(CFG_ADC2_RESULT_BASE_ADDR, ADC_SOC_NUMBER7)+
            ADC_readResult(CFG_ADC2_RESULT_BASE_ADDR, ADC_SOC_NUMBER10)
            )>>2;
        gAdc2Result2[gAdcConversionCount] =(
            ADC_readResult(CFG_ADC2_RESULT_BASE_ADDR, ADC_SOC_NUMBER2)+
            ADC_readResult(CFG_ADC2_RESULT_BASE_ADDR, ADC_SOC_NUMBER5)+
            ADC_readResult(CFG_ADC2_RESULT_BASE_ADDR, ADC_SOC_NUMBER8)+
            ADC_readResult(CFG_ADC2_RESULT_BASE_ADDR, ADC_SOC_NUMBER11)
            )>>2;
    
        /* [ADC3] */
        /* Averaging the results of four SOCs (0-11) since burst size is configured for 4 SOCs */
        gAdc3Result0[gAdcConversionCount] =(
            ADC_readResult(CFG_ADC3_RESULT_BASE_ADDR, ADC_SOC_NUMBER0)+
            ADC_readResult(CFG_ADC3_RESULT_BASE_ADDR, ADC_SOC_NUMBER3)+
            ADC_readResult(CFG_ADC3_RESULT_BASE_ADDR, ADC_SOC_NUMBER6)+
            ADC_readResult(CFG_ADC3_RESULT_BASE_ADDR, ADC_SOC_NUMBER9)
            )>>2;
        gAdc3Result1[gAdcConversionCount] =(
            ADC_readResult(CFG_ADC3_RESULT_BASE_ADDR, ADC_SOC_NUMBER1)+
            ADC_readResult(CFG_ADC3_RESULT_BASE_ADDR, ADC_SOC_NUMBER4)+
            ADC_readResult(CFG_ADC3_RESULT_BASE_ADDR, ADC_SOC_NUMBER7)+
            ADC_readResult(CFG_ADC3_RESULT_BASE_ADDR, ADC_SOC_NUMBER10)
            )>>2;
        gAdc3Result2[gAdcConversionCount] =(
            ADC_readResult(CFG_ADC3_RESULT_BASE_ADDR, ADC_SOC_NUMBER2)+
            ADC_readResult(CFG_ADC3_RESULT_BASE_ADDR, ADC_SOC_NUMBER5)+
            ADC_readResult(CFG_ADC3_RESULT_BASE_ADDR, ADC_SOC_NUMBER8)+
            ADC_readResult(CFG_ADC3_RESULT_BASE_ADDR, ADC_SOC_NUMBER11)
            )>>2;
    
        /* [ADC4] */
        /* Averaging the results of four SOCs (0-11) since burst size is configured for 4 SOCs */
        gAdc4Result0[gAdcConversionCount] =(
            ADC_readResult(CFG_ADC4_RESULT_BASE_ADDR, ADC_SOC_NUMBER0)+
            ADC_readResult(CFG_ADC4_RESULT_BASE_ADDR, ADC_SOC_NUMBER2)+
            ADC_readResult(CFG_ADC4_RESULT_BASE_ADDR, ADC_SOC_NUMBER4)+
            ADC_readResult(CFG_ADC4_RESULT_BASE_ADDR, ADC_SOC_NUMBER6)
            )>>2;
    
    
        /* Update the conversion count */
        gAdcConversionCount++;
    
        /* Clear the interrupt flag */
        ADC_clearInterruptStatus(gAdc0baseAddr, ADC_INT_NUMBER1);
    
        /* Check if overflow has occurred */
        if(true == ADC_getInterruptOverflowStatus(gAdc0baseAddr, ADC_INT_NUMBER1))
        {
            ADC_clearInterruptOverflowStatus(gAdc0baseAddr, ADC_INT_NUMBER1);
            ADC_clearInterruptStatus(gAdc0baseAddr, ADC_INT_NUMBER1);
        }
    
        /* LED����                                            */
    /*
        if(gLedState == LED_ON)
        {
            GPIO_pinWriteLow(LED_BaseAddr, CFG_LED_PIN);
            gLedState = LED_OFF;
        }
        else{
            GPIO_pinWriteHigh(LED_BaseAddr, CFG_LED_PIN);
            gLedState = LED_ON;
        }
        gBlinkCount++;
    */
    }
    
    
    void rtiEvent0(void)
    {
        /*------------------------------------------------------ */
        /* �J�E���^���Z�b�g                                            */
        EPWM_setTimeBaseCounter(CFG_EPWM_ADC_BASE_ADDR, 0);
    
        /* Setting the EPWM TB counter mode to up count mode*/
        EPWM_setTimeBaseCounterMode(CFG_EPWM_ADC_BASE_ADDR, EPWM_COUNTER_MODE_UP);
        /*------------------------------------------------------ */
    
        /*------------------------------------------------------
           Application Program
          ------------------------------------------------------ */
    
        elapsedTimeInUsecs = ClockP_getTimeUsec() - startTimeInUSec;            // <<< Added on 25-2-20 >>>
    
        startTimeInUSec = ClockP_getTimeUsec();                                 // <<< Added on 25-2-20 >>>
    
        /*------------------------------------------------------
          (1) DO
          ------------------------------------------------------ */
        /* (1-1) LED����                                         */
        if(gLedState == LED_ON)
        {
            GPIO_pinWriteLow(LED_BaseAddr, CFG_LED_PIN);
            gLedState = LED_OFF;
        }
        else{
            GPIO_pinWriteHigh(LED_BaseAddr, CFG_LED_PIN);
            gLedState = LED_ON;
        }
        gBlinkCount++;
    
        /* (1-2) Digital output                                  */
    //    printf("data= %x \r\n", out_data);
    
        if ((out_data & 1) != 0)
        {
            GPIO_pinWriteHigh(OCCONR_BaseAddr, CFG_DO00_OCCONR_PIN);
        }
        else{
            GPIO_pinWriteLow(OCCONR_BaseAddr, CFG_DO00_OCCONR_PIN);
        }
    
        if ((out_data & (1<<1)) != 0)
        {
            GPIO_pinWriteHigh(LBOF_BaseAddr, CFG_DO01_LBOF_PIN);
        }
        else{
            GPIO_pinWriteLow(LBOF_BaseAddr, CFG_DO01_LBOF_PIN);
        }
    
        if ((out_data & (1<<2)) != 0)
        {
            GPIO_pinWriteHigh(BYPAS_BaseAddr, CFG_DO02_BYPAS_PIN);
        }
        else{
            GPIO_pinWriteLow(BYPAS_BaseAddr, CFG_DO02_BYPAS_PIN);
        }
    
        if ((out_data & (1<<3)) != 0)
        {
            GPIO_pinWriteHigh(LBONR_BaseAddr, CFG_DO03_LBONR_PIN);
        }
        else{
            GPIO_pinWriteLow(LBONR_BaseAddr, CFG_DO03_LBONR_PIN);
        }
    
        if ((out_data & (1<<4)) != 0)
        {
            GPIO_pinWriteHigh(FANR_BaseAddr, CFG_DO04_FANR_PIN);
        }
        else{
            GPIO_pinWriteLow(FANR_BaseAddr, CFG_DO04_FANR_PIN);
        }
    
        if ((out_data & (1<<5)) != 0)
        {
            GPIO_pinWriteHigh(DO05_BaseAddr, CFG_DO05_PIN);
        }
        else{
            GPIO_pinWriteLow(DO05_BaseAddr, CFG_DO05_PIN);
        }
    
        if ((out_data & (1<<6)) != 0)
        {
            GPIO_pinWriteHigh(B_OCR_BaseAddr, CFG_DO06_B_OCR_PIN);
        }
        else{
            GPIO_pinWriteLow(B_OCR_BaseAddr, CFG_DO06_B_OCR_PIN);
        }
    
        if ((out_data & (1<<7)) != 0)
        {
            GPIO_pinWriteHigh(B_OPR_BaseAddr, CFG_DO07_B_OPR_PIN);
        }
        else{
            GPIO_pinWriteLow(B_OPR_BaseAddr, CFG_DO07_B_OPR_PIN);
        }
    
        if ((out_data & (1<<8)) != 0)
        {
            GPIO_pinWriteHigh(DO08_BaseAddr, CFG_DO08_PIN);
        }
        else{
            GPIO_pinWriteLow(DO08_BaseAddr, CFG_DO08_PIN);
        }
    
        if ((out_data & (1<<9)) != 0)
        {
            GPIO_pinWriteHigh(DO09_BaseAddr, CFG_DO09_PIN);
        }
        else{
            GPIO_pinWriteLow(DO09_BaseAddr, CFG_DO09_PIN);
        }
    
        if ((out_data & (1<<10)) != 0)
        {
            GPIO_pinWriteHigh(DO10_BaseAddr, CFG_DO10_PIN);
        }
        else{
            GPIO_pinWriteLow(DO10_BaseAddr, CFG_DO10_PIN);
        }
    
        if ((out_data & (1<<11)) != 0)
        {
            GPIO_pinWriteHigh(DO11_BaseAddr, CFG_DO11_PIN);
        }
        else{
            GPIO_pinWriteLow(DO11_BaseAddr, CFG_DO11_PIN);
        }
    
        // LED
        if ((out_data & (1<<12)) != 0)
        {
            GPIO_pinWriteHigh(LD1_BaseAddr, CFG_LD1_PIN);
        }
        else{
            GPIO_pinWriteLow(LD1_BaseAddr, CFG_LD1_PIN);
        }
    
        if ((out_data & (1<<13)) != 0)
        {
            GPIO_pinWriteHigh(LD2_BaseAddr, CFG_LD2_PIN);
        }
        else{
            GPIO_pinWriteLow(LD2_BaseAddr, CFG_LD2_PIN);
        }
    
        if ((out_data & (1<<14)) != 0)
        {
            GPIO_pinWriteHigh(LD3_BaseAddr, CFG_LD3_PIN);
        }
        else{
            GPIO_pinWriteLow(LD3_BaseAddr, CFG_LD3_PIN);
        }
    
        if ((out_data & (1<<15)) != 0)
        {
            GPIO_pinWriteHigh(LD4_BaseAddr, CFG_LD4_PIN);
        }
        else{
            GPIO_pinWriteLow(LD4_BaseAddr, CFG_LD4_PIN);
        }
    
        if ((out_data & (1<<16)) != 0)
        {
            GPIO_pinWriteHigh(LD5_BaseAddr, CFG_LD5_PIN);
        }
        else{
            GPIO_pinWriteLow(LD5_BaseAddr, CFG_LD5_PIN);
        }
    
        if ((out_data & (1<<17)) != 0)
        {
            GPIO_pinWriteHigh(LD6_BaseAddr, CFG_LD6_PIN);
        }
        else{
            GPIO_pinWriteLow(LD6_BaseAddr, CFG_LD6_PIN);
        }
    
        if ((out_data & (1<<18)) != 0)
        {
            GPIO_pinWriteHigh(LD7_BaseAddr, CFG_LD7_PIN);
        }
        else{
            GPIO_pinWriteLow(LD7_BaseAddr, CFG_LD7_PIN);
        }
    
        if ((out_data & (1<<19)) != 0)
        {
            GPIO_pinWriteHigh(LD8_BaseAddr, CFG_LD8_PIN);
        }
        else{
            GPIO_pinWriteLow(LD8_BaseAddr, CFG_LD8_PIN);
        }
    
        // Test pin
        if ((out_data & (1<<20)) != 0)
        {
            GPIO_pinWriteHigh(TOUT1_BaseAddr, CFG_TOUT1_PIN);
        }
        else{
            GPIO_pinWriteLow(TOUT1_BaseAddr, CFG_TOUT1_PIN);
        }
    
        if ((out_data & (1<<21)) != 0)
        {
            GPIO_pinWriteHigh(TOUT2_BaseAddr, CFG_TOUT2_PIN);
        }
        else{
            GPIO_pinWriteLow(TOUT2_BaseAddr, CFG_TOUT2_PIN);
        }
        if ((out_data & (1<<22)) != 0)
        {
            GPIO_pinWriteHigh(TOUT3_BaseAddr, CFG_TOUT3_PIN);
        }
        else{
            GPIO_pinWriteLow(TOUT3_BaseAddr, CFG_TOUT3_PIN);
        }
    
        if ((out_data & (1<<23)) != 0)
        {
            GPIO_pinWriteHigh(TOUT4_BaseAddr, CFG_TOUT4_PIN);
        }
        else{
            GPIO_pinWriteLow(TOUT4_BaseAddr, CFG_TOUT4_PIN);
        }
    
        if ((out_data & (1<<24)) != 0)
        {
            GPIO_pinWriteHigh(TOUT5_BaseAddr, CFG_TOUT5_PIN);
        }
        else{
            GPIO_pinWriteLow(TOUT5_BaseAddr, CFG_TOUT5_PIN);
        }
    
    
        /*------------------------------------------------------
          (1) digital input
          ------------------------------------------------------ */
    
        // Case1: normal digital input
    /*  in_data = set_bit_value(in_data, 0, GPIO_pinRead(OCCONR_BaseAddr, CFG_DI00_OCCON_PIN));
        in_data = set_bit_value(in_data, 1, GPIO_pinRead(LBON_BaseAddr, CFG_DI01_LBON_PIN));
        in_data = set_bit_value(in_data, 2, GPIO_pinRead(FANKON_BaseAddr, CFG_DI02_FANKON_PIN));
        in_data = set_bit_value(in_data, 3, GPIO_pinRead(RST_BaseAddr, CFG_DI03_RST_PIN));
        in_data = set_bit_value(in_data, 4, GPIO_pinRead(DI04_BaseAddr, CFG_DI04_PIN));
        in_data = set_bit_value(in_data, 5, GPIO_pinRead(DI05_BaseAddr, CFG_DI05_PIN));
        in_data = set_bit_value(in_data, 6, GPIO_pinRead(FUSEON1_BaseAddr, CFG_DI06_FUSEON1_PIN));
        in_data = set_bit_value(in_data, 7, GPIO_pinRead(FUSEON2_BaseAddr, CFG_DI07_FUSEON2_PIN));
        in_data = set_bit_value(in_data, 8, GPIO_pinRead(FUSEON3_BaseAddr, CFG_DI08_FUSEON3_PIN));
        in_data = set_bit_value(in_data, 9, GPIO_pinRead(FUSEON4_BaseAddr, CFG_DI09_FUSEON4_PIN));
        in_data = set_bit_value(in_data, 10, GPIO_pinRead(GID1_BaseAddr, CFG_DI10_GID1_PIN));
        in_data = set_bit_value(in_data, 11, GPIO_pinRead(GID2_BaseAddr, CFG_DI11_GID2_PIN));
        in_data = set_bit_value(in_data, 12, GPIO_pinRead(GID3_BaseAddr, CFG_DI12_GID3_PIN));
        in_data = set_bit_value(in_data, 13, GPIO_pinRead(P24BON_BaseAddr, CFG_DI13_P24BON_PIN));
        in_data = set_bit_value(in_data, 14, GPIO_pinRead(P24FON_BaseAddr, CFG_DI14_P24FON_PIN));
        in_data = set_bit_value(in_data, 15, GPIO_pinRead(DI15_BaseAddr, CFG_DI15_PIN));
        in_data = set_bit_value(in_data, 16, GPIO_pinRead(DI16_BaseAddr, CFG_DI16_PIN));
        in_data = set_bit_value(in_data, 17, GPIO_pinRead(DI17_BaseAddr, CFG_DI17_PIN));
    
        in_data = set_bit_value(in_data, 18, GPIO_pinRead(DI18_BaseAddr, CFG_DI18_PIN));   // Spare DI
        in_data = set_bit_value(in_data, 19, GPIO_pinRead(DI19_BaseAddr, CFG_DI19_PIN));   // Spare DI
        in_data = set_bit_value(in_data, 20, GPIO_pinRead(DI20_BaseAddr, CFG_DI20_PIN));   // Spare DI
        in_data = set_bit_value(in_data, 21, GPIO_pinRead(DI21_BaseAddr, CFG_DI21_PIN));   // Spare DI
        in_data = set_bit_value(in_data, 22, GPIO_pinRead(DI22_BaseAddr, CFG_DI22_PIN));   // Spare DI
        in_data = set_bit_value(in_data, 23, GPIO_pinRead(DI23_BaseAddr, CFG_DI23_PIN));   // Spare DI
        in_data = set_bit_value(in_data, 24, GPIO_pinRead(DI24_BaseAddr, CFG_DI24_PIN));   // Spare DI
    */
    
        // (2) Case2: loopback
        in_data = set_bit_value(in_data, 0, GPIO_pinRead(OCCONR_BaseAddr, CFG_DO00_OCCONR_PIN));
        in_data = set_bit_value(in_data, 1, GPIO_pinRead(LBOF_BaseAddr, CFG_DO01_LBOF_PIN));
        in_data = set_bit_value(in_data, 2, GPIO_pinRead(BYPAS_BaseAddr, CFG_DO02_BYPAS_PIN));
        in_data = set_bit_value(in_data, 3, GPIO_pinRead(LBONR_BaseAddr, CFG_DO03_LBONR_PIN));
        in_data = set_bit_value(in_data, 4, GPIO_pinRead(FANR_BaseAddr, CFG_DO04_FANR_PIN));
        in_data = set_bit_value(in_data, 5, GPIO_pinRead(DO05_BaseAddr, CFG_DO05_PIN));
        in_data = set_bit_value(in_data, 6, GPIO_pinRead(B_OCR_BaseAddr, CFG_DO06_B_OCR_PIN));
        in_data = set_bit_value(in_data, 7, GPIO_pinRead(B_OPR_BaseAddr, CFG_DO07_B_OPR_PIN));
        in_data = set_bit_value(in_data, 8, GPIO_pinRead(DO08_BaseAddr, CFG_DO08_PIN));
        in_data = set_bit_value(in_data, 9, GPIO_pinRead(DO09_BaseAddr, CFG_DO09_PIN));
        in_data = set_bit_value(in_data, 10, GPIO_pinRead(DO10_BaseAddr, CFG_DO10_PIN));
        in_data = set_bit_value(in_data, 11, GPIO_pinRead(DO11_BaseAddr, CFG_DO11_PIN));
    
        in_data = set_bit_value(in_data, 12, GPIO_pinRead(LD1_BaseAddr, CFG_LD1_PIN));
        in_data = set_bit_value(in_data, 13, GPIO_pinRead(LD2_BaseAddr, CFG_LD2_PIN));
        in_data = set_bit_value(in_data, 14, GPIO_pinRead(LD3_BaseAddr, CFG_LD3_PIN));
        in_data = set_bit_value(in_data, 15, GPIO_pinRead(LD4_BaseAddr, CFG_LD4_PIN));
        in_data = set_bit_value(in_data, 16, GPIO_pinRead(LD5_BaseAddr, CFG_LD5_PIN));
        in_data = set_bit_value(in_data, 17, GPIO_pinRead(LD6_BaseAddr, CFG_LD6_PIN));
        in_data = set_bit_value(in_data, 18, GPIO_pinRead(LD7_BaseAddr, CFG_LD7_PIN));
        in_data = set_bit_value(in_data, 19, GPIO_pinRead(LD8_BaseAddr, CFG_LD8_PIN));
    
        in_data = set_bit_value(in_data, 20, GPIO_pinRead(TOUT1_BaseAddr, CFG_TOUT1_PIN));
        in_data = set_bit_value(in_data, 21, GPIO_pinRead(TOUT2_BaseAddr, CFG_TOUT2_PIN));
        in_data = set_bit_value(in_data, 22, GPIO_pinRead(TOUT3_BaseAddr, CFG_TOUT3_PIN));
        in_data = set_bit_value(in_data, 23, GPIO_pinRead(TOUT4_BaseAddr, CFG_TOUT4_PIN));
        in_data = set_bit_value(in_data, 24, GPIO_pinRead(TOUT5_BaseAddr, CFG_TOUT5_PIN));
    
        if (dido_cnt < DIDO_COUNT) {
            out_data_array[dido_cnt] = out_data;
            in_data_array[dido_cnt] = in_data;
        }
    
        out_data_old = out_data;
        out_data = out_data_old << 1;
        dido_cnt++;
    }
    
    
    uint32_t set_bit_value(uint32_t data, uint32_t bit_position, uint32_t bit_value) {
        if (bit_value == 1) {
            // bit_value��1�̏ꍇ�A�w�肳�ꂽ�r�b�g�ʒu��1�ɐݒ�
             data |= (1 << bit_position);  // OR���Z�Ńr�b�g��1�ɐݒ�
        } else {
            // bit_value��0�̏ꍇ�A�w�肳�ꂽ�r�b�g�ʒu��0�ɐݒ�
            data &= ~(1 << bit_position);  // AND���Z�Ɣ��]�Ńr�b�g��0�ɐݒ�
        }
        return data;
    }
    
    
    
    int32_t TCA6424_Transceiver(void)
    {
        int32_t             status = SystemP_SUCCESS;
        TCA6424_Params      tca6424Params;
    
        TCA6424_Params_init(&tca6424Params);
        status = TCA6424_open(&gTCA6424_Config, &tca6424Params);
        DebugP_assert(SystemP_SUCCESS == status);
    
        /* For ADC3_MUX_SEL */
        status = TCA6424_setOutput(
                        &gTCA6424_Config,
                        IO_MUX_ADC3_MUX_SEL,
                        TCA6424_IO_MUX_ADC_PORT_LINE_STATE_HIGH);
    //                  TCA6424_IO_MUX_ADC_PORT_LINE_STATE_LOW);
        DebugP_assert(SystemP_SUCCESS == status);
    
        status += TCA6424_config(
                        &gTCA6424_Config,
                        IO_MUX_ADC3_MUX_SEL,
                        TCA6424_MODE_OUTPUT);
        DebugP_assert(SystemP_SUCCESS == status);
    
    
        /* For ADC5_MUX_SEL */
        status += TCA6424_setOutput(
                        &gTCA6424_Config,
                        IO_MUX_ADC5_MUX_SEL,
    //                  TCA6424_IO_MUX_ADC_PORT_LINE_STATE_HIGH);
                        TCA6424_IO_MUX_ADC_PORT_LINE_STATE_LOW);
        DebugP_assert(SystemP_SUCCESS == status);
    
        status += TCA6424_config(
                        &gTCA6424_Config,
                        IO_MUX_ADC5_MUX_SEL,
                        TCA6424_MODE_OUTPUT);
    
        if(status != SystemP_SUCCESS)
        {
            DebugP_log("Transceiver Setup Failure !!");
            TCA6424_close(&gTCA6424_Config);
        }
    
        TCA6424_close(&gTCA6424_Config);
        return status;
    }
    
    
    However, in the attached project where I customized the ADC example, the PMIC's LDO4 does not turn on.

    As with the ADC example, Drivers_open() is used to configure the PMIC in a customized project.

    Do you know why LDO4 does not turn on?

    Thanks,

    T. Hirata

  • Do you know why LDO4 does not turn on?

    Hi Hirata-san,

    This is just the default value for the PMIC configuration after applying VBAT. I don't really know the rationale. If you want to know all the other default PMIC settings you have to check the TRM but that is by special request.

    Apply for the TRM here: www.ti.com/.../TPS65386XX-Q1-DOCS

  • Hi Kier

    In a program edited from the sample program "adc_burst_mode_oversampling_am263px-cc_r5fss0-0_nortos_ti-arm-clang",

    when PMIC LDO4 does not turn ON, the condition "status == SystemP_FAILURE" is met

    in the following line of "ti_board_open_close.c", which is automatically generated by the SDK,

    and DebugP_logError() is executed.

        status = PMIC_configure(gPmicHandle[instCnt]);

        if(status == SystemP_FAILURE)
        {
        DebugP_logError("PMIC configure failed for instance %d !!!\r\n", instCnt);
        break;
        }

    In this case, the variables are as follows:

      instCnt=0

      gPmicHandle[0] =  0x00000000 <=== Different from normal!!!

      gPmicParams[0] = {deviceType=0,commMode=2,instType=1,i2cAddr=0,instance=0}

    When running the sample program "adc_burst_mode_oversampling_am263px-cc_r5fss0-0_nortos_ti-arm-clang",

    gPmicHandle[0] = 0x7006117C.

    Do you know why LDO4 won't turn on?

    Tnaks,

    T. Hirata  

    ************************************************************************************************

    <<< References >>>

    The Board_pmicOpen() function in "ti_board_open_close.c" automatically generated by the SDK

    int32_t Board_pmicOpen()
    {
    uint32_t instCnt;
    int32_t status = SystemP_SUCCESS;

    for(instCnt = 0U; instCnt < CONFIG_PMIC_NUM_INSTANCES; instCnt++)
    {
    gPmicHandle[instCnt] = NULL; /* Init to NULL so that we can exit gracefully */
    }

    /* Open all instances */
    for(instCnt = 0U; instCnt < CONFIG_PMIC_NUM_INSTANCES; instCnt++)
    {
    gPmicHandle[instCnt] = PMIC_open(instCnt, &gPmicParams[instCnt]);
    if(NULL == gPmicHandle[instCnt])
    {
    DebugP_logError("PMIC open failed for instance %d !!!\r\n", instCnt);
    status = SystemP_FAILURE;
    break;
    }

    status = PMIC_configure(gPmicHandle[instCnt]);

    if(status == SystemP_FAILURE)
    {
    DebugP_logError("PMIC configure failed for instance %d !!!\r\n", instCnt);
    break;
    }
    }
    if(SystemP_FAILURE == status)
    {
    Board_pmicClose(); /* Exit gracefully */
    }

    return status;
    }

  • Hi Kier,

      After further investigation, I found that the reason why LDO4 of the PMIC connected to the MCSPI1 (SPI1) of the control card does not turn on

    is because MCSPI1 cannot be opened.

    The attached example_CC_1p2 is the SysConfig setting currently being evaluated. It is set to use 6 MCSPIs.

      MCPSI0: Polled mode, 4 wires: BQ79600 is connected

      MCPSI1: Interrupt mode, 4 wires: PMIC is connected

      MCPSI2: Polled mode, 4 wires: BQ79600 is connected

      MCPSI3: Polled mode, 4 wires: BQ79600 is connected

      MCPSI4: DMA mode, 3 wires: External SPI I/F memory is connected

      MCPSI5: Polled mode, 4 wires: BQ79600 is connected

    However, with this setting, the return value of MCSPI1 open by the function MCSPI_open(); is 0.

    Are there any conditions for MCSPI settings?

    /**
     * These arguments were used when this file was generated. They will be automatically applied on subsequent loads
     * via the GUI or CLI. Run CLI with '--help' for additional information on how to override these arguments.
     * @cliArgs --device "AM263Px" --part "AM263P4" --package "ZCZ_C" --context "r5fss0-0" --product "MCU_PLUS_SDK_AM263Px@10.01.00"
     * @v2CliArgs --device "AM263P4-Q1" --package "NFBGA (ZCZ-C)" --context "r5fss0-0" --product "MCU_PLUS_SDK_AM263Px@10.01.00"
     * @versions {"tool":"1.23.1+4034"}
     */
    
    /**
     * Import the modules used in this configuration.
     */
    const flash           = scripting.addModule("/board/flash/flash", {}, false);
    const flash1          = flash.addInstance();
    const pmic            = scripting.addModule("/board/pmic/pmic", {}, false);
    const pmic1           = pmic.addInstance();
    const adc             = scripting.addModule("/drivers/adc/adc", {}, false);
    const adc1            = adc.addInstance();
    const adc2            = adc.addInstance();
    const adc3            = adc.addInstance();
    const adc4            = adc.addInstance();
    const adc5            = adc.addInstance();
    const dac             = scripting.addModule("/drivers/dac/dac", {}, false);
    const dac1            = dac.addInstance();
    const ecap            = scripting.addModule("/drivers/ecap/ecap", {}, false);
    const ecap1           = ecap.addInstance();
    const ecap2           = ecap.addInstance();
    const ecap3           = ecap.addInstance();
    const ecap4           = ecap.addInstance();
    const ecap5           = ecap.addInstance();
    const ecap6           = ecap.addInstance();
    const ecap7           = ecap.addInstance();
    const ecap8           = ecap.addInstance();
    const edma            = scripting.addModule("/drivers/edma/edma", {}, false);
    const edma1           = edma.addInstance();
    const epwm            = scripting.addModule("/drivers/epwm/epwm", {}, false);
    const epwm1           = epwm.addInstance();
    const epwm2           = epwm.addInstance();
    const epwm3           = epwm.addInstance();
    const epwm4           = epwm.addInstance();
    const epwm5           = epwm.addInstance();
    const gpio            = scripting.addModule("/drivers/gpio/gpio", {}, false);
    const gpio1           = gpio.addInstance();
    const gpio2           = gpio.addInstance();
    const gpio3           = gpio.addInstance();
    const gpio4           = gpio.addInstance();
    const gpio5           = gpio.addInstance();
    const gpio6           = gpio.addInstance();
    const gpio7           = gpio.addInstance();
    const gpio8           = gpio.addInstance();
    const gpio9           = gpio.addInstance();
    const gpio10          = gpio.addInstance();
    const gpio11          = gpio.addInstance();
    const gpio12          = gpio.addInstance();
    const gpio13          = gpio.addInstance();
    const gpio14          = gpio.addInstance();
    const gpio15          = gpio.addInstance();
    const gpio16          = gpio.addInstance();
    const gpio17          = gpio.addInstance();
    const gpio18          = gpio.addInstance();
    const gpio19          = gpio.addInstance();
    const gpio20          = gpio.addInstance();
    const gpio21          = gpio.addInstance();
    const gpio22          = gpio.addInstance();
    const gpio23          = gpio.addInstance();
    const gpio24          = gpio.addInstance();
    const gpio25          = gpio.addInstance();
    const gpio26          = gpio.addInstance();
    const gpio27          = gpio.addInstance();
    const gpio28          = gpio.addInstance();
    const gpio29          = gpio.addInstance();
    const gpio30          = gpio.addInstance();
    const gpio31          = gpio.addInstance();
    const gpio32          = gpio.addInstance();
    const gpio33          = gpio.addInstance();
    const gpio34          = gpio.addInstance();
    const gpio35          = gpio.addInstance();
    const gpio36          = gpio.addInstance();
    const gpio37          = gpio.addInstance();
    const gpio38          = gpio.addInstance();
    const gpio39          = gpio.addInstance();
    const gpio40          = gpio.addInstance();
    const gpio41          = gpio.addInstance();
    const gpio42          = gpio.addInstance();
    const gpio43          = gpio.addInstance();
    const gpio44          = gpio.addInstance();
    const gpio45          = gpio.addInstance();
    const gpio46          = gpio.addInstance();
    const gpio47          = gpio.addInstance();
    const gpio48          = gpio.addInstance();
    const gpio49          = gpio.addInstance();
    const gpio50          = gpio.addInstance();
    const gpio51          = gpio.addInstance();
    const gpio52          = gpio.addInstance();
    const gpio53          = gpio.addInstance();
    const gpio54          = gpio.addInstance();
    const gpio55          = gpio.addInstance();
    const gpio56          = gpio.addInstance();
    const gpio57          = gpio.addInstance();
    const gpio58          = gpio.addInstance();
    const gpio59          = gpio.addInstance();
    const gpio60          = gpio.addInstance();
    const gpio61          = gpio.addInstance();
    const gpio62          = gpio.addInstance();
    const gpio63          = gpio.addInstance();
    const mcspi           = scripting.addModule("/drivers/mcspi/mcspi", {}, false);
    const mcspi1          = mcspi.addInstance();
    const mcspi2          = mcspi.addInstance();
    const mcspi3          = mcspi.addInstance();
    const mcspi4          = mcspi.addInstance();
    const mcspi5          = mcspi.addInstance();
    const mcspi6          = mcspi.addInstance();
    const rti             = scripting.addModule("/drivers/rti/rti", {}, false);
    const rti1            = rti.addInstance();
    const debug_log       = scripting.addModule("/kernel/dpl/debug_log");
    const dpl_cfg         = scripting.addModule("/kernel/dpl/dpl_cfg");
    const mpu_armv7       = scripting.addModule("/kernel/dpl/mpu_armv7", {}, false);
    const mpu_armv71      = mpu_armv7.addInstance();
    const mpu_armv72      = mpu_armv7.addInstance();
    const mpu_armv73      = mpu_armv7.addInstance();
    const mpu_armv74      = mpu_armv7.addInstance();
    const mpu_armv75      = mpu_armv7.addInstance();
    const default_linker  = scripting.addModule("/memory_configurator/default_linker", {}, false);
    const default_linker1 = default_linker.addInstance();
    const general         = scripting.addModule("/memory_configurator/general", {}, false);
    const general1        = general.addInstance();
    const region          = scripting.addModule("/memory_configurator/region", {}, false);
    const region1         = region.addInstance();
    const section         = scripting.addModule("/memory_configurator/section", {}, false);
    const section1        = section.addInstance();
    const section2        = section.addInstance();
    const section3        = section.addInstance();
    const section4        = section.addInstance();
    const section5        = section.addInstance();
    const section6        = section.addInstance();
    const section7        = section.addInstance();
    const section8        = section.addInstance();
    const section9        = section.addInstance();
    const section10       = section.addInstance();
    const section11       = section.addInstance();
    const section12       = section.addInstance();
    const input_xbar      = scripting.addModule("/xbar/input_xbar/input_xbar", {}, false);
    const input_xbar1     = input_xbar.addInstance();
    const input_xbar2     = input_xbar.addInstance();
    const input_xbar3     = input_xbar.addInstance();
    const input_xbar4     = input_xbar.addInstance();
    const input_xbar5     = input_xbar.addInstance();
    const input_xbar6     = input_xbar.addInstance();
    const input_xbar7     = input_xbar.addInstance();
    const input_xbar8     = input_xbar.addInstance();
    const int_xbar        = scripting.addModule("/xbar/int_xbar/int_xbar", {}, false);
    const int_xbar1       = int_xbar.addInstance();
    
    /**
     * Write custom configuration values to the imported modules.
     */
    flash1.$name                                  = "CONFIG_FLASH0";
    flash1.protocol                               = "8d_8d_8d";
    flash1.strDtr_isAddrReg                       = true;
    flash1.strDtr_cmdRegWr                        = "0x81";
    flash1.strDtr_cmdRegRd                        = "0x85";
    flash1.strDtr_shift                           = 255;
    flash1.strDtr_mask                            = "255";
    flash1.xspiWipRdCmd                           = "0x05";
    flash1.fourByteEnableSeq                      = "0";
    flash1.peripheralDriver.$name                 = "CONFIG_OSPI0";
    flash1.peripheralDriver.inputClkFreq          = 100000000;
    flash1.peripheralDriver.OSPI.$assign          = "OSPI0";
    flash1.peripheralDriver.OSPI.CLK.$assign      = "OSPI0_CLK";
    flash1.peripheralDriver.OSPI.CSn0.$assign     = "OSPI0_CSn0";
    flash1.peripheralDriver.OSPI.DQS.$assign      = "UART1_TXD";
    flash1.peripheralDriver.OSPI.D7.$assign       = "MCAN1_TX";
    flash1.peripheralDriver.OSPI.D6.$assign       = "MCAN1_RX";
    flash1.peripheralDriver.OSPI.D5.$assign       = "MCAN0_TX";
    flash1.peripheralDriver.OSPI.D4.$assign       = "MCAN0_RX";
    flash1.peripheralDriver.OSPI.D3.$assign       = "OSPI0_D3";
    flash1.peripheralDriver.OSPI.D2.$assign       = "OSPI0_D2";
    flash1.peripheralDriver.OSPI.D1.$assign       = "OSPI0_D1";
    flash1.peripheralDriver.OSPI.D0.$assign       = "OSPI0_D0";
    flash1.peripheralDriver.OSPI.RESET_OUT0.$used = false;
    flash1.peripheralDriver.child.$name           = "drivers_ospi_v0_ospi_v0_am263px_template0";
    
    pmic1.$name = "CONFIG_PMIC0";
    
    adc1.adcClockPrescaler   = "ADC_CLK_DIV_4_0";
    adc1.interruptPulseMode  = "ADC_PULSE_END_OF_CONV";
    adc1.soc0Channel         = "ADC_CH_ADCIN0_ADCIN1";
    adc1.adcSignalMode       = "ADC_MODE_DIFFERENTIAL";
    adc1.soc3Channel         = "ADC_CH_ADCIN0_ADCIN1";
    adc1.soc13Channel        = "ADC_CH_ADCIN0_ADCIN1";
    adc1.soc14Channel        = "ADC_CH_ADCIN0_ADCIN1";
    adc1.soc15Channel        = "ADC_CH_ADCIN0_ADCIN1";
    adc1.burstSize           = 4;
    adc1.enableBurstMode     = true;
    adc1.soc7Channel         = "ADC_CH_ADCIN2_ADCIN3";
    adc1.soc8Channel         = "ADC_CH_ADCIN4_ADCIN5";
    adc1.soc11Channel        = "ADC_CH_ADCIN4_ADCIN5";
    adc1.soc4Channel         = "ADC_CH_ADCIN2_ADCIN3";
    adc1.soc12Channel        = "ADC_CH_ADCIN0_ADCIN1";
    adc1.interrupt1SOCSource = "ADC_SOC_NUMBER11";
    adc1.soc1Channel         = "ADC_CH_ADCIN2_ADCIN3";
    adc1.soc2Channel         = "ADC_CH_ADCIN4_ADCIN5";
    adc1.soc5Channel         = "ADC_CH_ADCIN4_ADCIN5";
    adc1.soc6Channel         = "ADC_CH_ADCIN0_ADCIN1";
    adc1.soc9Channel         = "ADC_CH_ADCIN0_ADCIN1";
    adc1.soc10Channel        = "ADC_CH_ADCIN2_ADCIN3";
    adc1.enableConverter     = true;
    adc1.enableInterrupt1    = true;
    adc1.socHighPriorityMode = "ADC_PRI_ALL_HIPRI";
    adc1.soc0Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc1.soc1Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc1.soc2Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc1.soc3Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc1.soc4Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc1.soc5Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc1.soc6Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc1.soc7Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc1.soc8Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc1.soc9Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc1.soc10Trigger        = "ADC_TRIGGER_EPWM7_SOCA";
    adc1.soc11Trigger        = "ADC_TRIGGER_EPWM7_SOCA";
    adc1.burstTrigger        = "ADC_TRIGGER_EPWM7_SOCA";
    adc1.$name               = "CFG_ADC0";
    adc1.ADC.$assign         = "ADC0";
    adc1.ADC.AIN0.$assign    = "ADC0_AIN0";
    adc1.ADC.AIN1.$assign    = "ADC0_AIN1";
    adc1.ADC.AIN2.$assign    = "ADC0_AIN2";
    adc1.ADC.AIN3.$assign    = "ADC0_AIN3";
    adc1.ADC.AIN4.$assign    = "ADC0_AIN4";
    adc1.ADC.AIN5.$assign    = "ADC0_AIN5";
    
    adc2.adcClockPrescaler   = "ADC_CLK_DIV_4_0";
    adc2.interruptPulseMode  = "ADC_PULSE_END_OF_CONV";
    adc2.enableConverter     = true;
    adc2.soc0Channel         = "ADC_CH_ADCIN0_ADCIN1";
    adc2.adcSignalMode       = "ADC_MODE_DIFFERENTIAL";
    adc2.soc3Channel         = "ADC_CH_ADCIN0_ADCIN1";
    adc2.soc12Channel        = "ADC_CH_ADCIN0_ADCIN1";
    adc2.soc13Channel        = "ADC_CH_ADCIN0_ADCIN1";
    adc2.soc14Channel        = "ADC_CH_ADCIN0_ADCIN1";
    adc2.soc15Channel        = "ADC_CH_ADCIN0_ADCIN1";
    adc2.soc4Channel         = "ADC_CH_ADCIN2_ADCIN3";
    adc2.soc7Channel         = "ADC_CH_ADCIN2_ADCIN3";
    adc2.soc8Channel         = "ADC_CH_ADCIN4_ADCIN5";
    adc2.soc11Channel        = "ADC_CH_ADCIN4_ADCIN5";
    adc2.burstSize           = 4;
    adc2.enableBurstMode     = true;
    adc2.soc1Channel         = "ADC_CH_ADCIN2_ADCIN3";
    adc2.soc2Channel         = "ADC_CH_ADCIN4_ADCIN5";
    adc2.soc5Channel         = "ADC_CH_ADCIN4_ADCIN5";
    adc2.soc6Channel         = "ADC_CH_ADCIN0_ADCIN1";
    adc2.soc9Channel         = "ADC_CH_ADCIN0_ADCIN1";
    adc2.soc10Channel        = "ADC_CH_ADCIN2_ADCIN3";
    adc2.socHighPriorityMode = "ADC_PRI_ALL_HIPRI";
    adc2.soc0Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc2.soc1Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc2.soc2Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc2.soc3Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc2.soc4Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc2.soc5Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc2.soc6Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc2.soc7Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc2.soc8Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc2.soc9Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc2.soc10Trigger        = "ADC_TRIGGER_EPWM7_SOCA";
    adc2.soc11Trigger        = "ADC_TRIGGER_EPWM7_SOCA";
    adc2.burstTrigger        = "ADC_TRIGGER_EPWM7_SOCA";
    adc2.$name               = "CFG_ADC1";
    adc2.ADC.$assign         = "ADC1";
    adc2.ADC.AIN0.$assign    = "ADC1_AIN0";
    adc2.ADC.AIN1.$assign    = "ADC1_AIN1";
    adc2.ADC.AIN2.$assign    = "ADC1_AIN2";
    adc2.ADC.AIN3.$assign    = "ADC1_AIN3";
    adc2.ADC.AIN4.$assign    = "ADC1_AIN4";
    adc2.ADC.AIN5.$assign    = "ADC1_AIN5";
    
    adc3.adcClockPrescaler   = "ADC_CLK_DIV_4_0";
    adc3.interruptPulseMode  = "ADC_PULSE_END_OF_CONV";
    adc3.enableConverter     = true;
    adc3.soc0Channel         = "ADC_CH_ADCIN0_ADCIN1";
    adc3.adcSignalMode       = "ADC_MODE_DIFFERENTIAL";
    adc3.soc3Channel         = "ADC_CH_ADCIN0_ADCIN1";
    adc3.soc12Channel        = "ADC_CH_ADCIN0_ADCIN1";
    adc3.soc13Channel        = "ADC_CH_ADCIN0_ADCIN1";
    adc3.soc14Channel        = "ADC_CH_ADCIN0_ADCIN1";
    adc3.soc15Channel        = "ADC_CH_ADCIN0_ADCIN1";
    adc3.soc4Channel         = "ADC_CH_ADCIN2_ADCIN3";
    adc3.soc7Channel         = "ADC_CH_ADCIN2_ADCIN3";
    adc3.soc8Channel         = "ADC_CH_ADCIN4_ADCIN5";
    adc3.soc11Channel        = "ADC_CH_ADCIN4_ADCIN5";
    adc3.burstSize           = 4;
    adc3.enableBurstMode     = true;
    adc3.soc1Channel         = "ADC_CH_ADCIN2_ADCIN3";
    adc3.soc2Channel         = "ADC_CH_ADCIN4_ADCIN5";
    adc3.soc5Channel         = "ADC_CH_ADCIN4_ADCIN5";
    adc3.soc6Channel         = "ADC_CH_ADCIN0_ADCIN1";
    adc3.soc9Channel         = "ADC_CH_ADCIN0_ADCIN1";
    adc3.soc10Channel        = "ADC_CH_ADCIN2_ADCIN3";
    adc3.socHighPriorityMode = "ADC_PRI_ALL_HIPRI";
    adc3.soc0Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc3.soc1Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc3.soc2Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc3.soc3Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc3.soc4Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc3.soc5Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc3.soc6Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc3.soc7Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc3.soc8Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc3.soc9Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc3.soc10Trigger        = "ADC_TRIGGER_EPWM7_SOCA";
    adc3.soc11Trigger        = "ADC_TRIGGER_EPWM7_SOCA";
    adc3.burstTrigger        = "ADC_TRIGGER_EPWM7_SOCA";
    adc3.$name               = "CFG_ADC2";
    adc3.ADC.$assign         = "ADC2";
    adc3.ADC.AIN0.$assign    = "ADC2_AIN0";
    adc3.ADC.AIN1.$assign    = "ADC2_AIN1";
    adc3.ADC.AIN2.$assign    = "ADC2_AIN2";
    adc3.ADC.AIN3.$assign    = "ADC2_AIN3";
    adc3.ADC.AIN4.$assign    = "ADC2_AIN4";
    adc3.ADC.AIN5.$assign    = "ADC2_AIN5";
    
    adc4.adcClockPrescaler   = "ADC_CLK_DIV_4_0";
    adc4.interruptPulseMode  = "ADC_PULSE_END_OF_CONV";
    adc4.enableConverter     = true;
    adc4.soc0Channel         = "ADC_CH_ADCIN0_ADCIN1";
    adc4.adcSignalMode       = "ADC_MODE_DIFFERENTIAL";
    adc4.soc3Channel         = "ADC_CH_ADCIN0_ADCIN1";
    adc4.soc12Channel        = "ADC_CH_ADCIN0_ADCIN1";
    adc4.soc13Channel        = "ADC_CH_ADCIN0_ADCIN1";
    adc4.soc14Channel        = "ADC_CH_ADCIN0_ADCIN1";
    adc4.soc15Channel        = "ADC_CH_ADCIN0_ADCIN1";
    adc4.soc4Channel         = "ADC_CH_ADCIN2_ADCIN3";
    adc4.soc7Channel         = "ADC_CH_ADCIN2_ADCIN3";
    adc4.soc8Channel         = "ADC_CH_ADCIN4_ADCIN5";
    adc4.soc11Channel        = "ADC_CH_ADCIN4_ADCIN5";
    adc4.burstSize           = 4;
    adc4.enableBurstMode     = true;
    adc4.soc1Channel         = "ADC_CH_ADCIN2_ADCIN3";
    adc4.soc2Channel         = "ADC_CH_ADCIN4_ADCIN5";
    adc4.soc5Channel         = "ADC_CH_ADCIN4_ADCIN5";
    adc4.soc6Channel         = "ADC_CH_ADCIN0_ADCIN1";
    adc4.soc9Channel         = "ADC_CH_ADCIN0_ADCIN1";
    adc4.soc10Channel        = "ADC_CH_ADCIN2_ADCIN3";
    adc4.socHighPriorityMode = "ADC_PRI_ALL_HIPRI";
    adc4.soc0Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc4.soc1Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc4.soc2Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc4.soc3Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc4.soc4Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc4.soc5Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc4.soc6Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc4.soc7Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc4.soc8Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc4.soc9Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc4.soc10Trigger        = "ADC_TRIGGER_EPWM7_SOCA";
    adc4.soc11Trigger        = "ADC_TRIGGER_EPWM7_SOCA";
    adc4.burstTrigger        = "ADC_TRIGGER_EPWM7_SOCA";
    adc4.$name               = "CFG_ADC3";
    adc4.ADC.$assign         = "ADC3";
    adc4.ADC.AIN0.$assign    = "ADC3_AIN0";
    adc4.ADC.AIN1.$assign    = "ADC3_AIN1";
    adc4.ADC.AIN2.$assign    = "ADC3_AIN2";
    adc4.ADC.AIN3.$assign    = "ADC3_AIN3";
    adc4.ADC.AIN4.$assign    = "ADC3_AIN4";
    adc4.ADC.AIN5.$assign    = "ADC3_AIN5";
    
    adc5.adcClockPrescaler   = "ADC_CLK_DIV_4_0";
    adc5.interruptPulseMode  = "ADC_PULSE_END_OF_CONV";
    adc5.enableConverter     = true;
    adc5.burstSize           = 4;
    adc5.enableBurstMode     = true;
    adc5.socHighPriorityMode = "ADC_PRI_ALL_HIPRI";
    adc5.soc0Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc5.soc1Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc5.soc2Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc5.soc3Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc5.burstTrigger        = "ADC_TRIGGER_EPWM7_SOCA";
    adc5.$name               = "CFG_ADC4";
    adc5.ADC.$assign         = "ADC4";
    adc5.ADC.AIN0.$assign    = "ADC4_AIN0";
    adc5.ADC.AIN1.$used      = false;
    adc5.ADC.AIN2.$used      = false;
    adc5.ADC.AIN3.$used      = false;
    adc5.ADC.AIN4.$used      = false;
    adc5.ADC.AIN5.$used      = false;
    
    dac1.$name        = "CFG_DAC";
    dac1.enableOutput = true;
    
    ecap1.eventStop           = "ECAP_EVENT_4";
    ecap1.eventOnePolarity    = "ECAP_EVNT_FALLING_EDGE";
    ecap1.eventThreePolarity  = "ECAP_EVNT_FALLING_EDGE";
    ecap1.useInterrupts       = false;
    ecap1.counterResetOnEvent = ["ECAP_EVENT_1","ECAP_EVENT_2","ECAP_EVENT_3","ECAP_EVENT_4"];
    ecap1.ecapInput           = "ECAP_INPUT_INPUTXBAR0";
    ecap1.useDMA              = true;
    ecap1.dmaSource           = "ECAP_CAP_MODE_DMA_TRIGGER_SRC_CEVT4";
    ecap1.emulationMode       = "ECAP_EMULATION_FREE_RUN";
    ecap1.$name               = "CFG_ECAP0";
    
    ecap2.eventStop           = "ECAP_EVENT_4";
    ecap2.eventOnePolarity    = "ECAP_EVNT_FALLING_EDGE";
    ecap2.eventThreePolarity  = "ECAP_EVNT_FALLING_EDGE";
    ecap2.useInterrupts       = false;
    ecap2.counterResetOnEvent = ["ECAP_EVENT_1","ECAP_EVENT_2","ECAP_EVENT_3","ECAP_EVENT_4"];
    ecap2.useDMA              = true;
    ecap2.dmaSource           = "ECAP_CAP_MODE_DMA_TRIGGER_SRC_CEVT4";
    ecap2.emulationMode       = "ECAP_EMULATION_FREE_RUN";
    ecap2.ecapBase            = "CSL_CONTROLSS_ECAP1_U_BASE";
    ecap2.$name               = "CFG_ECAP1";
    
    ecap3.eventStop           = "ECAP_EVENT_4";
    ecap3.eventOnePolarity    = "ECAP_EVNT_FALLING_EDGE";
    ecap3.eventThreePolarity  = "ECAP_EVNT_FALLING_EDGE";
    ecap3.useInterrupts       = false;
    ecap3.counterResetOnEvent = ["ECAP_EVENT_1","ECAP_EVENT_2","ECAP_EVENT_3","ECAP_EVENT_4"];
    ecap3.useDMA              = true;
    ecap3.dmaSource           = "ECAP_CAP_MODE_DMA_TRIGGER_SRC_CEVT4";
    ecap3.emulationMode       = "ECAP_EMULATION_FREE_RUN";
    ecap3.ecapBase            = "CSL_CONTROLSS_ECAP2_U_BASE";
    ecap3.ecapInput           = "ECAP_INPUT_INPUTXBAR2";
    ecap3.$name               = "CFG_ECAP2";
    
    ecap4.eventStop           = "ECAP_EVENT_4";
    ecap4.eventOnePolarity    = "ECAP_EVNT_FALLING_EDGE";
    ecap4.eventThreePolarity  = "ECAP_EVNT_FALLING_EDGE";
    ecap4.useInterrupts       = false;
    ecap4.counterResetOnEvent = ["ECAP_EVENT_1","ECAP_EVENT_2","ECAP_EVENT_3","ECAP_EVENT_4"];
    ecap4.useDMA              = true;
    ecap4.dmaSource           = "ECAP_CAP_MODE_DMA_TRIGGER_SRC_CEVT4";
    ecap4.emulationMode       = "ECAP_EMULATION_FREE_RUN";
    ecap4.ecapInput           = "ECAP_INPUT_INPUTXBAR3";
    ecap4.ecapBase            = "CSL_CONTROLSS_ECAP3_U_BASE";
    ecap4.$name               = "CFG_ECAP3";
    
    ecap5.eventStop           = "ECAP_EVENT_4";
    ecap5.eventOnePolarity    = "ECAP_EVNT_FALLING_EDGE";
    ecap5.eventThreePolarity  = "ECAP_EVNT_FALLING_EDGE";
    ecap5.useInterrupts       = false;
    ecap5.counterResetOnEvent = ["ECAP_EVENT_1","ECAP_EVENT_2","ECAP_EVENT_3","ECAP_EVENT_4"];
    ecap5.useDMA              = true;
    ecap5.dmaSource           = "ECAP_CAP_MODE_DMA_TRIGGER_SRC_CEVT4";
    ecap5.emulationMode       = "ECAP_EMULATION_FREE_RUN";
    ecap5.ecapBase            = "CSL_CONTROLSS_ECAP4_U_BASE";
    ecap5.ecapInput           = "ECAP_INPUT_INPUTXBAR4";
    ecap5.$name               = "CFG_ECAP4";
    
    ecap6.eventStop           = "ECAP_EVENT_4";
    ecap6.eventOnePolarity    = "ECAP_EVNT_FALLING_EDGE";
    ecap6.eventThreePolarity  = "ECAP_EVNT_FALLING_EDGE";
    ecap6.useInterrupts       = false;
    ecap6.counterResetOnEvent = ["ECAP_EVENT_1","ECAP_EVENT_2","ECAP_EVENT_3","ECAP_EVENT_4"];
    ecap6.useDMA              = true;
    ecap6.dmaSource           = "ECAP_CAP_MODE_DMA_TRIGGER_SRC_CEVT4";
    ecap6.emulationMode       = "ECAP_EMULATION_FREE_RUN";
    ecap6.ecapBase            = "CSL_CONTROLSS_ECAP5_U_BASE";
    ecap6.ecapInput           = "ECAP_INPUT_INPUTXBAR5";
    ecap6.$name               = "CFG_ECAP5";
    
    ecap7.eventStop           = "ECAP_EVENT_4";
    ecap7.eventOnePolarity    = "ECAP_EVNT_FALLING_EDGE";
    ecap7.eventThreePolarity  = "ECAP_EVNT_FALLING_EDGE";
    ecap7.useInterrupts       = false;
    ecap7.counterResetOnEvent = ["ECAP_EVENT_1","ECAP_EVENT_2","ECAP_EVENT_3","ECAP_EVENT_4"];
    ecap7.useDMA              = true;
    ecap7.dmaSource           = "ECAP_CAP_MODE_DMA_TRIGGER_SRC_CEVT4";
    ecap7.emulationMode       = "ECAP_EMULATION_FREE_RUN";
    ecap7.ecapBase            = "CSL_CONTROLSS_ECAP6_U_BASE";
    ecap7.ecapInput           = "ECAP_INPUT_INPUTXBAR6";
    ecap7.$name               = "CFG_ECAP6";
    
    ecap8.eventStop           = "ECAP_EVENT_4";
    ecap8.eventOnePolarity    = "ECAP_EVNT_FALLING_EDGE";
    ecap8.eventThreePolarity  = "ECAP_EVNT_FALLING_EDGE";
    ecap8.useInterrupts       = false;
    ecap8.counterResetOnEvent = ["ECAP_EVENT_1","ECAP_EVENT_2","ECAP_EVENT_3","ECAP_EVENT_4"];
    ecap8.useDMA              = true;
    ecap8.dmaSource           = "ECAP_CAP_MODE_DMA_TRIGGER_SRC_CEVT4";
    ecap8.emulationMode       = "ECAP_EMULATION_FREE_RUN";
    ecap8.ecapBase            = "CSL_CONTROLSS_ECAP7_U_BASE";
    ecap8.ecapInput           = "ECAP_INPUT_INPUTXBAR7";
    ecap8.$name               = "CFG_ECAP7";
    
    epwm1.epwmActionQualifier_EPWM_AQ_OUTPUT_A_ON_TIMEBASE_UP_CMPA   = "EPWM_AQ_OUTPUT_HIGH";
    epwm1.epwmActionQualifier_EPWM_AQ_OUTPUT_A_ON_TIMEBASE_DOWN_CMPA = "EPWM_AQ_OUTPUT_LOW";
    epwm1.epwmEventTrigger_EPWM_SOC_A_triggerEnable                  = true;
    epwm1.epwmEventTrigger_EPWM_SOC_A_triggerEventPrescalar          = "1";
    epwm1.epwmTimebase_hsClockDiv                                    = "EPWM_HSCLOCK_DIVIDER_10";
    epwm1.epwmCounterCompare_shadowLoadModeCMPA                      = "EPWM_COMP_LOAD_ON_CNTR_PERIOD";
    epwm1.epwmEventTrigger_EPWM_SOC_A_triggerSource                  = "EPWM_SOC_TBCTR_U_CMPA";
    epwm1.epwmEventTrigger_enableInterrupt                           = true;
    epwm1.epwmEventTrigger_interruptSource                           = "EPWM_INT_TBCTR_U_CMPA";
    epwm1.epwmTimebase_emulationMode                                 = "EPWM_EMULATION_STOP_AFTER_FULL_CYCLE";
    epwm1.epwmTimebase_clockDiv                                      = "EPWM_CLOCK_DIVIDER_32";
    epwm1.epwmGroup                                                  = "EPWM_GROUP1";
    epwm1.epwmTimebase_period                                        = 65535;
    epwm1.epwmCounterCompare_cmpA                                    = 625;
    epwm1.$name                                                      = "CFG_EPWM_ADC";
    epwm1.EPWM.$assign                                               = "EPWM7";
    epwm1.EPWM.A.$assign                                             = "EPWM7_A";
    epwm1.EPWM.B.$assign                                             = "EPWM7_B";
    
    epwm2.epwmTimebase_syncOutPulseMode = ["EPWM_SYNC_OUT_PULSE_ON_SOFTWARE"];
    epwm2.$name                         = "CFG_EPWM0";
    epwm2.EPWM.$assign                  = "EPWM0";
    epwm2.EPWM.A.$assign                = "EPWM0_A";
    epwm2.EPWM.B.$assign                = "EPWM0_B";
    epwm2.EPWM.B.$used                  = false;
    
    epwm3.epwmTimebase_syncOutPulseMode = ["EPWM_SYNC_OUT_PULSE_ON_SOFTWARE"];
    epwm3.$name                         = "CFG_EPWM1";
    epwm3.EPWM.$assign                  = "EPWM1";
    epwm3.EPWM.A.$assign                = "EPWM1_A";
    epwm3.EPWM.B.$assign                = "EPWM1_B";
    epwm3.EPWM.B.$used                  = false;
    
    epwm4.epwmTimebase_syncOutPulseMode = ["EPWM_SYNC_OUT_PULSE_ON_SOFTWARE"];
    epwm4.$name                         = "CFG_EPWM2";
    epwm4.EPWM.$assign                  = "EPWM2";
    epwm4.EPWM.A.$assign                = "EPWM2_A";
    epwm4.EPWM.B.$assign                = "EPWM2_B";
    epwm4.EPWM.B.$used                  = false;
    
    epwm5.epwmTimebase_syncOutPulseMode = ["EPWM_SYNC_OUT_PULSE_ON_SOFTWARE"];
    epwm5.$name                         = "CFG_EPWM3";
    epwm5.EPWM.$assign                  = "EPWM3";
    epwm5.EPWM.A.$assign                = "EPWM3_A";
    epwm5.EPWM.B.$assign                = "EPWM3_B";
    epwm5.EPWM.B.$used                  = false;
    
    gpio1.$name          = "CFG_FAN1";
    gpio1.GPIO_n.$assign = "EPWM8_A";
    
    gpio2.$name          = "CFG_FAN2";
    gpio2.GPIO_n.$assign = "EPWM8_B";
    
    gpio3.$name          = "CFG_FAN3";
    gpio3.GPIO_n.$assign = "EPWM9_A";
    
    gpio4.$name          = "CFG_FAN4";
    gpio4.GPIO_n.$assign = "EPWM9_B";
    
    gpio5.$name          = "CFG_FAN5";
    gpio5.GPIO_n.$assign = "EPWM10_A";
    
    gpio6.$name          = "CFG_FAN6";
    gpio6.GPIO_n.$assign = "EPWM11_A";
    
    gpio7.$name          = "CFG_FAN7";
    gpio7.GPIO_n.$assign = "EPWM11_B";
    
    gpio8.pinDir         = "OUTPUT";
    gpio8.$name          = "CFG_DO00_OCCONR";
    gpio8.GPIO_n.$assign = "PR0_MDIO_MDIO";
    
    gpio9.pinDir         = "OUTPUT";
    gpio9.$name          = "CFG_DO01_LBOF";
    gpio9.GPIO_n.$assign = "PR0_MDIO_MDC";
    
    gpio10.pinDir         = "OUTPUT";
    gpio10.$name          = "CFG_DO02_BYPAS";
    gpio10.GPIO_n.$assign = "PR0_PRU0_GPIO5";
    
    gpio11.pinDir         = "OUTPUT";
    gpio11.$name          = "CFG_DO04_FANR";
    gpio11.GPIO_n.$assign = "PR0_PRU0_GPIO10";
    
    gpio12.pinDir         = "OUTPUT";
    gpio12.$name          = "CFG_DO05";
    gpio12.GPIO_n.$assign = "PR0_PRU0_GPIO8";
    
    gpio13.pinDir         = "OUTPUT";
    gpio13.$name          = "CFG_DO06_B_OCR";
    gpio13.GPIO_n.$assign = "PR0_PRU1_GPIO5";
    
    gpio14.pinDir         = "OUTPUT";
    gpio14.$name          = "CFG_DO07_B_OPR";
    gpio14.GPIO_n.$assign = "PR0_PRU1_GPIO9";
    
    gpio15.pinDir         = "OUTPUT";
    gpio15.$name          = "CFG_DO08";
    gpio15.GPIO_n.$assign = "PR0_PRU1_GPIO10";
    
    gpio16.pinDir         = "OUTPUT";
    gpio16.$name          = "CFG_DO09";
    gpio16.GPIO_n.$assign = "PR0_PRU1_GPIO8";
    
    gpio17.pinDir         = "OUTPUT";
    gpio17.$name          = "CFG_DO10";
    gpio17.GPIO_n.$assign = "PR0_PRU1_GPIO0";
    
    gpio18.pinDir         = "OUTPUT";
    gpio18.$name          = "CFG_DO11";
    gpio18.GPIO_n.$assign = "PR0_PRU1_GPIO1";
    
    gpio19.$name          = "CFG_DI00_OCCON";
    gpio19.GPIO_n.$assign = "PR0_PRU1_GPIO2";
    
    gpio20.$name          = "CFG_DI01_LBON";
    gpio20.GPIO_n.$assign = "PR0_PRU1_GPIO3";
    
    gpio21.$name          = "CFG_DI02_FANKON";
    gpio21.GPIO_n.$assign = "PR0_PRU1_GPIO16";
    
    gpio22.$name          = "CFG_DI03_RST";
    gpio22.GPIO_n.$assign = "PR0_PRU1_GPIO15";
    
    gpio23.$name          = "CFG_DI04";
    gpio23.GPIO_n.$assign = "PR0_PRU1_GPIO11";
    
    gpio24.$name          = "CFG_DI05";
    gpio24.GPIO_n.$assign = "PR0_PRU1_GPIO12";
    
    gpio25.$name          = "CFG_DI06_FUSEON1";
    gpio25.GPIO_n.$assign = "PR0_PRU1_GPIO13";
    
    gpio26.$name          = "CFG_DI07_FUSEON2";
    gpio26.GPIO_n.$assign = "PR0_PRU1_GPIO14";
    
    gpio27.$name          = "CFG_DI08_FUSEON3";
    gpio27.GPIO_n.$assign = "PR0_PRU1_GPIO19";
    
    gpio28.$name          = "CFG_DI09_FUSEON4";
    gpio28.GPIO_n.$assign = "PR0_PRU1_GPIO18";
    
    gpio29.$name          = "CFG_DI10_GID1";
    gpio29.GPIO_n.$assign = "SDFM0_CLK0";
    
    gpio30.$name          = "CFG_DI11_GID2";
    gpio30.GPIO_n.$assign = "SDFM0_D0";
    
    gpio31.$name          = "CFG_DI12_GID3";
    gpio31.GPIO_n.$assign = "SDFM0_CLK1";
    
    gpio32.$name          = "CFG_DI13_P24BON";
    gpio32.GPIO_n.$assign = "SDFM0_D1";
    
    gpio33.$name          = "CFG_DI14_P24FON";
    gpio33.GPIO_n.$assign = "SDFM0_CLK2";
    
    gpio34.$name          = "CFG_DI15";
    gpio34.GPIO_n.$assign = "SDFM0_D2";
    
    gpio35.$name          = "CFG_DI16";
    gpio35.GPIO_n.$assign = "SDFM0_CLK3";
    
    gpio36.$name          = "CFG_DI17";
    gpio36.GPIO_n.$assign = "SDFM0_D3";
    
    gpio37.pinDir         = "OUTPUT";
    gpio37.$name          = "CFG_LD1";
    gpio37.GPIO_n.$assign = "EPWM14_A";
    
    gpio38.pinDir         = "OUTPUT";
    gpio38.$name          = "CFG_LD2";
    gpio38.GPIO_n.$assign = "EPWM14_B";
    
    gpio39.pinDir         = "OUTPUT";
    gpio39.$name          = "CFG_LD3";
    gpio39.GPIO_n.$assign = "EPWM15_A";
    
    gpio40.pinDir         = "OUTPUT";
    gpio40.$name          = "CFG_LD4";
    gpio40.GPIO_n.$assign = "EPWM15_B";
    
    gpio41.pinDir         = "OUTPUT";
    gpio41.$name          = "CFG_LD5";
    gpio41.GPIO_n.$assign = "MMC_DAT2";
    
    gpio42.pinDir         = "OUTPUT";
    gpio42.$name          = "CFG_LD6";
    gpio42.GPIO_n.$assign = "MMC_DAT3";
    
    gpio43.pinDir         = "OUTPUT";
    gpio43.$name          = "CFG_LD7";
    gpio43.GPIO_n.$assign = "MMC_SDWP";
    
    gpio44.pinDir         = "OUTPUT";
    gpio44.$name          = "CFG_LD8";
    gpio44.GPIO_n.$assign = "MMC_SDCD";
    
    gpio45.pinDir         = "OUTPUT";
    gpio45.$name          = "CFG_TOUT1";
    gpio45.GPIO_n.$assign = "EPWM12_B";
    
    gpio46.pinDir         = "OUTPUT";
    gpio46.$name          = "CFG_TOUT2";
    gpio46.GPIO_n.$assign = "EPWM13_A";
    
    gpio47.pinDir         = "OUTPUT";
    gpio47.$name          = "CFG_TOUT3";
    gpio47.GPIO_n.$assign = "EPWM13_B";
    
    gpio48.pinDir         = "OUTPUT";
    gpio48.$name          = "CFG_TOUT4";
    gpio48.GPIO_n.$assign = "EXT_REFCLK0";
    
    gpio49.pinDir         = "OUTPUT";
    gpio49.$name          = "CFG_TOUT5";
    gpio49.GPIO_n.$assign = "CLKOUT0";
    
    gpio50.$name          = "CFG_FAN8";
    gpio50.GPIO_n.$assign = "EPWM3_B";
    
    gpio51.pinDir         = "OUTPUT";
    gpio51.$name          = "CFG_DO03_LBONR";
    gpio51.GPIO_n.$assign = "PR0_PRU0_GPIO9";
    
    gpio52.$name          = "CFG_FRAM_CS0";
    gpio52.pinDir         = "OUTPUT";
    gpio52.pu_pd          = "pu";
    gpio52.GPIO_n.$assign = "EQEP0_B";
    
    gpio53.pinDir         = "OUTPUT";
    gpio53.pu_pd          = "pu";
    gpio53.$name          = "CFG_FRAM_CS1";
    gpio53.GPIO_n.$assign = "EPWM12_A";
    
    gpio54.$name          = "CFG_SPIRDY0";
    gpio54.GPIO_n.$assign = "EPWM4_A";
    
    gpio55.$name          = "CFG_SPIRDY2";
    gpio55.GPIO_n.$assign = "UART0_RXD";
    
    gpio56.$name          = "CFG_SPIRDY3";
    gpio56.GPIO_n.$assign = "UART0_TXD";
    
    gpio57.$name          = "CFG_SPIRDY5";
    gpio57.GPIO_n.$assign = "EPWM4_B";
    
    gpio58.$name          = "CFG_GPO";
    gpio58.GPIO_n.$assign = "MCAN2_RX";
    
    gpio59.$name          = "CFG_SAFE_OUT";
    gpio59.GPIO_n.$assign = "MCAN2_TX";
    
    gpio60.$name          = "CFG_IP15ON";
    gpio60.GPIO_n.$assign = "EPWM0_B";
    
    gpio61.$name          = "CFG_P12ON";
    gpio61.GPIO_n.$assign = "EPWM1_B";
    
    gpio62.$name          = "CFG_IM15ON";
    gpio62.GPIO_n.$assign = "EPWM2_B";
    
    gpio63.$name          = "CFG_OSPI0_RST";
    gpio63.pinDir         = "OUTPUT";
    gpio63.defaultValue   = "1";
    gpio63.GPIO_n.$assign = "EPWM10_B";
    
    pmic1.peripheralDriver             = mcspi1;
    mcspi1.$name                       = "CFG_MCSPI1";
    mcspi1.SPI.$assign                 = "SPI1";
    mcspi1.SPI.CLK.$assign             = "SPI1_CLK";
    mcspi1.SPI.D0.$assign              = "SPI1_D0";
    mcspi1.SPI.D1.$assign              = "SPI1_D1";
    mcspi1.mcspiChannel[0].$name       = "CONFIG_MCSPI_CH0";
    mcspi1.mcspiChannel[0].CSn.$assign = "SPI1_CS0";
    mcspi1.child.$name                 = "drivers_mcspi_v1_mcspi_v1_template1";
    
    mcspi2.$name                                      = "CFG_MCSPI4";
    mcspi2.pinMode                                    = 3;
    mcspi2.intrEnable                                 = "DMA";
    mcspi2.SPI.$assign                                = "SPI4";
    mcspi2.SPI.CLK.$assign                            = "EQEP0_A";
    mcspi2.SPI.D0.$assign                             = "EQEP0_STROBE";
    mcspi2.SPI.D1.$assign                             = "EQEP0_INDEX";
    mcspi2.mcspiChannel[0].$name                      = "CONFIG_MCSPI_CH1";
    mcspi2.mcspiChannel[0].bitRate                    = 50000000;
    mcspi2.mcspiChannel[0].mcspiRxConfigXbar.$name    = "CFG_DMA_TRIG_XBAR8";
    mcspi2.mcspiChannel[0].mcspiRxConfigXbar.instance = "DMA_TRIG_XBAR_EDMA_MODULE_8";
    mcspi2.mcspiChannel[0].mcspiTxConfigXbar.$name    = "CFG_DMA_TRIG_XBAR9";
    mcspi2.mcspiChannel[0].mcspiTxConfigXbar.instance = "DMA_TRIG_XBAR_EDMA_MODULE_9";
    mcspi2.child.$name                                = "drivers_mcspi_v1_mcspi_v1_template0";
    
    mcspi3.$name                       = "CFG_MCSPI0";
    mcspi3.intrEnable                  = "POLLED";
    mcspi3.SPI.$assign                 = "SPI0";
    mcspi3.SPI.CLK.$assign             = "SPI0_CLK";
    mcspi3.SPI.D0.$assign              = "SPI0_D0";
    mcspi3.SPI.D1.$assign              = "SPI0_D1";
    mcspi3.mcspiChannel[0].$name       = "CONFIG_MCSPI_CH2";
    mcspi3.mcspiChannel[0].bitRate     = 5000000;
    mcspi3.mcspiChannel[0].CSn.$assign = "SPI0_CS0";
    mcspi3.child.$name                 = "drivers_mcspi_v1_mcspi_v1_template2";
    
    mcspi4.$name                       = "CFG_MCSPI2";
    mcspi4.intrEnable                  = "POLLED";
    mcspi4.SPI.$assign                 = "SPI2";
    mcspi4.SPI.CLK.$assign             = "LIN1_TXD";
    mcspi4.SPI.D0.$assign              = "LIN2_RXD";
    mcspi4.SPI.D1.$assign              = "LIN2_TXD";
    mcspi4.mcspiChannel[0].$name       = "CONFIG_MCSPI_CH3";
    mcspi4.mcspiChannel[0].bitRate     = 5000000;
    mcspi4.mcspiChannel[0].CSn.$assign = "LIN1_RXD";
    mcspi4.child.$name                 = "drivers_mcspi_v1_mcspi_v1_template3";
    
    mcspi5.$name                       = "CFG_MCSPI3";
    mcspi5.intrEnable                  = "POLLED";
    mcspi5.SPI.$assign                 = "SPI3";
    mcspi5.SPI.CLK.$assign             = "I2C1_SDA";
    mcspi5.SPI.D0.$assign              = "UART0_RTSn";
    mcspi5.SPI.D1.$assign              = "UART0_CTSn";
    mcspi5.mcspiChannel[0].$name       = "CONFIG_MCSPI_CH3_COPY";
    mcspi5.mcspiChannel[0].bitRate     = 5000000;
    mcspi5.mcspiChannel[0].CSn.$assign = "I2C1_SCL";
    mcspi5.child.$name                 = "drivers_mcspi_v1_mcspi_v1_template3_COPY";
    
    mcspi6.intrEnable                  = "POLLED";
    mcspi6.$name                       = "CFG_MCSPI5";
    mcspi6.SPI.$assign                 = "SPI5";
    mcspi6.SPI.CLK.$assign             = "EPWM5_B";
    mcspi6.SPI.D0.$assign              = "EPWM6_A";
    mcspi6.SPI.D1.$assign              = "EPWM6_B";
    mcspi6.mcspiChannel[0].$name       = "CONFIG_MCSPI_CH3_COPY_COPY";
    mcspi6.mcspiChannel[0].bitRate     = 5000000;
    mcspi6.mcspiChannel[0].CSn.$assign = "EPWM5_A";
    mcspi6.child.$name                 = "drivers_mcspi_v1_mcspi_v1_template3_COPY_COPY";
    
    mcspi1.edmaDriver                                   = edma1;
    mcspi2.edmaDriver                                   = edma1;
    mcspi3.edmaDriver                                   = edma1;
    mcspi4.edmaDriver                                   = edma1;
    mcspi5.edmaDriver                                   = edma1;
    mcspi6.edmaDriver                                   = edma1;
    edma1.$name                                         = "CONFIG_EDMA0";
    edma1.edmaRmDmaCh[0].$name                          = "CONFIG_EDMA_RM0";
    edma1.edmaRmQdmaCh[0].$name                         = "CONFIG_EDMA_RM1";
    edma1.edmaRmTcc[0].$name                            = "CONFIG_EDMA_RM2";
    edma1.edmaRmParam[0].$name                          = "CONFIG_EDMA_RM3";
    edma1.edmaChannel.create(8);
    edma1.edmaChannel[0].$name                          = "CONFIG_EDMA_CH0";
    edma1.edmaChannel[0].channelTrigger                 = "ECAP0_DMA_INT";
    edma1.edmaChannel[0].xbarConfig.$name               = "CFG_DMA_TRIG_XBAR0";
    edma1.edmaChannel[0].xbarConfig.xbarConfig.$name    = "CFG_DMA_XBAR0";
    edma1.edmaChannel[1].$name                          = "CONFIG_EDMA_CH1";
    edma1.edmaChannel[1].channelTrigger                 = "ECAP1_DMA_INT";
    edma1.edmaChannel[1].xbarConfig.$name               = "CFG_DMA_TRIG_XBAR1";
    edma1.edmaChannel[1].xbarConfig.instance            = "DMA_TRIG_XBAR_EDMA_MODULE_1";
    edma1.edmaChannel[1].xbarConfig.xbarConfig.instance = "DMA_XBAR_DMA_TRIG_XBAR_1";
    edma1.edmaChannel[1].xbarConfig.xbarConfig.$name    = "CFG_DMA_XBAR1";
    edma1.edmaChannel[2].$name                          = "CONFIG_EDMA_CH2";
    edma1.edmaChannel[2].channelTrigger                 = "ECAP2_DMA_INT";
    edma1.edmaChannel[2].xbarConfig.instance            = "DMA_TRIG_XBAR_EDMA_MODULE_2";
    edma1.edmaChannel[2].xbarConfig.$name               = "CFG_DMA_TRIG_XBAR2";
    edma1.edmaChannel[2].xbarConfig.xbarConfig.instance = "DMA_XBAR_DMA_TRIG_XBAR_2";
    edma1.edmaChannel[2].xbarConfig.xbarConfig.$name    = "CFG_DMA_XBAR2";
    edma1.edmaChannel[3].$name                          = "CONFIG_EDMA_CH3";
    edma1.edmaChannel[3].channelTrigger                 = "ECAP3_DMA_INT";
    edma1.edmaChannel[3].xbarConfig.$name               = "CFG_DMA_TRIG_XBAR3";
    edma1.edmaChannel[3].xbarConfig.instance            = "DMA_TRIG_XBAR_EDMA_MODULE_3";
    edma1.edmaChannel[3].xbarConfig.xbarConfig.$name    = "CFG_DMA_XBAR3";
    edma1.edmaChannel[3].xbarConfig.xbarConfig.instance = "DMA_XBAR_DMA_TRIG_XBAR_3";
    edma1.edmaChannel[4].$name                          = "CONFIG_EDMA_CH4";
    edma1.edmaChannel[4].channelTrigger                 = "ECAP4_DMA_INT";
    edma1.edmaChannel[4].xbarConfig.$name               = "CFG_DMA_TRIG_XBAR4";
    edma1.edmaChannel[4].xbarConfig.instance            = "DMA_TRIG_XBAR_EDMA_MODULE_4";
    edma1.edmaChannel[4].xbarConfig.xbarConfig.$name    = "CFG_DMA_XBAR4";
    edma1.edmaChannel[4].xbarConfig.xbarConfig.instance = "DMA_XBAR_DMA_TRIG_XBAR_4";
    edma1.edmaChannel[5].$name                          = "CONFIG_EDMA_CH5";
    edma1.edmaChannel[5].channelTrigger                 = "ECAP5_DMA_INT";
    edma1.edmaChannel[5].xbarConfig.$name               = "CFG_DMA_TRIG_XBAR5";
    edma1.edmaChannel[5].xbarConfig.instance            = "DMA_TRIG_XBAR_EDMA_MODULE_5";
    edma1.edmaChannel[5].xbarConfig.xbarConfig.$name    = "CFG_DMA_XBAR5";
    edma1.edmaChannel[5].xbarConfig.xbarConfig.instance = "DMA_XBAR_DMA_TRIG_XBAR_5";
    edma1.edmaChannel[6].$name                          = "CONFIG_EDMA_CH6";
    edma1.edmaChannel[6].channelTrigger                 = "ECAP6_DMA_INT";
    edma1.edmaChannel[6].xbarConfig.$name               = "CFG_DMA_TRIG_XBAR6";
    edma1.edmaChannel[6].xbarConfig.instance            = "DMA_TRIG_XBAR_EDMA_MODULE_6";
    edma1.edmaChannel[6].xbarConfig.xbarConfig.$name    = "CFG_DMA_XBAR6";
    edma1.edmaChannel[6].xbarConfig.xbarConfig.instance = "DMA_XBAR_DMA_TRIG_XBAR_6";
    edma1.edmaChannel[7].$name                          = "CONFIG_EDMA_CH7";
    edma1.edmaChannel[7].channelTrigger                 = "ECAP7_DMA_INT";
    edma1.edmaChannel[7].xbarConfig.$name               = "CFG_DMA_TRIG_XBAR7";
    edma1.edmaChannel[7].xbarConfig.instance            = "DMA_TRIG_XBAR_EDMA_MODULE_7";
    edma1.edmaChannel[7].xbarConfig.xbarConfig.$name    = "CFG_DMA_XBAR7";
    edma1.edmaChannel[7].xbarConfig.xbarConfig.instance = "DMA_XBAR_DMA_TRIG_XBAR_7";
    
    rti1.counter0Enable = true;
    rti1.compare0Enable = true;
    rti1.usecPerTick0   = 100000;
    rti1.enableIntr0    = true;
    rti1.eventCallback0 = "rtiEvent0";
    rti1.$name          = "CFG_RTI0";
    rti1.RTI.$assign    = "RTI1";
    
    const soc_ctrl_adc    = scripting.addModule("/drivers/soc_ctrl/v0/subModules/soc_ctrl_adc", {}, false);
    const soc_ctrl_adc1   = soc_ctrl_adc.addInstance({}, false);
    soc_ctrl_adc1.$name   = "soc_ctrl_adc0";
    adc.adcReferences     = soc_ctrl_adc1;
    const soc_ctrl        = scripting.addModule("/drivers/soc_ctrl/soc_ctrl", {}, false);
    soc_ctrl.soc_ctrl_adc = soc_ctrl_adc1;
    
    const soc_ctrl_cmpss    = scripting.addModule("/drivers/soc_ctrl/v0/subModules/soc_ctrl_cmpss", {}, false);
    const soc_ctrl_cmpss1   = soc_ctrl_cmpss.addInstance({}, false);
    soc_ctrl_cmpss1.$name   = "soc_ctrl_cmpss0";
    soc_ctrl.soc_ctrl_cmpss = soc_ctrl_cmpss1;
    
    const soc_ctrl_epwm    = scripting.addModule("/drivers/soc_ctrl/v0/subModules/soc_ctrl_epwm", {}, false);
    const soc_ctrl_epwm1   = soc_ctrl_epwm.addInstance({}, false);
    soc_ctrl_epwm1.$name   = "soc_ctrl_epwm0";
    soc_ctrl.soc_ctrl_epwm = soc_ctrl_epwm1;
    epwm.epwmTbClkSync     = soc_ctrl_epwm1;
    
    const soc_ctrl_sdfm    = scripting.addModule("/drivers/soc_ctrl/v0/subModules/soc_ctrl_sdfm", {}, false);
    const soc_ctrl_sdfm1   = soc_ctrl_sdfm.addInstance({}, false);
    soc_ctrl_sdfm1.$name   = "soc_ctrl_sdfm0";
    soc_ctrl.soc_ctrl_sdfm = soc_ctrl_sdfm1;
    
    debug_log.enableUartLog            = true;
    debug_log.uartLog.$name            = "CONFIG_UART0";
    debug_log.uartLog.UART.$assign     = "UART0";
    debug_log.uartLog.UART.RXD.$assign = "MMC_CLK";
    debug_log.uartLog.UART.TXD.$assign = "MMC_CMD";
    debug_log.uartLog.child.$name      = "drivers_uart_v2_uart_v2_template0";
    
    mpu_armv71.$name             = "CONFIG_MPU_REGION0";
    mpu_armv71.size              = 31;
    mpu_armv71.attributes        = "Device";
    mpu_armv71.accessPermissions = "Supervisor RD+WR, User RD";
    mpu_armv71.allowExecute      = false;
    
    mpu_armv72.$name             = "CONFIG_MPU_REGION1";
    mpu_armv72.size              = 15;
    mpu_armv72.accessPermissions = "Supervisor RD+WR, User RD";
    
    mpu_armv73.$name             = "CONFIG_MPU_REGION2";
    mpu_armv73.size              = 15;
    mpu_armv73.accessPermissions = "Supervisor RD+WR, User RD";
    mpu_armv73.baseAddr          = 0x41010000;
    
    mpu_armv74.$name             = "CONFIG_MPU_REGION3";
    mpu_armv74.accessPermissions = "Supervisor RD+WR, User RD";
    mpu_armv74.baseAddr          = 0x70000000;
    mpu_armv74.size              = 21;
    
    mpu_armv75.$name    = "CONFIG_MPU_REGION5";
    mpu_armv75.baseAddr = 0x80000000;
    mpu_armv75.size     = 31;
    
    default_linker1.$name = "memory_configurator_default_linker0";
    
    general1.$name        = "CONFIG_GENERAL0";
    general1.linker.$name = "TIARMCLANG0";
    
    region1.$name                                = "MEMORY_REGION_CONFIGURATION0";
    region1.memory_region.create(11);
    region1.memory_region[0].type                = "TCMA";
    region1.memory_region[0].$name               = "R5F_VECS";
    region1.memory_region[0].size                = 0x40;
    region1.memory_region[0].auto                = false;
    region1.memory_region[1].type                = "TCMA";
    region1.memory_region[1].$name               = "R5F_TCMA";
    region1.memory_region[1].size                = 0x7FC0;
    region1.memory_region[2].type                = "TCMB";
    region1.memory_region[2].size                = 0x8000;
    region1.memory_region[2].$name               = "R5F_TCMB";
    region1.memory_region[3].$name               = "SBL";
    region1.memory_region[3].auto                = false;
    region1.memory_region[3].size                = 0x40000;
    region1.memory_region[4].$name               = "OCRAM";
    region1.memory_region[4].auto                = false;
    region1.memory_region[4].manualStartAddress  = 0x70040000;
    region1.memory_region[4].size                = 0x40000;
    region1.memory_region[5].type                = "FLASH";
    region1.memory_region[5].auto                = false;
    region1.memory_region[5].manualStartAddress  = 0x60100000;
    region1.memory_region[5].size                = 0x80000;
    region1.memory_region[5].$name               = "FLASH";
    region1.memory_region[6].$name               = "USER_SHM_MEM";
    region1.memory_region[6].auto                = false;
    region1.memory_region[6].manualStartAddress  = 0x701D0000;
    region1.memory_region[6].size                = 0x4000;
    region1.memory_region[6].isShared            = true;
    region1.memory_region[6].shared_cores        = ["r5fss0-1","r5fss1-0","r5fss1-1"];
    region1.memory_region[7].$name               = "LOG_SHM_MEM";
    region1.memory_region[7].auto                = false;
    region1.memory_region[7].manualStartAddress  = 0x701D4000;
    region1.memory_region[7].size                = 0x4000;
    region1.memory_region[7].isShared            = true;
    region1.memory_region[7].shared_cores        = ["r5fss0-1","r5fss1-0","r5fss1-1"];
    region1.memory_region[8].type                = "CUSTOM";
    region1.memory_region[8].$name               = "RTOS_NORTOS_IPC_SHM_MEM";
    region1.memory_region[8].auto                = false;
    region1.memory_region[8].manualStartAddress  = 0x72000000;
    region1.memory_region[8].size                = 0x3E80;
    region1.memory_region[8].isShared            = true;
    region1.memory_region[8].shared_cores        = ["r5fss0-1","r5fss1-0","r5fss1-1"];
    region1.memory_region[9].type                = "CUSTOM";
    region1.memory_region[9].$name               = "MAILBOX_HSM";
    region1.memory_region[9].auto                = false;
    region1.memory_region[9].manualStartAddress  = 0x44000000;
    region1.memory_region[9].size                = 0x3CE;
    region1.memory_region[9].isShared            = true;
    region1.memory_region[9].shared_cores        = ["r5fss0-1","r5fss1-0","r5fss1-1"];
    region1.memory_region[10].type               = "CUSTOM";
    region1.memory_region[10].$name              = "MAILBOX_R5F";
    region1.memory_region[10].auto               = false;
    region1.memory_region[10].manualStartAddress = 0x44000400;
    region1.memory_region[10].size               = 0x3CE;
    region1.memory_region[10].isShared           = true;
    region1.memory_region[10].shared_cores       = ["r5fss0-1","r5fss1-0","r5fss1-1"];
    
    section1.load_memory                  = "R5F_VECS";
    section1.group                        = false;
    section1.$name                        = "Vector Table";
    section1.output_section.create(1);
    section1.output_section[0].$name      = ".vectors";
    section1.output_section[0].palignment = true;
    
    section2.load_memory                  = "OCRAM";
    section2.$name                        = "Text Segments";
    section2.output_section.create(5);
    section2.output_section[0].$name      = ".text.hwi";
    section2.output_section[0].palignment = true;
    section2.output_section[1].$name      = ".text.cache";
    section2.output_section[1].palignment = true;
    section2.output_section[2].$name      = ".text.mpu";
    section2.output_section[2].palignment = true;
    section2.output_section[3].$name      = ".text.boot";
    section2.output_section[3].palignment = true;
    section2.output_section[4].$name      = ".text:abort";
    section2.output_section[4].palignment = true;
    
    section3.load_memory                  = "OCRAM";
    section3.$name                        = "Code and Read-Only Data";
    section3.output_section.create(2);
    section3.output_section[0].$name      = ".text";
    section3.output_section[0].palignment = true;
    section3.output_section[1].$name      = ".rodata";
    section3.output_section[1].palignment = true;
    
    section4.load_memory                  = "OCRAM";
    section4.$name                        = "Data Segment";
    section4.output_section.create(1);
    section4.output_section[0].$name      = ".data";
    section4.output_section[0].palignment = true;
    
    section5.load_memory                             = "OCRAM";
    section5.$name                                   = "Memory Segments";
    section5.output_section.create(3);
    section5.output_section[0].$name                 = ".bss";
    section5.output_section[0].output_sections_start = "__BSS_START";
    section5.output_section[0].output_sections_end   = "__BSS_END";
    section5.output_section[0].palignment            = true;
    section5.output_section[1].$name                 = ".sysmem";
    section5.output_section[1].palignment            = true;
    section5.output_section[2].$name                 = ".stack";
    section5.output_section[2].palignment            = true;
    
    section6.load_memory                              = "OCRAM";
    section6.$name                                    = "Stack Segments";
    section6.output_section.create(5);
    section6.output_section[0].$name                  = ".irqstack";
    section6.output_section[0].output_sections_start  = "__IRQ_STACK_START";
    section6.output_section[0].output_sections_end    = "__IRQ_STACK_END";
    section6.output_section[0].input_section.create(1);
    section6.output_section[0].input_section[0].$name = ". = . + __IRQ_STACK_SIZE;";
    section6.output_section[1].$name                  = ".fiqstack";
    section6.output_section[1].output_sections_start  = "__FIQ_STACK_START";
    section6.output_section[1].output_sections_end    = "__FIQ_STACK_END";
    section6.output_section[1].input_section.create(1);
    section6.output_section[1].input_section[0].$name = ". = . + __FIQ_STACK_SIZE;";
    section6.output_section[2].$name                  = ".svcstack";
    section6.output_section[2].output_sections_start  = "__SVC_STACK_START";
    section6.output_section[2].output_sections_end    = "__SVC_STACK_END";
    section6.output_section[2].input_section.create(1);
    section6.output_section[2].input_section[0].$name = ". = . + __SVC_STACK_SIZE;";
    section6.output_section[3].$name                  = ".abortstack";
    section6.output_section[3].output_sections_start  = "__ABORT_STACK_START";
    section6.output_section[3].output_sections_end    = "__ABORT_STACK_END";
    section6.output_section[3].input_section.create(1);
    section6.output_section[3].input_section[0].$name = ". = . + __ABORT_STACK_SIZE;";
    section6.output_section[4].$name                  = ".undefinedstack";
    section6.output_section[4].output_sections_start  = "__UNDEFINED_STACK_START";
    section6.output_section[4].output_sections_end    = "__UNDEFINED_STACK_END";
    section6.output_section[4].input_section.create(1);
    section6.output_section[4].input_section[0].$name = ". = . + __UNDEFINED_STACK_SIZE;";
    
    section7.load_memory                  = "OCRAM";
    section7.$name                        = "Initialization and Exception Handling";
    section7.output_section.create(3);
    section7.output_section[0].$name      = ".ARM.exidx";
    section7.output_section[0].palignment = true;
    section7.output_section[1].$name      = ".init_array";
    section7.output_section[1].palignment = true;
    section7.output_section[2].$name      = ".fini_array";
    section7.output_section[2].palignment = true;
    
    section8.load_memory                 = "USER_SHM_MEM";
    section8.type                        = "NOLOAD";
    section8.$name                       = "User Shared Memory";
    section8.group                       = false;
    section8.output_section.create(1);
    section8.output_section[0].$name     = ".bss.user_shared_mem";
    section8.output_section[0].alignment = 0;
    
    section9.load_memory                 = "LOG_SHM_MEM";
    section9.$name                       = "Log Shared Memory";
    section9.group                       = false;
    section9.type                        = "NOLOAD";
    section9.output_section.create(1);
    section9.output_section[0].$name     = ".bss.log_shared_mem";
    section9.output_section[0].alignment = 0;
    
    section10.load_memory                 = "RTOS_NORTOS_IPC_SHM_MEM";
    section10.type                        = "NOLOAD";
    section10.$name                       = "IPC Shared Memory";
    section10.group                       = false;
    section10.output_section.create(1);
    section10.output_section[0].$name     = ".bss.ipc_vring_mem";
    section10.output_section[0].alignment = 0;
    
    section11.load_memory                 = "MAILBOX_HSM";
    section11.type                        = "NOLOAD";
    section11.$name                       = "SIPC HSM Queue Memory";
    section11.group                       = false;
    section11.output_section.create(1);
    section11.output_section[0].$name     = ".bss.sipc_hsm_queue_mem";
    section11.output_section[0].alignment = 0;
    
    section12.load_memory                 = "MAILBOX_R5F";
    section12.$name                       = "SIPC R5F Queue Memory";
    section12.group                       = false;
    section12.type                        = "NOLOAD";
    section12.output_section.create(1);
    section12.output_section[0].$name     = ".bss.sipc_secure_host_queue_mem";
    section12.output_section[0].alignment = 0;
    
    input_xbar1.$name      = "CFG_INPUT_XBAR0";
    input_xbar1.xbarOutput = "GPIO59";
    
    input_xbar2.$name      = "CFG_INPUT_XBAR1";
    input_xbar2.instance   = "INPUT_XBAR_1";
    input_xbar2.xbarOutput = "GPIO60";
    
    input_xbar3.$name      = "CFG_INPUT_XBAR2";
    input_xbar3.xbarOutput = "GPIO61";
    input_xbar3.instance   = "INPUT_XBAR_2";
    
    input_xbar4.$name      = "CFG_INPUT_XBAR3";
    input_xbar4.xbarOutput = "GPIO62";
    input_xbar4.instance   = "INPUT_XBAR_3";
    
    input_xbar5.$name      = "CFG_INPUT_XBAR4";
    input_xbar5.xbarOutput = "GPIO63";
    input_xbar5.instance   = "INPUT_XBAR_4";
    
    input_xbar6.$name      = "CFG_INPUT_XBAR5";
    input_xbar6.xbarOutput = "GPIO65";
    input_xbar6.instance   = "INPUT_XBAR_5";
    
    input_xbar7.$name      = "CFG_INPUT_XBAR6";
    input_xbar7.xbarOutput = "GPIO66";
    input_xbar7.instance   = "INPUT_XBAR_6";
    
    input_xbar8.$name      = "CFG_INPUT_XBAR7";
    input_xbar8.xbarOutput = "GPIO67";
    input_xbar8.instance   = "INPUT_XBAR_7";
    
    int_xbar1.xbarOutput = ["ADC0_INT1"];
    int_xbar1.$name      = "CFG_INT_XBAR0";
    

    Thanks,

    T. Hirata

  • Hi Kier,

      After further investigation, I found that the reason why LDO4 of the PMIC connected to the MCSPI1 (SPI1) of the control card does not turn on

    is because MCSPI1 cannot be opened.

    The attached example_CC_1p2 is the SysConfig setting currently being evaluated. It is set to use 6 MCSPIs.

      MCPSI0: Polled mode, 4 wires: BQ79600 is connected

      MCPSI1: Interrupt mode, 4 wires: PMIC is connected

      MCPSI2: Polled mode, 4 wires: BQ79600 is connected

      MCPSI3: Polled mode, 4 wires: BQ79600 is connected

      MCPSI4: DMA mode, 3 wires: External SPI I/F memory is connected

      MCPSI5: Polled mode, 4 wires: BQ79600 is connected

    However, with this setting, the return value of MCSPI1 open by the function MCSPI_open(); is 0.

    Are there any conditions for MCSPI settings?

    /**
     * These arguments were used when this file was generated. They will be automatically applied on subsequent loads
     * via the GUI or CLI. Run CLI with '--help' for additional information on how to override these arguments.
     * @cliArgs --device "AM263Px" --part "AM263P4" --package "ZCZ_C" --context "r5fss0-0" --product "MCU_PLUS_SDK_AM263Px@10.01.00"
     * @v2CliArgs --device "AM263P4-Q1" --package "NFBGA (ZCZ-C)" --context "r5fss0-0" --product "MCU_PLUS_SDK_AM263Px@10.01.00"
     * @versions {"tool":"1.23.1+4034"}
     */
    
    /**
     * Import the modules used in this configuration.
     */
    const flash           = scripting.addModule("/board/flash/flash", {}, false);
    const flash1          = flash.addInstance();
    const pmic            = scripting.addModule("/board/pmic/pmic", {}, false);
    const pmic1           = pmic.addInstance();
    const adc             = scripting.addModule("/drivers/adc/adc", {}, false);
    const adc1            = adc.addInstance();
    const adc2            = adc.addInstance();
    const adc3            = adc.addInstance();
    const adc4            = adc.addInstance();
    const adc5            = adc.addInstance();
    const dac             = scripting.addModule("/drivers/dac/dac", {}, false);
    const dac1            = dac.addInstance();
    const ecap            = scripting.addModule("/drivers/ecap/ecap", {}, false);
    const ecap1           = ecap.addInstance();
    const ecap2           = ecap.addInstance();
    const ecap3           = ecap.addInstance();
    const ecap4           = ecap.addInstance();
    const ecap5           = ecap.addInstance();
    const ecap6           = ecap.addInstance();
    const ecap7           = ecap.addInstance();
    const ecap8           = ecap.addInstance();
    const edma            = scripting.addModule("/drivers/edma/edma", {}, false);
    const edma1           = edma.addInstance();
    const epwm            = scripting.addModule("/drivers/epwm/epwm", {}, false);
    const epwm1           = epwm.addInstance();
    const epwm2           = epwm.addInstance();
    const epwm3           = epwm.addInstance();
    const epwm4           = epwm.addInstance();
    const epwm5           = epwm.addInstance();
    const gpio            = scripting.addModule("/drivers/gpio/gpio", {}, false);
    const gpio1           = gpio.addInstance();
    const gpio2           = gpio.addInstance();
    const gpio3           = gpio.addInstance();
    const gpio4           = gpio.addInstance();
    const gpio5           = gpio.addInstance();
    const gpio6           = gpio.addInstance();
    const gpio7           = gpio.addInstance();
    const gpio8           = gpio.addInstance();
    const gpio9           = gpio.addInstance();
    const gpio10          = gpio.addInstance();
    const gpio11          = gpio.addInstance();
    const gpio12          = gpio.addInstance();
    const gpio13          = gpio.addInstance();
    const gpio14          = gpio.addInstance();
    const gpio15          = gpio.addInstance();
    const gpio16          = gpio.addInstance();
    const gpio17          = gpio.addInstance();
    const gpio18          = gpio.addInstance();
    const gpio19          = gpio.addInstance();
    const gpio20          = gpio.addInstance();
    const gpio21          = gpio.addInstance();
    const gpio22          = gpio.addInstance();
    const gpio23          = gpio.addInstance();
    const gpio24          = gpio.addInstance();
    const gpio25          = gpio.addInstance();
    const gpio26          = gpio.addInstance();
    const gpio27          = gpio.addInstance();
    const gpio28          = gpio.addInstance();
    const gpio29          = gpio.addInstance();
    const gpio30          = gpio.addInstance();
    const gpio31          = gpio.addInstance();
    const gpio32          = gpio.addInstance();
    const gpio33          = gpio.addInstance();
    const gpio34          = gpio.addInstance();
    const gpio35          = gpio.addInstance();
    const gpio36          = gpio.addInstance();
    const gpio37          = gpio.addInstance();
    const gpio38          = gpio.addInstance();
    const gpio39          = gpio.addInstance();
    const gpio40          = gpio.addInstance();
    const gpio41          = gpio.addInstance();
    const gpio42          = gpio.addInstance();
    const gpio43          = gpio.addInstance();
    const gpio44          = gpio.addInstance();
    const gpio45          = gpio.addInstance();
    const gpio46          = gpio.addInstance();
    const gpio47          = gpio.addInstance();
    const gpio48          = gpio.addInstance();
    const gpio49          = gpio.addInstance();
    const gpio50          = gpio.addInstance();
    const gpio51          = gpio.addInstance();
    const gpio52          = gpio.addInstance();
    const gpio53          = gpio.addInstance();
    const gpio54          = gpio.addInstance();
    const gpio55          = gpio.addInstance();
    const gpio56          = gpio.addInstance();
    const gpio57          = gpio.addInstance();
    const gpio58          = gpio.addInstance();
    const gpio59          = gpio.addInstance();
    const gpio60          = gpio.addInstance();
    const gpio61          = gpio.addInstance();
    const gpio62          = gpio.addInstance();
    const gpio63          = gpio.addInstance();
    const mcspi           = scripting.addModule("/drivers/mcspi/mcspi", {}, false);
    const mcspi1          = mcspi.addInstance();
    const mcspi2          = mcspi.addInstance();
    const mcspi3          = mcspi.addInstance();
    const mcspi4          = mcspi.addInstance();
    const mcspi5          = mcspi.addInstance();
    const mcspi6          = mcspi.addInstance();
    const rti             = scripting.addModule("/drivers/rti/rti", {}, false);
    const rti1            = rti.addInstance();
    const debug_log       = scripting.addModule("/kernel/dpl/debug_log");
    const dpl_cfg         = scripting.addModule("/kernel/dpl/dpl_cfg");
    const mpu_armv7       = scripting.addModule("/kernel/dpl/mpu_armv7", {}, false);
    const mpu_armv71      = mpu_armv7.addInstance();
    const mpu_armv72      = mpu_armv7.addInstance();
    const mpu_armv73      = mpu_armv7.addInstance();
    const mpu_armv74      = mpu_armv7.addInstance();
    const mpu_armv75      = mpu_armv7.addInstance();
    const default_linker  = scripting.addModule("/memory_configurator/default_linker", {}, false);
    const default_linker1 = default_linker.addInstance();
    const general         = scripting.addModule("/memory_configurator/general", {}, false);
    const general1        = general.addInstance();
    const region          = scripting.addModule("/memory_configurator/region", {}, false);
    const region1         = region.addInstance();
    const section         = scripting.addModule("/memory_configurator/section", {}, false);
    const section1        = section.addInstance();
    const section2        = section.addInstance();
    const section3        = section.addInstance();
    const section4        = section.addInstance();
    const section5        = section.addInstance();
    const section6        = section.addInstance();
    const section7        = section.addInstance();
    const section8        = section.addInstance();
    const section9        = section.addInstance();
    const section10       = section.addInstance();
    const section11       = section.addInstance();
    const section12       = section.addInstance();
    const input_xbar      = scripting.addModule("/xbar/input_xbar/input_xbar", {}, false);
    const input_xbar1     = input_xbar.addInstance();
    const input_xbar2     = input_xbar.addInstance();
    const input_xbar3     = input_xbar.addInstance();
    const input_xbar4     = input_xbar.addInstance();
    const input_xbar5     = input_xbar.addInstance();
    const input_xbar6     = input_xbar.addInstance();
    const input_xbar7     = input_xbar.addInstance();
    const input_xbar8     = input_xbar.addInstance();
    const int_xbar        = scripting.addModule("/xbar/int_xbar/int_xbar", {}, false);
    const int_xbar1       = int_xbar.addInstance();
    
    /**
     * Write custom configuration values to the imported modules.
     */
    flash1.$name                                  = "CONFIG_FLASH0";
    flash1.protocol                               = "8d_8d_8d";
    flash1.strDtr_isAddrReg                       = true;
    flash1.strDtr_cmdRegWr                        = "0x81";
    flash1.strDtr_cmdRegRd                        = "0x85";
    flash1.strDtr_shift                           = 255;
    flash1.strDtr_mask                            = "255";
    flash1.xspiWipRdCmd                           = "0x05";
    flash1.fourByteEnableSeq                      = "0";
    flash1.peripheralDriver.$name                 = "CONFIG_OSPI0";
    flash1.peripheralDriver.inputClkFreq          = 100000000;
    flash1.peripheralDriver.OSPI.$assign          = "OSPI0";
    flash1.peripheralDriver.OSPI.CLK.$assign      = "OSPI0_CLK";
    flash1.peripheralDriver.OSPI.CSn0.$assign     = "OSPI0_CSn0";
    flash1.peripheralDriver.OSPI.DQS.$assign      = "UART1_TXD";
    flash1.peripheralDriver.OSPI.D7.$assign       = "MCAN1_TX";
    flash1.peripheralDriver.OSPI.D6.$assign       = "MCAN1_RX";
    flash1.peripheralDriver.OSPI.D5.$assign       = "MCAN0_TX";
    flash1.peripheralDriver.OSPI.D4.$assign       = "MCAN0_RX";
    flash1.peripheralDriver.OSPI.D3.$assign       = "OSPI0_D3";
    flash1.peripheralDriver.OSPI.D2.$assign       = "OSPI0_D2";
    flash1.peripheralDriver.OSPI.D1.$assign       = "OSPI0_D1";
    flash1.peripheralDriver.OSPI.D0.$assign       = "OSPI0_D0";
    flash1.peripheralDriver.OSPI.RESET_OUT0.$used = false;
    flash1.peripheralDriver.child.$name           = "drivers_ospi_v0_ospi_v0_am263px_template0";
    
    pmic1.$name = "CONFIG_PMIC0";
    
    adc1.adcClockPrescaler   = "ADC_CLK_DIV_4_0";
    adc1.interruptPulseMode  = "ADC_PULSE_END_OF_CONV";
    adc1.soc0Channel         = "ADC_CH_ADCIN0_ADCIN1";
    adc1.adcSignalMode       = "ADC_MODE_DIFFERENTIAL";
    adc1.soc3Channel         = "ADC_CH_ADCIN0_ADCIN1";
    adc1.soc13Channel        = "ADC_CH_ADCIN0_ADCIN1";
    adc1.soc14Channel        = "ADC_CH_ADCIN0_ADCIN1";
    adc1.soc15Channel        = "ADC_CH_ADCIN0_ADCIN1";
    adc1.burstSize           = 4;
    adc1.enableBurstMode     = true;
    adc1.soc7Channel         = "ADC_CH_ADCIN2_ADCIN3";
    adc1.soc8Channel         = "ADC_CH_ADCIN4_ADCIN5";
    adc1.soc11Channel        = "ADC_CH_ADCIN4_ADCIN5";
    adc1.soc4Channel         = "ADC_CH_ADCIN2_ADCIN3";
    adc1.soc12Channel        = "ADC_CH_ADCIN0_ADCIN1";
    adc1.interrupt1SOCSource = "ADC_SOC_NUMBER11";
    adc1.soc1Channel         = "ADC_CH_ADCIN2_ADCIN3";
    adc1.soc2Channel         = "ADC_CH_ADCIN4_ADCIN5";
    adc1.soc5Channel         = "ADC_CH_ADCIN4_ADCIN5";
    adc1.soc6Channel         = "ADC_CH_ADCIN0_ADCIN1";
    adc1.soc9Channel         = "ADC_CH_ADCIN0_ADCIN1";
    adc1.soc10Channel        = "ADC_CH_ADCIN2_ADCIN3";
    adc1.enableConverter     = true;
    adc1.enableInterrupt1    = true;
    adc1.socHighPriorityMode = "ADC_PRI_ALL_HIPRI";
    adc1.soc0Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc1.soc1Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc1.soc2Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc1.soc3Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc1.soc4Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc1.soc5Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc1.soc6Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc1.soc7Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc1.soc8Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc1.soc9Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc1.soc10Trigger        = "ADC_TRIGGER_EPWM7_SOCA";
    adc1.soc11Trigger        = "ADC_TRIGGER_EPWM7_SOCA";
    adc1.burstTrigger        = "ADC_TRIGGER_EPWM7_SOCA";
    adc1.$name               = "CFG_ADC0";
    adc1.ADC.$assign         = "ADC0";
    adc1.ADC.AIN0.$assign    = "ADC0_AIN0";
    adc1.ADC.AIN1.$assign    = "ADC0_AIN1";
    adc1.ADC.AIN2.$assign    = "ADC0_AIN2";
    adc1.ADC.AIN3.$assign    = "ADC0_AIN3";
    adc1.ADC.AIN4.$assign    = "ADC0_AIN4";
    adc1.ADC.AIN5.$assign    = "ADC0_AIN5";
    
    adc2.adcClockPrescaler   = "ADC_CLK_DIV_4_0";
    adc2.interruptPulseMode  = "ADC_PULSE_END_OF_CONV";
    adc2.enableConverter     = true;
    adc2.soc0Channel         = "ADC_CH_ADCIN0_ADCIN1";
    adc2.adcSignalMode       = "ADC_MODE_DIFFERENTIAL";
    adc2.soc3Channel         = "ADC_CH_ADCIN0_ADCIN1";
    adc2.soc12Channel        = "ADC_CH_ADCIN0_ADCIN1";
    adc2.soc13Channel        = "ADC_CH_ADCIN0_ADCIN1";
    adc2.soc14Channel        = "ADC_CH_ADCIN0_ADCIN1";
    adc2.soc15Channel        = "ADC_CH_ADCIN0_ADCIN1";
    adc2.soc4Channel         = "ADC_CH_ADCIN2_ADCIN3";
    adc2.soc7Channel         = "ADC_CH_ADCIN2_ADCIN3";
    adc2.soc8Channel         = "ADC_CH_ADCIN4_ADCIN5";
    adc2.soc11Channel        = "ADC_CH_ADCIN4_ADCIN5";
    adc2.burstSize           = 4;
    adc2.enableBurstMode     = true;
    adc2.soc1Channel         = "ADC_CH_ADCIN2_ADCIN3";
    adc2.soc2Channel         = "ADC_CH_ADCIN4_ADCIN5";
    adc2.soc5Channel         = "ADC_CH_ADCIN4_ADCIN5";
    adc2.soc6Channel         = "ADC_CH_ADCIN0_ADCIN1";
    adc2.soc9Channel         = "ADC_CH_ADCIN0_ADCIN1";
    adc2.soc10Channel        = "ADC_CH_ADCIN2_ADCIN3";
    adc2.socHighPriorityMode = "ADC_PRI_ALL_HIPRI";
    adc2.soc0Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc2.soc1Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc2.soc2Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc2.soc3Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc2.soc4Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc2.soc5Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc2.soc6Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc2.soc7Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc2.soc8Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc2.soc9Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc2.soc10Trigger        = "ADC_TRIGGER_EPWM7_SOCA";
    adc2.soc11Trigger        = "ADC_TRIGGER_EPWM7_SOCA";
    adc2.burstTrigger        = "ADC_TRIGGER_EPWM7_SOCA";
    adc2.$name               = "CFG_ADC1";
    adc2.ADC.$assign         = "ADC1";
    adc2.ADC.AIN0.$assign    = "ADC1_AIN0";
    adc2.ADC.AIN1.$assign    = "ADC1_AIN1";
    adc2.ADC.AIN2.$assign    = "ADC1_AIN2";
    adc2.ADC.AIN3.$assign    = "ADC1_AIN3";
    adc2.ADC.AIN4.$assign    = "ADC1_AIN4";
    adc2.ADC.AIN5.$assign    = "ADC1_AIN5";
    
    adc3.adcClockPrescaler   = "ADC_CLK_DIV_4_0";
    adc3.interruptPulseMode  = "ADC_PULSE_END_OF_CONV";
    adc3.enableConverter     = true;
    adc3.soc0Channel         = "ADC_CH_ADCIN0_ADCIN1";
    adc3.adcSignalMode       = "ADC_MODE_DIFFERENTIAL";
    adc3.soc3Channel         = "ADC_CH_ADCIN0_ADCIN1";
    adc3.soc12Channel        = "ADC_CH_ADCIN0_ADCIN1";
    adc3.soc13Channel        = "ADC_CH_ADCIN0_ADCIN1";
    adc3.soc14Channel        = "ADC_CH_ADCIN0_ADCIN1";
    adc3.soc15Channel        = "ADC_CH_ADCIN0_ADCIN1";
    adc3.soc4Channel         = "ADC_CH_ADCIN2_ADCIN3";
    adc3.soc7Channel         = "ADC_CH_ADCIN2_ADCIN3";
    adc3.soc8Channel         = "ADC_CH_ADCIN4_ADCIN5";
    adc3.soc11Channel        = "ADC_CH_ADCIN4_ADCIN5";
    adc3.burstSize           = 4;
    adc3.enableBurstMode     = true;
    adc3.soc1Channel         = "ADC_CH_ADCIN2_ADCIN3";
    adc3.soc2Channel         = "ADC_CH_ADCIN4_ADCIN5";
    adc3.soc5Channel         = "ADC_CH_ADCIN4_ADCIN5";
    adc3.soc6Channel         = "ADC_CH_ADCIN0_ADCIN1";
    adc3.soc9Channel         = "ADC_CH_ADCIN0_ADCIN1";
    adc3.soc10Channel        = "ADC_CH_ADCIN2_ADCIN3";
    adc3.socHighPriorityMode = "ADC_PRI_ALL_HIPRI";
    adc3.soc0Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc3.soc1Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc3.soc2Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc3.soc3Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc3.soc4Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc3.soc5Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc3.soc6Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc3.soc7Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc3.soc8Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc3.soc9Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc3.soc10Trigger        = "ADC_TRIGGER_EPWM7_SOCA";
    adc3.soc11Trigger        = "ADC_TRIGGER_EPWM7_SOCA";
    adc3.burstTrigger        = "ADC_TRIGGER_EPWM7_SOCA";
    adc3.$name               = "CFG_ADC2";
    adc3.ADC.$assign         = "ADC2";
    adc3.ADC.AIN0.$assign    = "ADC2_AIN0";
    adc3.ADC.AIN1.$assign    = "ADC2_AIN1";
    adc3.ADC.AIN2.$assign    = "ADC2_AIN2";
    adc3.ADC.AIN3.$assign    = "ADC2_AIN3";
    adc3.ADC.AIN4.$assign    = "ADC2_AIN4";
    adc3.ADC.AIN5.$assign    = "ADC2_AIN5";
    
    adc4.adcClockPrescaler   = "ADC_CLK_DIV_4_0";
    adc4.interruptPulseMode  = "ADC_PULSE_END_OF_CONV";
    adc4.enableConverter     = true;
    adc4.soc0Channel         = "ADC_CH_ADCIN0_ADCIN1";
    adc4.adcSignalMode       = "ADC_MODE_DIFFERENTIAL";
    adc4.soc3Channel         = "ADC_CH_ADCIN0_ADCIN1";
    adc4.soc12Channel        = "ADC_CH_ADCIN0_ADCIN1";
    adc4.soc13Channel        = "ADC_CH_ADCIN0_ADCIN1";
    adc4.soc14Channel        = "ADC_CH_ADCIN0_ADCIN1";
    adc4.soc15Channel        = "ADC_CH_ADCIN0_ADCIN1";
    adc4.soc4Channel         = "ADC_CH_ADCIN2_ADCIN3";
    adc4.soc7Channel         = "ADC_CH_ADCIN2_ADCIN3";
    adc4.soc8Channel         = "ADC_CH_ADCIN4_ADCIN5";
    adc4.soc11Channel        = "ADC_CH_ADCIN4_ADCIN5";
    adc4.burstSize           = 4;
    adc4.enableBurstMode     = true;
    adc4.soc1Channel         = "ADC_CH_ADCIN2_ADCIN3";
    adc4.soc2Channel         = "ADC_CH_ADCIN4_ADCIN5";
    adc4.soc5Channel         = "ADC_CH_ADCIN4_ADCIN5";
    adc4.soc6Channel         = "ADC_CH_ADCIN0_ADCIN1";
    adc4.soc9Channel         = "ADC_CH_ADCIN0_ADCIN1";
    adc4.soc10Channel        = "ADC_CH_ADCIN2_ADCIN3";
    adc4.socHighPriorityMode = "ADC_PRI_ALL_HIPRI";
    adc4.soc0Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc4.soc1Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc4.soc2Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc4.soc3Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc4.soc4Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc4.soc5Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc4.soc6Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc4.soc7Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc4.soc8Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc4.soc9Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc4.soc10Trigger        = "ADC_TRIGGER_EPWM7_SOCA";
    adc4.soc11Trigger        = "ADC_TRIGGER_EPWM7_SOCA";
    adc4.burstTrigger        = "ADC_TRIGGER_EPWM7_SOCA";
    adc4.$name               = "CFG_ADC3";
    adc4.ADC.$assign         = "ADC3";
    adc4.ADC.AIN0.$assign    = "ADC3_AIN0";
    adc4.ADC.AIN1.$assign    = "ADC3_AIN1";
    adc4.ADC.AIN2.$assign    = "ADC3_AIN2";
    adc4.ADC.AIN3.$assign    = "ADC3_AIN3";
    adc4.ADC.AIN4.$assign    = "ADC3_AIN4";
    adc4.ADC.AIN5.$assign    = "ADC3_AIN5";
    
    adc5.adcClockPrescaler   = "ADC_CLK_DIV_4_0";
    adc5.interruptPulseMode  = "ADC_PULSE_END_OF_CONV";
    adc5.enableConverter     = true;
    adc5.burstSize           = 4;
    adc5.enableBurstMode     = true;
    adc5.socHighPriorityMode = "ADC_PRI_ALL_HIPRI";
    adc5.soc0Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc5.soc1Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc5.soc2Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc5.soc3Trigger         = "ADC_TRIGGER_EPWM7_SOCA";
    adc5.burstTrigger        = "ADC_TRIGGER_EPWM7_SOCA";
    adc5.$name               = "CFG_ADC4";
    adc5.ADC.$assign         = "ADC4";
    adc5.ADC.AIN0.$assign    = "ADC4_AIN0";
    adc5.ADC.AIN1.$used      = false;
    adc5.ADC.AIN2.$used      = false;
    adc5.ADC.AIN3.$used      = false;
    adc5.ADC.AIN4.$used      = false;
    adc5.ADC.AIN5.$used      = false;
    
    dac1.$name        = "CFG_DAC";
    dac1.enableOutput = true;
    
    ecap1.eventStop           = "ECAP_EVENT_4";
    ecap1.eventOnePolarity    = "ECAP_EVNT_FALLING_EDGE";
    ecap1.eventThreePolarity  = "ECAP_EVNT_FALLING_EDGE";
    ecap1.useInterrupts       = false;
    ecap1.counterResetOnEvent = ["ECAP_EVENT_1","ECAP_EVENT_2","ECAP_EVENT_3","ECAP_EVENT_4"];
    ecap1.ecapInput           = "ECAP_INPUT_INPUTXBAR0";
    ecap1.useDMA              = true;
    ecap1.dmaSource           = "ECAP_CAP_MODE_DMA_TRIGGER_SRC_CEVT4";
    ecap1.emulationMode       = "ECAP_EMULATION_FREE_RUN";
    ecap1.$name               = "CFG_ECAP0";
    
    ecap2.eventStop           = "ECAP_EVENT_4";
    ecap2.eventOnePolarity    = "ECAP_EVNT_FALLING_EDGE";
    ecap2.eventThreePolarity  = "ECAP_EVNT_FALLING_EDGE";
    ecap2.useInterrupts       = false;
    ecap2.counterResetOnEvent = ["ECAP_EVENT_1","ECAP_EVENT_2","ECAP_EVENT_3","ECAP_EVENT_4"];
    ecap2.useDMA              = true;
    ecap2.dmaSource           = "ECAP_CAP_MODE_DMA_TRIGGER_SRC_CEVT4";
    ecap2.emulationMode       = "ECAP_EMULATION_FREE_RUN";
    ecap2.ecapBase            = "CSL_CONTROLSS_ECAP1_U_BASE";
    ecap2.$name               = "CFG_ECAP1";
    
    ecap3.eventStop           = "ECAP_EVENT_4";
    ecap3.eventOnePolarity    = "ECAP_EVNT_FALLING_EDGE";
    ecap3.eventThreePolarity  = "ECAP_EVNT_FALLING_EDGE";
    ecap3.useInterrupts       = false;
    ecap3.counterResetOnEvent = ["ECAP_EVENT_1","ECAP_EVENT_2","ECAP_EVENT_3","ECAP_EVENT_4"];
    ecap3.useDMA              = true;
    ecap3.dmaSource           = "ECAP_CAP_MODE_DMA_TRIGGER_SRC_CEVT4";
    ecap3.emulationMode       = "ECAP_EMULATION_FREE_RUN";
    ecap3.ecapBase            = "CSL_CONTROLSS_ECAP2_U_BASE";
    ecap3.ecapInput           = "ECAP_INPUT_INPUTXBAR2";
    ecap3.$name               = "CFG_ECAP2";
    
    ecap4.eventStop           = "ECAP_EVENT_4";
    ecap4.eventOnePolarity    = "ECAP_EVNT_FALLING_EDGE";
    ecap4.eventThreePolarity  = "ECAP_EVNT_FALLING_EDGE";
    ecap4.useInterrupts       = false;
    ecap4.counterResetOnEvent = ["ECAP_EVENT_1","ECAP_EVENT_2","ECAP_EVENT_3","ECAP_EVENT_4"];
    ecap4.useDMA              = true;
    ecap4.dmaSource           = "ECAP_CAP_MODE_DMA_TRIGGER_SRC_CEVT4";
    ecap4.emulationMode       = "ECAP_EMULATION_FREE_RUN";
    ecap4.ecapInput           = "ECAP_INPUT_INPUTXBAR3";
    ecap4.ecapBase            = "CSL_CONTROLSS_ECAP3_U_BASE";
    ecap4.$name               = "CFG_ECAP3";
    
    ecap5.eventStop           = "ECAP_EVENT_4";
    ecap5.eventOnePolarity    = "ECAP_EVNT_FALLING_EDGE";
    ecap5.eventThreePolarity  = "ECAP_EVNT_FALLING_EDGE";
    ecap5.useInterrupts       = false;
    ecap5.counterResetOnEvent = ["ECAP_EVENT_1","ECAP_EVENT_2","ECAP_EVENT_3","ECAP_EVENT_4"];
    ecap5.useDMA              = true;
    ecap5.dmaSource           = "ECAP_CAP_MODE_DMA_TRIGGER_SRC_CEVT4";
    ecap5.emulationMode       = "ECAP_EMULATION_FREE_RUN";
    ecap5.ecapBase            = "CSL_CONTROLSS_ECAP4_U_BASE";
    ecap5.ecapInput           = "ECAP_INPUT_INPUTXBAR4";
    ecap5.$name               = "CFG_ECAP4";
    
    ecap6.eventStop           = "ECAP_EVENT_4";
    ecap6.eventOnePolarity    = "ECAP_EVNT_FALLING_EDGE";
    ecap6.eventThreePolarity  = "ECAP_EVNT_FALLING_EDGE";
    ecap6.useInterrupts       = false;
    ecap6.counterResetOnEvent = ["ECAP_EVENT_1","ECAP_EVENT_2","ECAP_EVENT_3","ECAP_EVENT_4"];
    ecap6.useDMA              = true;
    ecap6.dmaSource           = "ECAP_CAP_MODE_DMA_TRIGGER_SRC_CEVT4";
    ecap6.emulationMode       = "ECAP_EMULATION_FREE_RUN";
    ecap6.ecapBase            = "CSL_CONTROLSS_ECAP5_U_BASE";
    ecap6.ecapInput           = "ECAP_INPUT_INPUTXBAR5";
    ecap6.$name               = "CFG_ECAP5";
    
    ecap7.eventStop           = "ECAP_EVENT_4";
    ecap7.eventOnePolarity    = "ECAP_EVNT_FALLING_EDGE";
    ecap7.eventThreePolarity  = "ECAP_EVNT_FALLING_EDGE";
    ecap7.useInterrupts       = false;
    ecap7.counterResetOnEvent = ["ECAP_EVENT_1","ECAP_EVENT_2","ECAP_EVENT_3","ECAP_EVENT_4"];
    ecap7.useDMA              = true;
    ecap7.dmaSource           = "ECAP_CAP_MODE_DMA_TRIGGER_SRC_CEVT4";
    ecap7.emulationMode       = "ECAP_EMULATION_FREE_RUN";
    ecap7.ecapBase            = "CSL_CONTROLSS_ECAP6_U_BASE";
    ecap7.ecapInput           = "ECAP_INPUT_INPUTXBAR6";
    ecap7.$name               = "CFG_ECAP6";
    
    ecap8.eventStop           = "ECAP_EVENT_4";
    ecap8.eventOnePolarity    = "ECAP_EVNT_FALLING_EDGE";
    ecap8.eventThreePolarity  = "ECAP_EVNT_FALLING_EDGE";
    ecap8.useInterrupts       = false;
    ecap8.counterResetOnEvent = ["ECAP_EVENT_1","ECAP_EVENT_2","ECAP_EVENT_3","ECAP_EVENT_4"];
    ecap8.useDMA              = true;
    ecap8.dmaSource           = "ECAP_CAP_MODE_DMA_TRIGGER_SRC_CEVT4";
    ecap8.emulationMode       = "ECAP_EMULATION_FREE_RUN";
    ecap8.ecapBase            = "CSL_CONTROLSS_ECAP7_U_BASE";
    ecap8.ecapInput           = "ECAP_INPUT_INPUTXBAR7";
    ecap8.$name               = "CFG_ECAP7";
    
    epwm1.epwmActionQualifier_EPWM_AQ_OUTPUT_A_ON_TIMEBASE_UP_CMPA   = "EPWM_AQ_OUTPUT_HIGH";
    epwm1.epwmActionQualifier_EPWM_AQ_OUTPUT_A_ON_TIMEBASE_DOWN_CMPA = "EPWM_AQ_OUTPUT_LOW";
    epwm1.epwmEventTrigger_EPWM_SOC_A_triggerEnable                  = true;
    epwm1.epwmEventTrigger_EPWM_SOC_A_triggerEventPrescalar          = "1";
    epwm1.epwmTimebase_hsClockDiv                                    = "EPWM_HSCLOCK_DIVIDER_10";
    epwm1.epwmCounterCompare_shadowLoadModeCMPA                      = "EPWM_COMP_LOAD_ON_CNTR_PERIOD";
    epwm1.epwmEventTrigger_EPWM_SOC_A_triggerSource                  = "EPWM_SOC_TBCTR_U_CMPA";
    epwm1.epwmEventTrigger_enableInterrupt                           = true;
    epwm1.epwmEventTrigger_interruptSource                           = "EPWM_INT_TBCTR_U_CMPA";
    epwm1.epwmTimebase_emulationMode                                 = "EPWM_EMULATION_STOP_AFTER_FULL_CYCLE";
    epwm1.epwmTimebase_clockDiv                                      = "EPWM_CLOCK_DIVIDER_32";
    epwm1.epwmGroup                                                  = "EPWM_GROUP1";
    epwm1.epwmTimebase_period                                        = 65535;
    epwm1.epwmCounterCompare_cmpA                                    = 625;
    epwm1.$name                                                      = "CFG_EPWM_ADC";
    epwm1.EPWM.$assign                                               = "EPWM7";
    epwm1.EPWM.A.$assign                                             = "EPWM7_A";
    epwm1.EPWM.B.$assign                                             = "EPWM7_B";
    
    epwm2.epwmTimebase_syncOutPulseMode = ["EPWM_SYNC_OUT_PULSE_ON_SOFTWARE"];
    epwm2.$name                         = "CFG_EPWM0";
    epwm2.EPWM.$assign                  = "EPWM0";
    epwm2.EPWM.A.$assign                = "EPWM0_A";
    epwm2.EPWM.B.$assign                = "EPWM0_B";
    epwm2.EPWM.B.$used                  = false;
    
    epwm3.epwmTimebase_syncOutPulseMode = ["EPWM_SYNC_OUT_PULSE_ON_SOFTWARE"];
    epwm3.$name                         = "CFG_EPWM1";
    epwm3.EPWM.$assign                  = "EPWM1";
    epwm3.EPWM.A.$assign                = "EPWM1_A";
    epwm3.EPWM.B.$assign                = "EPWM1_B";
    epwm3.EPWM.B.$used                  = false;
    
    epwm4.epwmTimebase_syncOutPulseMode = ["EPWM_SYNC_OUT_PULSE_ON_SOFTWARE"];
    epwm4.$name                         = "CFG_EPWM2";
    epwm4.EPWM.$assign                  = "EPWM2";
    epwm4.EPWM.A.$assign                = "EPWM2_A";
    epwm4.EPWM.B.$assign                = "EPWM2_B";
    epwm4.EPWM.B.$used                  = false;
    
    epwm5.epwmTimebase_syncOutPulseMode = ["EPWM_SYNC_OUT_PULSE_ON_SOFTWARE"];
    epwm5.$name                         = "CFG_EPWM3";
    epwm5.EPWM.$assign                  = "EPWM3";
    epwm5.EPWM.A.$assign                = "EPWM3_A";
    epwm5.EPWM.B.$assign                = "EPWM3_B";
    epwm5.EPWM.B.$used                  = false;
    
    gpio1.$name          = "CFG_FAN1";
    gpio1.GPIO_n.$assign = "EPWM8_A";
    
    gpio2.$name          = "CFG_FAN2";
    gpio2.GPIO_n.$assign = "EPWM8_B";
    
    gpio3.$name          = "CFG_FAN3";
    gpio3.GPIO_n.$assign = "EPWM9_A";
    
    gpio4.$name          = "CFG_FAN4";
    gpio4.GPIO_n.$assign = "EPWM9_B";
    
    gpio5.$name          = "CFG_FAN5";
    gpio5.GPIO_n.$assign = "EPWM10_A";
    
    gpio6.$name          = "CFG_FAN6";
    gpio6.GPIO_n.$assign = "EPWM11_A";
    
    gpio7.$name          = "CFG_FAN7";
    gpio7.GPIO_n.$assign = "EPWM11_B";
    
    gpio8.pinDir         = "OUTPUT";
    gpio8.$name          = "CFG_DO00_OCCONR";
    gpio8.GPIO_n.$assign = "PR0_MDIO_MDIO";
    
    gpio9.pinDir         = "OUTPUT";
    gpio9.$name          = "CFG_DO01_LBOF";
    gpio9.GPIO_n.$assign = "PR0_MDIO_MDC";
    
    gpio10.pinDir         = "OUTPUT";
    gpio10.$name          = "CFG_DO02_BYPAS";
    gpio10.GPIO_n.$assign = "PR0_PRU0_GPIO5";
    
    gpio11.pinDir         = "OUTPUT";
    gpio11.$name          = "CFG_DO04_FANR";
    gpio11.GPIO_n.$assign = "PR0_PRU0_GPIO10";
    
    gpio12.pinDir         = "OUTPUT";
    gpio12.$name          = "CFG_DO05";
    gpio12.GPIO_n.$assign = "PR0_PRU0_GPIO8";
    
    gpio13.pinDir         = "OUTPUT";
    gpio13.$name          = "CFG_DO06_B_OCR";
    gpio13.GPIO_n.$assign = "PR0_PRU1_GPIO5";
    
    gpio14.pinDir         = "OUTPUT";
    gpio14.$name          = "CFG_DO07_B_OPR";
    gpio14.GPIO_n.$assign = "PR0_PRU1_GPIO9";
    
    gpio15.pinDir         = "OUTPUT";
    gpio15.$name          = "CFG_DO08";
    gpio15.GPIO_n.$assign = "PR0_PRU1_GPIO10";
    
    gpio16.pinDir         = "OUTPUT";
    gpio16.$name          = "CFG_DO09";
    gpio16.GPIO_n.$assign = "PR0_PRU1_GPIO8";
    
    gpio17.pinDir         = "OUTPUT";
    gpio17.$name          = "CFG_DO10";
    gpio17.GPIO_n.$assign = "PR0_PRU1_GPIO0";
    
    gpio18.pinDir         = "OUTPUT";
    gpio18.$name          = "CFG_DO11";
    gpio18.GPIO_n.$assign = "PR0_PRU1_GPIO1";
    
    gpio19.$name          = "CFG_DI00_OCCON";
    gpio19.GPIO_n.$assign = "PR0_PRU1_GPIO2";
    
    gpio20.$name          = "CFG_DI01_LBON";
    gpio20.GPIO_n.$assign = "PR0_PRU1_GPIO3";
    
    gpio21.$name          = "CFG_DI02_FANKON";
    gpio21.GPIO_n.$assign = "PR0_PRU1_GPIO16";
    
    gpio22.$name          = "CFG_DI03_RST";
    gpio22.GPIO_n.$assign = "PR0_PRU1_GPIO15";
    
    gpio23.$name          = "CFG_DI04";
    gpio23.GPIO_n.$assign = "PR0_PRU1_GPIO11";
    
    gpio24.$name          = "CFG_DI05";
    gpio24.GPIO_n.$assign = "PR0_PRU1_GPIO12";
    
    gpio25.$name          = "CFG_DI06_FUSEON1";
    gpio25.GPIO_n.$assign = "PR0_PRU1_GPIO13";
    
    gpio26.$name          = "CFG_DI07_FUSEON2";
    gpio26.GPIO_n.$assign = "PR0_PRU1_GPIO14";
    
    gpio27.$name          = "CFG_DI08_FUSEON3";
    gpio27.GPIO_n.$assign = "PR0_PRU1_GPIO19";
    
    gpio28.$name          = "CFG_DI09_FUSEON4";
    gpio28.GPIO_n.$assign = "PR0_PRU1_GPIO18";
    
    gpio29.$name          = "CFG_DI10_GID1";
    gpio29.GPIO_n.$assign = "SDFM0_CLK0";
    
    gpio30.$name          = "CFG_DI11_GID2";
    gpio30.GPIO_n.$assign = "SDFM0_D0";
    
    gpio31.$name          = "CFG_DI12_GID3";
    gpio31.GPIO_n.$assign = "SDFM0_CLK1";
    
    gpio32.$name          = "CFG_DI13_P24BON";
    gpio32.GPIO_n.$assign = "SDFM0_D1";
    
    gpio33.$name          = "CFG_DI14_P24FON";
    gpio33.GPIO_n.$assign = "SDFM0_CLK2";
    
    gpio34.$name          = "CFG_DI15";
    gpio34.GPIO_n.$assign = "SDFM0_D2";
    
    gpio35.$name          = "CFG_DI16";
    gpio35.GPIO_n.$assign = "SDFM0_CLK3";
    
    gpio36.$name          = "CFG_DI17";
    gpio36.GPIO_n.$assign = "SDFM0_D3";
    
    gpio37.pinDir         = "OUTPUT";
    gpio37.$name          = "CFG_LD1";
    gpio37.GPIO_n.$assign = "EPWM14_A";
    
    gpio38.pinDir         = "OUTPUT";
    gpio38.$name          = "CFG_LD2";
    gpio38.GPIO_n.$assign = "EPWM14_B";
    
    gpio39.pinDir         = "OUTPUT";
    gpio39.$name          = "CFG_LD3";
    gpio39.GPIO_n.$assign = "EPWM15_A";
    
    gpio40.pinDir         = "OUTPUT";
    gpio40.$name          = "CFG_LD4";
    gpio40.GPIO_n.$assign = "EPWM15_B";
    
    gpio41.pinDir         = "OUTPUT";
    gpio41.$name          = "CFG_LD5";
    gpio41.GPIO_n.$assign = "MMC_DAT2";
    
    gpio42.pinDir         = "OUTPUT";
    gpio42.$name          = "CFG_LD6";
    gpio42.GPIO_n.$assign = "MMC_DAT3";
    
    gpio43.pinDir         = "OUTPUT";
    gpio43.$name          = "CFG_LD7";
    gpio43.GPIO_n.$assign = "MMC_SDWP";
    
    gpio44.pinDir         = "OUTPUT";
    gpio44.$name          = "CFG_LD8";
    gpio44.GPIO_n.$assign = "MMC_SDCD";
    
    gpio45.pinDir         = "OUTPUT";
    gpio45.$name          = "CFG_TOUT1";
    gpio45.GPIO_n.$assign = "EPWM12_B";
    
    gpio46.pinDir         = "OUTPUT";
    gpio46.$name          = "CFG_TOUT2";
    gpio46.GPIO_n.$assign = "EPWM13_A";
    
    gpio47.pinDir         = "OUTPUT";
    gpio47.$name          = "CFG_TOUT3";
    gpio47.GPIO_n.$assign = "EPWM13_B";
    
    gpio48.pinDir         = "OUTPUT";
    gpio48.$name          = "CFG_TOUT4";
    gpio48.GPIO_n.$assign = "EXT_REFCLK0";
    
    gpio49.pinDir         = "OUTPUT";
    gpio49.$name          = "CFG_TOUT5";
    gpio49.GPIO_n.$assign = "CLKOUT0";
    
    gpio50.$name          = "CFG_FAN8";
    gpio50.GPIO_n.$assign = "EPWM3_B";
    
    gpio51.pinDir         = "OUTPUT";
    gpio51.$name          = "CFG_DO03_LBONR";
    gpio51.GPIO_n.$assign = "PR0_PRU0_GPIO9";
    
    gpio52.$name          = "CFG_FRAM_CS0";
    gpio52.pinDir         = "OUTPUT";
    gpio52.pu_pd          = "pu";
    gpio52.GPIO_n.$assign = "EQEP0_B";
    
    gpio53.pinDir         = "OUTPUT";
    gpio53.pu_pd          = "pu";
    gpio53.$name          = "CFG_FRAM_CS1";
    gpio53.GPIO_n.$assign = "EPWM12_A";
    
    gpio54.$name          = "CFG_SPIRDY0";
    gpio54.GPIO_n.$assign = "EPWM4_A";
    
    gpio55.$name          = "CFG_SPIRDY2";
    gpio55.GPIO_n.$assign = "UART0_RXD";
    
    gpio56.$name          = "CFG_SPIRDY3";
    gpio56.GPIO_n.$assign = "UART0_TXD";
    
    gpio57.$name          = "CFG_SPIRDY5";
    gpio57.GPIO_n.$assign = "EPWM4_B";
    
    gpio58.$name          = "CFG_GPO";
    gpio58.GPIO_n.$assign = "MCAN2_RX";
    
    gpio59.$name          = "CFG_SAFE_OUT";
    gpio59.GPIO_n.$assign = "MCAN2_TX";
    
    gpio60.$name          = "CFG_IP15ON";
    gpio60.GPIO_n.$assign = "EPWM0_B";
    
    gpio61.$name          = "CFG_P12ON";
    gpio61.GPIO_n.$assign = "EPWM1_B";
    
    gpio62.$name          = "CFG_IM15ON";
    gpio62.GPIO_n.$assign = "EPWM2_B";
    
    gpio63.$name          = "CFG_OSPI0_RST";
    gpio63.pinDir         = "OUTPUT";
    gpio63.defaultValue   = "1";
    gpio63.GPIO_n.$assign = "EPWM10_B";
    
    pmic1.peripheralDriver             = mcspi1;
    mcspi1.$name                       = "CFG_MCSPI1";
    mcspi1.SPI.$assign                 = "SPI1";
    mcspi1.SPI.CLK.$assign             = "SPI1_CLK";
    mcspi1.SPI.D0.$assign              = "SPI1_D0";
    mcspi1.SPI.D1.$assign              = "SPI1_D1";
    mcspi1.mcspiChannel[0].$name       = "CONFIG_MCSPI_CH0";
    mcspi1.mcspiChannel[0].CSn.$assign = "SPI1_CS0";
    mcspi1.child.$name                 = "drivers_mcspi_v1_mcspi_v1_template1";
    
    mcspi2.$name                                      = "CFG_MCSPI4";
    mcspi2.pinMode                                    = 3;
    mcspi2.intrEnable                                 = "DMA";
    mcspi2.SPI.$assign                                = "SPI4";
    mcspi2.SPI.CLK.$assign                            = "EQEP0_A";
    mcspi2.SPI.D0.$assign                             = "EQEP0_STROBE";
    mcspi2.SPI.D1.$assign                             = "EQEP0_INDEX";
    mcspi2.mcspiChannel[0].$name                      = "CONFIG_MCSPI_CH1";
    mcspi2.mcspiChannel[0].bitRate                    = 50000000;
    mcspi2.mcspiChannel[0].mcspiRxConfigXbar.$name    = "CFG_DMA_TRIG_XBAR8";
    mcspi2.mcspiChannel[0].mcspiRxConfigXbar.instance = "DMA_TRIG_XBAR_EDMA_MODULE_8";
    mcspi2.mcspiChannel[0].mcspiTxConfigXbar.$name    = "CFG_DMA_TRIG_XBAR9";
    mcspi2.mcspiChannel[0].mcspiTxConfigXbar.instance = "DMA_TRIG_XBAR_EDMA_MODULE_9";
    mcspi2.child.$name                                = "drivers_mcspi_v1_mcspi_v1_template0";
    
    mcspi3.$name                       = "CFG_MCSPI0";
    mcspi3.intrEnable                  = "POLLED";
    mcspi3.SPI.$assign                 = "SPI0";
    mcspi3.SPI.CLK.$assign             = "SPI0_CLK";
    mcspi3.SPI.D0.$assign              = "SPI0_D0";
    mcspi3.SPI.D1.$assign              = "SPI0_D1";
    mcspi3.mcspiChannel[0].$name       = "CONFIG_MCSPI_CH2";
    mcspi3.mcspiChannel[0].bitRate     = 5000000;
    mcspi3.mcspiChannel[0].CSn.$assign = "SPI0_CS0";
    mcspi3.child.$name                 = "drivers_mcspi_v1_mcspi_v1_template2";
    
    mcspi4.$name                       = "CFG_MCSPI2";
    mcspi4.intrEnable                  = "POLLED";
    mcspi4.SPI.$assign                 = "SPI2";
    mcspi4.SPI.CLK.$assign             = "LIN1_TXD";
    mcspi4.SPI.D0.$assign              = "LIN2_RXD";
    mcspi4.SPI.D1.$assign              = "LIN2_TXD";
    mcspi4.mcspiChannel[0].$name       = "CONFIG_MCSPI_CH3";
    mcspi4.mcspiChannel[0].bitRate     = 5000000;
    mcspi4.mcspiChannel[0].CSn.$assign = "LIN1_RXD";
    mcspi4.child.$name                 = "drivers_mcspi_v1_mcspi_v1_template3";
    
    mcspi5.$name                       = "CFG_MCSPI3";
    mcspi5.intrEnable                  = "POLLED";
    mcspi5.SPI.$assign                 = "SPI3";
    mcspi5.SPI.CLK.$assign             = "I2C1_SDA";
    mcspi5.SPI.D0.$assign              = "UART0_RTSn";
    mcspi5.SPI.D1.$assign              = "UART0_CTSn";
    mcspi5.mcspiChannel[0].$name       = "CONFIG_MCSPI_CH3_COPY";
    mcspi5.mcspiChannel[0].bitRate     = 5000000;
    mcspi5.mcspiChannel[0].CSn.$assign = "I2C1_SCL";
    mcspi5.child.$name                 = "drivers_mcspi_v1_mcspi_v1_template3_COPY";
    
    mcspi6.intrEnable                  = "POLLED";
    mcspi6.$name                       = "CFG_MCSPI5";
    mcspi6.SPI.$assign                 = "SPI5";
    mcspi6.SPI.CLK.$assign             = "EPWM5_B";
    mcspi6.SPI.D0.$assign              = "EPWM6_A";
    mcspi6.SPI.D1.$assign              = "EPWM6_B";
    mcspi6.mcspiChannel[0].$name       = "CONFIG_MCSPI_CH3_COPY_COPY";
    mcspi6.mcspiChannel[0].bitRate     = 5000000;
    mcspi6.mcspiChannel[0].CSn.$assign = "EPWM5_A";
    mcspi6.child.$name                 = "drivers_mcspi_v1_mcspi_v1_template3_COPY_COPY";
    
    mcspi1.edmaDriver                                   = edma1;
    mcspi2.edmaDriver                                   = edma1;
    mcspi3.edmaDriver                                   = edma1;
    mcspi4.edmaDriver                                   = edma1;
    mcspi5.edmaDriver                                   = edma1;
    mcspi6.edmaDriver                                   = edma1;
    edma1.$name                                         = "CONFIG_EDMA0";
    edma1.edmaRmDmaCh[0].$name                          = "CONFIG_EDMA_RM0";
    edma1.edmaRmQdmaCh[0].$name                         = "CONFIG_EDMA_RM1";
    edma1.edmaRmTcc[0].$name                            = "CONFIG_EDMA_RM2";
    edma1.edmaRmParam[0].$name                          = "CONFIG_EDMA_RM3";
    edma1.edmaChannel.create(8);
    edma1.edmaChannel[0].$name                          = "CONFIG_EDMA_CH0";
    edma1.edmaChannel[0].channelTrigger                 = "ECAP0_DMA_INT";
    edma1.edmaChannel[0].xbarConfig.$name               = "CFG_DMA_TRIG_XBAR0";
    edma1.edmaChannel[0].xbarConfig.xbarConfig.$name    = "CFG_DMA_XBAR0";
    edma1.edmaChannel[1].$name                          = "CONFIG_EDMA_CH1";
    edma1.edmaChannel[1].channelTrigger                 = "ECAP1_DMA_INT";
    edma1.edmaChannel[1].xbarConfig.$name               = "CFG_DMA_TRIG_XBAR1";
    edma1.edmaChannel[1].xbarConfig.instance            = "DMA_TRIG_XBAR_EDMA_MODULE_1";
    edma1.edmaChannel[1].xbarConfig.xbarConfig.instance = "DMA_XBAR_DMA_TRIG_XBAR_1";
    edma1.edmaChannel[1].xbarConfig.xbarConfig.$name    = "CFG_DMA_XBAR1";
    edma1.edmaChannel[2].$name                          = "CONFIG_EDMA_CH2";
    edma1.edmaChannel[2].channelTrigger                 = "ECAP2_DMA_INT";
    edma1.edmaChannel[2].xbarConfig.instance            = "DMA_TRIG_XBAR_EDMA_MODULE_2";
    edma1.edmaChannel[2].xbarConfig.$name               = "CFG_DMA_TRIG_XBAR2";
    edma1.edmaChannel[2].xbarConfig.xbarConfig.instance = "DMA_XBAR_DMA_TRIG_XBAR_2";
    edma1.edmaChannel[2].xbarConfig.xbarConfig.$name    = "CFG_DMA_XBAR2";
    edma1.edmaChannel[3].$name                          = "CONFIG_EDMA_CH3";
    edma1.edmaChannel[3].channelTrigger                 = "ECAP3_DMA_INT";
    edma1.edmaChannel[3].xbarConfig.$name               = "CFG_DMA_TRIG_XBAR3";
    edma1.edmaChannel[3].xbarConfig.instance            = "DMA_TRIG_XBAR_EDMA_MODULE_3";
    edma1.edmaChannel[3].xbarConfig.xbarConfig.$name    = "CFG_DMA_XBAR3";
    edma1.edmaChannel[3].xbarConfig.xbarConfig.instance = "DMA_XBAR_DMA_TRIG_XBAR_3";
    edma1.edmaChannel[4].$name                          = "CONFIG_EDMA_CH4";
    edma1.edmaChannel[4].channelTrigger                 = "ECAP4_DMA_INT";
    edma1.edmaChannel[4].xbarConfig.$name               = "CFG_DMA_TRIG_XBAR4";
    edma1.edmaChannel[4].xbarConfig.instance            = "DMA_TRIG_XBAR_EDMA_MODULE_4";
    edma1.edmaChannel[4].xbarConfig.xbarConfig.$name    = "CFG_DMA_XBAR4";
    edma1.edmaChannel[4].xbarConfig.xbarConfig.instance = "DMA_XBAR_DMA_TRIG_XBAR_4";
    edma1.edmaChannel[5].$name                          = "CONFIG_EDMA_CH5";
    edma1.edmaChannel[5].channelTrigger                 = "ECAP5_DMA_INT";
    edma1.edmaChannel[5].xbarConfig.$name               = "CFG_DMA_TRIG_XBAR5";
    edma1.edmaChannel[5].xbarConfig.instance            = "DMA_TRIG_XBAR_EDMA_MODULE_5";
    edma1.edmaChannel[5].xbarConfig.xbarConfig.$name    = "CFG_DMA_XBAR5";
    edma1.edmaChannel[5].xbarConfig.xbarConfig.instance = "DMA_XBAR_DMA_TRIG_XBAR_5";
    edma1.edmaChannel[6].$name                          = "CONFIG_EDMA_CH6";
    edma1.edmaChannel[6].channelTrigger                 = "ECAP6_DMA_INT";
    edma1.edmaChannel[6].xbarConfig.$name               = "CFG_DMA_TRIG_XBAR6";
    edma1.edmaChannel[6].xbarConfig.instance            = "DMA_TRIG_XBAR_EDMA_MODULE_6";
    edma1.edmaChannel[6].xbarConfig.xbarConfig.$name    = "CFG_DMA_XBAR6";
    edma1.edmaChannel[6].xbarConfig.xbarConfig.instance = "DMA_XBAR_DMA_TRIG_XBAR_6";
    edma1.edmaChannel[7].$name                          = "CONFIG_EDMA_CH7";
    edma1.edmaChannel[7].channelTrigger                 = "ECAP7_DMA_INT";
    edma1.edmaChannel[7].xbarConfig.$name               = "CFG_DMA_TRIG_XBAR7";
    edma1.edmaChannel[7].xbarConfig.instance            = "DMA_TRIG_XBAR_EDMA_MODULE_7";
    edma1.edmaChannel[7].xbarConfig.xbarConfig.$name    = "CFG_DMA_XBAR7";
    edma1.edmaChannel[7].xbarConfig.xbarConfig.instance = "DMA_XBAR_DMA_TRIG_XBAR_7";
    
    rti1.counter0Enable = true;
    rti1.compare0Enable = true;
    rti1.usecPerTick0   = 100000;
    rti1.enableIntr0    = true;
    rti1.eventCallback0 = "rtiEvent0";
    rti1.$name          = "CFG_RTI0";
    rti1.RTI.$assign    = "RTI1";
    
    const soc_ctrl_adc    = scripting.addModule("/drivers/soc_ctrl/v0/subModules/soc_ctrl_adc", {}, false);
    const soc_ctrl_adc1   = soc_ctrl_adc.addInstance({}, false);
    soc_ctrl_adc1.$name   = "soc_ctrl_adc0";
    adc.adcReferences     = soc_ctrl_adc1;
    const soc_ctrl        = scripting.addModule("/drivers/soc_ctrl/soc_ctrl", {}, false);
    soc_ctrl.soc_ctrl_adc = soc_ctrl_adc1;
    
    const soc_ctrl_cmpss    = scripting.addModule("/drivers/soc_ctrl/v0/subModules/soc_ctrl_cmpss", {}, false);
    const soc_ctrl_cmpss1   = soc_ctrl_cmpss.addInstance({}, false);
    soc_ctrl_cmpss1.$name   = "soc_ctrl_cmpss0";
    soc_ctrl.soc_ctrl_cmpss = soc_ctrl_cmpss1;
    
    const soc_ctrl_epwm    = scripting.addModule("/drivers/soc_ctrl/v0/subModules/soc_ctrl_epwm", {}, false);
    const soc_ctrl_epwm1   = soc_ctrl_epwm.addInstance({}, false);
    soc_ctrl_epwm1.$name   = "soc_ctrl_epwm0";
    soc_ctrl.soc_ctrl_epwm = soc_ctrl_epwm1;
    epwm.epwmTbClkSync     = soc_ctrl_epwm1;
    
    const soc_ctrl_sdfm    = scripting.addModule("/drivers/soc_ctrl/v0/subModules/soc_ctrl_sdfm", {}, false);
    const soc_ctrl_sdfm1   = soc_ctrl_sdfm.addInstance({}, false);
    soc_ctrl_sdfm1.$name   = "soc_ctrl_sdfm0";
    soc_ctrl.soc_ctrl_sdfm = soc_ctrl_sdfm1;
    
    debug_log.enableUartLog            = true;
    debug_log.uartLog.$name            = "CONFIG_UART0";
    debug_log.uartLog.UART.$assign     = "UART0";
    debug_log.uartLog.UART.RXD.$assign = "MMC_CLK";
    debug_log.uartLog.UART.TXD.$assign = "MMC_CMD";
    debug_log.uartLog.child.$name      = "drivers_uart_v2_uart_v2_template0";
    
    mpu_armv71.$name             = "CONFIG_MPU_REGION0";
    mpu_armv71.size              = 31;
    mpu_armv71.attributes        = "Device";
    mpu_armv71.accessPermissions = "Supervisor RD+WR, User RD";
    mpu_armv71.allowExecute      = false;
    
    mpu_armv72.$name             = "CONFIG_MPU_REGION1";
    mpu_armv72.size              = 15;
    mpu_armv72.accessPermissions = "Supervisor RD+WR, User RD";
    
    mpu_armv73.$name             = "CONFIG_MPU_REGION2";
    mpu_armv73.size              = 15;
    mpu_armv73.accessPermissions = "Supervisor RD+WR, User RD";
    mpu_armv73.baseAddr          = 0x41010000;
    
    mpu_armv74.$name             = "CONFIG_MPU_REGION3";
    mpu_armv74.accessPermissions = "Supervisor RD+WR, User RD";
    mpu_armv74.baseAddr          = 0x70000000;
    mpu_armv74.size              = 21;
    
    mpu_armv75.$name    = "CONFIG_MPU_REGION5";
    mpu_armv75.baseAddr = 0x80000000;
    mpu_armv75.size     = 31;
    
    default_linker1.$name = "memory_configurator_default_linker0";
    
    general1.$name        = "CONFIG_GENERAL0";
    general1.linker.$name = "TIARMCLANG0";
    
    region1.$name                                = "MEMORY_REGION_CONFIGURATION0";
    region1.memory_region.create(11);
    region1.memory_region[0].type                = "TCMA";
    region1.memory_region[0].$name               = "R5F_VECS";
    region1.memory_region[0].size                = 0x40;
    region1.memory_region[0].auto                = false;
    region1.memory_region[1].type                = "TCMA";
    region1.memory_region[1].$name               = "R5F_TCMA";
    region1.memory_region[1].size                = 0x7FC0;
    region1.memory_region[2].type                = "TCMB";
    region1.memory_region[2].size                = 0x8000;
    region1.memory_region[2].$name               = "R5F_TCMB";
    region1.memory_region[3].$name               = "SBL";
    region1.memory_region[3].auto                = false;
    region1.memory_region[3].size                = 0x40000;
    region1.memory_region[4].$name               = "OCRAM";
    region1.memory_region[4].auto                = false;
    region1.memory_region[4].manualStartAddress  = 0x70040000;
    region1.memory_region[4].size                = 0x40000;
    region1.memory_region[5].type                = "FLASH";
    region1.memory_region[5].auto                = false;
    region1.memory_region[5].manualStartAddress  = 0x60100000;
    region1.memory_region[5].size                = 0x80000;
    region1.memory_region[5].$name               = "FLASH";
    region1.memory_region[6].$name               = "USER_SHM_MEM";
    region1.memory_region[6].auto                = false;
    region1.memory_region[6].manualStartAddress  = 0x701D0000;
    region1.memory_region[6].size                = 0x4000;
    region1.memory_region[6].isShared            = true;
    region1.memory_region[6].shared_cores        = ["r5fss0-1","r5fss1-0","r5fss1-1"];
    region1.memory_region[7].$name               = "LOG_SHM_MEM";
    region1.memory_region[7].auto                = false;
    region1.memory_region[7].manualStartAddress  = 0x701D4000;
    region1.memory_region[7].size                = 0x4000;
    region1.memory_region[7].isShared            = true;
    region1.memory_region[7].shared_cores        = ["r5fss0-1","r5fss1-0","r5fss1-1"];
    region1.memory_region[8].type                = "CUSTOM";
    region1.memory_region[8].$name               = "RTOS_NORTOS_IPC_SHM_MEM";
    region1.memory_region[8].auto                = false;
    region1.memory_region[8].manualStartAddress  = 0x72000000;
    region1.memory_region[8].size                = 0x3E80;
    region1.memory_region[8].isShared            = true;
    region1.memory_region[8].shared_cores        = ["r5fss0-1","r5fss1-0","r5fss1-1"];
    region1.memory_region[9].type                = "CUSTOM";
    region1.memory_region[9].$name               = "MAILBOX_HSM";
    region1.memory_region[9].auto                = false;
    region1.memory_region[9].manualStartAddress  = 0x44000000;
    region1.memory_region[9].size                = 0x3CE;
    region1.memory_region[9].isShared            = true;
    region1.memory_region[9].shared_cores        = ["r5fss0-1","r5fss1-0","r5fss1-1"];
    region1.memory_region[10].type               = "CUSTOM";
    region1.memory_region[10].$name              = "MAILBOX_R5F";
    region1.memory_region[10].auto               = false;
    region1.memory_region[10].manualStartAddress = 0x44000400;
    region1.memory_region[10].size               = 0x3CE;
    region1.memory_region[10].isShared           = true;
    region1.memory_region[10].shared_cores       = ["r5fss0-1","r5fss1-0","r5fss1-1"];
    
    section1.load_memory                  = "R5F_VECS";
    section1.group                        = false;
    section1.$name                        = "Vector Table";
    section1.output_section.create(1);
    section1.output_section[0].$name      = ".vectors";
    section1.output_section[0].palignment = true;
    
    section2.load_memory                  = "OCRAM";
    section2.$name                        = "Text Segments";
    section2.output_section.create(5);
    section2.output_section[0].$name      = ".text.hwi";
    section2.output_section[0].palignment = true;
    section2.output_section[1].$name      = ".text.cache";
    section2.output_section[1].palignment = true;
    section2.output_section[2].$name      = ".text.mpu";
    section2.output_section[2].palignment = true;
    section2.output_section[3].$name      = ".text.boot";
    section2.output_section[3].palignment = true;
    section2.output_section[4].$name      = ".text:abort";
    section2.output_section[4].palignment = true;
    
    section3.load_memory                  = "OCRAM";
    section3.$name                        = "Code and Read-Only Data";
    section3.output_section.create(2);
    section3.output_section[0].$name      = ".text";
    section3.output_section[0].palignment = true;
    section3.output_section[1].$name      = ".rodata";
    section3.output_section[1].palignment = true;
    
    section4.load_memory                  = "OCRAM";
    section4.$name                        = "Data Segment";
    section4.output_section.create(1);
    section4.output_section[0].$name      = ".data";
    section4.output_section[0].palignment = true;
    
    section5.load_memory                             = "OCRAM";
    section5.$name                                   = "Memory Segments";
    section5.output_section.create(3);
    section5.output_section[0].$name                 = ".bss";
    section5.output_section[0].output_sections_start = "__BSS_START";
    section5.output_section[0].output_sections_end   = "__BSS_END";
    section5.output_section[0].palignment            = true;
    section5.output_section[1].$name                 = ".sysmem";
    section5.output_section[1].palignment            = true;
    section5.output_section[2].$name                 = ".stack";
    section5.output_section[2].palignment            = true;
    
    section6.load_memory                              = "OCRAM";
    section6.$name                                    = "Stack Segments";
    section6.output_section.create(5);
    section6.output_section[0].$name                  = ".irqstack";
    section6.output_section[0].output_sections_start  = "__IRQ_STACK_START";
    section6.output_section[0].output_sections_end    = "__IRQ_STACK_END";
    section6.output_section[0].input_section.create(1);
    section6.output_section[0].input_section[0].$name = ". = . + __IRQ_STACK_SIZE;";
    section6.output_section[1].$name                  = ".fiqstack";
    section6.output_section[1].output_sections_start  = "__FIQ_STACK_START";
    section6.output_section[1].output_sections_end    = "__FIQ_STACK_END";
    section6.output_section[1].input_section.create(1);
    section6.output_section[1].input_section[0].$name = ". = . + __FIQ_STACK_SIZE;";
    section6.output_section[2].$name                  = ".svcstack";
    section6.output_section[2].output_sections_start  = "__SVC_STACK_START";
    section6.output_section[2].output_sections_end    = "__SVC_STACK_END";
    section6.output_section[2].input_section.create(1);
    section6.output_section[2].input_section[0].$name = ". = . + __SVC_STACK_SIZE;";
    section6.output_section[3].$name                  = ".abortstack";
    section6.output_section[3].output_sections_start  = "__ABORT_STACK_START";
    section6.output_section[3].output_sections_end    = "__ABORT_STACK_END";
    section6.output_section[3].input_section.create(1);
    section6.output_section[3].input_section[0].$name = ". = . + __ABORT_STACK_SIZE;";
    section6.output_section[4].$name                  = ".undefinedstack";
    section6.output_section[4].output_sections_start  = "__UNDEFINED_STACK_START";
    section6.output_section[4].output_sections_end    = "__UNDEFINED_STACK_END";
    section6.output_section[4].input_section.create(1);
    section6.output_section[4].input_section[0].$name = ". = . + __UNDEFINED_STACK_SIZE;";
    
    section7.load_memory                  = "OCRAM";
    section7.$name                        = "Initialization and Exception Handling";
    section7.output_section.create(3);
    section7.output_section[0].$name      = ".ARM.exidx";
    section7.output_section[0].palignment = true;
    section7.output_section[1].$name      = ".init_array";
    section7.output_section[1].palignment = true;
    section7.output_section[2].$name      = ".fini_array";
    section7.output_section[2].palignment = true;
    
    section8.load_memory                 = "USER_SHM_MEM";
    section8.type                        = "NOLOAD";
    section8.$name                       = "User Shared Memory";
    section8.group                       = false;
    section8.output_section.create(1);
    section8.output_section[0].$name     = ".bss.user_shared_mem";
    section8.output_section[0].alignment = 0;
    
    section9.load_memory                 = "LOG_SHM_MEM";
    section9.$name                       = "Log Shared Memory";
    section9.group                       = false;
    section9.type                        = "NOLOAD";
    section9.output_section.create(1);
    section9.output_section[0].$name     = ".bss.log_shared_mem";
    section9.output_section[0].alignment = 0;
    
    section10.load_memory                 = "RTOS_NORTOS_IPC_SHM_MEM";
    section10.type                        = "NOLOAD";
    section10.$name                       = "IPC Shared Memory";
    section10.group                       = false;
    section10.output_section.create(1);
    section10.output_section[0].$name     = ".bss.ipc_vring_mem";
    section10.output_section[0].alignment = 0;
    
    section11.load_memory                 = "MAILBOX_HSM";
    section11.type                        = "NOLOAD";
    section11.$name                       = "SIPC HSM Queue Memory";
    section11.group                       = false;
    section11.output_section.create(1);
    section11.output_section[0].$name     = ".bss.sipc_hsm_queue_mem";
    section11.output_section[0].alignment = 0;
    
    section12.load_memory                 = "MAILBOX_R5F";
    section12.$name                       = "SIPC R5F Queue Memory";
    section12.group                       = false;
    section12.type                        = "NOLOAD";
    section12.output_section.create(1);
    section12.output_section[0].$name     = ".bss.sipc_secure_host_queue_mem";
    section12.output_section[0].alignment = 0;
    
    input_xbar1.$name      = "CFG_INPUT_XBAR0";
    input_xbar1.xbarOutput = "GPIO59";
    
    input_xbar2.$name      = "CFG_INPUT_XBAR1";
    input_xbar2.instance   = "INPUT_XBAR_1";
    input_xbar2.xbarOutput = "GPIO60";
    
    input_xbar3.$name      = "CFG_INPUT_XBAR2";
    input_xbar3.xbarOutput = "GPIO61";
    input_xbar3.instance   = "INPUT_XBAR_2";
    
    input_xbar4.$name      = "CFG_INPUT_XBAR3";
    input_xbar4.xbarOutput = "GPIO62";
    input_xbar4.instance   = "INPUT_XBAR_3";
    
    input_xbar5.$name      = "CFG_INPUT_XBAR4";
    input_xbar5.xbarOutput = "GPIO63";
    input_xbar5.instance   = "INPUT_XBAR_4";
    
    input_xbar6.$name      = "CFG_INPUT_XBAR5";
    input_xbar6.xbarOutput = "GPIO65";
    input_xbar6.instance   = "INPUT_XBAR_5";
    
    input_xbar7.$name      = "CFG_INPUT_XBAR6";
    input_xbar7.xbarOutput = "GPIO66";
    input_xbar7.instance   = "INPUT_XBAR_6";
    
    input_xbar8.$name      = "CFG_INPUT_XBAR7";
    input_xbar8.xbarOutput = "GPIO67";
    input_xbar8.instance   = "INPUT_XBAR_7";
    
    int_xbar1.xbarOutput = ["ADC0_INT1"];
    int_xbar1.$name      = "CFG_INT_XBAR0";

    Thanks,

    T. Hirata