Part Number: AM2612
Other Parts Discussed in Thread: SYSCONFIG
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().Part Number: AM2612
Other Parts Discussed in Thread: SYSCONFIG
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";
Hi Zhou,
Will it be possible for you to share your project with me?
Regards,
Shaunak
Hi Shaunak.
I’m afraid that’s not an option – our company blocks the external sharing of source files and header files. Could I instead send you the project in the form of a library file or other such format? From what you’ve said, there are no compatibility issues between these two modules, and the problem is actually with my project, is that right?
Regards
If not the whole project, can you please share your linker.cmd and .map files for both the working and non-working cases.
Regards,
Shaunak
Hi Zhou,
Attaching the updated sysconfig file as discussed on email.
https://e2e.ti.com/cfs-file/__key/communityserver-discussions-components-files/908/4111.example.syscfg
Regards,
Shaunak