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.

BissC tidu794 application questions

Other Parts Discussed in Thread: AM3359

Hi, I'm trying to implement the tidu794 BissC applicaiton on the AM3359 ICEV2 board. The app note says it works with the AM3359 but the PRU code appears to be mapped for the AM437x, but there are some pieces for the AM3359 in this package.  I have the following questions:

1)  What is required to remap this to run on the AM3359, and is there code already written to do this?

2) In the AM335x_PRU_ICSS.gel file in the package, the init section is attempting to clear 0x4A300000-0x4A370000. When I run this gel on CCS5, I get the following write past end of memory error:

PRU_0: Output:     **** PRU-ICSS PRCM Enable Step 1 is in progress ****
PRU_0: Output:     **** PRU-ICSS PRCM Enable Step 1 is Done ****
PRU_0: Output:     **** PRU-ICSS PRCM Enable Step 2 is in progress ****
PRU_0: Output:     **** PRU-ICSS PRCM Enable Step 2 is Done ****
PRU_0: Output:     **** PRU-ICSS PRCM Reset is in progress ****
PRU_0: Output:     **** PRU-ICSS PRCM Reset is Done ****
PRU_ICSS_Init() cannot be evaluated.
Attempted to write past the end of memory at 0x4A300000@Program_Memory
    at GEL_MemoryFill(0x4a300000, 0, (16*1024), 0x0, 0xC) [AM335x_PRU_ICSS.gel:21]
    at PRU_ICSS_Init()

According to the PRU TRM, this is valid memory space in the PRU for the AM3359. Can you explain this error?

3) In the AM3359 TRM, it references the PRU memory space as PRU_ICSS 0x4A30_0000 0x4A37_FFFF. Is this the same space as what's shown in the PRU TRM for the PRU global memory map from 0x0000 0000 to 0x4000 0000?

Thanks.

  • Hi Bob,

    I will ask for support on this.

  • Hi Bob,

    2) What emulator are you using?

    3) Yes. The global base address of the PRU-ICSS in AM335x is 0x4A30_0000. The offsets shown in the AM335x TRM Table 4-8 (Global Memory Map) are based on this base address.

    Regards,
    Melissa
  • Hi Melissa, Thank you for answering part of my question.

    I'm using CCS6 with the USB connection to the ICEV2 board. I just started with CCS6 but it's hanging when I try to access the PRU memory area. Any idea why?

  • Hi Bob,

    Have you run any GEL files?  Can you access any other memory areas?  Or does it only hang with the PRU memory area?

    Note that when accessing the PRU memory, the PRU clock needs to be first enabled.  Otherwise, the Memory Browser will show question marks.

    Regards,
    Melissa

  • Please see #2 in my OP. Can't get by the memory issue. The ARM gel init runs when I connect to the ARM. I can see PRU memory (at least I think I can). I have not specifically enabled the clocks.
    I can display and load PRU memory with my binary file and see the memory contents in the window change. CCS6 locks up when I try to display the disassembly window.
  • Hi Bob,

    I just received confirmation that, as you previously alluded, this application is not an AM335x application. The design is intended to run on the AM437x IDK.

    Regards,
    Melissa
  • Melissa, the app note clearly states it's for the AM3359 and there's a gel file included for that part.  If the memory map in the code is properly changed to match the AM3359, why wouldn't it work? What's so different about the PRU in the 437x?

    Thanks.

  • Also, I still NEED an answer to my question #2 about the memory mapping. I have the following line in my init gel file (default provided by TI):
    GEL_MapAddStr(0x4A000000, 0, 0x01000000, "R|W", 0); // L4_FAST

    yet I get an error when I try to execute the following:
    GEL_MemoryFill(0x4a300000, 0, 8*1024, 0x0, 0xC);
    GEL_MemoryFill(0x4a310000, 0, 12*1024, 0x0, 0xC);

    Here's the error:
    attempted to write past the end of memory at 0x4A300000@Program_Memory
    at GEL_MemoryFill(0x4a300000, 0, (8*1024), 0x0, 0xC) [AM335x_PRU_ICSS.gel:21]
    at PRU_ICSS_Init()
  • Hi Bob,

    The BISS application is targeted for the AM437x platform because it has dual PRU subsystems, allowing it to run two simultaneous protocols.

    As for the gel file error, can you confirm your steps for connecting to the PRU core? I have tested the gel file on multiple ICEv2 boards and have not yet been able to reproduce the error. Note that I could not find an AM335x gel file in the BISS software package, so I am using the gel files that are available through CCS (located under C:\ti\ccsv6\ccs_base\emulation\boards\ice_am3359\gel).

    Here are the steps I am using:

    1. Apply power to the ICEv2
    2. Launch the targetconfig file in CCS
    3. Connect to the CortxA8. (The TMDXICE3359.gel file is automatically run.)
    4. Run the PRU_Init script from AM335x_PRU_ICSS.gel file, which is pre-loaded by the TMDXICE3359.gel.
    5. Connect to the PRU0 Core.

    Regards,
    Melissa
  • Hi Melissa,

     Can you please tell me what's specific in the Biss C code to the AM437x? I've studied the code and it appears to just be bit bashing the GPIO ports from the PRU. It's my understanding that ALL of the PRU's are pretty much the same across all the DSP's with the exception of memory sizes.

    As for the GEL file issue, it's from am335x_pru_package-master. I found that if I run the GEL from the ARM side it works correctly. I was running it from the PRU core.