main() function but runs directly. If I click the pause button, I can see that the code stops at HwiP_user_prefetch_abort_handler_c().main() function but runs directly. If I click the pause button, I can see that the code stops at HwiP_user_prefetch_abort_handler_c().Hi
Can you share the updated example.syscfg with BiSS-C added?
Also, do you have more details on which function is causing abort?
Regards
Dhaval
Hi Dhaval Khandla,
Sure. It seems that this webpage does not support uploading syscfg files. I have changed its file extension to txt and uploaded it. The file without BISS configuration is named example_withoutBiss.txt; please check it.
main(), so I have no idea which function jumps to HwiP_user_prefetch_abort_handler_c(). All I can see from the debug session is the call sequence as follows:(The function sequence I compiled is the collated debug call sequence, and its order from top to bottom is opposite to what is displayed in the actual debug panel)
HwiP_user_prefetch_abort_handler + 0x1c() at HwiP_armv7r_handlers_nortos_asm.S: 180 0x700FF9E4
-------> HwiP_user_prefetch_abort_handler_c() at HwiP_armv7r_handlers_nortos.c: 313 0x700FF86A
--------> HwiP_user_prefetch_abort_handler_c() at HwiP_armv7r_handlers_nortos.c: 386 0x700FF878
/**
* 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 "AM261x_ZFG" --part "AM2612" --package "ZFG" --context "r5fss0-0" --product "MOTOR_CONTROL_SDK_AM261x@10.02.00"
* @v2CliArgs --device "AM2612" --package "NFBGA (ZFG)" --variant "500MHz" --context "r5fss0-0" --product "MOTOR_CONTROL_SDK_AM261x@10.02.00"
* @versions {"tool":"1.24.2+4234"}
*/
/**
* Import the modules used in this configuration.
*/
const eeprom = scripting.addModule("/board/eeprom/eeprom", {}, false);
const eeprom1 = eeprom.addInstance();
const flash = scripting.addModule("/board/flash/flash", {}, false);
const flash1 = flash.addInstance();
const led = scripting.addModule("/board/led/led", {}, false);
const led1 = led.addInstance();
const led2 = led.addInstance();
const adc = scripting.addModule("/drivers/adc/adc", {}, false);
const adc1 = adc.addInstance();
const adc2 = adc.addInstance();
const adc3 = 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 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 epwm6 = 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 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 rti = scripting.addModule("/drivers/rti/rti", {}, false);
const rti1 = rti.addInstance();
const sdfm = scripting.addModule("/drivers/sdfm/sdfm", {}, false);
const sdfm1 = sdfm.addInstance();
const uart = scripting.addModule("/drivers/uart/uart", {}, false);
const uart1 = uart.addInstance();
const uart2 = uart.addInstance();
const watchdog = scripting.addModule("/drivers/watchdog/watchdog", {}, false);
const watchdog1 = watchdog.addInstance();
const ethercat = scripting.addModule("/industrial_comms/ethercat/ethercat", {}, false);
const ethercat1 = ethercat.addInstance();
const clock = scripting.addModule("/kernel/dpl/clock");
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 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 section13 = section.addInstance();
const section14 = section.addInstance();
const tinyusb = scripting.addModule("/usb/tinyusb/tinyusb", {}, false);
const tinyusb1 = tinyusb.addInstance();
const epwm_xbar = scripting.addModule("/xbar/epwm_xbar/epwm_xbar", {}, false);
const epwm_xbar1 = epwm_xbar.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 int_xbar = scripting.addModule("/xbar/int_xbar/int_xbar", {}, false);
const int_xbar1 = int_xbar.addInstance();
const int_xbar2 = int_xbar.addInstance();
/**
* Write custom configuration values to the imported modules.
*/
eeprom1.$name = "CONFIG_EEPROM0";
flash1.$name = "CONFIG_FLASH0";
flash1.device = "CUSTOM_FLASH";
flash1.skipHwInit = true;
flash1.fname = "S25FL128SA";
flash1.protocol = "1s_1s_4s";
flash1.flashSize = 16777216;
flash1.flashManfId = "0x01";
flash1.flashDeviceId = "0x2018";
flash1.cmdBlockErase4B = "0xD8";
flash1.cmdSectorErase4B = "0x20";
flash1.flashQeType = "1";
flash1.flashDeviceBusyTimeout = 24000000;
flash1.flashPageProgTimeout = 4000;
flash1.enable4BAddr = false;
flash1.cmdExtType = "NONE";
flash1.quirks = "NULL";
flash1.peripheralDriver.$name = "CONFIG_OSPI0";
flash1.peripheralDriver.inputClkFreq = 83333333;
flash1.peripheralDriver.baudRateDiv = 8;
flash1.peripheralDriver.phyEnable = true;
flash1.peripheralDriver.OSPI.$assign = "OSPI0";
flash1.peripheralDriver.OSPI.CLK.$assign = "GPIO10";
flash1.peripheralDriver.OSPI.CSn0.$assign = "GPIO62";
flash1.peripheralDriver.OSPI.DQS.$used = false;
flash1.peripheralDriver.OSPI.D7.$used = false;
flash1.peripheralDriver.OSPI.D6.$used = false;
flash1.peripheralDriver.OSPI.D5.$used = false;
flash1.peripheralDriver.OSPI.D4.$assign = "GPIO76";
flash1.peripheralDriver.OSPI.D3.$assign = "GPIO69";
flash1.peripheralDriver.OSPI.D2.$assign = "GPIO7";
flash1.peripheralDriver.OSPI.D1.$assign = "GPIO70";
flash1.peripheralDriver.OSPI.RESET_OUT0.$assign = "GPIO61";
flash1.peripheralDriver.child.$name = "drivers_ospi_v0_ospi_v0_am261x_template0";
led1.$name = "CONFIG_RUN_LED";
led2.$name = "CONFIG_ERR_LED";
adc1.$name = "ADC1";
adc1.adcClockPrescaler = "ADC_CLK_DIV_6_0";
adc1.ADC.AIN6.$used = false;
adc2.$name = "ADC0";
adc2.adcClockPrescaler = "ADC_CLK_DIV_6_0";
adc2.ADC.AIN1.$used = false;
adc2.ADC.AIN2.$used = false;
adc2.ADC.AIN3.$used = false;
adc2.ADC.AIN4.$used = false;
adc2.ADC.AIN5.$used = false;
adc2.ADC.AIN6.$used = false;
adc3.$name = "ADC2";
adc3.adcClockPrescaler = "ADC_CLK_DIV_6_0";
adc3.enableConverter = true;
adc3.ADC.$assign = "ADC2";
adc3.ADC.AIN0.$assign = "ADC2_AIN0";
adc3.ADC.AIN0.$used = false;
adc3.ADC.AIN1.$assign = "ADC2_AIN1";
adc3.ADC.AIN1.$used = false;
adc3.ADC.AIN2.$assign = "ADC2_AIN2";
adc3.ADC.AIN2.$used = false;
adc3.ADC.AIN3.$assign = "ADC2_AIN3";
adc3.ADC.AIN3.$used = false;
adc3.ADC.AIN4.$assign = "ADC2_AIN4";
adc3.ADC.AIN5.$assign = "ADC2_AIN5";
adc3.ADC.AIN5.$used = false;
adc3.ADC.AIN6.$assign = "ADC2_AIN6";
dac1.enableOutput = true;
dac1.$name = "DAC";
ecap1.$name = "ECAP_SYNC0";
ecap1.eventTwoPolarity = "ECAP_EVNT_FALLING_EDGE";
ecap1.eventFourPolarity = "ECAP_EVNT_FALLING_EDGE";
ecap1.syncOutMode = "ECAP_SYNC_OUT_DISABLED";
ecap1.ecapInput = "ECAP_INPUT_INPUTXBAR3";
ecap1.qualPeriod = "ECAP_PULSE_WIDTH_FILTER_CYCLE6";
ecap1.reArm = true;
epwm1.epwmTimebase_emulationMode = "EPWM_EMULATION_FREE_RUN";
epwm1.$name = "EPWM_U";
epwm1.EPWM.$assign = "EPWM2";
epwm1.EPWM.A.$assign = "GPIO47";
epwm1.EPWM.B.$assign = "GPIO48";
epwm2.$name = "EPWM_V";
epwm2.EPWM.$assign = "EPWM3";
epwm2.EPWM.A.$assign = "GPIO49";
epwm2.EPWM.B.$assign = "GPIO50";
epwm3.$name = "EPWM_W";
epwm3.EPWM.$assign = "EPWM4";
epwm3.EPWM.A.$assign = "GPIO51";
epwm3.EPWM.B.$assign = "GPIO52";
epwm4.$name = "EPWM_INT";
epwm4.epwmTimebase_emulationMode = "EPWM_EMULATION_FREE_RUN";
epwm4.epwmTimebase_period = 6250;
epwm4.epwmTimebase_periodLoadMode = "EPWM_PERIOD_DIRECT_LOAD";
epwm4.epwmTimebase_counterMode = "EPWM_COUNTER_MODE_UP_DOWN";
epwm4.epwmEventTrigger_enableInterrupt = true;
epwm4.epwmEventTrigger_interruptEventCount = "1";
epwm4.epwmEventTrigger_interruptSource = "EPWM_INT_TBCTR_PERIOD";
epwm4.epwmEventTrigger_EPWM_SOC_A_triggerEnable = true;
epwm4.epwmEventTrigger_EPWM_SOC_A_triggerSource = "EPWM_SOC_TBCTR_MIXED_EVENT";
epwm4.epwmEventTrigger_EPWM_SOC_A_triggerEventPrescalar = "1";
epwm4.epwmEventTrigger_EPWM_SOC_A_triggerMixedSource = ["EPWM_INT_MIX_TBCTR_D_CMPA","EPWM_INT_MIX_TBCTR_U_CMPA"];
epwm4.EPWM.$assign = "EPWM0";
epwm4.EPWM.A.$used = false;
epwm4.EPWM.B.$used = false;
epwm5.$name = "EPWM_PTO";
epwm5.EPWM.$assign = "EPWM5";
epwm5.EPWM.A.$assign = "GPIO53";
epwm5.EPWM.B.$assign = "GPIO54";
epwm6.$name = "EPWM_SDFM_CLK";
epwm6.EPWM.$assign = "EPWM6";
epwm6.EPWM.A.$assign = "GPIO55";
epwm6.EPWM.B.$used = false;
gpio1.$name = "GPIO_HMI_STROBE";
gpio1.pinDir = "OUTPUT";
gpio1.qualSel = "async";
gpio1.pu_pd = "pu";
gpio1.GPIO_n.$assign = "GPIO0";
gpio2.$name = "GPIO_OC_IBUS";
gpio2.GPIO_n.$assign = "GPIO23";
gpio3.pinDir = "OUTPUT";
gpio3.qualSel = "async";
gpio3.$name = "GPIO_MECH_BRK_HV";
gpio3.GPIO_n.$assign = "GPIO56";
gpio4.qualSel = "6sample";
gpio4.$name = "GPIO_DI0";
gpio4.GPIO_n.$assign = "GPIO42";
gpio5.$name = "GPIO_DI1";
gpio5.GPIO_n.$assign = "GPIO41";
gpio6.$name = "GPIO_DI2";
gpio6.GPIO_n.$assign = "GPIO31";
gpio7.$name = "GPIO_DI3";
gpio7.GPIO_n.$assign = "GPIO32";
gpio8.$name = "GPIO_DI4";
gpio8.GPIO_n.$assign = "GPIO33";
gpio9.pinDir = "OUTPUT";
gpio9.$name = "GPIO_DQ0";
gpio9.GPIO_n.$assign = "GPIO34";
gpio10.pinDir = "OUTPUT";
gpio10.$name = "GPIO_DQ1";
gpio10.GPIO_n.$assign = "GPIO35";
gpio11.pinDir = "OUTPUT";
gpio11.$name = "GPIO_DQ2";
gpio11.GPIO_n.$assign = "GPIO36";
gpio12.$name = "GPIO_MOD_EN";
gpio12.GPIO_n.$assign = "GPIO29";
gpio13.$name = "GPIO_OC_W";
gpio13.GPIO_n.$assign = "GPIO24";
gpio14.$name = "GPIO_OC_U";
gpio14.GPIO_n.$assign = "GPIO25";
gpio15.pinDir = "OUTPUT";
gpio15.$name = "GPIO_POW_BRK_EN";
gpio15.GPIO_n.$assign = "GPIO57";
gpio16.$name = "ECAT_RESET";
gpio16.pinDir = "OUTPUT";
gpio16.defaultValue = "1";
gpio16.GPIO_n.$assign = "GPIO84";
gpio17.$name = "ECAT_RUN";
gpio17.pinDir = "OUTPUT";
led1.peripheralDriver = gpio17;
gpio17.GPIO_n.$assign = "GPIO89";
gpio18.$name = "ECAT_ERR";
gpio18.pinDir = "OUTPUT";
led2.peripheralDriver = gpio18;
gpio18.GPIO_n.$assign = "GPIO88";
gpio19.$name = "ECAT_SYNC0";
gpio19.GPIO_n.$assign = "GPIO8";
i2c1.$name = "CONFIG_I2C0";
i2c1.ownTargetAddr = 0x50;
eeprom1.peripheralDriver = i2c1;
i2c1.I2C.SCL.pu_pd = "pu";
i2c1.I2C.SDA.pu_pd = "pu";
i2c1.I2C_child.$name = "drivers_i2c_v1_i2c_v1_template0";
mcspi1.$name = "MCSPI_HMI";
mcspi1.intrEnable = "POLLED";
mcspi1.sdkInfra = "LLD";
mcspi1.inputSelect = "0";
mcspi1.dpe0 = "DISABLE";
mcspi1.dpe1 = "ENABLE";
mcspi1.SPI.$assign = "SPI1";
mcspi1.SPI.CLK.$assign = "GPIO16";
mcspi1.SPI.D0.$assign = "GPIO17";
mcspi1.SPI.D1.$assign = "GPIO18";
mcspi1.mcspiChannel[0].$name = "CONFIG_MCSPI_CH0";
mcspi1.mcspiChannel[0].CSn.$assign = "GPIO15";
mcspi1.child.$name = "drivers_mcspi_v1_mcspi_v1_template_lld1";
mcspi2.$name = "MCSPI_EPR";
mcspi2.intrEnable = "POLLED";
mcspi2.sdkInfra = "LLD";
mcspi2.SPI.$assign = "SPI2";
mcspi2.SPI.CLK.$assign = "GPIO129";
mcspi2.SPI.D0.$assign = "GPIO130";
mcspi2.SPI.D1.$assign = "GPIO128";
mcspi2.mcspiChannel[0].$name = "CONFIG_MCSPI_CH1";
mcspi2.mcspiChannel[0].bitRate = 2000000;
mcspi2.mcspiChannel[0].CSn.$assign = "GPIO138";
mcspi2.child.$name = "drivers_mcspi_v1_mcspi_v1_template_lld0";
rti1.$name = "RTI_CPU";
rti1.clkSource = "SYS_CLK";
rti1.cntr0OpFreq = 125000000;
rti1.RTI.$assign = "RTI1";
sdfm1.Use_FilterChannel_1 = true;
sdfm1.Use_FilterChannel_2 = true;
sdfm1.Ch2_SDCLKSEL = "SDFM_CLK_SOURCE_SD1_CLK";
sdfm1.Ch1_DataFilterEnable = true;
sdfm1.Ch1_ComparatorEnable = true;
sdfm1.Ch1_DOSR = 128;
sdfm1.Ch1_DataFilter_Representation = "SDFM_DATA_FORMAT_16_BIT";
sdfm1.Ch2_DataFilterEnable = true;
sdfm1.Ch2_ComparatorEnable = true;
sdfm1.Ch2_DOSR = 128;
sdfm1.Ch2_DataFilter_Representation = "SDFM_DATA_FORMAT_16_BIT";
sdfm1.Ch1_SD_modulatorFrequency = 17.857;
sdfm1.$name = "SDFM_IUW";
sdfm1.SDFM.$assign = "SDFM1";
sdfm1.SDFM.CLK2.$used = false;
sdfm1.SDFM.CLK3.$used = false;
sdfm1.SDFM.D0.$assign = "GPIO131";
sdfm1.SDFM.D1.$assign = "GPIO133";
sdfm1.SDFM.D2.$used = false;
sdfm1.SDFM.D3.$used = false;
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";
const soc_ctrl = scripting.addModule("/drivers/soc_ctrl/soc_ctrl", {}, false);
soc_ctrl.soc_ctrl_adc = soc_ctrl_adc1;
adc.adcReferences = 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_ecap = scripting.addModule("/drivers/soc_ctrl/v0/subModules/soc_ctrl_ecap", {}, false);
const soc_ctrl_ecap1 = soc_ctrl_ecap.addInstance({}, false);
soc_ctrl_ecap1.$name = "soc_ctrl_ecap0";
soc_ctrl.soc_ctrl_ecap = soc_ctrl_ecap1;
ecap.ecapSocControls = soc_ctrl_ecap1;
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;
sdfm.soc_ctrl_sdfm = soc_ctrl_sdfm1;
uart1.$name = "UART_ENC";
uart1.intrEnable = "DISABLE";
uart1.hwFlowControl = true;
uart1.baudRate = 5000000;
uart1.child.$name = "drivers_uart_v2_uart_v2_template1";
uart1.UART.$assign = "UART3";
uart1.UART.RXD.$assign = "GPIO11";
uart1.UART.TXD.$assign = "GPIO12";
uart1.UART.RTSn.$assign = "GPIO14";
uart1.UART.CTSn.$assign = "GPIO13";
uart1.UART.CTSn.$used = false;
uart2.$name = "UART_MDB";
uart2.intrEnable = "DISABLE";
uart2.clockSource = "SOC_RcmPeripheralClockSource_DPLL_PER_HSDIV0_CLKOUT0";
uart2.inputClkFreq = 48000000;
uart2.baudRate = 19200;
uart2.parityType = "ODD";
uart2.UART.$assign = "UART0";
uart2.child.$name = "drivers_uart_v2_uart_v2_template2";
watchdog1.$name = "CONFIG_WDT0";
watchdog1.wdt_clk_src = "SOC_RcmPeripheralClockSource_XTALCLK";
watchdog1.wdt_func_clk = 12500000;
watchdog1.expirationTime = 2000;
ethercat1.$name = "CONFIG_ETHERCAT0";
ethercat1["PRU-ICSS0-IEP"].$assign = "PRU-ICSS0-IEP";
ethercat1["PRU-ICSS0"].$assign = "PRU-ICSS0";
ethercat1["PRU-ICSS0-MDIO"].$assign = "PRU-ICSS0-MDIO";
ethercat1.ethphy[0].$name = "CONFIG_ETHPHY0";
ethercat1.ethphy[0].mdioPort = 1;
ethercat1.ethphy[0].name = "CUSTOM";
ethercat1.ethphy[0].customDeviceName = "DP83822";
ethercat1.ethphy[1].$name = "CONFIG_ETHPHY1";
ethercat1.ethphy[1].mdioPort = 2;
ethercat1.ethphy[1].name = "CUSTOM";
ethercat1.ethphy[1].customDeviceName = "DP83822";
const pruicss = scripting.addModule("/drivers/pruicss/pruicss", {}, false);
const pruicss1 = pruicss.addInstance({}, false);
pruicss1.$name = "CONFIG_PRU_ICSS0";
ethercat1.icss = pruicss1;
pruicss1.AdditionalICSSSettings[0].$name = "CONFIG_PRU_ICSS_IO0";
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.baseAddr = 0x80000;
mpu_armv73.size = 15;
mpu_armv73.accessPermissions = "Supervisor RD+WR, User RD";
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_REGION4";
mpu_armv75.baseAddr = 0x70100000;
mpu_armv75.size = 17;
mpu_armv75.attributes = "NonCached";
mpu_armv75.allowExecute = false;
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(4);
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;
section5.output_section[3].$name = ".usbCxtRam";
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;
section13.$name = "USB Non Cache Memory";
section13.load_memory = "NON_CACHE_MEM";
section13.output_section.create(1);
section13.output_section[0].$name = ".bss.nocache";
section14.$name = "MATHLIB_PLACE";
section14.group = false;
section14.load_memory = "R5F_TCMA";
section14.output_section.create(1);
section14.output_section[0].$name = "armiqmath";
section14.output_section[0].palignment = true;
tinyusb1.$name = "CONFIG_TINYUSB0";
tinyusb1.USB0.$assign = "USB0";
epwm_xbar1.$name = "CONFIG_EPWM_XBAR0";
epwm_xbar1.xbarOutput = ["ADC0_EVT1","ADC1_EVT1","ADC2_EVT1"];
input_xbar1.$name = "CONFIG_INPUT_XBAR0";
input_xbar1.xbarOutput = "GPIO23";
input_xbar2.$name = "CONFIG_INPUT_XBAR1";
input_xbar2.xbarOutput = "GPIO24";
input_xbar2.instance = "INPUT_XBAR_1";
input_xbar3.$name = "CONFIG_INPUT_XBAR2";
input_xbar3.instance = "INPUT_XBAR_2";
input_xbar3.xbarOutput = "GPIO25";
input_xbar4.$name = "CONFIG_INPUT_XBAR3";
input_xbar4.instance = "INPUT_XBAR_3";
input_xbar4.xbarOutput = "GPIO8";
int_xbar1.$name = "CONFIG_INT_XBAR0";
int_xbar1.xbarOutput = ["EPWM0_INT"];
int_xbar2.$name = "CONFIG_INT_XBAR1";
int_xbar2.xbarOutput = ["ECAP0_INT"];
int_xbar2.instance = "INT_XBAR_1";
/**
* Pinmux solution for unlocked pins/peripherals. This ensures that minor changes to the automatic solver in a future
* version of the tool will not impact the pinmux you originally saw. These lines can be completely deleted in order to
* re-solve from scratch.
*/
flash1.peripheralDriver.OSPI.D0.$suggestSolution = "GPIO2";
adc1.ADC.$suggestSolution = "ADC1";
adc1.ADC.AIN0.$suggestSolution = "ADC1_AIN0";
adc1.ADC.AIN1.$suggestSolution = "ADC1_AIN1";
adc1.ADC.AIN2.$suggestSolution = "ADC1_AIN2";
adc1.ADC.AIN3.$suggestSolution = "ADC1_AIN3";
adc1.ADC.AIN4.$suggestSolution = "ADC1_AIN4";
adc1.ADC.AIN5.$suggestSolution = "ADC1_AIN5";
adc2.ADC.$suggestSolution = "ADC0";
adc2.ADC.AIN0.$suggestSolution = "ADC0_AIN0";
i2c1.I2C.$suggestSolution = "I2C1";
i2c1.I2C.SCL.$suggestSolution = "GPIO66";
i2c1.I2C.SDA.$suggestSolution = "GPIO65";
sdfm1.SDFM.CLK0.$suggestSolution = "GPIO77";
sdfm1.SDFM.CLK1.$suggestSolution = "GPIO132";
uart2.UART.RXD.$suggestSolution = "GPIO27";
uart2.UART.TXD.$suggestSolution = "GPIO28";
ethercat1["PRU-ICSS0-IEP"].PR0_IEP0_EDC_SYNC_OUT0.$suggestSolution = "GPIO119";
ethercat1["PRU-ICSS0-IEP"].PR0_IEP0_EDC_SYNC_OUT1.$suggestSolution = "GPIO124";
ethercat1["PRU-ICSS0-IEP"].PR0_IEP0_EDIO_DATA_IN_OUT30.$suggestSolution = "GPIO105";
ethercat1["PRU-ICSS0-IEP"].PR0_IEP0_EDIO_DATA_IN_OUT31.$suggestSolution = "GPIO104";
ethercat1["PRU-ICSS0"].PR0_PRU0_GPIO8.$suggestSolution = "GPIO90";
ethercat1["PRU-ICSS0"].PR0_PRU0_GPIO5.$suggestSolution = "GPIO87";
ethercat1["PRU-ICSS0"].PR0_PRU0_GPIO6.$suggestSolution = "GPIO91";
ethercat1["PRU-ICSS0"].PR0_PRU0_GPIO4.$suggestSolution = "GPIO92";
ethercat1["PRU-ICSS0"].PR0_PRU0_GPIO0.$suggestSolution = "GPIO93";
ethercat1["PRU-ICSS0"].PR0_PRU0_GPIO1.$suggestSolution = "GPIO94";
ethercat1["PRU-ICSS0"].PR0_PRU0_GPIO2.$suggestSolution = "GPIO95";
ethercat1["PRU-ICSS0"].PR0_PRU0_GPIO3.$suggestSolution = "GPIO96";
ethercat1["PRU-ICSS0"].PR0_PRU0_GPIO16.$suggestSolution = "GPIO97";
ethercat1["PRU-ICSS0"].PR0_PRU0_GPIO15.$suggestSolution = "GPIO98";
ethercat1["PRU-ICSS0"].PR0_PRU0_GPIO11.$suggestSolution = "GPIO99";
ethercat1["PRU-ICSS0"].PR0_PRU0_GPIO12.$suggestSolution = "GPIO100";
ethercat1["PRU-ICSS0"].PR0_PRU0_GPIO13.$suggestSolution = "GPIO101";
ethercat1["PRU-ICSS0"].PR0_PRU0_GPIO14.$suggestSolution = "GPIO102";
ethercat1["PRU-ICSS0"].PR0_PRU1_GPIO8.$suggestSolution = "GPIO106";
ethercat1["PRU-ICSS0"].PR0_PRU1_GPIO5.$suggestSolution = "GPIO103";
ethercat1["PRU-ICSS0"].PR0_PRU1_GPIO6.$suggestSolution = "GPIO107";
ethercat1["PRU-ICSS0"].PR0_PRU1_GPIO4.$suggestSolution = "GPIO108";
ethercat1["PRU-ICSS0"].PR0_PRU1_GPIO0.$suggestSolution = "GPIO109";
ethercat1["PRU-ICSS0"].PR0_PRU1_GPIO1.$suggestSolution = "GPIO110";
ethercat1["PRU-ICSS0"].PR0_PRU1_GPIO2.$suggestSolution = "GPIO111";
ethercat1["PRU-ICSS0"].PR0_PRU1_GPIO3.$suggestSolution = "GPIO112";
ethercat1["PRU-ICSS0"].PR0_PRU1_GPIO16.$suggestSolution = "GPIO113";
ethercat1["PRU-ICSS0"].PR0_PRU1_GPIO15.$suggestSolution = "GPIO114";
ethercat1["PRU-ICSS0"].PR0_PRU1_GPIO11.$suggestSolution = "GPIO115";
ethercat1["PRU-ICSS0"].PR0_PRU1_GPIO12.$suggestSolution = "GPIO116";
ethercat1["PRU-ICSS0"].PR0_PRU1_GPIO13.$suggestSolution = "GPIO117";
ethercat1["PRU-ICSS0"].PR0_PRU1_GPIO14.$suggestSolution = "GPIO118";
ethercat1["PRU-ICSS0-MDIO"].PR0_MDIO0_MDIO.$suggestSolution = "GPIO85";
ethercat1["PRU-ICSS0-MDIO"].PR0_MDIO0_MDC.$suggestSolution = "GPIO86";
tinyusb1.USB0.USB0_DM.$suggestSolution = "GPIO140";
tinyusb1.USB0.USB0_DP.$suggestSolution = "GPIO139";
tinyusb1.USB0.USB0_DRVVBUS.$suggestSolution = "GPIO121";
/**
* 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 "AM261x_ZFG" --part "AM2612" --package "ZFG" --context "r5fss0-0" --product "MOTOR_CONTROL_SDK_AM261x@10.02.00"
* @v2CliArgs --device "AM2612" --package "NFBGA (ZFG)" --variant "500MHz" --context "r5fss0-0" --product "MOTOR_CONTROL_SDK_AM261x@10.02.00"
* @versions {"tool":"1.24.2+4234"}
*/
/**
* Import the modules used in this configuration.
*/
const eeprom = scripting.addModule("/board/eeprom/eeprom", {}, false);
const eeprom1 = eeprom.addInstance();
const flash = scripting.addModule("/board/flash/flash", {}, false);
const flash1 = flash.addInstance();
const led = scripting.addModule("/board/led/led", {}, false);
const led1 = led.addInstance();
const led2 = led.addInstance();
const adc = scripting.addModule("/drivers/adc/adc", {}, false);
const adc1 = adc.addInstance();
const adc2 = adc.addInstance();
const adc3 = 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 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 epwm6 = 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 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 rti = scripting.addModule("/drivers/rti/rti", {}, false);
const rti1 = rti.addInstance();
const sdfm = scripting.addModule("/drivers/sdfm/sdfm", {}, false);
const sdfm1 = sdfm.addInstance();
const uart = scripting.addModule("/drivers/uart/uart", {}, false);
const uart1 = uart.addInstance();
const uart2 = uart.addInstance();
const watchdog = scripting.addModule("/drivers/watchdog/watchdog", {}, false);
const watchdog1 = watchdog.addInstance();
const ethercat = scripting.addModule("/industrial_comms/ethercat/ethercat", {}, false);
const ethercat1 = ethercat.addInstance();
const clock = scripting.addModule("/kernel/dpl/clock");
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 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 section13 = section.addInstance();
const section14 = section.addInstance();
const bissc = scripting.addModule("/position_sense/bissc", {}, false);
const bissc1 = bissc.addInstance();
const tinyusb = scripting.addModule("/usb/tinyusb/tinyusb", {}, false);
const tinyusb1 = tinyusb.addInstance();
const epwm_xbar = scripting.addModule("/xbar/epwm_xbar/epwm_xbar", {}, false);
const epwm_xbar1 = epwm_xbar.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 int_xbar = scripting.addModule("/xbar/int_xbar/int_xbar", {}, false);
const int_xbar1 = int_xbar.addInstance();
const int_xbar2 = int_xbar.addInstance();
/**
* Write custom configuration values to the imported modules.
*/
eeprom1.$name = "CONFIG_EEPROM0";
flash1.$name = "CONFIG_FLASH0";
flash1.device = "CUSTOM_FLASH";
flash1.skipHwInit = true;
flash1.fname = "S25FL128SA";
flash1.protocol = "1s_1s_4s";
flash1.flashSize = 16777216;
flash1.flashManfId = "0x01";
flash1.flashDeviceId = "0x2018";
flash1.cmdBlockErase4B = "0xD8";
flash1.cmdSectorErase4B = "0x20";
flash1.flashQeType = "1";
flash1.flashDeviceBusyTimeout = 24000000;
flash1.flashPageProgTimeout = 4000;
flash1.enable4BAddr = false;
flash1.cmdExtType = "NONE";
flash1.quirks = "NULL";
flash1.peripheralDriver.$name = "CONFIG_OSPI0";
flash1.peripheralDriver.inputClkFreq = 83333333;
flash1.peripheralDriver.baudRateDiv = 8;
flash1.peripheralDriver.phyEnable = true;
flash1.peripheralDriver.OSPI.$assign = "OSPI0";
flash1.peripheralDriver.OSPI.CLK.$assign = "GPIO10";
flash1.peripheralDriver.OSPI.CSn0.$assign = "GPIO62";
flash1.peripheralDriver.OSPI.DQS.$used = false;
flash1.peripheralDriver.OSPI.D7.$used = false;
flash1.peripheralDriver.OSPI.D6.$used = false;
flash1.peripheralDriver.OSPI.D5.$used = false;
flash1.peripheralDriver.OSPI.D4.$assign = "GPIO76";
flash1.peripheralDriver.OSPI.D3.$assign = "GPIO69";
flash1.peripheralDriver.OSPI.D2.$assign = "GPIO7";
flash1.peripheralDriver.OSPI.D1.$assign = "GPIO70";
flash1.peripheralDriver.OSPI.RESET_OUT0.$assign = "GPIO61";
flash1.peripheralDriver.child.$name = "drivers_ospi_v0_ospi_v0_am261x_template0";
led1.$name = "CONFIG_RUN_LED";
led2.$name = "CONFIG_ERR_LED";
adc1.$name = "ADC1";
adc1.adcClockPrescaler = "ADC_CLK_DIV_6_0";
adc1.ADC.AIN6.$used = false;
adc2.$name = "ADC0";
adc2.adcClockPrescaler = "ADC_CLK_DIV_6_0";
adc2.ADC.AIN1.$used = false;
adc2.ADC.AIN2.$used = false;
adc2.ADC.AIN3.$used = false;
adc2.ADC.AIN4.$used = false;
adc2.ADC.AIN5.$used = false;
adc2.ADC.AIN6.$used = false;
adc3.$name = "ADC2";
adc3.adcClockPrescaler = "ADC_CLK_DIV_6_0";
adc3.enableConverter = true;
adc3.ADC.$assign = "ADC2";
adc3.ADC.AIN0.$assign = "ADC2_AIN0";
adc3.ADC.AIN0.$used = false;
adc3.ADC.AIN1.$assign = "ADC2_AIN1";
adc3.ADC.AIN1.$used = false;
adc3.ADC.AIN2.$assign = "ADC2_AIN2";
adc3.ADC.AIN2.$used = false;
adc3.ADC.AIN3.$assign = "ADC2_AIN3";
adc3.ADC.AIN3.$used = false;
adc3.ADC.AIN4.$assign = "ADC2_AIN4";
adc3.ADC.AIN5.$assign = "ADC2_AIN5";
adc3.ADC.AIN5.$used = false;
adc3.ADC.AIN6.$assign = "ADC2_AIN6";
dac1.enableOutput = true;
dac1.$name = "DAC";
ecap1.$name = "ECAP_SYNC0";
ecap1.eventTwoPolarity = "ECAP_EVNT_FALLING_EDGE";
ecap1.eventFourPolarity = "ECAP_EVNT_FALLING_EDGE";
ecap1.syncOutMode = "ECAP_SYNC_OUT_DISABLED";
ecap1.ecapInput = "ECAP_INPUT_INPUTXBAR3";
ecap1.qualPeriod = "ECAP_PULSE_WIDTH_FILTER_CYCLE6";
ecap1.reArm = true;
epwm1.epwmTimebase_emulationMode = "EPWM_EMULATION_FREE_RUN";
epwm1.$name = "EPWM_U";
epwm1.EPWM.$assign = "EPWM2";
epwm1.EPWM.A.$assign = "GPIO47";
epwm1.EPWM.B.$assign = "GPIO48";
epwm2.$name = "EPWM_V";
epwm2.EPWM.$assign = "EPWM3";
epwm2.EPWM.A.$assign = "GPIO49";
epwm2.EPWM.B.$assign = "GPIO50";
epwm3.$name = "EPWM_W";
epwm3.EPWM.$assign = "EPWM4";
epwm3.EPWM.A.$assign = "GPIO51";
epwm3.EPWM.B.$assign = "GPIO52";
epwm4.$name = "EPWM_INT";
epwm4.epwmTimebase_emulationMode = "EPWM_EMULATION_FREE_RUN";
epwm4.epwmTimebase_period = 6250;
epwm4.epwmTimebase_periodLoadMode = "EPWM_PERIOD_DIRECT_LOAD";
epwm4.epwmTimebase_counterMode = "EPWM_COUNTER_MODE_UP_DOWN";
epwm4.epwmEventTrigger_enableInterrupt = true;
epwm4.epwmEventTrigger_interruptEventCount = "1";
epwm4.epwmEventTrigger_interruptSource = "EPWM_INT_TBCTR_PERIOD";
epwm4.epwmEventTrigger_EPWM_SOC_A_triggerEnable = true;
epwm4.epwmEventTrigger_EPWM_SOC_A_triggerSource = "EPWM_SOC_TBCTR_MIXED_EVENT";
epwm4.epwmEventTrigger_EPWM_SOC_A_triggerEventPrescalar = "1";
epwm4.epwmEventTrigger_EPWM_SOC_A_triggerMixedSource = ["EPWM_INT_MIX_TBCTR_D_CMPA","EPWM_INT_MIX_TBCTR_U_CMPA"];
epwm4.EPWM.$assign = "EPWM0";
epwm4.EPWM.A.$used = false;
epwm4.EPWM.B.$used = false;
epwm5.$name = "EPWM_PTO";
epwm5.EPWM.$assign = "EPWM5";
epwm5.EPWM.A.$assign = "GPIO53";
epwm5.EPWM.B.$assign = "GPIO54";
epwm6.$name = "EPWM_SDFM_CLK";
epwm6.EPWM.$assign = "EPWM6";
epwm6.EPWM.A.$assign = "GPIO55";
epwm6.EPWM.B.$used = false;
gpio1.$name = "GPIO_HMI_STROBE";
gpio1.pinDir = "OUTPUT";
gpio1.qualSel = "async";
gpio1.pu_pd = "pu";
gpio1.GPIO_n.$assign = "GPIO0";
gpio2.$name = "GPIO_OC_IBUS";
gpio2.GPIO_n.$assign = "GPIO23";
gpio3.pinDir = "OUTPUT";
gpio3.qualSel = "async";
gpio3.$name = "GPIO_MECH_BRK_HV";
gpio3.GPIO_n.$assign = "GPIO56";
gpio4.qualSel = "6sample";
gpio4.$name = "GPIO_DI0";
gpio4.GPIO_n.$assign = "GPIO42";
gpio5.$name = "GPIO_DI1";
gpio5.GPIO_n.$assign = "GPIO41";
gpio6.$name = "GPIO_DI2";
gpio6.GPIO_n.$assign = "GPIO31";
gpio7.$name = "GPIO_DI3";
gpio7.GPIO_n.$assign = "GPIO32";
gpio8.$name = "GPIO_DI4";
gpio8.GPIO_n.$assign = "GPIO33";
gpio9.pinDir = "OUTPUT";
gpio9.$name = "GPIO_DQ0";
gpio9.GPIO_n.$assign = "GPIO34";
gpio10.pinDir = "OUTPUT";
gpio10.$name = "GPIO_DQ1";
gpio10.GPIO_n.$assign = "GPIO35";
gpio11.pinDir = "OUTPUT";
gpio11.$name = "GPIO_DQ2";
gpio11.GPIO_n.$assign = "GPIO36";
gpio12.$name = "GPIO_MOD_EN";
gpio12.GPIO_n.$assign = "GPIO29";
gpio13.$name = "GPIO_OC_W";
gpio13.GPIO_n.$assign = "GPIO24";
gpio14.$name = "GPIO_OC_U";
gpio14.GPIO_n.$assign = "GPIO25";
gpio15.pinDir = "OUTPUT";
gpio15.$name = "GPIO_POW_BRK_EN";
gpio15.GPIO_n.$assign = "GPIO57";
gpio16.$name = "ECAT_RESET";
gpio16.pinDir = "OUTPUT";
gpio16.defaultValue = "1";
gpio16.GPIO_n.$assign = "GPIO84";
gpio17.$name = "ECAT_RUN";
gpio17.pinDir = "OUTPUT";
led1.peripheralDriver = gpio17;
gpio17.GPIO_n.$assign = "GPIO89";
gpio18.$name = "ECAT_ERR";
gpio18.pinDir = "OUTPUT";
led2.peripheralDriver = gpio18;
gpio18.GPIO_n.$assign = "GPIO88";
gpio19.$name = "ECAT_SYNC0";
gpio19.GPIO_n.$assign = "GPIO8";
i2c1.$name = "CONFIG_I2C0";
i2c1.ownTargetAddr = 0x50;
eeprom1.peripheralDriver = i2c1;
i2c1.I2C.SCL.pu_pd = "pu";
i2c1.I2C.SDA.pu_pd = "pu";
i2c1.I2C_child.$name = "drivers_i2c_v1_i2c_v1_template0";
mcspi1.$name = "MCSPI_HMI";
mcspi1.intrEnable = "POLLED";
mcspi1.sdkInfra = "LLD";
mcspi1.inputSelect = "0";
mcspi1.dpe0 = "DISABLE";
mcspi1.dpe1 = "ENABLE";
mcspi1.SPI.$assign = "SPI1";
mcspi1.SPI.CLK.$assign = "GPIO16";
mcspi1.SPI.D0.$assign = "GPIO17";
mcspi1.SPI.D1.$assign = "GPIO18";
mcspi1.mcspiChannel[0].$name = "CONFIG_MCSPI_CH0";
mcspi1.mcspiChannel[0].CSn.$assign = "GPIO15";
mcspi1.child.$name = "drivers_mcspi_v1_mcspi_v1_template_lld1";
mcspi2.$name = "MCSPI_EPR";
mcspi2.intrEnable = "POLLED";
mcspi2.sdkInfra = "LLD";
mcspi2.SPI.$assign = "SPI2";
mcspi2.SPI.CLK.$assign = "GPIO129";
mcspi2.SPI.D0.$assign = "GPIO130";
mcspi2.SPI.D1.$assign = "GPIO128";
mcspi2.mcspiChannel[0].$name = "CONFIG_MCSPI_CH1";
mcspi2.mcspiChannel[0].bitRate = 2000000;
mcspi2.mcspiChannel[0].CSn.$assign = "GPIO138";
mcspi2.child.$name = "drivers_mcspi_v1_mcspi_v1_template_lld0";
rti1.$name = "RTI_CPU";
rti1.clkSource = "SYS_CLK";
rti1.cntr0OpFreq = 125000000;
rti1.RTI.$assign = "RTI1";
sdfm1.Use_FilterChannel_1 = true;
sdfm1.Use_FilterChannel_2 = true;
sdfm1.Ch2_SDCLKSEL = "SDFM_CLK_SOURCE_SD1_CLK";
sdfm1.Ch1_DataFilterEnable = true;
sdfm1.Ch1_ComparatorEnable = true;
sdfm1.Ch1_DOSR = 128;
sdfm1.Ch1_DataFilter_Representation = "SDFM_DATA_FORMAT_16_BIT";
sdfm1.Ch2_DataFilterEnable = true;
sdfm1.Ch2_ComparatorEnable = true;
sdfm1.Ch2_DOSR = 128;
sdfm1.Ch2_DataFilter_Representation = "SDFM_DATA_FORMAT_16_BIT";
sdfm1.Ch1_SD_modulatorFrequency = 17.857;
sdfm1.$name = "SDFM_IUW";
sdfm1.SDFM.$assign = "SDFM1";
sdfm1.SDFM.CLK2.$used = false;
sdfm1.SDFM.CLK3.$used = false;
sdfm1.SDFM.D0.$assign = "GPIO131";
sdfm1.SDFM.D1.$assign = "GPIO133";
sdfm1.SDFM.D2.$used = false;
sdfm1.SDFM.D3.$used = false;
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";
const soc_ctrl = scripting.addModule("/drivers/soc_ctrl/soc_ctrl", {}, false);
soc_ctrl.soc_ctrl_adc = soc_ctrl_adc1;
adc.adcReferences = 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_ecap = scripting.addModule("/drivers/soc_ctrl/v0/subModules/soc_ctrl_ecap", {}, false);
const soc_ctrl_ecap1 = soc_ctrl_ecap.addInstance({}, false);
soc_ctrl_ecap1.$name = "soc_ctrl_ecap0";
soc_ctrl.soc_ctrl_ecap = soc_ctrl_ecap1;
ecap.ecapSocControls = soc_ctrl_ecap1;
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;
sdfm.soc_ctrl_sdfm = soc_ctrl_sdfm1;
uart1.$name = "UART_ENC";
uart1.intrEnable = "DISABLE";
uart1.hwFlowControl = true;
uart1.baudRate = 5000000;
uart1.child.$name = "drivers_uart_v2_uart_v2_template1";
uart1.UART.$assign = "UART3";
uart1.UART.RXD.$assign = "GPIO11";
uart1.UART.TXD.$assign = "GPIO12";
uart1.UART.RTSn.$assign = "GPIO14";
uart1.UART.CTSn.$assign = "GPIO13";
uart1.UART.CTSn.$used = false;
uart2.$name = "UART_MDB";
uart2.intrEnable = "DISABLE";
uart2.clockSource = "SOC_RcmPeripheralClockSource_DPLL_PER_HSDIV0_CLKOUT0";
uart2.inputClkFreq = 48000000;
uart2.baudRate = 19200;
uart2.parityType = "ODD";
uart2.UART.$assign = "UART0";
uart2.child.$name = "drivers_uart_v2_uart_v2_template2";
watchdog1.$name = "CONFIG_WDT0";
watchdog1.wdt_clk_src = "SOC_RcmPeripheralClockSource_XTALCLK";
watchdog1.wdt_func_clk = 12500000;
watchdog1.expirationTime = 2000;
ethercat1.$name = "CONFIG_ETHERCAT0";
ethercat1["PRU-ICSS0-IEP"].$assign = "PRU-ICSS0-IEP";
ethercat1["PRU-ICSS0"].$assign = "PRU-ICSS0";
ethercat1["PRU-ICSS0-MDIO"].$assign = "PRU-ICSS0-MDIO";
ethercat1.ethphy[0].$name = "CONFIG_ETHPHY0";
ethercat1.ethphy[0].mdioPort = 1;
ethercat1.ethphy[0].name = "CUSTOM";
ethercat1.ethphy[0].customDeviceName = "DP83822";
ethercat1.ethphy[1].$name = "CONFIG_ETHPHY1";
ethercat1.ethphy[1].mdioPort = 2;
ethercat1.ethphy[1].name = "CUSTOM";
ethercat1.ethphy[1].customDeviceName = "DP83822";
const pruicss = scripting.addModule("/drivers/pruicss/pruicss", {}, false);
const pruicss1 = pruicss.addInstance({}, false);
pruicss1.$name = "CONFIG_PRU_ICSS0";
ethercat1.icss = pruicss1;
pruicss1.AdditionalICSSSettings[0].$name = "CONFIG_PRU_ICSS_IO0";
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.baseAddr = 0x80000;
mpu_armv73.size = 15;
mpu_armv73.accessPermissions = "Supervisor RD+WR, User RD";
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_REGION4";
mpu_armv75.baseAddr = 0x70100000;
mpu_armv75.size = 17;
mpu_armv75.attributes = "NonCached";
mpu_armv75.allowExecute = false;
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(4);
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;
section5.output_section[3].$name = ".usbCxtRam";
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;
section13.$name = "USB Non Cache Memory";
section13.load_memory = "NON_CACHE_MEM";
section13.output_section.create(1);
section13.output_section[0].$name = ".bss.nocache";
section14.$name = "MATHLIB_PLACE";
section14.group = false;
section14.load_memory = "R5F_TCMA";
section14.output_section.create(1);
section14.output_section[0].$name = "armiqmath";
section14.output_section[0].palignment = true;
bissc1.$name = "CONFIG_BISSC0";
bissc1.baudrate = 2;
bissc1["PRU-ICSS1"].PR1_PRU1_GPIO1.$assign = "GPIO72";
bissc1["PRU-ICSS1"].PR1_PRU1_GPIO1.$used = true;
bissc1["PRU-ICSS1"].PR1_PRU1_GPIO0.$assign = "GPIO71";
bissc1["PRU-ICSS1"].PR1_PRU1_GPIO0.$used = true;
bissc1["PRU-ICSS1"].PR1_PRU1_GPIO9.$used = true;
const pruicss2 = pruicss.addInstance({}, false);
pruicss2.$name = "CONFIG_PRU_ICSS1";
bissc1.pru = pruicss2;
pruicss2.AdditionalICSSSettings[0].$name = "CONFIG_PRU_ICSS_IO1";
tinyusb1.$name = "CONFIG_TINYUSB0";
tinyusb1.USB0.$assign = "USB0";
epwm_xbar1.$name = "CONFIG_EPWM_XBAR0";
epwm_xbar1.xbarOutput = ["ADC0_EVT1","ADC1_EVT1","ADC2_EVT1"];
input_xbar1.$name = "CONFIG_INPUT_XBAR0";
input_xbar1.xbarOutput = "GPIO23";
input_xbar2.$name = "CONFIG_INPUT_XBAR1";
input_xbar2.xbarOutput = "GPIO24";
input_xbar2.instance = "INPUT_XBAR_1";
input_xbar3.$name = "CONFIG_INPUT_XBAR2";
input_xbar3.instance = "INPUT_XBAR_2";
input_xbar3.xbarOutput = "GPIO25";
input_xbar4.$name = "CONFIG_INPUT_XBAR3";
input_xbar4.instance = "INPUT_XBAR_3";
input_xbar4.xbarOutput = "GPIO8";
int_xbar1.$name = "CONFIG_INT_XBAR0";
int_xbar1.xbarOutput = ["EPWM0_INT"];
int_xbar2.$name = "CONFIG_INT_XBAR1";
int_xbar2.xbarOutput = ["ECAP0_INT"];
int_xbar2.instance = "INT_XBAR_1";
/**
* Pinmux solution for unlocked pins/peripherals. This ensures that minor changes to the automatic solver in a future
* version of the tool will not impact the pinmux you originally saw. These lines can be completely deleted in order to
* re-solve from scratch.
*/
flash1.peripheralDriver.OSPI.D0.$suggestSolution = "GPIO2";
adc1.ADC.$suggestSolution = "ADC1";
adc1.ADC.AIN0.$suggestSolution = "ADC1_AIN0";
adc1.ADC.AIN1.$suggestSolution = "ADC1_AIN1";
adc1.ADC.AIN2.$suggestSolution = "ADC1_AIN2";
adc1.ADC.AIN3.$suggestSolution = "ADC1_AIN3";
adc1.ADC.AIN4.$suggestSolution = "ADC1_AIN4";
adc1.ADC.AIN5.$suggestSolution = "ADC1_AIN5";
adc2.ADC.$suggestSolution = "ADC0";
adc2.ADC.AIN0.$suggestSolution = "ADC0_AIN0";
i2c1.I2C.$suggestSolution = "I2C1";
i2c1.I2C.SCL.$suggestSolution = "GPIO66";
i2c1.I2C.SDA.$suggestSolution = "GPIO65";
sdfm1.SDFM.CLK0.$suggestSolution = "GPIO77";
sdfm1.SDFM.CLK1.$suggestSolution = "GPIO132";
uart2.UART.RXD.$suggestSolution = "GPIO27";
uart2.UART.TXD.$suggestSolution = "GPIO28";
ethercat1["PRU-ICSS0-IEP"].PR0_IEP0_EDC_SYNC_OUT0.$suggestSolution = "GPIO119";
ethercat1["PRU-ICSS0-IEP"].PR0_IEP0_EDC_SYNC_OUT1.$suggestSolution = "GPIO124";
ethercat1["PRU-ICSS0-IEP"].PR0_IEP0_EDIO_DATA_IN_OUT30.$suggestSolution = "GPIO105";
ethercat1["PRU-ICSS0-IEP"].PR0_IEP0_EDIO_DATA_IN_OUT31.$suggestSolution = "GPIO104";
ethercat1["PRU-ICSS0"].PR0_PRU0_GPIO8.$suggestSolution = "GPIO90";
ethercat1["PRU-ICSS0"].PR0_PRU0_GPIO5.$suggestSolution = "GPIO87";
ethercat1["PRU-ICSS0"].PR0_PRU0_GPIO6.$suggestSolution = "GPIO91";
ethercat1["PRU-ICSS0"].PR0_PRU0_GPIO4.$suggestSolution = "GPIO92";
ethercat1["PRU-ICSS0"].PR0_PRU0_GPIO0.$suggestSolution = "GPIO93";
ethercat1["PRU-ICSS0"].PR0_PRU0_GPIO1.$suggestSolution = "GPIO94";
ethercat1["PRU-ICSS0"].PR0_PRU0_GPIO2.$suggestSolution = "GPIO95";
ethercat1["PRU-ICSS0"].PR0_PRU0_GPIO3.$suggestSolution = "GPIO96";
ethercat1["PRU-ICSS0"].PR0_PRU0_GPIO16.$suggestSolution = "GPIO97";
ethercat1["PRU-ICSS0"].PR0_PRU0_GPIO15.$suggestSolution = "GPIO98";
ethercat1["PRU-ICSS0"].PR0_PRU0_GPIO11.$suggestSolution = "GPIO99";
ethercat1["PRU-ICSS0"].PR0_PRU0_GPIO12.$suggestSolution = "GPIO100";
ethercat1["PRU-ICSS0"].PR0_PRU0_GPIO13.$suggestSolution = "GPIO101";
ethercat1["PRU-ICSS0"].PR0_PRU0_GPIO14.$suggestSolution = "GPIO102";
ethercat1["PRU-ICSS0"].PR0_PRU1_GPIO8.$suggestSolution = "GPIO106";
ethercat1["PRU-ICSS0"].PR0_PRU1_GPIO5.$suggestSolution = "GPIO103";
ethercat1["PRU-ICSS0"].PR0_PRU1_GPIO6.$suggestSolution = "GPIO107";
ethercat1["PRU-ICSS0"].PR0_PRU1_GPIO4.$suggestSolution = "GPIO108";
ethercat1["PRU-ICSS0"].PR0_PRU1_GPIO0.$suggestSolution = "GPIO109";
ethercat1["PRU-ICSS0"].PR0_PRU1_GPIO1.$suggestSolution = "GPIO110";
ethercat1["PRU-ICSS0"].PR0_PRU1_GPIO2.$suggestSolution = "GPIO111";
ethercat1["PRU-ICSS0"].PR0_PRU1_GPIO3.$suggestSolution = "GPIO112";
ethercat1["PRU-ICSS0"].PR0_PRU1_GPIO16.$suggestSolution = "GPIO113";
ethercat1["PRU-ICSS0"].PR0_PRU1_GPIO15.$suggestSolution = "GPIO114";
ethercat1["PRU-ICSS0"].PR0_PRU1_GPIO11.$suggestSolution = "GPIO115";
ethercat1["PRU-ICSS0"].PR0_PRU1_GPIO12.$suggestSolution = "GPIO116";
ethercat1["PRU-ICSS0"].PR0_PRU1_GPIO13.$suggestSolution = "GPIO117";
ethercat1["PRU-ICSS0"].PR0_PRU1_GPIO14.$suggestSolution = "GPIO118";
ethercat1["PRU-ICSS0-MDIO"].PR0_MDIO0_MDIO.$suggestSolution = "GPIO85";
ethercat1["PRU-ICSS0-MDIO"].PR0_MDIO0_MDC.$suggestSolution = "GPIO86";
bissc1["PRU-ICSS1"].$suggestSolution = "PRU-ICSS1";
bissc1["PRU-ICSS1"].PR1_PRU1_GPIO9.$suggestSolution = "GPIO74";
tinyusb1.USB0.USB0_DM.$suggestSolution = "GPIO140";
tinyusb1.USB0.USB0_DP.$suggestSolution = "GPIO139";
tinyusb1.USB0.USB0_DRVVBUS.$suggestSolution = "GPIO121";
Hi Dhaval,
main() function when starting debug mode—instead, it directly enters the HwiP_user_prefetch_abort_handler_c() exception interrupt.Hi Zhou,
Apologies for a delayed response, Let me check this and get back in 1-2 days
Regards,
Shaunak
Hi,
Can you please try the below MPU config. Looking at the BISSC config and the USB config, i see that some regions are access by both the entities so we need to try configuring them carefully.
// ========== MPU REGIONS (7 total) ========== // Region 0: Base - all peripherals as Device mpu_armv71.$name = "CONFIG_MPU_REGION0"; mpu_armv71.size = 31; // 4GB mpu_armv71.attributes = "Device"; mpu_armv71.accessPermissions = "Supervisor RD+WR, User RD"; mpu_armv71.allowExecute = false; // Region 1: TCMA mpu_armv72.$name = "CONFIG_MPU_REGION1"; mpu_armv72.size = 15; // 64KB mpu_armv72.accessPermissions = "Supervisor RD+WR, User RD"; // Region 2: TCMB mpu_armv73.$name = "CONFIG_MPU_REGION2"; mpu_armv73.baseAddr = 0x80000; mpu_armv73.size = 15; // 64KB mpu_armv73.accessPermissions = "Supervisor RD+WR, User RD"; // Region 3: OCRAM (cached) mpu_armv74.$name = "CONFIG_MPU_REGION3"; mpu_armv74.baseAddr = 0x70000000; mpu_armv74.size = 21; // 2MB mpu_armv74.accessPermissions = "Supervisor RD+WR, User RD"; // Region 4: USB DMA buffers - MUST be NonCached for DMA mpu_armv75.$name = "CONFIG_MPU_REGION4"; mpu_armv75.baseAddr = 0x70100000; mpu_armv75.size = 17; // 128KB mpu_armv75.attributes = "NonCached"; mpu_armv75.accessPermissions = "Supervisor RD+WR, User RD"; mpu_armv75.allowExecute = false; // Region 5: MSS_CTRL - Required by BOTH USB and BISSC mpu_armv76.$name = "CONFIG_MPU_REGION5"; mpu_armv76.baseAddr = 0x50D00000; mpu_armv76.size = 14; // 16KB mpu_armv76.attributes = "Device"; // Use "Device", NOT "Strongly Ordered" mpu_armv76.accessPermissions = "Supervisor RD+WR, User RD"; mpu_armv76.allowExecute = false; // Region 6: IPC/PRU shared memory - Required by BISSC mpu_armv77.$name = "CONFIG_MPU_REGION6"; mpu_armv77.baseAddr = 0x72000000; mpu_armv77.size = 14; // 16KB mpu_armv77.attributes = "NonCached"; mpu_armv77.accessPermissions = "Supervisor RD+WR, User RD"; mpu_armv77.allowExecute = false;
Final Configuration Summary should be something like
Can you try this config, rebuild and retest the example and let me know if it helps?
Regards,
Shaunak
Hi Shaunak,
/**
* 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 "AM261x_ZFG" --part "AM2612" --package "ZFG" --context "r5fss0-0" --product "MOTOR_CONTROL_SDK_AM261x@10.02.00"
* @v2CliArgs --device "AM2612" --package "NFBGA (ZFG)" --variant "500MHz" --context "r5fss0-0" --product "MOTOR_CONTROL_SDK_AM261x@10.02.00"
* @versions {"tool":"1.24.2+4234"}
*/
/**
* Import the modules used in this configuration.
*/
const eeprom = scripting.addModule("/board/eeprom/eeprom", {}, false);
const eeprom1 = eeprom.addInstance();
const flash = scripting.addModule("/board/flash/flash", {}, false);
const flash1 = flash.addInstance();
const led = scripting.addModule("/board/led/led", {}, false);
const led1 = led.addInstance();
const led2 = led.addInstance();
const adc = scripting.addModule("/drivers/adc/adc", {}, false);
const adc1 = adc.addInstance();
const adc2 = adc.addInstance();
const adc3 = 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 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 epwm6 = 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 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 rti = scripting.addModule("/drivers/rti/rti", {}, false);
const rti1 = rti.addInstance();
const sdfm = scripting.addModule("/drivers/sdfm/sdfm", {}, false);
const sdfm1 = sdfm.addInstance();
const uart = scripting.addModule("/drivers/uart/uart", {}, false);
const uart1 = uart.addInstance();
const uart2 = uart.addInstance();
const watchdog = scripting.addModule("/drivers/watchdog/watchdog", {}, false);
const watchdog1 = watchdog.addInstance();
const ethercat = scripting.addModule("/industrial_comms/ethercat/ethercat", {}, false);
const ethercat1 = ethercat.addInstance();
const clock = scripting.addModule("/kernel/dpl/clock");
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 mpu_armv76 = mpu_armv7.addInstance();
const mpu_armv77 = mpu_armv7.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 section13 = section.addInstance();
const section14 = section.addInstance();
const tinyusb = scripting.addModule("/usb/tinyusb/tinyusb", {}, false);
const tinyusb1 = tinyusb.addInstance();
const epwm_xbar = scripting.addModule("/xbar/epwm_xbar/epwm_xbar", {}, false);
const epwm_xbar1 = epwm_xbar.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 int_xbar = scripting.addModule("/xbar/int_xbar/int_xbar", {}, false);
const int_xbar1 = int_xbar.addInstance();
const int_xbar2 = int_xbar.addInstance();
/**
* Write custom configuration values to the imported modules.
*/
eeprom1.$name = "CONFIG_EEPROM0";
flash1.$name = "CONFIG_FLASH0";
flash1.device = "CUSTOM_FLASH";
flash1.skipHwInit = true;
flash1.fname = "S25FL128SA";
flash1.protocol = "1s_1s_4s";
flash1.flashSize = 16777216;
flash1.flashManfId = "0x01";
flash1.flashDeviceId = "0x2018";
flash1.cmdBlockErase4B = "0xD8";
flash1.cmdSectorErase4B = "0x20";
flash1.flashQeType = "1";
flash1.flashDeviceBusyTimeout = 24000000;
flash1.flashPageProgTimeout = 4000;
flash1.enable4BAddr = false;
flash1.cmdExtType = "NONE";
flash1.quirks = "NULL";
flash1.peripheralDriver.$name = "CONFIG_OSPI0";
flash1.peripheralDriver.inputClkFreq = 83333333;
flash1.peripheralDriver.baudRateDiv = 8;
flash1.peripheralDriver.phyEnable = true;
flash1.peripheralDriver.OSPI.$assign = "OSPI0";
flash1.peripheralDriver.OSPI.CLK.$assign = "GPIO10";
flash1.peripheralDriver.OSPI.CSn0.$assign = "GPIO62";
flash1.peripheralDriver.OSPI.DQS.$used = false;
flash1.peripheralDriver.OSPI.D7.$used = false;
flash1.peripheralDriver.OSPI.D6.$used = false;
flash1.peripheralDriver.OSPI.D5.$used = false;
flash1.peripheralDriver.OSPI.D4.$assign = "GPIO76";
flash1.peripheralDriver.OSPI.D3.$assign = "GPIO69";
flash1.peripheralDriver.OSPI.D2.$assign = "GPIO7";
flash1.peripheralDriver.OSPI.D1.$assign = "GPIO70";
flash1.peripheralDriver.OSPI.RESET_OUT0.$assign = "GPIO61";
flash1.peripheralDriver.child.$name = "drivers_ospi_v0_ospi_v0_am261x_template0";
led1.$name = "CONFIG_RUN_LED";
led2.$name = "CONFIG_ERR_LED";
adc1.$name = "ADC1";
adc1.adcClockPrescaler = "ADC_CLK_DIV_6_0";
adc1.ADC.AIN6.$used = false;
adc2.$name = "ADC0";
adc2.adcClockPrescaler = "ADC_CLK_DIV_6_0";
adc2.ADC.AIN1.$used = false;
adc2.ADC.AIN2.$used = false;
adc2.ADC.AIN3.$used = false;
adc2.ADC.AIN4.$used = false;
adc2.ADC.AIN5.$used = false;
adc2.ADC.AIN6.$used = false;
adc3.$name = "ADC2";
adc3.adcClockPrescaler = "ADC_CLK_DIV_6_0";
adc3.enableConverter = true;
adc3.ADC.$assign = "ADC2";
adc3.ADC.AIN0.$assign = "ADC2_AIN0";
adc3.ADC.AIN0.$used = false;
adc3.ADC.AIN1.$assign = "ADC2_AIN1";
adc3.ADC.AIN1.$used = false;
adc3.ADC.AIN2.$assign = "ADC2_AIN2";
adc3.ADC.AIN2.$used = false;
adc3.ADC.AIN3.$assign = "ADC2_AIN3";
adc3.ADC.AIN3.$used = false;
adc3.ADC.AIN4.$assign = "ADC2_AIN4";
adc3.ADC.AIN5.$assign = "ADC2_AIN5";
adc3.ADC.AIN5.$used = false;
adc3.ADC.AIN6.$assign = "ADC2_AIN6";
dac1.enableOutput = true;
dac1.$name = "DAC";
ecap1.$name = "ECAP_SYNC0";
ecap1.eventTwoPolarity = "ECAP_EVNT_FALLING_EDGE";
ecap1.eventFourPolarity = "ECAP_EVNT_FALLING_EDGE";
ecap1.syncOutMode = "ECAP_SYNC_OUT_DISABLED";
ecap1.ecapInput = "ECAP_INPUT_INPUTXBAR3";
ecap1.qualPeriod = "ECAP_PULSE_WIDTH_FILTER_CYCLE6";
ecap1.reArm = true;
epwm1.epwmTimebase_emulationMode = "EPWM_EMULATION_FREE_RUN";
epwm1.$name = "EPWM_U";
epwm1.EPWM.$assign = "EPWM2";
epwm1.EPWM.A.$assign = "GPIO47";
epwm1.EPWM.B.$assign = "GPIO48";
epwm2.$name = "EPWM_V";
epwm2.EPWM.$assign = "EPWM3";
epwm2.EPWM.A.$assign = "GPIO49";
epwm2.EPWM.B.$assign = "GPIO50";
epwm3.$name = "EPWM_W";
epwm3.EPWM.$assign = "EPWM4";
epwm3.EPWM.A.$assign = "GPIO51";
epwm3.EPWM.B.$assign = "GPIO52";
epwm4.$name = "EPWM_INT";
epwm4.epwmTimebase_emulationMode = "EPWM_EMULATION_FREE_RUN";
epwm4.epwmTimebase_period = 6250;
epwm4.epwmTimebase_periodLoadMode = "EPWM_PERIOD_DIRECT_LOAD";
epwm4.epwmTimebase_counterMode = "EPWM_COUNTER_MODE_UP_DOWN";
epwm4.epwmEventTrigger_enableInterrupt = true;
epwm4.epwmEventTrigger_interruptEventCount = "1";
epwm4.epwmEventTrigger_interruptSource = "EPWM_INT_TBCTR_PERIOD";
epwm4.epwmEventTrigger_EPWM_SOC_A_triggerEnable = true;
epwm4.epwmEventTrigger_EPWM_SOC_A_triggerSource = "EPWM_SOC_TBCTR_MIXED_EVENT";
epwm4.epwmEventTrigger_EPWM_SOC_A_triggerEventPrescalar = "1";
epwm4.epwmEventTrigger_EPWM_SOC_A_triggerMixedSource = ["EPWM_INT_MIX_TBCTR_D_CMPA","EPWM_INT_MIX_TBCTR_U_CMPA"];
epwm4.EPWM.$assign = "EPWM0";
epwm4.EPWM.A.$used = false;
epwm4.EPWM.B.$used = false;
epwm5.$name = "EPWM_PTO";
epwm5.EPWM.$assign = "EPWM5";
epwm5.EPWM.A.$assign = "GPIO53";
epwm5.EPWM.B.$assign = "GPIO54";
epwm6.$name = "EPWM_SDFM_CLK";
epwm6.EPWM.$assign = "EPWM6";
epwm6.EPWM.A.$assign = "GPIO55";
epwm6.EPWM.B.$used = false;
gpio1.$name = "GPIO_HMI_STROBE";
gpio1.pinDir = "OUTPUT";
gpio1.qualSel = "async";
gpio1.pu_pd = "pu";
gpio1.GPIO_n.$assign = "GPIO0";
gpio2.$name = "GPIO_OC_IBUS";
gpio2.GPIO_n.$assign = "GPIO23";
gpio3.pinDir = "OUTPUT";
gpio3.qualSel = "async";
gpio3.$name = "GPIO_MECH_BRK_HV";
gpio3.GPIO_n.$assign = "GPIO56";
gpio4.qualSel = "6sample";
gpio4.$name = "GPIO_DI0";
gpio4.GPIO_n.$assign = "GPIO42";
gpio5.$name = "GPIO_DI1";
gpio5.GPIO_n.$assign = "GPIO41";
gpio6.$name = "GPIO_DI2";
gpio6.GPIO_n.$assign = "GPIO31";
gpio7.$name = "GPIO_DI3";
gpio7.GPIO_n.$assign = "GPIO32";
gpio8.$name = "GPIO_DI4";
gpio8.GPIO_n.$assign = "GPIO33";
gpio9.pinDir = "OUTPUT";
gpio9.$name = "GPIO_DQ0";
gpio9.GPIO_n.$assign = "GPIO34";
gpio10.pinDir = "OUTPUT";
gpio10.$name = "GPIO_DQ1";
gpio10.GPIO_n.$assign = "GPIO35";
gpio11.pinDir = "OUTPUT";
gpio11.$name = "GPIO_DQ2";
gpio11.GPIO_n.$assign = "GPIO36";
gpio12.$name = "GPIO_MOD_EN";
gpio12.GPIO_n.$assign = "GPIO29";
gpio13.$name = "GPIO_OC_W";
gpio13.GPIO_n.$assign = "GPIO24";
gpio14.$name = "GPIO_OC_U";
gpio14.GPIO_n.$assign = "GPIO25";
gpio15.pinDir = "OUTPUT";
gpio15.$name = "GPIO_POW_BRK_EN";
gpio15.GPIO_n.$assign = "GPIO57";
gpio16.$name = "ECAT_RESET";
gpio16.pinDir = "OUTPUT";
gpio16.defaultValue = "1";
gpio16.GPIO_n.$assign = "GPIO84";
gpio17.$name = "ECAT_RUN";
gpio17.pinDir = "OUTPUT";
led1.peripheralDriver = gpio17;
gpio17.GPIO_n.$assign = "GPIO89";
gpio18.$name = "ECAT_ERR";
gpio18.pinDir = "OUTPUT";
led2.peripheralDriver = gpio18;
gpio18.GPIO_n.$assign = "GPIO88";
gpio19.$name = "ECAT_SYNC0";
gpio19.GPIO_n.$assign = "GPIO8";
i2c1.$name = "CONFIG_I2C0";
i2c1.ownTargetAddr = 0x50;
eeprom1.peripheralDriver = i2c1;
i2c1.I2C.SCL.pu_pd = "pu";
i2c1.I2C.SDA.pu_pd = "pu";
i2c1.I2C_child.$name = "drivers_i2c_v1_i2c_v1_template0";
mcspi1.$name = "MCSPI_HMI";
mcspi1.intrEnable = "POLLED";
mcspi1.sdkInfra = "LLD";
mcspi1.inputSelect = "0";
mcspi1.dpe0 = "DISABLE";
mcspi1.dpe1 = "ENABLE";
mcspi1.SPI.$assign = "SPI1";
mcspi1.SPI.CLK.$assign = "GPIO16";
mcspi1.SPI.D0.$assign = "GPIO17";
mcspi1.SPI.D1.$assign = "GPIO18";
mcspi1.mcspiChannel[0].$name = "CONFIG_MCSPI_CH0";
mcspi1.mcspiChannel[0].CSn.$assign = "GPIO15";
mcspi1.child.$name = "drivers_mcspi_v1_mcspi_v1_template_lld1";
mcspi2.$name = "MCSPI_EPR";
mcspi2.intrEnable = "POLLED";
mcspi2.sdkInfra = "LLD";
mcspi2.SPI.$assign = "SPI2";
mcspi2.SPI.CLK.$assign = "GPIO129";
mcspi2.SPI.D0.$assign = "GPIO130";
mcspi2.SPI.D1.$assign = "GPIO128";
mcspi2.mcspiChannel[0].$name = "CONFIG_MCSPI_CH1";
mcspi2.mcspiChannel[0].bitRate = 2000000;
mcspi2.mcspiChannel[0].CSn.$assign = "GPIO138";
mcspi2.child.$name = "drivers_mcspi_v1_mcspi_v1_template_lld0";
rti1.$name = "RTI_CPU";
rti1.clkSource = "SYS_CLK";
rti1.cntr0OpFreq = 125000000;
rti1.RTI.$assign = "RTI1";
sdfm1.Use_FilterChannel_1 = true;
sdfm1.Use_FilterChannel_2 = true;
sdfm1.Ch2_SDCLKSEL = "SDFM_CLK_SOURCE_SD1_CLK";
sdfm1.Ch1_DataFilterEnable = true;
sdfm1.Ch1_ComparatorEnable = true;
sdfm1.Ch1_DOSR = 128;
sdfm1.Ch1_DataFilter_Representation = "SDFM_DATA_FORMAT_16_BIT";
sdfm1.Ch2_DataFilterEnable = true;
sdfm1.Ch2_ComparatorEnable = true;
sdfm1.Ch2_DOSR = 128;
sdfm1.Ch2_DataFilter_Representation = "SDFM_DATA_FORMAT_16_BIT";
sdfm1.Ch1_SD_modulatorFrequency = 17.857;
sdfm1.$name = "SDFM_IUW";
sdfm1.SDFM.$assign = "SDFM1";
sdfm1.SDFM.CLK2.$used = false;
sdfm1.SDFM.CLK3.$used = false;
sdfm1.SDFM.D0.$assign = "GPIO131";
sdfm1.SDFM.D1.$assign = "GPIO133";
sdfm1.SDFM.D2.$used = false;
sdfm1.SDFM.D3.$used = false;
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";
const soc_ctrl = scripting.addModule("/drivers/soc_ctrl/soc_ctrl", {}, false);
soc_ctrl.soc_ctrl_adc = soc_ctrl_adc1;
adc.adcReferences = 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_ecap = scripting.addModule("/drivers/soc_ctrl/v0/subModules/soc_ctrl_ecap", {}, false);
const soc_ctrl_ecap1 = soc_ctrl_ecap.addInstance({}, false);
soc_ctrl_ecap1.$name = "soc_ctrl_ecap0";
soc_ctrl.soc_ctrl_ecap = soc_ctrl_ecap1;
ecap.ecapSocControls = soc_ctrl_ecap1;
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;
sdfm.soc_ctrl_sdfm = soc_ctrl_sdfm1;
uart1.$name = "UART_ENC";
uart1.intrEnable = "DISABLE";
uart1.hwFlowControl = true;
uart1.baudRate = 5000000;
uart1.child.$name = "drivers_uart_v2_uart_v2_template1";
uart1.UART.$assign = "UART3";
uart1.UART.RXD.$assign = "GPIO11";
uart1.UART.TXD.$assign = "GPIO12";
uart1.UART.RTSn.$assign = "GPIO14";
uart1.UART.CTSn.$assign = "GPIO13";
uart1.UART.CTSn.$used = false;
uart2.$name = "UART_MDB";
uart2.intrEnable = "DISABLE";
uart2.clockSource = "SOC_RcmPeripheralClockSource_DPLL_PER_HSDIV0_CLKOUT0";
uart2.inputClkFreq = 48000000;
uart2.baudRate = 19200;
uart2.parityType = "ODD";
uart2.UART.$assign = "UART0";
uart2.child.$name = "drivers_uart_v2_uart_v2_template2";
watchdog1.$name = "CONFIG_WDT0";
watchdog1.wdt_clk_src = "SOC_RcmPeripheralClockSource_XTALCLK";
watchdog1.wdt_func_clk = 12500000;
watchdog1.expirationTime = 2000;
ethercat1.$name = "CONFIG_ETHERCAT0";
ethercat1.ethphy[0].$name = "CONFIG_ETHPHY0";
ethercat1.ethphy[0].mdioPort = 1;
ethercat1.ethphy[0].name = "CUSTOM";
ethercat1.ethphy[0].customDeviceName = "DP83822";
ethercat1.ethphy[1].$name = "CONFIG_ETHPHY1";
ethercat1.ethphy[1].mdioPort = 2;
ethercat1.ethphy[1].name = "CUSTOM";
ethercat1.ethphy[1].customDeviceName = "DP83822";
const pruicss = scripting.addModule("/drivers/pruicss/pruicss", {}, false);
const pruicss1 = pruicss.addInstance({}, false);
pruicss1.$name = "CONFIG_PRU_ICSS0";
ethercat1.icss = pruicss1;
pruicss1.AdditionalICSSSettings[0].$name = "CONFIG_PRU_ICSS_IO0";
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.baseAddr = 0x80000;
mpu_armv73.size = 15;
mpu_armv73.accessPermissions = "Supervisor RD+WR, User RD";
mpu_armv74.$name = "CONFIG_MPU_REGION3";
mpu_armv74.baseAddr = 0x70000000;
mpu_armv74.size = 21;
mpu_armv74.accessPermissions = "Supervisor RD+WR, User RD";
mpu_armv75.$name = "CONFIG_MPU_REGION4";
mpu_armv75.baseAddr = 0x70100000;
mpu_armv75.size = 17;
mpu_armv75.attributes = "NonCached";
mpu_armv75.accessPermissions = "Supervisor RD+WR, User RD";
mpu_armv75.allowExecute = false;
mpu_armv76.$name = "CONFIG_MPU_REGION5";
mpu_armv76.baseAddr = 0x50D00000;
mpu_armv76.size = 14;
mpu_armv76.attributes = "Device";
mpu_armv76.accessPermissions = "Supervisor RD+WR, User RD";
mpu_armv76.allowExecute = false;
mpu_armv77.$name = "CONFIG_MPU_REGION6";
mpu_armv77.baseAddr = 0x72000000;
mpu_armv77.size = 14;
mpu_armv77.attributes = "NonCached";
mpu_armv77.accessPermissions = "Supervisor RD+WR, User RD";
mpu_armv77.allowExecute = false;
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(4);
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;
section5.output_section[3].$name = ".usbCxtRam";
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;
section13.$name = "USB Non Cache Memory";
section13.load_memory = "NON_CACHE_MEM";
section13.output_section.create(1);
section13.output_section[0].$name = ".bss.nocache";
section14.$name = "MATHLIB_PLACE";
section14.group = false;
section14.load_memory = "R5F_TCMA";
section14.output_section.create(1);
section14.output_section[0].$name = "armiqmath";
section14.output_section[0].palignment = true;
tinyusb1.$name = "CONFIG_TINYUSB0";
tinyusb1.USB0.$assign = "USB0";
epwm_xbar1.$name = "CONFIG_EPWM_XBAR0";
epwm_xbar1.xbarOutput = ["ADC0_EVT1","ADC1_EVT1","ADC2_EVT1"];
input_xbar1.$name = "CONFIG_INPUT_XBAR0";
input_xbar1.xbarOutput = "GPIO23";
input_xbar2.$name = "CONFIG_INPUT_XBAR1";
input_xbar2.xbarOutput = "GPIO24";
input_xbar2.instance = "INPUT_XBAR_1";
input_xbar3.$name = "CONFIG_INPUT_XBAR2";
input_xbar3.instance = "INPUT_XBAR_2";
input_xbar3.xbarOutput = "GPIO25";
input_xbar4.$name = "CONFIG_INPUT_XBAR3";
input_xbar4.instance = "INPUT_XBAR_3";
input_xbar4.xbarOutput = "GPIO8";
int_xbar1.$name = "CONFIG_INT_XBAR0";
int_xbar1.xbarOutput = ["EPWM0_INT"];
int_xbar2.$name = "CONFIG_INT_XBAR1";
int_xbar2.xbarOutput = ["ECAP0_INT"];
int_xbar2.instance = "INT_XBAR_1";
/**
* Pinmux solution for unlocked pins/peripherals. This ensures that minor changes to the automatic solver in a future
* version of the tool will not impact the pinmux you originally saw. These lines can be completely deleted in order to
* re-solve from scratch.
*/
flash1.peripheralDriver.OSPI.D0.$suggestSolution = "GPIO2";
adc1.ADC.$suggestSolution = "ADC1";
adc1.ADC.AIN0.$suggestSolution = "ADC1_AIN0";
adc1.ADC.AIN1.$suggestSolution = "ADC1_AIN1";
adc1.ADC.AIN2.$suggestSolution = "ADC1_AIN2";
adc1.ADC.AIN3.$suggestSolution = "ADC1_AIN3";
adc1.ADC.AIN4.$suggestSolution = "ADC1_AIN4";
adc1.ADC.AIN5.$suggestSolution = "ADC1_AIN5";
adc2.ADC.$suggestSolution = "ADC0";
adc2.ADC.AIN0.$suggestSolution = "ADC0_AIN0";
i2c1.I2C.$suggestSolution = "I2C1";
i2c1.I2C.SCL.$suggestSolution = "GPIO66";
i2c1.I2C.SDA.$suggestSolution = "GPIO65";
sdfm1.SDFM.CLK0.$suggestSolution = "GPIO77";
sdfm1.SDFM.CLK1.$suggestSolution = "GPIO132";
uart2.UART.RXD.$suggestSolution = "GPIO27";
uart2.UART.TXD.$suggestSolution = "GPIO28";
ethercat1["PRU-ICSS0-IEP"].$suggestSolution = "PRU-ICSS0-IEP";
ethercat1["PRU-ICSS0-IEP"].PR0_IEP0_EDC_SYNC_OUT0.$suggestSolution = "GPIO119";
ethercat1["PRU-ICSS0-IEP"].PR0_IEP0_EDC_SYNC_OUT1.$suggestSolution = "GPIO124";
ethercat1["PRU-ICSS0-IEP"].PR0_IEP0_EDIO_DATA_IN_OUT30.$suggestSolution = "GPIO105";
ethercat1["PRU-ICSS0-IEP"].PR0_IEP0_EDIO_DATA_IN_OUT31.$suggestSolution = "GPIO104";
ethercat1["PRU-ICSS0"].$suggestSolution = "PRU-ICSS0";
ethercat1["PRU-ICSS0"].PR0_PRU0_GPIO8.$suggestSolution = "GPIO90";
ethercat1["PRU-ICSS0"].PR0_PRU0_GPIO5.$suggestSolution = "GPIO87";
ethercat1["PRU-ICSS0"].PR0_PRU0_GPIO6.$suggestSolution = "GPIO91";
ethercat1["PRU-ICSS0"].PR0_PRU0_GPIO4.$suggestSolution = "GPIO92";
ethercat1["PRU-ICSS0"].PR0_PRU0_GPIO0.$suggestSolution = "GPIO93";
ethercat1["PRU-ICSS0"].PR0_PRU0_GPIO1.$suggestSolution = "GPIO94";
ethercat1["PRU-ICSS0"].PR0_PRU0_GPIO2.$suggestSolution = "GPIO95";
ethercat1["PRU-ICSS0"].PR0_PRU0_GPIO3.$suggestSolution = "GPIO96";
ethercat1["PRU-ICSS0"].PR0_PRU0_GPIO16.$suggestSolution = "GPIO97";
ethercat1["PRU-ICSS0"].PR0_PRU0_GPIO15.$suggestSolution = "GPIO98";
ethercat1["PRU-ICSS0"].PR0_PRU0_GPIO11.$suggestSolution = "GPIO99";
ethercat1["PRU-ICSS0"].PR0_PRU0_GPIO12.$suggestSolution = "GPIO100";
ethercat1["PRU-ICSS0"].PR0_PRU0_GPIO13.$suggestSolution = "GPIO101";
ethercat1["PRU-ICSS0"].PR0_PRU0_GPIO14.$suggestSolution = "GPIO102";
ethercat1["PRU-ICSS0"].PR0_PRU1_GPIO8.$suggestSolution = "GPIO106";
ethercat1["PRU-ICSS0"].PR0_PRU1_GPIO5.$suggestSolution = "GPIO103";
ethercat1["PRU-ICSS0"].PR0_PRU1_GPIO6.$suggestSolution = "GPIO107";
ethercat1["PRU-ICSS0"].PR0_PRU1_GPIO4.$suggestSolution = "GPIO108";
ethercat1["PRU-ICSS0"].PR0_PRU1_GPIO0.$suggestSolution = "GPIO109";
ethercat1["PRU-ICSS0"].PR0_PRU1_GPIO1.$suggestSolution = "GPIO110";
ethercat1["PRU-ICSS0"].PR0_PRU1_GPIO2.$suggestSolution = "GPIO111";
ethercat1["PRU-ICSS0"].PR0_PRU1_GPIO3.$suggestSolution = "GPIO112";
ethercat1["PRU-ICSS0"].PR0_PRU1_GPIO16.$suggestSolution = "GPIO113";
ethercat1["PRU-ICSS0"].PR0_PRU1_GPIO15.$suggestSolution = "GPIO114";
ethercat1["PRU-ICSS0"].PR0_PRU1_GPIO11.$suggestSolution = "GPIO115";
ethercat1["PRU-ICSS0"].PR0_PRU1_GPIO12.$suggestSolution = "GPIO116";
ethercat1["PRU-ICSS0"].PR0_PRU1_GPIO13.$suggestSolution = "GPIO117";
ethercat1["PRU-ICSS0"].PR0_PRU1_GPIO14.$suggestSolution = "GPIO118";
ethercat1["PRU-ICSS0-MDIO"].$suggestSolution = "PRU-ICSS0-MDIO";
ethercat1["PRU-ICSS0-MDIO"].PR0_MDIO0_MDIO.$suggestSolution = "GPIO85";
ethercat1["PRU-ICSS0-MDIO"].PR0_MDIO0_MDC.$suggestSolution = "GPIO86";
tinyusb1.USB0.USB0_DM.$suggestSolution = "GPIO140";
tinyusb1.USB0.USB0_DP.$suggestSolution = "GPIO139";
tinyusb1.USB0.USB0_DRVVBUS.$suggestSolution = "GPIO121";
/**
* 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 "AM261x_ZFG" --part "AM2612" --package "ZFG" --context "r5fss0-0" --product "MOTOR_CONTROL_SDK_AM261x@10.02.00"
* @v2CliArgs --device "AM2612" --package "NFBGA (ZFG)" --variant "500MHz" --context "r5fss0-0" --product "MOTOR_CONTROL_SDK_AM261x@10.02.00"
* @versions {"tool":"1.24.2+4234"}
*/
/**
* Import the modules used in this configuration.
*/
const eeprom = scripting.addModule("/board/eeprom/eeprom", {}, false);
const eeprom1 = eeprom.addInstance();
const flash = scripting.addModule("/board/flash/flash", {}, false);
const flash1 = flash.addInstance();
const led = scripting.addModule("/board/led/led", {}, false);
const led1 = led.addInstance();
const led2 = led.addInstance();
const adc = scripting.addModule("/drivers/adc/adc", {}, false);
const adc1 = adc.addInstance();
const adc2 = adc.addInstance();
const adc3 = 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 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 epwm6 = 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 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 rti = scripting.addModule("/drivers/rti/rti", {}, false);
const rti1 = rti.addInstance();
const sdfm = scripting.addModule("/drivers/sdfm/sdfm", {}, false);
const sdfm1 = sdfm.addInstance();
const uart = scripting.addModule("/drivers/uart/uart", {}, false);
const uart1 = uart.addInstance();
const uart2 = uart.addInstance();
const watchdog = scripting.addModule("/drivers/watchdog/watchdog", {}, false);
const watchdog1 = watchdog.addInstance();
const ethercat = scripting.addModule("/industrial_comms/ethercat/ethercat", {}, false);
const ethercat1 = ethercat.addInstance();
const clock = scripting.addModule("/kernel/dpl/clock");
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 mpu_armv76 = mpu_armv7.addInstance();
const mpu_armv77 = mpu_armv7.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 section13 = section.addInstance();
const section14 = section.addInstance();
const bissc = scripting.addModule("/position_sense/bissc", {}, false);
const bissc1 = bissc.addInstance();
const tinyusb = scripting.addModule("/usb/tinyusb/tinyusb", {}, false);
const tinyusb1 = tinyusb.addInstance();
const epwm_xbar = scripting.addModule("/xbar/epwm_xbar/epwm_xbar", {}, false);
const epwm_xbar1 = epwm_xbar.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 int_xbar = scripting.addModule("/xbar/int_xbar/int_xbar", {}, false);
const int_xbar1 = int_xbar.addInstance();
const int_xbar2 = int_xbar.addInstance();
/**
* Write custom configuration values to the imported modules.
*/
eeprom1.$name = "CONFIG_EEPROM0";
flash1.$name = "CONFIG_FLASH0";
flash1.device = "CUSTOM_FLASH";
flash1.skipHwInit = true;
flash1.fname = "S25FL128SA";
flash1.protocol = "1s_1s_4s";
flash1.flashSize = 16777216;
flash1.flashManfId = "0x01";
flash1.flashDeviceId = "0x2018";
flash1.cmdBlockErase4B = "0xD8";
flash1.cmdSectorErase4B = "0x20";
flash1.flashQeType = "1";
flash1.flashDeviceBusyTimeout = 24000000;
flash1.flashPageProgTimeout = 4000;
flash1.enable4BAddr = false;
flash1.cmdExtType = "NONE";
flash1.quirks = "NULL";
flash1.peripheralDriver.$name = "CONFIG_OSPI0";
flash1.peripheralDriver.inputClkFreq = 83333333;
flash1.peripheralDriver.baudRateDiv = 8;
flash1.peripheralDriver.phyEnable = true;
flash1.peripheralDriver.OSPI.$assign = "OSPI0";
flash1.peripheralDriver.OSPI.CLK.$assign = "GPIO10";
flash1.peripheralDriver.OSPI.CSn0.$assign = "GPIO62";
flash1.peripheralDriver.OSPI.DQS.$used = false;
flash1.peripheralDriver.OSPI.D7.$used = false;
flash1.peripheralDriver.OSPI.D6.$used = false;
flash1.peripheralDriver.OSPI.D5.$used = false;
flash1.peripheralDriver.OSPI.D4.$assign = "GPIO76";
flash1.peripheralDriver.OSPI.D3.$assign = "GPIO69";
flash1.peripheralDriver.OSPI.D2.$assign = "GPIO7";
flash1.peripheralDriver.OSPI.D1.$assign = "GPIO70";
flash1.peripheralDriver.OSPI.RESET_OUT0.$assign = "GPIO61";
flash1.peripheralDriver.child.$name = "drivers_ospi_v0_ospi_v0_am261x_template0";
led1.$name = "CONFIG_RUN_LED";
led2.$name = "CONFIG_ERR_LED";
adc1.$name = "ADC1";
adc1.adcClockPrescaler = "ADC_CLK_DIV_6_0";
adc1.ADC.AIN6.$used = false;
adc2.$name = "ADC0";
adc2.adcClockPrescaler = "ADC_CLK_DIV_6_0";
adc2.ADC.AIN1.$used = false;
adc2.ADC.AIN2.$used = false;
adc2.ADC.AIN3.$used = false;
adc2.ADC.AIN4.$used = false;
adc2.ADC.AIN5.$used = false;
adc2.ADC.AIN6.$used = false;
adc3.$name = "ADC2";
adc3.adcClockPrescaler = "ADC_CLK_DIV_6_0";
adc3.enableConverter = true;
adc3.ADC.$assign = "ADC2";
adc3.ADC.AIN0.$assign = "ADC2_AIN0";
adc3.ADC.AIN0.$used = false;
adc3.ADC.AIN1.$assign = "ADC2_AIN1";
adc3.ADC.AIN1.$used = false;
adc3.ADC.AIN2.$assign = "ADC2_AIN2";
adc3.ADC.AIN2.$used = false;
adc3.ADC.AIN3.$assign = "ADC2_AIN3";
adc3.ADC.AIN3.$used = false;
adc3.ADC.AIN4.$assign = "ADC2_AIN4";
adc3.ADC.AIN5.$assign = "ADC2_AIN5";
adc3.ADC.AIN5.$used = false;
adc3.ADC.AIN6.$assign = "ADC2_AIN6";
dac1.enableOutput = true;
dac1.$name = "DAC";
ecap1.$name = "ECAP_SYNC0";
ecap1.eventTwoPolarity = "ECAP_EVNT_FALLING_EDGE";
ecap1.eventFourPolarity = "ECAP_EVNT_FALLING_EDGE";
ecap1.syncOutMode = "ECAP_SYNC_OUT_DISABLED";
ecap1.ecapInput = "ECAP_INPUT_INPUTXBAR3";
ecap1.qualPeriod = "ECAP_PULSE_WIDTH_FILTER_CYCLE6";
ecap1.reArm = true;
epwm1.epwmTimebase_emulationMode = "EPWM_EMULATION_FREE_RUN";
epwm1.$name = "EPWM_U";
epwm1.EPWM.$assign = "EPWM2";
epwm1.EPWM.A.$assign = "GPIO47";
epwm1.EPWM.B.$assign = "GPIO48";
epwm2.$name = "EPWM_V";
epwm2.EPWM.$assign = "EPWM3";
epwm2.EPWM.A.$assign = "GPIO49";
epwm2.EPWM.B.$assign = "GPIO50";
epwm3.$name = "EPWM_W";
epwm3.EPWM.$assign = "EPWM4";
epwm3.EPWM.A.$assign = "GPIO51";
epwm3.EPWM.B.$assign = "GPIO52";
epwm4.$name = "EPWM_INT";
epwm4.epwmTimebase_emulationMode = "EPWM_EMULATION_FREE_RUN";
epwm4.epwmTimebase_period = 6250;
epwm4.epwmTimebase_periodLoadMode = "EPWM_PERIOD_DIRECT_LOAD";
epwm4.epwmTimebase_counterMode = "EPWM_COUNTER_MODE_UP_DOWN";
epwm4.epwmEventTrigger_enableInterrupt = true;
epwm4.epwmEventTrigger_interruptEventCount = "1";
epwm4.epwmEventTrigger_interruptSource = "EPWM_INT_TBCTR_PERIOD";
epwm4.epwmEventTrigger_EPWM_SOC_A_triggerEnable = true;
epwm4.epwmEventTrigger_EPWM_SOC_A_triggerSource = "EPWM_SOC_TBCTR_MIXED_EVENT";
epwm4.epwmEventTrigger_EPWM_SOC_A_triggerEventPrescalar = "1";
epwm4.epwmEventTrigger_EPWM_SOC_A_triggerMixedSource = ["EPWM_INT_MIX_TBCTR_D_CMPA","EPWM_INT_MIX_TBCTR_U_CMPA"];
epwm4.EPWM.$assign = "EPWM0";
epwm4.EPWM.A.$used = false;
epwm4.EPWM.B.$used = false;
epwm5.$name = "EPWM_PTO";
epwm5.EPWM.$assign = "EPWM5";
epwm5.EPWM.A.$assign = "GPIO53";
epwm5.EPWM.B.$assign = "GPIO54";
epwm6.$name = "EPWM_SDFM_CLK";
epwm6.EPWM.$assign = "EPWM6";
epwm6.EPWM.A.$assign = "GPIO55";
epwm6.EPWM.B.$used = false;
gpio1.$name = "GPIO_HMI_STROBE";
gpio1.pinDir = "OUTPUT";
gpio1.qualSel = "async";
gpio1.pu_pd = "pu";
gpio1.GPIO_n.$assign = "GPIO0";
gpio2.$name = "GPIO_OC_IBUS";
gpio2.GPIO_n.$assign = "GPIO23";
gpio3.pinDir = "OUTPUT";
gpio3.qualSel = "async";
gpio3.$name = "GPIO_MECH_BRK_HV";
gpio3.GPIO_n.$assign = "GPIO56";
gpio4.qualSel = "6sample";
gpio4.$name = "GPIO_DI0";
gpio4.GPIO_n.$assign = "GPIO42";
gpio5.$name = "GPIO_DI1";
gpio5.GPIO_n.$assign = "GPIO41";
gpio6.$name = "GPIO_DI2";
gpio6.GPIO_n.$assign = "GPIO31";
gpio7.$name = "GPIO_DI3";
gpio7.GPIO_n.$assign = "GPIO32";
gpio8.$name = "GPIO_DI4";
gpio8.GPIO_n.$assign = "GPIO33";
gpio9.pinDir = "OUTPUT";
gpio9.$name = "GPIO_DQ0";
gpio9.GPIO_n.$assign = "GPIO34";
gpio10.pinDir = "OUTPUT";
gpio10.$name = "GPIO_DQ1";
gpio10.GPIO_n.$assign = "GPIO35";
gpio11.pinDir = "OUTPUT";
gpio11.$name = "GPIO_DQ2";
gpio11.GPIO_n.$assign = "GPIO36";
gpio12.$name = "GPIO_MOD_EN";
gpio12.GPIO_n.$assign = "GPIO29";
gpio13.$name = "GPIO_OC_W";
gpio13.GPIO_n.$assign = "GPIO24";
gpio14.$name = "GPIO_OC_U";
gpio14.GPIO_n.$assign = "GPIO25";
gpio15.pinDir = "OUTPUT";
gpio15.$name = "GPIO_POW_BRK_EN";
gpio15.GPIO_n.$assign = "GPIO57";
gpio16.$name = "ECAT_RESET";
gpio16.pinDir = "OUTPUT";
gpio16.defaultValue = "1";
gpio16.GPIO_n.$assign = "GPIO84";
gpio17.$name = "ECAT_RUN";
gpio17.pinDir = "OUTPUT";
led1.peripheralDriver = gpio17;
gpio17.GPIO_n.$assign = "GPIO89";
gpio18.$name = "ECAT_ERR";
gpio18.pinDir = "OUTPUT";
led2.peripheralDriver = gpio18;
gpio18.GPIO_n.$assign = "GPIO88";
gpio19.$name = "ECAT_SYNC0";
gpio19.GPIO_n.$assign = "GPIO8";
i2c1.$name = "CONFIG_I2C0";
i2c1.ownTargetAddr = 0x50;
eeprom1.peripheralDriver = i2c1;
i2c1.I2C.SCL.pu_pd = "pu";
i2c1.I2C.SDA.pu_pd = "pu";
i2c1.I2C_child.$name = "drivers_i2c_v1_i2c_v1_template0";
mcspi1.$name = "MCSPI_HMI";
mcspi1.intrEnable = "POLLED";
mcspi1.sdkInfra = "LLD";
mcspi1.inputSelect = "0";
mcspi1.dpe0 = "DISABLE";
mcspi1.dpe1 = "ENABLE";
mcspi1.SPI.$assign = "SPI1";
mcspi1.SPI.CLK.$assign = "GPIO16";
mcspi1.SPI.D0.$assign = "GPIO17";
mcspi1.SPI.D1.$assign = "GPIO18";
mcspi1.mcspiChannel[0].$name = "CONFIG_MCSPI_CH0";
mcspi1.mcspiChannel[0].CSn.$assign = "GPIO15";
mcspi1.child.$name = "drivers_mcspi_v1_mcspi_v1_template_lld1";
mcspi2.$name = "MCSPI_EPR";
mcspi2.intrEnable = "POLLED";
mcspi2.sdkInfra = "LLD";
mcspi2.SPI.$assign = "SPI2";
mcspi2.SPI.CLK.$assign = "GPIO129";
mcspi2.SPI.D0.$assign = "GPIO130";
mcspi2.SPI.D1.$assign = "GPIO128";
mcspi2.mcspiChannel[0].$name = "CONFIG_MCSPI_CH1";
mcspi2.mcspiChannel[0].bitRate = 2000000;
mcspi2.mcspiChannel[0].CSn.$assign = "GPIO138";
mcspi2.child.$name = "drivers_mcspi_v1_mcspi_v1_template_lld0";
rti1.$name = "RTI_CPU";
rti1.clkSource = "SYS_CLK";
rti1.cntr0OpFreq = 125000000;
rti1.RTI.$assign = "RTI1";
sdfm1.Use_FilterChannel_1 = true;
sdfm1.Use_FilterChannel_2 = true;
sdfm1.Ch2_SDCLKSEL = "SDFM_CLK_SOURCE_SD1_CLK";
sdfm1.Ch1_DataFilterEnable = true;
sdfm1.Ch1_ComparatorEnable = true;
sdfm1.Ch1_DOSR = 128;
sdfm1.Ch1_DataFilter_Representation = "SDFM_DATA_FORMAT_16_BIT";
sdfm1.Ch2_DataFilterEnable = true;
sdfm1.Ch2_ComparatorEnable = true;
sdfm1.Ch2_DOSR = 128;
sdfm1.Ch2_DataFilter_Representation = "SDFM_DATA_FORMAT_16_BIT";
sdfm1.Ch1_SD_modulatorFrequency = 17.857;
sdfm1.$name = "SDFM_IUW";
sdfm1.SDFM.$assign = "SDFM1";
sdfm1.SDFM.CLK2.$used = false;
sdfm1.SDFM.CLK3.$used = false;
sdfm1.SDFM.D0.$assign = "GPIO131";
sdfm1.SDFM.D1.$assign = "GPIO133";
sdfm1.SDFM.D2.$used = false;
sdfm1.SDFM.D3.$used = false;
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";
const soc_ctrl = scripting.addModule("/drivers/soc_ctrl/soc_ctrl", {}, false);
soc_ctrl.soc_ctrl_adc = soc_ctrl_adc1;
adc.adcReferences = 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_ecap = scripting.addModule("/drivers/soc_ctrl/v0/subModules/soc_ctrl_ecap", {}, false);
const soc_ctrl_ecap1 = soc_ctrl_ecap.addInstance({}, false);
soc_ctrl_ecap1.$name = "soc_ctrl_ecap0";
soc_ctrl.soc_ctrl_ecap = soc_ctrl_ecap1;
ecap.ecapSocControls = soc_ctrl_ecap1;
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;
sdfm.soc_ctrl_sdfm = soc_ctrl_sdfm1;
uart1.$name = "UART_ENC";
uart1.intrEnable = "DISABLE";
uart1.hwFlowControl = true;
uart1.baudRate = 5000000;
uart1.child.$name = "drivers_uart_v2_uart_v2_template1";
uart1.UART.$assign = "UART3";
uart1.UART.RXD.$assign = "GPIO11";
uart1.UART.TXD.$assign = "GPIO12";
uart1.UART.RTSn.$assign = "GPIO14";
uart1.UART.CTSn.$assign = "GPIO13";
uart1.UART.CTSn.$used = false;
uart2.$name = "UART_MDB";
uart2.intrEnable = "DISABLE";
uart2.clockSource = "SOC_RcmPeripheralClockSource_DPLL_PER_HSDIV0_CLKOUT0";
uart2.inputClkFreq = 48000000;
uart2.baudRate = 19200;
uart2.parityType = "ODD";
uart2.UART.$assign = "UART0";
uart2.child.$name = "drivers_uart_v2_uart_v2_template2";
watchdog1.$name = "CONFIG_WDT0";
watchdog1.wdt_clk_src = "SOC_RcmPeripheralClockSource_XTALCLK";
watchdog1.wdt_func_clk = 12500000;
watchdog1.expirationTime = 2000;
ethercat1.$name = "CONFIG_ETHERCAT0";
ethercat1.ethphy[0].$name = "CONFIG_ETHPHY0";
ethercat1.ethphy[0].mdioPort = 1;
ethercat1.ethphy[0].name = "CUSTOM";
ethercat1.ethphy[0].customDeviceName = "DP83822";
ethercat1.ethphy[1].$name = "CONFIG_ETHPHY1";
ethercat1.ethphy[1].mdioPort = 2;
ethercat1.ethphy[1].name = "CUSTOM";
ethercat1.ethphy[1].customDeviceName = "DP83822";
const pruicss = scripting.addModule("/drivers/pruicss/pruicss", {}, false);
const pruicss1 = pruicss.addInstance({}, false);
pruicss1.$name = "CONFIG_PRU_ICSS0";
ethercat1.icss = pruicss1;
pruicss1.AdditionalICSSSettings[0].$name = "CONFIG_PRU_ICSS_IO0";
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.baseAddr = 0x80000;
mpu_armv73.size = 15;
mpu_armv73.accessPermissions = "Supervisor RD+WR, User RD";
mpu_armv74.$name = "CONFIG_MPU_REGION3";
mpu_armv74.baseAddr = 0x70000000;
mpu_armv74.size = 21;
mpu_armv74.accessPermissions = "Supervisor RD+WR, User RD";
mpu_armv75.$name = "CONFIG_MPU_REGION4";
mpu_armv75.baseAddr = 0x70100000;
mpu_armv75.size = 17;
mpu_armv75.attributes = "NonCached";
mpu_armv75.accessPermissions = "Supervisor RD+WR, User RD";
mpu_armv75.allowExecute = false;
mpu_armv76.$name = "CONFIG_MPU_REGION5";
mpu_armv76.baseAddr = 0x50D00000;
mpu_armv76.size = 14;
mpu_armv76.attributes = "Device";
mpu_armv76.accessPermissions = "Supervisor RD+WR, User RD";
mpu_armv76.allowExecute = false;
mpu_armv77.$name = "CONFIG_MPU_REGION6";
mpu_armv77.baseAddr = 0x72000000;
mpu_armv77.size = 14;
mpu_armv77.attributes = "NonCached";
mpu_armv77.accessPermissions = "Supervisor RD+WR, User RD";
mpu_armv77.allowExecute = false;
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(4);
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;
section5.output_section[3].$name = ".usbCxtRam";
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;
section13.$name = "USB Non Cache Memory";
section13.load_memory = "NON_CACHE_MEM";
section13.output_section.create(1);
section13.output_section[0].$name = ".bss.nocache";
section14.$name = "MATHLIB_PLACE";
section14.group = false;
section14.load_memory = "R5F_TCMA";
section14.output_section.create(1);
section14.output_section[0].$name = "armiqmath";
section14.output_section[0].palignment = true;
bissc1.$name = "CONFIG_BISSC0";
bissc1["PRU-ICSS1"].PR1_PRU1_GPIO1.$used = true;
bissc1["PRU-ICSS1"].PR1_PRU1_GPIO0.$used = true;
bissc1["PRU-ICSS1"].PR1_PRU1_GPIO9.$used = true;
const pruicss2 = pruicss.addInstance({}, false);
pruicss2.$name = "CONFIG_PRU_ICSS1";
bissc1.pru = pruicss2;
pruicss2.AdditionalICSSSettings[0].$name = "CONFIG_PRU_ICSS_IO1";
tinyusb1.$name = "CONFIG_TINYUSB0";
tinyusb1.USB0.$assign = "USB0";
epwm_xbar1.$name = "CONFIG_EPWM_XBAR0";
epwm_xbar1.xbarOutput = ["ADC0_EVT1","ADC1_EVT1","ADC2_EVT1"];
input_xbar1.$name = "CONFIG_INPUT_XBAR0";
input_xbar1.xbarOutput = "GPIO23";
input_xbar2.$name = "CONFIG_INPUT_XBAR1";
input_xbar2.xbarOutput = "GPIO24";
input_xbar2.instance = "INPUT_XBAR_1";
input_xbar3.$name = "CONFIG_INPUT_XBAR2";
input_xbar3.instance = "INPUT_XBAR_2";
input_xbar3.xbarOutput = "GPIO25";
input_xbar4.$name = "CONFIG_INPUT_XBAR3";
input_xbar4.instance = "INPUT_XBAR_3";
input_xbar4.xbarOutput = "GPIO8";
int_xbar1.$name = "CONFIG_INT_XBAR0";
int_xbar1.xbarOutput = ["EPWM0_INT"];
int_xbar2.$name = "CONFIG_INT_XBAR1";
int_xbar2.xbarOutput = ["ECAP0_INT"];
int_xbar2.instance = "INT_XBAR_1";
/**
* Pinmux solution for unlocked pins/peripherals. This ensures that minor changes to the automatic solver in a future
* version of the tool will not impact the pinmux you originally saw. These lines can be completely deleted in order to
* re-solve from scratch.
*/
flash1.peripheralDriver.OSPI.D0.$suggestSolution = "GPIO2";
adc1.ADC.$suggestSolution = "ADC1";
adc1.ADC.AIN0.$suggestSolution = "ADC1_AIN0";
adc1.ADC.AIN1.$suggestSolution = "ADC1_AIN1";
adc1.ADC.AIN2.$suggestSolution = "ADC1_AIN2";
adc1.ADC.AIN3.$suggestSolution = "ADC1_AIN3";
adc1.ADC.AIN4.$suggestSolution = "ADC1_AIN4";
adc1.ADC.AIN5.$suggestSolution = "ADC1_AIN5";
adc2.ADC.$suggestSolution = "ADC0";
adc2.ADC.AIN0.$suggestSolution = "ADC0_AIN0";
i2c1.I2C.$suggestSolution = "I2C1";
i2c1.I2C.SCL.$suggestSolution = "GPIO66";
i2c1.I2C.SDA.$suggestSolution = "GPIO65";
sdfm1.SDFM.CLK0.$suggestSolution = "GPIO77";
sdfm1.SDFM.CLK1.$suggestSolution = "GPIO132";
uart2.UART.RXD.$suggestSolution = "GPIO27";
uart2.UART.TXD.$suggestSolution = "GPIO28";
ethercat1["PRU-ICSS0-IEP"].$suggestSolution = "PRU-ICSS0-IEP";
ethercat1["PRU-ICSS0-IEP"].PR0_IEP0_EDC_SYNC_OUT0.$suggestSolution = "GPIO119";
ethercat1["PRU-ICSS0-IEP"].PR0_IEP0_EDC_SYNC_OUT1.$suggestSolution = "GPIO124";
ethercat1["PRU-ICSS0-IEP"].PR0_IEP0_EDIO_DATA_IN_OUT30.$suggestSolution = "GPIO105";
ethercat1["PRU-ICSS0-IEP"].PR0_IEP0_EDIO_DATA_IN_OUT31.$suggestSolution = "GPIO104";
ethercat1["PRU-ICSS0"].$suggestSolution = "PRU-ICSS0";
ethercat1["PRU-ICSS0"].PR0_PRU0_GPIO8.$suggestSolution = "GPIO90";
ethercat1["PRU-ICSS0"].PR0_PRU0_GPIO5.$suggestSolution = "GPIO87";
ethercat1["PRU-ICSS0"].PR0_PRU0_GPIO6.$suggestSolution = "GPIO91";
ethercat1["PRU-ICSS0"].PR0_PRU0_GPIO4.$suggestSolution = "GPIO92";
ethercat1["PRU-ICSS0"].PR0_PRU0_GPIO0.$suggestSolution = "GPIO93";
ethercat1["PRU-ICSS0"].PR0_PRU0_GPIO1.$suggestSolution = "GPIO94";
ethercat1["PRU-ICSS0"].PR0_PRU0_GPIO2.$suggestSolution = "GPIO95";
ethercat1["PRU-ICSS0"].PR0_PRU0_GPIO3.$suggestSolution = "GPIO96";
ethercat1["PRU-ICSS0"].PR0_PRU0_GPIO16.$suggestSolution = "GPIO97";
ethercat1["PRU-ICSS0"].PR0_PRU0_GPIO15.$suggestSolution = "GPIO98";
ethercat1["PRU-ICSS0"].PR0_PRU0_GPIO11.$suggestSolution = "GPIO99";
ethercat1["PRU-ICSS0"].PR0_PRU0_GPIO12.$suggestSolution = "GPIO100";
ethercat1["PRU-ICSS0"].PR0_PRU0_GPIO13.$suggestSolution = "GPIO101";
ethercat1["PRU-ICSS0"].PR0_PRU0_GPIO14.$suggestSolution = "GPIO102";
ethercat1["PRU-ICSS0"].PR0_PRU1_GPIO8.$suggestSolution = "GPIO106";
ethercat1["PRU-ICSS0"].PR0_PRU1_GPIO5.$suggestSolution = "GPIO103";
ethercat1["PRU-ICSS0"].PR0_PRU1_GPIO6.$suggestSolution = "GPIO107";
ethercat1["PRU-ICSS0"].PR0_PRU1_GPIO4.$suggestSolution = "GPIO108";
ethercat1["PRU-ICSS0"].PR0_PRU1_GPIO0.$suggestSolution = "GPIO109";
ethercat1["PRU-ICSS0"].PR0_PRU1_GPIO1.$suggestSolution = "GPIO110";
ethercat1["PRU-ICSS0"].PR0_PRU1_GPIO2.$suggestSolution = "GPIO111";
ethercat1["PRU-ICSS0"].PR0_PRU1_GPIO3.$suggestSolution = "GPIO112";
ethercat1["PRU-ICSS0"].PR0_PRU1_GPIO16.$suggestSolution = "GPIO113";
ethercat1["PRU-ICSS0"].PR0_PRU1_GPIO15.$suggestSolution = "GPIO114";
ethercat1["PRU-ICSS0"].PR0_PRU1_GPIO11.$suggestSolution = "GPIO115";
ethercat1["PRU-ICSS0"].PR0_PRU1_GPIO12.$suggestSolution = "GPIO116";
ethercat1["PRU-ICSS0"].PR0_PRU1_GPIO13.$suggestSolution = "GPIO117";
ethercat1["PRU-ICSS0"].PR0_PRU1_GPIO14.$suggestSolution = "GPIO118";
ethercat1["PRU-ICSS0-MDIO"].$suggestSolution = "PRU-ICSS0-MDIO";
ethercat1["PRU-ICSS0-MDIO"].PR0_MDIO0_MDIO.$suggestSolution = "GPIO85";
ethercat1["PRU-ICSS0-MDIO"].PR0_MDIO0_MDC.$suggestSolution = "GPIO86";
bissc1["PRU-ICSS1"].$suggestSolution = "PRU-ICSS1";
bissc1["PRU-ICSS1"].PR1_PRU1_GPIO1.$suggestSolution = "GPIO72";
bissc1["PRU-ICSS1"].PR1_PRU1_GPIO0.$suggestSolution = "GPIO71";
bissc1["PRU-ICSS1"].PR1_PRU1_GPIO9.$suggestSolution = "GPIO74";
tinyusb1.USB0.USB0_DM.$suggestSolution = "GPIO140";
tinyusb1.USB0.USB0_DP.$suggestSolution = "GPIO139";
tinyusb1.USB0.USB0_DRVVBUS.$suggestSolution = "GPIO121";