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.

StarterWare for OMAP35x - BeagleBoard

Other Parts Discussed in Thread: DM3730, OMAP3530

Dear TI developers,

I am very interested in the strategy of StarterWare packages. I always have latency problems when using BIOS/RTOS, and StarterWare is exactly what I need.

Are there plans for StarterWare to support OMAP35x as well? BeagleBoard + heavy Linux seems to be an unhappy marriage for my needs.

Regards,

Cong-Van

  • Same here.

    Any news or planning on this?

    Thank you

  • Hi Guys, 

    I dont know if  any plans are there for OMAP35x . Currently support is there for AM335x, which is based on ARM Cortex-A8. As OMAP35x is also based on ARM Cortex-A8 core,  I hope you will be able to reuse some code  from StarterWare for AM335x. This might include startup code, interrupt handler, cache/mmu related code and some of the Device Abstraction Layer (DAL) code. (DAL is anyway not available for peripherals like McBSP in StarterWare.) 

    So, StarterWare_02_00_00_07 should be a good starting point for you I believe.

    Regards,

    Sujith.

  • Thanks for the answer.

    Could you at least give us a guideline or some hints on how to get StarterWare working on OMAP35x.

    In fact I am working with a Beagleboard xM (DM3730), and I just want to use the DSP core for continous sampling, signal processing and communication.

    Thank you.

  • Hi Francisco,

    You can start with StarterWare_02.00.00.07 UART example in examples/evmAM335x/uart/uartEcho.c. The UART and Interrupt Controller IPs seems to be the same for AM335x and OMAP 3530. 

    Hence mainly you need to modify the following

    1. Base addresses  for UART, Interrupt Controller OMAP 3530. 

    2. Interrupt Number for the UART interrupt used.

    3. Pin Mux for UART

    4. Clock Enabling for UART (You may compare the clock architecture in AM335x and OMAP 3530)

    If you are using CCS to load the program, and you have a GEL file for OMAP3530, you will be able to make it faster.

    Regards,

    Sujith.

  • Hi All,

    Has anyone been successful implementing a UART for the OMAP 3530 with StarterWare.    I am very interested in any help, tips or source anyone would be willing to share. 

    Thanks,

    Ed Schroeder

  • Hello,

    Did anyone have success in bringup of Starterware with am35x ?

    I am using the same ccs workspace for am335x, and just changed main to print a characters in uart:

    int main()

    {

           while(1){

              // wait until there is room in the FIFO.

           while ((0x49020000 + 0x0044) & 0x00000001)           ;

           // send the character.

           *(volatile unsigned char*)(0x49020000 + 0x0000) = 'a';

       }}

     

    I also tried to put it in start_boot:

    unsigned int start_boot(void)
    {
    while(1)
    {
    // wait until there is room in the FIFO.
    while ((0x49020000 + 0x0044) & 0x00000001)
    ;
    // send the character.

    *(volatile unsigned char*)(0x49020000 + 0x0000) = 'a';
    }
    CopyVectorTable();

    /* Calling the main */
    main();

    while(1);

    }

     

    Does it mean some issue with start script or is it that the compiler or build should be configured different for am35x ?

     I then tried to use IAR instead of CCS, but I get the same results (no characters are received).

    I verified that my simple loop for characters is OK, so it must be something else.

     This is how it is checked:

    tftp 0x80000000 uartEcho.bin

    go 0x80000000

    Thanks,

    Ran

  • Ran,
    Which specific EVM are you using? Are you using the Starterware package that's in the Processor SDK package? software-dl.ti.com/.../index_FDS.html

    C:\ti\pdk_am335x_1_0_6\packages\ti\starterware\examples\uart

    Lali
  • Hi Lalindra,

    I work with dm3530x

    After changing it as following it started to show characters.
    Yet, I haven't checked any interrupt yet....

    /* ranran according to table in page 3540 */
    const unsigned int AM335X_VECTOR_BASE = 0x4020FFC8; //0x4030FC00; <<---- changed base address

    static unsigned int const vecTbl[]= <<------------------------------------------------------- changed vector content
    {
    0xE59FF01C,
    0xE59FF01C,
    0xE59FF01C,
    0xE59FF01C,
    0xE59FF01C,
    0xE59FF01C,
    0xE59FF01C,

    // (unsigned int)Entry,
    (unsigned int)UndefInstHandler,
    (unsigned int)Pre_Handler,
    (unsigned int)SVC_Handler,
    (unsigned int)AbortHandler,
    (unsigned int)UnusedHandler,
    (unsigned int)IRQHandler,
    (unsigned int)FIQHandler
    };

    As you can see I removed entry handler, can't see it being mention in RAM vector.

    Does this changes seems correct ? Is it correct to remove entry handler for this processor ?
    Is there a simple way to verify interrupt vector correctness ?

    Thank you!
    Ran