This thread has been locked.

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

AM437x PRU IRAM memory size

Other Parts Discussed in Thread: AM4378

Hi TI team,
I am testing PRU-ICSS1 at AM437x Starter Kit.
I’m facing a problem with the program memory size. (PRU-ICSS1 - 12KB)
if my code size is over 0x02000, I'll see the error at "Disassembly window".

Please see the following photo.

Please help me.

================== PRU_IEP.map ==================
MEMORY CONFIGURATION

name origin length used unused attr fill
---------------------- -------- --------- -------- -------- ---- --------
PAGE 0:
PRU_IMEM 00000000 00003000 000020c8 00000f38 RWIX

PAGE 1:
PRU_DMEM_0_1 00000000 00002000 00000136 00001eca RWIX
PRU_DMEM_1_0 00002000 00002000 00000000 00002000 RWIX

================== AM437x_PRU_SS1.cmd ==================

MEMORY
{
PAGE 0:
PRU_IMEM : org = 0x00000000 len = 0x00003000 /* 12kB PRU-ICSS1 Instruction RAM */

PAGE 1:

/* RAM */

PRU_DMEM_0_1 : org = 0x00000000 len = 0x00002000 CREGISTER=24 /* 8kB PRU Data RAM 0_1 */
PRU_DMEM_1_0 : org = 0x00002000 len = 0x00002000 CREGISTER=25 /* 8kB PRU Data RAM 1_0 */
PRU_SHAREDMEM : org = 0x00010000 len = 0x00008000 CREGISTER=28 /* 32kB Shared RAM */

  • Hi,

    The AM437x PRU-ICSS1 Program memory physical size is indeed 12kB per PRU core. There is nothing that can be done about this. I don't understand what help is expected from TI.

  • Sorry, I didn't understand your question initially. Please disregard my previous post. I will ask the PRU experts to check this.
  • Check your software that is loading the PRU instruction memory that it is not capped at 8kB (old AM335x limit...).

    Regards,
  • Hi Frank and Biser,
    Thanks for your reply.
    I already checked my software, but I still couldn't find the problem.
    Do you have any suggestions?

    My environment:
    Code Composer Studio Version: 6.1.3.00033
    Example : C:\ti\pru\examples\am437x\PRU_IEP
    GEL: C:\ti\ccsv6\ccs_base\emulation\boards\evmam437x\gel
    Compiler: C:\ti\ccsv6\tools\compiler\ti-cgt-pru_2.1.2
  • I have replicated your issue on my AM437x GP EVM and CCS v6.1.3.

    It appears to be an issue where CCS has the wrong size for the PRU instruction RAMs in the files that specify the memory map of the AM437x/PRUs. I will notify the CCS team and let you know their response.

    Jason Reeder
  • The issue has been acknowledged by the CCS team and will be corrected in the next version of the Sitara device package that gets released.

    In the meantime you can do the following:

    • Close CCS
    • Replace the '<%ccs_install_dir%>/ccsv6/ccs_base/common/targetdb/devices/AM4378.xml' file with the one that I have attached which updates the PRU memory maps:
      <?xml version="1.0" encoding="UTF-8" standalone="no"?>
      <device id="AM4378" partnum="AM4378" HW_revision="1" XML_version="2" desc="AM4378" description="AM43x - Cortex A9 Embedded Processor">
      	<!-- Filter for project wizard -->
      	<property Type="stringfield" Value="AM473x - Cortex A8" id="FilterString" />
          <instance XML_version="1.2" desc="IcePick_D_0" href="routers/icepick_d.xml" id="IcePick_D_0" xml="icepick_d.xml" xmlpath="routers"/>
          <router HW_revision="1.0" XML_version="1.2" description="ICEPick_D Router" id="IcePick_D_0" isa="ICEPICK_D">
              <subpath id="M3_wakeupSS">
                  <property Type="numericfield" Value="0xb" id="Port Number"/>
                  <instance XML_version="1.2" desc="CS_DAP_0" href="routers/cs_dap.xml" id="CS_DAP_0" xml="cs_dap.xml" xmlpath="routers"/>
                  <router HW_revision="1.0" XML_version="1.2" desc="CS_DAP_M3" description="CS_DAP Router" id="CS_DAP_0" isa="CS_DAP">
                      <property Type="numericfield" Value="0x4b6b902f" id="DAP TAP ID"/>
                      <subpath desc="M3_wakeupSS_0" id="M3_wakeupSS_1">
                          <property Type="choicelist" Value="0" id="Type"/>
                          <property Type="choicelist" Value="1" id="Pseudo"/>
                          <instance XML_version="1.2" desc="M3_wakeupSS_1" href="cpus/cortex_m3.xml" id="M3_wakeupSS_1" xml="cortex_m3.xml" xmlpath="cpus"/>
                          <property Type="numericfield" Value="0xb" id="Port Number"/>
                      </subpath>
                  </router>
              </subpath>
              <subpath id="DAP">
                  <property Type="numericfield" Value="0xc" id="Port Number"/>
                  <instance XML_version="1.2" desc="CS_DAP_DebugSS" href="routers/cs_dap.xml" id="CS_DAP_DebugSS" xml="cs_dap.xml" xmlpath="routers"/>
                  <router HW_revision="1.0" XML_version="1.2" description="CS_DAP Router" id="CS_DAP_DebugSS" isa="CS_DAP">
                      <property Type="numericfield" Value="0x46b6902f" id="DAP TAP ID"/>
                      <subpath id="MPUSS">
                          <property Type="choicelist" Value="2" id="Type"/>
                          <property Type="choicelist" Value="1" id="Pseudo"/>
                          <instance XML_version="1.2" desc="ETM" href="cpus/cs_child.xml" id="ETM" xml="cs_child.xml" xmlpath="cpus"/>
                          <cpu HW_revision="1.0" XML_version="1.2" description="cs_child" deviceSim="false" id="ETM" isa="cs_child">
                              <property Type="numericfield" Value="0x8000C000" id="Address"/>
                              <property Type="numericfield" Value="0x48E54009" id="Identity"/>
                          </cpu>
                          <instance XML_version="1.2" desc="CortexA9" href="cpus/cortex_a9.xml" id="CortexA9" xml="cortex_a9.xml" xmlpath="cpus"/>
                          <cpu HW_revision="1.0" XML_version="1.2" description="CortexA9 CPU" deviceSim="false" id="CortexA9" isa="CortexA9">
                              <property Type="numericfield" Value="0x80000000" id="Address"/>
                              <property Type="numericfield" Value="0x1" id="TraceDeviceId"/>
      						<!-- Project Wizard Settings -->
                              <property Type="stringfield" Value="true" id="IsElfDefault" />
                              <property Type="stringfield" Value="little" id="Endianness" />
      						<property Type="stringfield" Value="-D=am4378 --silicon_version=7A8 --code_state=32" id="CompilerBuildOptions" />
                              <property Type="stringfield" Value="--stack_size=0x800 --heap_size=0x800" id="LinkerBuildOptions" />
                              <property Type="stringfield" Value="AM437x.cmd" id="LinkerCmd" />
      						<property Type="stringfield" Value="-D=am4378 -mcpu=cortex-a9 -mtune=cortex-a9 -march=armv7-a -marm" id="GNUCompilerBuildOptions" />
      						<property Type="stringfield" Value="--defsym STACKSIZE=0x18000 --defsym HEAPSIZE=0x400" id="GNULinkerBuildOptions" />
      						<property Type="stringfield" Value="AM437x.lds" id="GNULinkerCmd" />
      						<property Type="stringfield" Value="startup_ARMCA9.S" id="GNUFilesToCopy" />
      						<property Type="stringfield" Value="GNU" id="DefaultToolChain" />
      						<!-- END Project Wizard Settings -->
      
      						<!-- L3 registers -->
      						<instance href = "../Modules/am437x/MMCSD.xml" id = "MMCSD2" xml = "MMCSD.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x47810000" size = "0x10000" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/QSPI.xml" id = "QSPI" xml = "QSPI.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x47900000" size = "0x100000" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/EDMA3CC.xml" id = "EDMA3CC" xml = "EDMA3CC.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x49000000" size = "0x100000" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/EDMA3TC.xml" id = "EDMA3TC0" xml = "EDMA3TC.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x49800000" size = "0x100000" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/EDMA3TC.xml" id = "EDMA3TC1" xml = "EDMA3TC.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x49900000" size = "0x100000" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/EDMA3TC.xml" id = "EDMA3TC2" xml = "EDMA3TC.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x49a00000" size = "0x100000" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/EMIF.xml" id = "EMIF" xml = "EMIF.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x4c000000" size = "0x1000000" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/GPMC.xml" id = "GPMC" xml = "GPMC.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x50000000" size = "0x1000000" accessnumbytes = "1" permissions = "rw" description = "" />
      
      						<!-- L4 Wakeup registers -->
      						<!-- PRCM registers -->
      						<instance href = "../Modules/am437x/PRM_IRQ.xml" id = "PRM_IRQ" xml = "PRM_IRQ.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x44df0000" size = "0x300" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/PRM_MPU.xml" id = "PRM_MPU" xml = "PRM_MPU.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x44df0300" size = "0x100" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/PRM_GFX.xml" id = "PRM_GFX" xml = "PRM_GFX.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x44df0400" size = "0x124" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/PRM_RTC.xml" id = "PRM_RTC" xml = "PRM_RTC.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x44df0524" size = "0x100" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/PRM_DEVICE.xml" id = "PRM_DEVICE" xml = "PRM_DEVICE.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x44df0700" size = "0x100" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/PRM_CEFUSE.xml" id = "PRM_CEFUSE" xml = "PRM_CEFUSE.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x44df0700" size = "0x100" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/PRM_PER.xml" id = "PRM_PER" xml = "PRM_PER.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x44df0800" size = "0x1800" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/PRM_WKUP.xml" id = "PRM_WKUP" xml = "PRM_WKUP.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x44df2000" size = "0x800" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/CM_WKUP.xml" id = "CM_WKUP" xml = "CM_WKUP.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x44df2800" size = "0x1800" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/PRM_DEVICE.xml" id = "PRM_DEVICE" xml = "PRM_DEVICE.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x44df4000" size = "0x100" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/CM_DEVICE.xml" id = "CM_DEVICE" xml = "CM_DEVICE.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x44df4100" size = "0x100" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/CM_DPLL.xml" id = "CM_DPLL" xml = "CM_DPLL.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x44df4200" size = "0x4100" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/CM_MPU.xml" id = "CM_MPU" xml = "CM_MPU.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x44df8300" size = "0x100" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/CM_GFX.xml" id = "CM_GFX" xml = "CM_GFX.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x44df8400" size = "0x100" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/CM_RTC.xml" id = "CM_RTC" xml = "CM_RTC.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x44df8500" size = "0x100" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/CM_CEFUSE.xml" id = "CM_CEFUSE" xml = "CM_CEFUSE.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x44df8700" size = "0x100" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/CM_PER.xml" id = "CM_PER" xml = "CM_PER.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x44df8800" size = "0x7800" accessnumbytes = "1" permissions = "rw" description = "" />
      						<!-- End of PRCM registers -->
      						<instance href = "../Modules/am437x/DMTIMER.xml" id = "DMTIMER0" xml = "DMTIMER.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x44e05000" size = "0x1000" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/GPIO.xml" id = "GPIO0" xml = "GPIO.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x44e07000" size = "0x1000" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/UART.xml" id = "UART0" xml = "UART.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x44e09000" size = "0x1000" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/I2C.xml" id = "I2C0" xml = "I2C.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x44e0b000" size = "0x1000" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/ADC0.xml" id = "ADC0" xml = "ADC0.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x44e0d000" size = "0x1000" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/CONTROL_MODULE.xml" id = "CONTROL_MODULE" xml = "CONTROL_MODULE.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x44e10000" size = "0x10000" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/DMTIMER_1MS.xml" id = "DMTIMER1_1MS" xml = "DMTIMER_1MS.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x44e31000" size = "0x1000" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/WDT.xml" id = "WDT1" xml = "WDT.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x44e35000" size = "0x1000" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/RTC.xml" id = "RTCSS" xml = "RTC.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x44e3e000" size = "0x1000" accessnumbytes = "1" permissions = "rw" description = "" />
      						<!-- <instance href = "../Modules/am437x/DEBUGSS.xml" id = "DEBUGSS" xml = "DEBUGSS.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x44e40000" size = "0x40000" accessnumbytes = "1" permissions = "rw" description = "" /> -->
      						<instance href = "../Modules/am437x/SYNCTIMER.xml" id = "SYNCTIMER" xml = "SYNCTIMER.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x44e86000" size = "0x1000" accessnumbytes = "1" permissions = "rw" description = "" />
      	
      						<!-- L4 Peripheral registers -->
      						<instance href = "../Modules/am437x/UART.xml" id = "UART1" xml = "UART.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x48022000" size = "0x1000" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/UART.xml" id = "UART2" xml = "UART.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x48024000" size = "0x1000" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/I2C.xml" id = "I2C1" xml = "I2C.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x4802a000" size = "0x1000" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/MCSPI.xml" id = "MCSPI0" xml = "MCSPI.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x48030000" size = "0x1000" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/MCASP.xml" id = "MCASP0_CFG" xml = "MCASP.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x48038000" size = "0x1000" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/MCASP.xml" id = "MCASP1_CFG" xml = "MCASP.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x4803a000" size = "0x1000" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/DMTIMER.xml" id = "DMTIMER2" xml = "DMTIMER.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x48040000" size = "0x1000" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/DMTIMER.xml" id = "DMTIMER3" xml = "DMTIMER.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x48042000" size = "0x1000" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/DMTIMER.xml" id = "DMTIMER4" xml = "DMTIMER.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x48044000" size = "0x1000" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/DMTIMER.xml" id = "DMTIMER5" xml = "DMTIMER.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x48046000" size = "0x1000" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/DMTIMER.xml" id = "DMTIMER6" xml = "DMTIMER.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x48048000" size = "0x1000" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/DMTIMER.xml" id = "DMTIMER7" xml = "DMTIMER.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x4804a000" size = "0x1000" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/GPIO.xml" id = "GPIO1" xml = "GPIO.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x4804c000" size = "0x1000" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/MMCSD.xml" id = "MMCSD0" xml = "MMCSD.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x48060000" size = "0x1000" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/ELM.xml" id = "ELM" xml = "ELM.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x48080000" size = "0x10000" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/MAILBOX.xml" id = "MAILBOX0" xml = "MAILBOX.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x480c8000" size = "0x1000" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/SPINLOCK.xml" id = "SPINLOCK" xml = "SPINLOCK.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x480ca000" size = "0x1000" accessnumbytes = "1" permissions = "rw" description = "" />
      						<!-- <instance href = "../Modules/am437x/OCP_WP_NOC_C1.xml" id = "OCP_WP_NOC" xml = "OCP_WP_NOC_C1.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x4818c000" size = "0x1000" accessnumbytes = "1" permissions = "rw" description = "" /> -->
      						<instance href = "../Modules/am437x/I2C.xml" id = "I2C2" xml = "I2C.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x4819c000" size = "0x1000" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/MCSPI.xml" id = "MCSPI1" xml = "MCSPI.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x481a0000" size = "0x1000" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/MCSPI.xml" id = "MCSPI2" xml = "MCSPI.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x481a2000" size = "0x1000" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/MCSPI.xml" id = "MCSPI3" xml = "MCSPI.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x481a4000" size = "0x1000" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/UART.xml" id = "UART3" xml = "UART.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x481a6000" size = "0x1000" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/UART.xml" id = "UART4" xml = "UART.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x481a8000" size = "0x1000" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/UART.xml" id = "UART5" xml = "UART.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x481aa000" size = "0x1000" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/GPIO.xml" id = "GPIO2" xml = "GPIO.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x481ac000" size = "0x1000" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/GPIO.xml" id = "GPIO3" xml = "GPIO.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x481ae000" size = "0x1000" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/DMTIMER.xml" id = "DMTIMER8" xml = "DMTIMER.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x4801c000" size = "0x1000" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/DCAN.xml" id = "DCAN0" xml = "DCAN.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x481cc000" size = "0x2000" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/DCAN.xml" id = "DCAN1" xml = "DCAN.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x481d0000" size = "0x2000" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/MMCSD.xml" id = "MMCSD1" xml = "MMCSD.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x481d8000" size = "0x1000" accessnumbytes = "1" permissions = "rw" description = "" />
      						<!--
      						<instance href = "../Modules/am437x/MPU_SCU.xml" id = "MPU_SCU" xml = "MPU_SCU.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x48240000" size = "0x100" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/MPU_INTC.xml" id = "MPU_INTC" xml = "MPU_INTC.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x48240100" size = "0x100" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/MPU_GBL_TIMER.xml" id = "MPU_GBL_TIMER" xml = "MPU_GBL_TIMER.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x48240200" size = "0x100" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/MPU_PRV_TIMERS.xml" id = "MPU_PRV_TIMERS" xml = "MPU_PRV_TIMERS.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x48240600" size = "0x100" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/MPU_INT_DIST.xml" id = "MPU_INT_DIST" xml = "MPU_INT_DIST.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x48241000" size = "0x1000" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/MPU_PL310.xml" id = "MPU_PL310" xml = "MPU_PL310.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x48242000" size = "0x1000" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/MPU_SCM.xml" id = "MPU_SCM" xml = "MPU_SCM.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x48280000" size = "0x1000" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/MPU_WAKEUP_GEN.xml" id = "MPU_WAKEUP_GEN" xml = "MPU_WAKEUP_GEN.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x48281000" size = "0x1000" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/MPU_AXI2OCP.xml" id = "MPU_AXI2OCP" xml = "MPU_AXI2OCP.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x482a0000" size = "0x10000" accessnumbytes = "1" permissions = "rw" description = "" />
      						-->
      						<instance href = "../Modules/am437x/PWMSS.xml" id = "PWMSS0" xml = "PWMSS.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x48300000" size = "0x100" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/PWMSS_ECAP.xml" id = "PWMSS0_ECAP" xml = "PWMSS_ECAP.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x48300100" size = "0x80" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/PWMSS_EQEP.xml" id = "PWMSS0_EQEP" xml = "PWMSS_EQEP.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x48300180" size = "0x80" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/PWMSS_EPWM.xml" id = "PWMSS0_EPWM" xml = "PWMSS_EPWM.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x48300200" size = "0x60" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/PWMSS.xml" id = "PWMSS1" xml = "PWMSS.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x48302000" size = "0x100" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/PWMSS_ECAP.xml" id = "PWMSS1_ECAP" xml = "PWMSS_ECAP.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x48302100" size = "0x80" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/PWMSS_EQEP.xml" id = "PWMSS1_EQEP" xml = "PWMSS_EQEP.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x48302180" size = "0x80" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/PWMSS_EPWM.xml" id = "PWMSS1_EPWM" xml = "PWMSS_EPWM.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x48302200" size = "0x60" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/PWMSS.xml" id = "PWMSS2" xml = "PWMSS.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x48304000" size = "0x100" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/PWMSS_ECAP.xml" id = "PWMSS2_ECAP" xml = "PWMSS_ECAP.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x48304100" size = "0x80" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/PWMSS_EQEP.xml" id = "PWMSS2_EQEP" xml = "PWMSS_EQEP.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x48304180" size = "0x80" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/PWMSS_EPWM.xml" id = "PWMSS2_EPWM" xml = "PWMSS_EPWM.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x48304200" size = "0x60" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/PWMSS.xml" id = "PWMSS3" xml = "PWMSS.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x48306000" size = "0x100" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/PWMSS_EPWM.xml" id = "PWMSS3_EPWM" xml = "PWMSS_EPWM.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x48306200" size = "0x60" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/PWMSS.xml" id = "PWMSS4" xml = "PWMSS.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x48308000" size = "0x100" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/PWMSS_EPWM.xml" id = "PWMSS4_EPWM" xml = "PWMSS_EPWM.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x48308200" size = "0x60" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/PWMSS.xml" id = "PWMSS5" xml = "PWMSS.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x4830a000" size = "0x100" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/PWMSS_EPWM.xml" id = "PWMSS5_EPWM" xml = "PWMSS_EPWM.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x4830a200" size = "0x60" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/GPIO.xml" id = "GPIO4" xml = "GPIO.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x48320000" size = "0x1000" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/GPIO.xml" id = "GPIO5" xml = "GPIO.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x48322000" size = "0x1000" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/VPFE.xml" id = "VPFE0" xml = "VPFE.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x48326000" size = "0x1000" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/VPFE.xml" id = "VPFE1" xml = "VPFE.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x48328000" size = "0x1000" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/DSS_TOP.xml" id = "DSS_TOP" xml = "DSS_TOP.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x4832a000" size = "0x400" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/DSS_DISPC.xml" id = "DSS_DISPC" xml = "DSS_DISPC.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x4832a400" size = "0x400" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/ALL_DSS_RFBI.xml" id = "DSS_RFBI" xml = "ALL_DSS_RFBI.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x4832a800" size = "0x400" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/DMTIMER.xml" id = "DMTIMER9" xml = "DMTIMER.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x4833d000" size = "0x1000" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/DMTIMER.xml" id = "DMTIMER10" xml = "DMTIMER.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x4833f000" size = "0x1000" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/DMTIMER.xml" id = "DMTIMER11" xml = "DMTIMER.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x48341000" size = "0x1000" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/MCSPI.xml" id = "MCSPI4" xml = "MCSPI.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x48345000" size = "0x1000" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/HDQ1W.xml" id = "HDQ1W" xml = "HDQ1W.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x48347000" size = "0x1000" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/ADC1.xml" id = "ADC1" xml = "ADC1.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x4834c000" size = "0x2000" accessnumbytes = "1" permissions = "rw" description = "" />
      						<!--
      						<instance href = "../Modules/am437x/USB_CONTROL.xml" id = "USB0_CONTROL" xml = "USB_CONTROL.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x48380000" size = "0x20000" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/USB_PHY.xml" id = "USB0_PHY" xml = "USB_PHY.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x483a8000" size = "0x8000" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/USB_CONTROL.xml" id = "USB1_CONTROL" xml = "USB_CONTROL.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x483c0000" size = "0x20000" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/USB_PHY.xml" id = "USB1_PHY" xml = "USB_PHY.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x483e8000" size = "0x8000" accessnumbytes = "1" permissions = "rw" description = "" />
      						-->
      	
      						<!-- L4 Fast Peripheral registers -->
      						<instance href = "../Modules/am437x/CPSW_SS.xml" id = "CPSW_SS" xml = "CPSW_SS.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x4a100000" size = "0x100" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/CPSW_PORT.xml" id = "CPSW_PORT" xml = "CPSW_PORT.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x4a100100" size = "0x700" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/CPSW_CPDMA.xml" id = "CPSW_CPDMA" xml = "CPSW_CPDMA.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x4a100800" size = "0x100" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/CPSW_STATS.xml" id = "CPSW_STATS" xml = "CPSW_STATS.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x4a100900" size = "0x100" accessnumbytes = "1" permissions = "rw" description = "" /> 
      						<instance href = "../Modules/am437x/CPDMA_STATERAM.xml" id = "CPSW_STATERAM" xml = "CPDMA_STATERAM.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x4a100a00" size = "0x200" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/CPSW_CPTS.xml" id = "CPSW_CPTS" xml = "CPSW_CPTS.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x4a100c00" size = "0x100" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/CPSW_ALE.xml" id = "CPSW_ALE" xml = "CPSW_ALE.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x4a100d00" size = "0x80" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/CPSW_SL.xml" id = "CPSW_SL1" xml = "CPSW_SL.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x4a100d80" size = "0x40" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/CPSW_SL.xml" id = "CPSW_SL2" xml = "CPSW_SL.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x4a100dc0" size = "0x40" accessnumbytes = "1" permissions = "rw" description = "" />
       						<instance href = "../Modules/am437x/MDIO.xml" id = "CPSW_MDIO" xml = "MDIO.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x4a101000" size = "0x100" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/CPSW_WR.xml" id = "CPSW_WR" xml = "CPSW_WR.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x4a101200" size = "0xe00" accessnumbytes = "1" permissions = "rw" description = "" />
      						<instance href = "../Modules/am437x/CPSW_WR.xml" id = "CPSW_WR" xml = "CPSW_WR.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x4a101200" size = "0xe00" accessnumbytes = "1" permissions = "rw" description = "" />
      						<!--
      						<instance href = "../Modules/am437x/CPSW_CPPI_RAM.xml" id = "CPSW_CPPI_RAM" xml = "CPSW_CPPI_RAM.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x4a102000" size = "0x2000" accessnumbytes = "1" permissions = "rw" description = "" />
      						-->
      						<!-- Debug Subsystem -->
      						<instance href = "../Modules/am437x/DEBUGSS_DRM.xml" id = "DEBUGSS_DRM" xml = "DEBUGSS_DRM.xml" xmlpath = "../Modules/am437x/" baseaddr = "0x4b160000" size = "0x400" accessnumbytes = "1" permissions = "rw" description = "" />
                          </cpu>
                      </subpath>
                      <subpath id="Trace_STM">
                          <property Type="numericfield" Value="0xc" id="Port Number"/>
                          <property Type="choicelist" Value="0" id="Type"/>
                          <instance XML_version="1.2" desc="CSSTM_0" href="cpus/csstm.xml" id="CSSTM_0" xml="csstm.xml" xmlpath="cpus"/>
                          <cpu HW_revision="1.0" XML_version="1.2" description="CS System Trace" deviceSim="false" id="CSSTM_0" isa="TMS470R26X">
                              <property Type="numericfield" Value="0x4B161000" id="Address"/>
                          </cpu>
                          <instance XML_version="1.2" desc="CSETB_0" href="cpus/csetb.xml" id="CSETB_0" xml="csetb.xml" xmlpath="cpus"/>
                          <cpu HW_revision="1.0" XML_version="1.2" description="CS Embedded Trace Buffer" deviceSim="false" id="CSETB_0" isa="CS_ETB">
                              <property Type="numericfield" Value="0x4B162000" id="Address"/>
                          </cpu>
                      </subpath>
      				<property Type="filepathfield" Value="../../emulation/gel/AM43x_funnel.gel" id="GEL File"/>
                      <subpath id="PRU_ICSS1">
                          <property Type="numericfield" Value="0xd" id="Port Number"/>
                          <property Type="choicelist" Value="0x0" id="Type"/>
                          <instance href="../cpus/pru.xml" id="PRU_ICSS1_PRU0" xml="pru.xml" xmlpath="cpus" isa="TMS192C2026"/>
                          <cpu HW_revision="1.0" XML_version="1.2" description="PRU Accelerator" id="PRU_ICSS1_PRU0" isa="TMS192C2026">
                              <property id="debugParent" Type="hiddenfield" Value="" />
                              <property id="PRU Base Address" Type="hiddenfield" Value="0x54400000" />
                              <property id="PRU Register Offset" Type="hiddenfield" Value="0x22000" />
                              <property id="PRU Program RAM Offset" Type="hiddenfield" Value="0x34000" />
                              <property id="PRU Data RAM Offset" Type="hiddenfield" Value="0x0000" />
                              <property id="PRU Shared Data RAM Offset" Type="hiddenfield" Value="0x10000" />
                              <property id="PRU Program RAM Size" Type="hiddenfield" Value="0x3000" />
                              <property id="PRU Data RAM Size" Type="hiddenfield" Value="0x2000" />
                              <property id="PRU Shared Data RAM Size" Type="hiddenfield" Value="0x8000" />
                              <property id="PRU Device Size" Type="hiddenfield" Value="0x100000" />
      						<!-- Project Wizard Settings -->
                              <property Type="stringfield" Value="true" id="IsElfDefault" />
                              <property Type="stringfield" Value="little" id="Endianness" />
      						<property Type="stringfield" Value="-D=am4378 -D=icss1 -D=pru0 --ram_model --silicon_version=3 --hardware_mac=on" id="CompilerBuildOptions" />
                              <property Type="stringfield" Value="--define=ICSS1_PRU_CORE=1 --stack_size=0x100 --heap_size=0x100" id="LinkerBuildOptions" />
                              <property Type="stringfield" Value="AM437x_PRU_SS1.cmd" id="LinkerCmd" />
      						<!-- END Project Wizard Settings -->
      						<!-- PRU Register sets -->
      						<property Type="filepathfield" Value="../../../emulation/gel/AM437x_PRU_ICSS1_local.gel" id="GEL File"/>
                              <instance href="../Modules/am437x/PRU_ICSS_INTC.xml" id="PRU_ICSS1_INTC" xml="PRU_ICSS_INTC.xml" xmlpath="../Modules/am437x/" description="INTC" baseaddr="0x00020000" size="0x2000" accessnumbytes="4" permissions="p" />
      						<instance href="../Modules/am437x/PRU_ICSS_PRU_CTRL.xml" id="PRU_ICSS1_PRU0_CTRL" xml="PRU_ICSS_PRU_CTRL.xml" xmlpath="../Modules/am437x/" description="PRU Control Registers" baseaddr="0x00022000" size="0x0080" accessnumbytes="4" permissions="p" />
      						<instance href="../Modules/am437x/PRU_ICSS_PRU_DEBUG.xml" id="PRU_ICSS1_PRU0_DEBUG" xml="PRU_ICSS_PRU_DEBUG.xml" xmlpath="../Modules/am437x/" description="PRU Debug Registers" baseaddr="0x00022400" size="0x0100" accessnumbytes="4" permissions="p" />
      						<instance href="../Modules/am437x/PRU_ICSS_CFG.xml" id="PRU_ICSS1_CFG" xml="PRU_ICSS_CFG.xml" xmlpath="../Modules/am437x/" description="CFG" baseaddr="0x00026000" size="0x2000" accessnumbytes="4" permissions="p" />
      						<instance href="../Modules/am437x/PRU_ICSS_IEP.xml" id="PRU_ICSS1_IEP" xml="PRU_ICSS_IEP.xml" xmlpath="../Modules/am437x/" description="IEP" baseaddr="0x0002e000" size="0x0400" accessnumbytes="4" permissions="p" />
      					</cpu>
                          <instance href="../cpus/pru.xml" id="PRU_ICSS1_PRU1" xml="pru.xml" xmlpath="cpus" isa="TMS192C2026"/>
                          <cpu HW_revision="1.0" XML_version="1.2" description="PRU Accelerator" id="PRU_ICSS1_PRU1" isa="TMS192C2026">
                              <property id="debugParent" Type="hiddenfield" Value="" />
                              <property id="PRU Base Address" Type="hiddenfield" Value="0x54400000" />
                              <property id="PRU Register Offset" Type="hiddenfield" Value="0x24000" />
                              <property id="PRU Program RAM Offset" Type="hiddenfield" Value="0x38000" />
                              <property id="PRU Data RAM Offset" Type="hiddenfield" Value="0x2000" />
                              <property id="PRU Shared Data RAM Offset" Type="hiddenfield" Value="0x10000" />
                              <property id="PRU Program RAM Size" Type="hiddenfield" Value="0x3000" />
                              <property id="PRU Data RAM Size" Type="hiddenfield" Value="0x2000" />
                              <property id="PRU Shared Data RAM Size" Type="hiddenfield" Value="0x8000" />
                              <property id="PRU Device Size" Type="hiddenfield" Value="0x100000" />
      						<!-- Project Wizard Settings -->
                              <property Type="stringfield" Value="true" id="IsElfDefault" />
                              <property Type="stringfield" Value="little" id="Endianness" />
      						<property Type="stringfield" Value="-D=am4378 -D=icss1 -D=pru1 --ram_model --silicon_version=3 --hardware_mac=on" id="CompilerBuildOptions" />
                              <property Type="stringfield" Value="--define=ICSS1_PRU_CORE=1 --stack_size=0x100 --heap_size=0x100" id="LinkerBuildOptions" />
                              <property Type="stringfield" Value="AM437x_PRU_SS1.cmd" id="LinkerCmd" />
      						<!-- END Project Wizard Settings -->
      						<!-- PRU Register sets -->
      						<property Type="filepathfield" Value="../../../emulation/gel/AM437x_PRU_ICSS1_local.gel" id="GEL File"/>
                              <instance href="../Modules/am437x/PRU_ICSS_INTC.xml" id="PRU_ICSS1_INTC" xml="PRU_ICSS_INTC.xml" xmlpath="../Modules/am437x/" description="INTC" baseaddr="0x00020000" size="0x2000" accessnumbytes="4" permissions="p" />
      						<instance href="../Modules/am437x/PRU_ICSS_PRU_CTRL.xml" id="PRU_ICSS1_PRU1_CTRL" xml="PRU_ICSS_PRU_CTRL.xml" xmlpath="../Modules/am437x/" description="PRU Control Registers" baseaddr="0x00024000" size="0x0080" accessnumbytes="4" permissions="p" />
      						<instance href="../Modules/am437x/PRU_ICSS_PRU_DEBUG.xml" id="PRU_ICSS1_PRU1_DEBUG" xml="PRU_ICSS_PRU_DEBUG.xml" xmlpath="../Modules/am437x/" description="PRU Debug Registers" baseaddr="0x00024400" size="0x0100" accessnumbytes="4" permissions="p" />
      						<instance href="../Modules/am437x/PRU_ICSS_CFG.xml" id="PRU_ICSS1_CFG" xml="PRU_ICSS_CFG.xml" xmlpath="../Modules/am437x/" description="CFG" baseaddr="0x00026000" size="0x2000" accessnumbytes="4" permissions="p" />
      						<instance href="../Modules/am437x/PRU_ICSS_IEP.xml" id="PRU_ICSS1_IEP" xml="PRU_ICSS_IEP.xml" xmlpath="../Modules/am437x/" description="IEP" baseaddr="0x0002e000" size="0x0400" accessnumbytes="4" permissions="p" />
                          </cpu>
                      </subpath>
              		<subpath id="PRU_ICSS0">
                          <property Type="numericfield" Value="0xe" id="Port Number"/>
                          <property Type="choicelist" Value="0x0" id="Type"/>
                          <instance href="../cpus/pru.xml" id="PRU_ICSS0_PRU0" xml="pru.xml" xmlpath="cpus" isa="TMS192C2026"/>
                          <cpu HW_revision="1.0" XML_version="1.2" description="PRU Accelerator" id="PRU_ICSS0_PRU0" isa="TMS192C2026">
                              <property id="debugParent" Type="hiddenfield" Value="" />
                              <property id="PRU Base Address" Type="hiddenfield" Value="0x54440000" />
                              <property id="PRU Register Offset" Type="hiddenfield" Value="0x22000" />
                              <property id="PRU Program RAM Offset" Type="hiddenfield" Value="0x34000" />
                              <property id="PRU Data RAM Offset" Type="hiddenfield" Value="0x0000" />
                              <property id="PRU Program RAM Size" Type="hiddenfield" Value="0x1000" />
                              <property id="PRU Data RAM Size" Type="hiddenfield" Value="0x1000" />
                              <property id="PRU Device Size" Type="hiddenfield" Value="0x100000" />
      						<!-- Project Wizard Settings -->
                              <property Type="stringfield" Value="true" id="IsElfDefault" />
                              <property Type="stringfield" Value="little" id="Endianness" />
      						<property Type="stringfield" Value="-D=am4378 -D=icss0 -D=pru0 --ram_model --silicon_version=3 --hardware_mac=on" id="CompilerBuildOptions" />
                              <property Type="stringfield" Value="--define=ICSS0_PRU_CORE=1 --stack_size=0x100 --heap_size=0x100" id="LinkerBuildOptions" />
                              <property Type="stringfield" Value="AM437x_PRU_SS0.cmd" id="LinkerCmd" />
      						<!-- END Project Wizard Settings -->
      						<!-- PRU Register sets -->
      						<property Type="filepathfield" Value="../../../emulation/gel/AM437x_PRU_ICSS0_local.gel" id="GEL File"/>
                              <instance href="../Modules/am437x/PRU_ICSS_INTC.xml" id="PRU_ICSS0_INTC" xml="PRU_ICSS_INTC.xml" xmlpath="../Modules/am437x/" description="INTC" baseaddr="0x00020000" size="0x2000" accessnumbytes="4" permissions="p" />
      						<instance href="../Modules/am437x/PRU_ICSS_PRU_CTRL.xml" id="PRU_ICSS0_PRU0_CTRL" xml="PRU_ICSS_PRU_CTRL.xml" xmlpath="../Modules/am437x/" description="PRU Control Registers" baseaddr="0x00022000" size="0x0080" accessnumbytes="4" permissions="p" />
      						<instance href="../Modules/am437x/PRU_ICSS_PRU_DEBUG.xml" id="PRU_ICSS0_PRU0_DEBUG" xml="PRU_ICSS_PRU_DEBUG.xml" xmlpath="../Modules/am437x/" description="PRU Debug Registers" baseaddr="0x00022400" size="0x0100" accessnumbytes="4" permissions="p" />
      						<instance href="../Modules/am437x/PRU_ICSS_CFG.xml" id="PRU_ICSS0_CFG" xml="PRU_ICSS_CFG.xml" xmlpath="../Modules/am437x/" description="CFG" baseaddr="0x00026000" size="0x2000" accessnumbytes="4" permissions="p" />
      						<instance href="../Modules/am437x/PRU_ICSS_IEP.xml" id="PRU_ICSS0_IEP" xml="PRU_ICSS_IEP.xml" xmlpath="../Modules/am437x/" description="IEP" baseaddr="0x0002e000" size="0x0400" accessnumbytes="4" permissions="p" />
                          </cpu>
                          <instance href="../cpus/pru.xml" id="PRU_ICSS0_PRU1" xml="pru.xml" xmlpath="cpus" isa="TMS192C2026"/>
                          <cpu HW_revision="1.0" XML_version="1.2" description="PRU Accelerator" id="PRU_ICSS0_PRU1" isa="TMS192C2026">
                              <property id="debugParent" Type="hiddenfield" Value="" />
                              <property id="PRU Base Address" Type="hiddenfield" Value="0x54440000" />
                              <property id="PRU Register Offset" Type="hiddenfield" Value="0x24000" />
                              <property id="PRU Program RAM Offset" Type="hiddenfield" Value="0x38000" />
                              <property id="PRU Data RAM Offset" Type="hiddenfield" Value="0x2000" />
                              <property id="PRU Program RAM Size" Type="hiddenfield" Value="0x1000" />
                              <property id="PRU Data RAM Size" Type="hiddenfield" Value="0x1000" />
                              <property id="PRU Device Size" Type="hiddenfield" Value="0x100000" />
      						<!-- Project Wizard Settings -->
                              <property Type="stringfield" Value="true" id="IsElfDefault" />
                              <property Type="stringfield" Value="little" id="Endianness" />
      						<property Type="stringfield" Value="-D=am4378 -D=icss0 -D=pru1 --ram_model --silicon_version=3 --hardware_mac=on" id="CompilerBuildOptions" />
                              <property Type="stringfield" Value="--define=ICSS0_PRU_CORE=1 --stack_size=0x100 --heap_size=0x100" id="LinkerBuildOptions" />
                              <property Type="stringfield" Value="AM437x_PRU_SS0.cmd" id="LinkerCmd" />
      						<!-- END Project Wizard Settings -->
      						<!-- PRU Register sets -->
      						<property Type="filepathfield" Value="../../../emulation/gel/AM437x_PRU_ICSS0_local.gel" id="GEL File"/>
                              <instance href="../Modules/am437x/PRU_ICSS_INTC.xml" id="PRU_ICSS0_INTC" xml="PRU_ICSS_INTC.xml" xmlpath="../Modules/am437x/" description="INTC" baseaddr="0x00020000" size="0x2000" accessnumbytes="4" permissions="p" />
      						<instance href="../Modules/am437x/PRU_ICSS_PRU_CTRL.xml" id="PRU_ICSS0_PRU1_CTRL" xml="PRU_ICSS_PRU_CTRL.xml" xmlpath="../Modules/am437x/" description="PRU Control Registers" baseaddr="0x00024000" size="0x0080" accessnumbytes="4" permissions="p" />
      						<instance href="../Modules/am437x/PRU_ICSS_PRU_DEBUG.xml" id="PRU_ICSS0_PRU1_DEBUG" xml="PRU_ICSS_PRU_DEBUG.xml" xmlpath="../Modules/am437x/" description="PRU Debug Registers" baseaddr="0x00024400" size="0x0100" accessnumbytes="4" permissions="p" />
      						<instance href="../Modules/am437x/PRU_ICSS_CFG.xml" id="PRU_ICSS0_CFG" xml="PRU_ICSS_CFG.xml" xmlpath="../Modules/am437x/" description="CFG" baseaddr="0x00026000" size="0x2000" accessnumbytes="4" permissions="p" />
      						<instance href="../Modules/am437x/PRU_ICSS_IEP.xml" id="PRU_ICSS0_IEP" xml="PRU_ICSS_IEP.xml" xmlpath="../Modules/am437x/" description="IEP" baseaddr="0x0002e000" size="0x0400" accessnumbytes="4" permissions="p" />
                          </cpu>
                      </subpath>
                  </router>
              </subpath>
          </router>
      </device>
      

    • Delete the device cache in the hidden directory found in:
      • C:\Users\<username>\AppData\Local\Texas Instruments\CCS\<CCSV6 INSTALL FOLDER>\0\0 (on Windows)
      • ~/.ti/<CCSV6 INSTALL FOLDER>/0/0 (on Ubuntu)
      • You must first check this folder for a *.lic file. This is your license file. If you have one then you need to copy it somewhere safe

    • Restart CCS
      • If you had a *.lic file then CCS should ask you to point to its new location

    Once you restart CCS with the new AM4378.xml file in the correct place (after deleting the cache) then the code should load correctly. I've tested this on my machine and it works.

    Jason Reeder

  • Hi Jason,
    Problem solved!
    Thank you very much for your fast reply!
  • HI Jason,
    We are not sure that whether it has the same issue when PRU built in TOCTO by PRU Code Generation Tools v2.1.2, could you please clarify ? thanks.

  • The person who found the issue above was using v2.1.2 of the PRU C compiler.

    The problem was in the CCS configuration files. Not with the C compiler.