I am currently running MCU+ SDK for AM263Px version 10.1.0.31. You can see from the file that I have an RTI instance set to use RTI4 with a clock source of SYS_CLK. When this generates code, the CONFIG_ADC_TIMER4_CLOCK_SRC_MUX_ADDR is set to a value of 0x53208124u which is incorrect. sysconfig file: /** * These arguments were used when this file was generated. They will be automatically applied on subsequent loads * via the GUI or CLI. Run CLI with '--help' for additional information on how to override these arguments. * @cliArgs --device "AM263Px" --part "AM263P4" --package "ZCZ_S" --context "r5fss0-0" --product "MCU_PLUS_SDK_AM263Px@10.01.00" * @v2CliArgs --device "AM263P4-Q1" --package "NFBGA (ZCZ-S)" --context "r5fss0-0" --product "MCU_PLUS_SDK_AM263Px@10.01.00" * @versions {"tool":"1.22.0+3893"} */ /** * Import the modules used in this configuration. */ const eeprom = scripting.addModule("/board/eeprom/eeprom", {}, false); const eeprom1 = eeprom.addInstance(); const pmic = scripting.addModule("/board/pmic/pmic", {}, false); const pmic1 = pmic.addInstance(); const adc = scripting.addModule("/drivers/adc/adc", {}, false); const adc1 = adc.addInstance(); const edma = scripting.addModule("/drivers/edma/edma", {}, false); const edma1 = edma.addInstance(); const gpio = scripting.addModule("/drivers/gpio/gpio", {}, false); const gpio1 = gpio.addInstance(); const gpio2 = gpio.addInstance(); const i2c = scripting.addModule("/drivers/i2c/i2c", {}, false); const i2c1 = i2c.addInstance(); const i2c2 = i2c.addInstance(); const mcan = scripting.addModule("/drivers/mcan/mcan", {}, false); const mcan1 = mcan.addInstance(); const mcan2 = mcan.addInstance(); const mcan3 = mcan.addInstance(); const mcspi = scripting.addModule("/drivers/mcspi/mcspi", {}, false); const mcspi1 = mcspi.addInstance(); const rti = scripting.addModule("/drivers/rti/rti", {}, false); const rti1 = rti.addInstance(); const debug_log = scripting.addModule("/kernel/dpl/debug_log"); const dpl_cfg = scripting.addModule("/kernel/dpl/dpl_cfg"); const mpu_armv7 = scripting.addModule("/kernel/dpl/mpu_armv7", {}, false); const mpu_armv71 = mpu_armv7.addInstance(); const mpu_armv72 = mpu_armv7.addInstance(); const mpu_armv73 = mpu_armv7.addInstance(); const mpu_armv74 = mpu_armv7.addInstance(); const mpu_armv75 = mpu_armv7.addInstance(); const mpu_armv76 = mpu_armv7.addInstance(); const mpu_armv77 = mpu_armv7.addInstance(); const timer = scripting.addModule("/kernel/dpl/timer", {}, false); const timer1 = timer.addInstance(); const default_linker = scripting.addModule("/memory_configurator/default_linker", {}, false); const default_linker1 = default_linker.addInstance(); const general = scripting.addModule("/memory_configurator/general", {}, false); const general1 = general.addInstance(); const region = scripting.addModule("/memory_configurator/region", {}, false); const region1 = region.addInstance(); const section = scripting.addModule("/memory_configurator/section", {}, false); const section1 = section.addInstance(); const section2 = section.addInstance(); const section3 = section.addInstance(); const section4 = section.addInstance(); const section5 = section.addInstance(); const section6 = section.addInstance(); const section7 = section.addInstance(); const section8 = section.addInstance(); const section9 = section.addInstance(); const section10 = section.addInstance(); const section11 = section.addInstance(); const section12 = section.addInstance(); const section13 = section.addInstance(); const int_xbar = scripting.addModule("/xbar/int_xbar/int_xbar", {}, false); const int_xbar1 = int_xbar.addInstance(); /** * Write custom configuration values to the imported modules. */ eeprom1.$name = "CONFIG_EEPROM0"; pmic1.$name = "CONFIG_PMIC0"; adc1.$name = "CONFIG_ADC0"; adc1.soc11Channel = "ADC_CH_ADCIN1"; adc1.soc12Channel = "ADC_CH_ADCIN2"; adc1.soc13Channel = "ADC_CH_ADCIN3"; adc1.soc14Channel = "ADC_CH_ADCIN4"; adc1.soc15Channel = "ADC_CH_ADCIN5"; adc1.interruptPulseMode = "ADC_PULSE_END_OF_CONV"; adc1.enableConverter = true; adc1.enableInterrupt1ContinuousMode = true; adc1.adcClockPrescaler = "ADC_CLK_DIV_3_0"; adc1.burstTrigger = "ADC_TRIGGER_RTI1"; adc1.socHighPriorityMode = "ADC_PRI_THRU_SOC9_HIPRI"; adc1.interrupt1SOCSource = "ADC_SOC_NUMBER15"; adc1.enableBurstMode = true; adc1.burstSize = 6; adc1.enableInterrupt1 = true; adc1.ADC.$assign = "ADC0"; adc1.ADC.AIN0.$assign = "ADC0_AIN0"; adc1.ADC.AIN1.$assign = "ADC0_AIN1"; adc1.ADC.AIN2.$assign = "ADC0_AIN2"; adc1.ADC.AIN3.$assign = "ADC0_AIN3"; adc1.ADC.AIN4.$assign = "ADC0_AIN4"; adc1.ADC.AIN5.$assign = "ADC0_AIN5"; gpio1.$name = "GPIO_LED_RED"; gpio1.pinDir = "OUTPUT"; gpio1.GPIO_n.$assign = "LIN2_TXD"; gpio2.$name = "GPIO_LED_GREEN"; gpio2.pinDir = "OUTPUT"; gpio2.GPIO_n.$assign = "EPWM11_B"; i2c1.$name = "CONFIG_I2C0"; i2c1.I2C.$assign = "I2C2"; i2c1.I2C.SCL.$assign = "UART0_RTSn"; i2c1.I2C.SDA.$assign = "UART0_CTSn"; i2c1.I2C_child.$name = "drivers_i2c_v1_i2c_v1_template0"; i2c2.$name = "EEPROM_I2C_CONFIG"; eeprom1.peripheralDriver = i2c2; i2c2.I2C.$assign = "I2C0"; i2c2.I2C.SCL.$assign = "I2C0_SCL"; i2c2.I2C.SDA.$assign = "I2C0_SDA"; i2c2.I2C_child.$name = "drivers_i2c_v1_i2c_v1_template1"; mcan1.nomRatePrescalar = 7; mcan1.dataRatePrescalar = 7; mcan1.dataTimeSeg1 = 15; mcan1.dataTimeSeg2 = 2; mcan1.$name = "CONFIG_CAN1"; mcan1.MCAN.$assign = "MCAN4"; mcan1.MCAN.RX.slewRate = "high"; mcan1.MCAN.RX.$assign = "EPWM9_A"; mcan1.MCAN.TX.slewRate = "high"; mcan1.MCAN.TX.$assign = "EPWM9_B"; mcan2.nomRatePrescalar = 7; mcan2.dataRatePrescalar = 7; mcan2.dataTimeSeg1 = 15; mcan2.dataTimeSeg2 = 2; mcan2.$name = "CONFIG_CAN2"; mcan2.MCAN.$assign = "MCAN5"; mcan3.nomRatePrescalar = 7; mcan3.dataRatePrescalar = 7; mcan3.dataTimeSeg1 = 15; mcan3.dataTimeSeg2 = 2; mcan3.$name = "CONFIG_CAN3"; mcan3.MCAN.$assign = "MCAN2"; const mcan_v1_template = scripting.addModule("/drivers/mcan/v1/mcan_v1_template", {}, false); const mcan_v1_template1 = mcan_v1_template.addInstance({}, false); mcan_v1_template1.$name = "drivers_mcan_v1_mcan_v1_template0"; mcan1.child = mcan_v1_template1; mcan2.child = mcan_v1_template1; mcan3.child = mcan_v1_template1; mcspi1.$name = "CONFIG_MCSPI0"; pmic1.peripheralDriver = mcspi1; mcspi1.SPI.$assign = "SPI1"; mcspi1.mcspiChannel[0].$name = "CONFIG_MCSPI_CH0"; mcspi1.child.$name = "drivers_mcspi_v1_mcspi_v1_template0"; edma1.$name = "CONFIG_EDMA0"; mcspi1.edmaDriver = edma1; edma1.edmaRmDmaCh[0].$name = "CONFIG_EDMA_RM0"; edma1.edmaRmQdmaCh[0].$name = "CONFIG_EDMA_RM1"; edma1.edmaRmTcc[0].$name = "CONFIG_EDMA_RM2"; edma1.edmaRmParam[0].$name = "CONFIG_EDMA_RM3"; rti1.clkSource = "SYS_CLK"; rti1.counter0Enable = true; rti1.cntr0OpFreq = 32000; rti1.enableIntr1 = true; rti1.intrPriority1 = 3; rti1.compare0Enable = true; rti1.usecPerTick0 = 31.25; rti1.enableIntr0 = true; rti1.intrPriority0 = 3; rti1.$name = "CONFIG_ADC_TIMER4"; rti1.eventCallback0 = "test_interrupt"; rti1.RTI.$assign = "RTI4"; const soc_ctrl_adc = scripting.addModule("/drivers/soc_ctrl/v0/subModules/soc_ctrl_adc", {}, false); const soc_ctrl_adc1 = soc_ctrl_adc.addInstance({}, false); soc_ctrl_adc1.$name = "soc_ctrl_adc0"; adc.adcReferences = soc_ctrl_adc1; const soc_ctrl = scripting.addModule("/drivers/soc_ctrl/soc_ctrl", {}, false); soc_ctrl.soc_ctrl_adc = soc_ctrl_adc1; const soc_ctrl_cmpss = scripting.addModule("/drivers/soc_ctrl/v0/subModules/soc_ctrl_cmpss", {}, false); const soc_ctrl_cmpss1 = soc_ctrl_cmpss.addInstance({}, false); soc_ctrl_cmpss1.$name = "soc_ctrl_cmpss0"; soc_ctrl.soc_ctrl_cmpss = soc_ctrl_cmpss1; const soc_ctrl_epwm = scripting.addModule("/drivers/soc_ctrl/v0/subModules/soc_ctrl_epwm", {}, false); const soc_ctrl_epwm1 = soc_ctrl_epwm.addInstance({}, false); soc_ctrl_epwm1.$name = "soc_ctrl_epwm0"; soc_ctrl.soc_ctrl_epwm = soc_ctrl_epwm1; const soc_ctrl_sdfm = scripting.addModule("/drivers/soc_ctrl/v0/subModules/soc_ctrl_sdfm", {}, false); const soc_ctrl_sdfm1 = soc_ctrl_sdfm.addInstance({}, false); soc_ctrl_sdfm1.$name = "soc_ctrl_sdfm0"; soc_ctrl.soc_ctrl_sdfm = soc_ctrl_sdfm1; debug_log.enableUartLog = true; debug_log.uartLog.$name = "CONFIG_UART0"; debug_log.uartLog.UART.$assign = "UART0"; debug_log.uartLog.UART.RXD.$assign = "UART0_RXD"; debug_log.uartLog.UART.TXD.$assign = "UART0_TXD"; debug_log.uartLog.child.$name = "drivers_uart_v2_uart_v2_template0"; mpu_armv71.$name = "CONFIG_MPU_REGION0"; mpu_armv71.size = 31; mpu_armv71.attributes = "Device"; mpu_armv71.accessPermissions = "Supervisor RD+WR, User RD"; mpu_armv71.allowExecute = false; mpu_armv72.$name = "CONFIG_MPU_REGION1"; mpu_armv72.size = 15; mpu_armv72.accessPermissions = "Supervisor RD+WR, User RD"; mpu_armv73.$name = "CONFIG_MPU_REGION2"; mpu_armv73.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 = 0x50D00000; mpu_armv75.size = 14; mpu_armv75.allowExecute = false; mpu_armv75.attributes = "Device"; mpu_armv76.$name = "CONFIG_MPU_REGION5"; mpu_armv76.baseAddr = 0x72000000; mpu_armv76.size = 14; mpu_armv76.allowExecute = false; mpu_armv76.attributes = "NonCached"; mpu_armv77.$name = "CONFIG_MPU_REGION6"; mpu_armv77.baseAddr = 0x701D0000; mpu_armv77.allowExecute = false; mpu_armv77.attributes = "NonCached"; mpu_armv77.size = 15; timer1.$name = "CONFIG_TIMER0"; timer1.intrPriority = 5; timer1.timerCallback = "Timer_Tick_1ms_Interrupt"; timer1.RTI.$assign = "RTI1"; default_linker1.$name = "memory_configurator_default_linker0"; general1.$name = "CONFIG_GENERAL0"; general1.linker.$name = "TIARMCLANG0"; region1.$name = "MEMORY_REGION_CONFIGURATION0"; region1.memory_region.create(12); region1.memory_region[0].type = "TCMA"; region1.memory_region[0].$name = "R5F_VECS"; region1.memory_region[0].size = 0x40; region1.memory_region[0].auto = false; region1.memory_region[1].type = "TCMA"; region1.memory_region[1].$name = "R5F_TCMA"; region1.memory_region[1].size = 0x7FC0; region1.memory_region[2].type = "TCMB"; region1.memory_region[2].size = 0x8000; region1.memory_region[2].$name = "R5F_TCMB"; region1.memory_region[3].$name = "SBL"; region1.memory_region[3].auto = false; region1.memory_region[3].size = 0x40000; region1.memory_region[4].$name = "OCRAM"; region1.memory_region[4].auto = false; region1.memory_region[4].manualStartAddress = 0x70040000; region1.memory_region[4].size = 0x60000; region1.memory_region[5].type = "FLASH"; region1.memory_region[5].auto = false; region1.memory_region[5].manualStartAddress = 0x60100000; region1.memory_region[5].size = 0x80000; region1.memory_region[5].$name = "FLASH"; region1.memory_region[6].$name = "USER_SHM_MEM"; region1.memory_region[6].auto = false; region1.memory_region[6].manualStartAddress = 0x701D0000; region1.memory_region[6].size = 0x4000; region1.memory_region[6].isShared = true; region1.memory_region[6].shared_cores = ["r5fss0-1","r5fss1-0","r5fss1-1"]; region1.memory_region[7].$name = "LOG_SHM_MEM"; region1.memory_region[7].auto = false; region1.memory_region[7].manualStartAddress = 0x701D4000; region1.memory_region[7].size = 0x4000; region1.memory_region[7].isShared = true; region1.memory_region[7].shared_cores = ["r5fss0-1","r5fss1-0","r5fss1-1"]; region1.memory_region[8].type = "CUSTOM"; region1.memory_region[8].$name = "RTOS_NORTOS_IPC_SHM_MEM"; region1.memory_region[8].auto = false; region1.memory_region[8].manualStartAddress = 0x72000000; region1.memory_region[8].size = 0x3E80; region1.memory_region[8].isShared = true; region1.memory_region[8].shared_cores = ["r5fss0-1","r5fss1-0","r5fss1-1"]; region1.memory_region[9].type = "CUSTOM"; region1.memory_region[9].$name = "MAILBOX_HSM"; region1.memory_region[9].auto = false; region1.memory_region[9].manualStartAddress = 0x44000000; region1.memory_region[9].size = 0x3CE; region1.memory_region[9].isShared = true; region1.memory_region[9].shared_cores = ["r5fss0-1","r5fss1-0","r5fss1-1"]; region1.memory_region[10].type = "CUSTOM"; region1.memory_region[10].$name = "MAILBOX_R5F"; region1.memory_region[10].auto = false; region1.memory_region[10].manualStartAddress = 0x44000400; region1.memory_region[10].size = 0x3CE; region1.memory_region[10].isShared = true; region1.memory_region[10].shared_cores = ["r5fss0-1","r5fss1-0","r5fss1-1"]; region1.memory_region[11].type = "CUSTOM"; region1.memory_region[11].$name = "PRU_0_DMEM1"; region1.memory_region[11].auto = false; region1.memory_region[11].size = 0x2000; region1.memory_region[11].manualStartAddress = 0x48002000; section1.load_memory = "R5F_VECS"; section1.group = false; section1.$name = "Vector Table"; section1.output_section.create(1); section1.output_section[0].$name = ".vectors"; section1.output_section[0].palignment = true; section2.load_memory = "OCRAM"; section2.$name = "Text Segments"; section2.output_section.create(5); section2.output_section[0].$name = ".text.hwi"; section2.output_section[0].palignment = true; section2.output_section[1].$name = ".text.cache"; section2.output_section[1].palignment = true; section2.output_section[2].$name = ".text.mpu"; section2.output_section[2].palignment = true; section2.output_section[3].$name = ".text.boot"; section2.output_section[3].palignment = true; section2.output_section[4].$name = ".text:abort"; section2.output_section[4].palignment = true; section3.load_memory = "OCRAM"; section3.$name = "Code and Read-Only Data"; section3.output_section.create(2); section3.output_section[0].$name = ".text"; section3.output_section[0].palignment = true; section3.output_section[1].$name = ".rodata"; section3.output_section[1].palignment = true; section4.load_memory = "OCRAM"; section4.$name = "Data Segment"; section4.output_section.create(1); section4.output_section[0].$name = ".data"; section4.output_section[0].palignment = true; section5.load_memory = "OCRAM"; section5.$name = "Memory Segments"; section5.output_section.create(3); section5.output_section[0].$name = ".bss"; section5.output_section[0].output_sections_start = "__BSS_START"; section5.output_section[0].output_sections_end = "__BSS_END"; section5.output_section[0].palignment = true; section5.output_section[1].$name = ".sysmem"; section5.output_section[1].palignment = true; section5.output_section[2].$name = ".stack"; section5.output_section[2].palignment = true; section6.load_memory = "OCRAM"; section6.$name = "Stack Segments"; section6.output_section.create(5); section6.output_section[0].$name = ".irqstack"; section6.output_section[0].output_sections_start = "__IRQ_STACK_START"; section6.output_section[0].output_sections_end = "__IRQ_STACK_END"; section6.output_section[0].input_section.create(1); section6.output_section[0].input_section[0].$name = ". = . + __IRQ_STACK_SIZE;"; section6.output_section[1].$name = ".fiqstack"; section6.output_section[1].output_sections_start = "__FIQ_STACK_START"; section6.output_section[1].output_sections_end = "__FIQ_STACK_END"; section6.output_section[1].input_section.create(1); section6.output_section[1].input_section[0].$name = ". = . + __FIQ_STACK_SIZE;"; section6.output_section[2].$name = ".svcstack"; section6.output_section[2].output_sections_start = "__SVC_STACK_START"; section6.output_section[2].output_sections_end = "__SVC_STACK_END"; section6.output_section[2].input_section.create(1); section6.output_section[2].input_section[0].$name = ". = . + __SVC_STACK_SIZE;"; section6.output_section[3].$name = ".abortstack"; section6.output_section[3].output_sections_start = "__ABORT_STACK_START"; section6.output_section[3].output_sections_end = "__ABORT_STACK_END"; section6.output_section[3].input_section.create(1); section6.output_section[3].input_section[0].$name = ". = . + __ABORT_STACK_SIZE;"; section6.output_section[4].$name = ".undefinedstack"; section6.output_section[4].output_sections_start = "__UNDEFINED_STACK_START"; section6.output_section[4].output_sections_end = "__UNDEFINED_STACK_END"; section6.output_section[4].input_section.create(1); section6.output_section[4].input_section[0].$name = ". = . + __UNDEFINED_STACK_SIZE;"; section7.load_memory = "OCRAM"; section7.$name = "Initialization and Exception Handling"; section7.output_section.create(3); section7.output_section[0].$name = ".ARM.exidx"; section7.output_section[0].palignment = true; section7.output_section[1].$name = ".init_array"; section7.output_section[1].palignment = true; section7.output_section[2].$name = ".fini_array"; section7.output_section[2].palignment = true; section8.load_memory = "USER_SHM_MEM"; section8.type = "NOLOAD"; section8.$name = "User Shared Memory"; section8.group = false; section8.output_section.create(1); section8.output_section[0].$name = ".bss.user_shared_mem"; section8.output_section[0].alignment = 0; section9.load_memory = "LOG_SHM_MEM"; section9.$name = "Log Shared Memory"; section9.group = false; section9.type = "NOLOAD"; section9.output_section.create(1); section9.output_section[0].$name = ".bss.log_shared_mem"; section9.output_section[0].alignment = 0; section10.load_memory = "RTOS_NORTOS_IPC_SHM_MEM"; section10.type = "NOLOAD"; section10.$name = "IPC Shared Memory"; section10.group = false; section10.output_section.create(1); section10.output_section[0].$name = ".bss.ipc_vring_mem"; section10.output_section[0].alignment = 0; section11.load_memory = "MAILBOX_HSM"; section11.type = "NOLOAD"; section11.$name = "SIPC HSM Queue Memory"; section11.group = false; section11.output_section.create(1); section11.output_section[0].$name = ".bss.sipc_hsm_queue_mem"; section11.output_section[0].alignment = 0; section12.load_memory = "MAILBOX_R5F"; section12.$name = "SIPC R5F Queue Memory"; section12.group = false; section12.type = "NOLOAD"; section12.output_section.create(1); section12.output_section[0].$name = ".bss.sipc_secure_host_queue_mem"; section12.output_section[0].alignment = 0; section13.$name = "PRU_0 Shared Memory"; section13.type = "NOLOAD"; section13.load_memory = "PRU_0_DMEM1"; section13.output_section.create(1); section13.output_section[0].$name = ".current_servo_structs"; section13.output_section[0].alignment = 0; int_xbar1.$name = "CONFIG_INT_ADC"; int_xbar1.xbarOutput = ["ADC0_INT1"]; /** * 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. */ mcan2.MCAN.RX.$suggestSolution = "EPWM10_A"; mcan2.MCAN.TX.$suggestSolution = "EPWM10_B"; mcan3.MCAN.RX.$suggestSolution = "MCAN2_RX"; mcan3.MCAN.TX.$suggestSolution = "MCAN2_TX"; mcspi1.SPI.CLK.$suggestSolution = "SPI1_CLK"; mcspi1.SPI.D0.$suggestSolution = "SPI1_D0"; mcspi1.SPI.D1.$suggestSolution = "SPI1_D1"; mcspi1.mcspiChannel[0].CSn.$suggestSolution = "SPI1_CS0";
↧