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.

PROCESSOR-SDK-AM437X: Starterware build problem

Part Number: PROCESSOR-SDK-AM437X
Other Parts Discussed in Thread: AM4372

Hi,

I'm trying to build a starterware project for basic peripherals [say GPIO,UART,etc.,] & test it initially in EVM AM 4372.

Reason why I didnt choose SDK RTOS is, my plan is to use similar approach to our custom board [with AM4372] later.

But I couldnt find a way to build the starter ware example code & flash it to the board. [make files are incomplete & CCS build files are missing].

Moreover, the starter ware folder of pdk_am437x_1_0_15 contains more build files of AM335x. dont know why.

It will be great if I could get some input on how to proceed with this starter ware build. Thanks in advance.

Please note : I downloaded processor SDK RTOS code from link :  www.ti.com/.../PROCESSOR-SDK-AM437X
  & followed PDK build steps mentioned in :  processors.wiki.ti.com/.../Rebuilding_The_PDK

BR,

Anantha R

  • Hi Anantha,

    The starterware support is discontinued 4-5 years ago. We have merged the starterware into the Processor SDK RTOS at that time. It is a cut down version of the original starterware though.

    To build the starterware in the Processor SDK RTOS:

    make starterware

    which will build three sub-components: starterware_boot, starterware_app and starterware_lib. For details, please look into the top level makefile in  pdk_am437x_1_0_15\packages\makefile.

    For the peripheral examples, they have been moved into the LLDs (not in the starterware anymore). For example, if you want to build UART examples

    make uart_apps 

    will do the trick. Look into the top level makefile for details

    If you need the CCS project files, you will need to run the pdkProjectCreate.sh (.bat). The CCS project files will be generated under pdk_am437x_1_0_15\packages\MyExampleProjects.

    Make sure you install the CCS and run CCS once, before you run the pdkProjectCreate.sh (.bat).

    Ming

  • Hi Ming,

    Thanks for your reply.

    >>make starterware , >>make uart_apps

    Both the options didnt help me initially to build the starterware code [say uart_app_echo]. Then on further analysis I found out that in makefile inside starterware folder, uart_app_echo is put in Phony.

    now edited the phony section & made uart_app_echo available for build.

    Able to build starter ware code now using make file. But now flashing/loading the out file has become big issue.

    whenever I try to load the out file to the target with proper target_configuration file, it always returns error pop up "Load program error : Multiple debuggable cores detected". Can you please help me in flashing it using CCS? Thanks in advance.

    >> The CCS project files will be generated under pdk_am437x_1_0_15\packages\MyExampleProjects.

    MyExampleProjects seems more complex for basic peripheral testing. The code inside starterware seems very simple & easy to adapt to new board. This PDK option seems to involve lot of XCD tools which is making debugging very complex & i'm unable to put breakpoints or change pin.port values.

    when tested uart through these CCS projects, i'm getting garbage values in my terminal [teraterm/putty, etc.,] in my PC. [even though i've set all proper params - baud : 115200, etc.,].

    so I prefer using starter ware code which is straight forward. kindly let me know if my understanding is wrong. Thanks.

    BR,

    Anantha R

  • >> whenever I try to load the out file to the target with proper target_configuration file, it always returns error pop up "Load program error : Multiple debuggable >> cores detected". Can you please help me in flashing it using CCS? Thanks in advance.

    I tried the CCS 9.0.1 with the AM473x GP EVM (XDS100v2 on board emulator, J21) using the default gel file. I was able to load the pdk_am437x_1_0_15\packages\ti\starterware\binary\qspi_app_flash_writer\bin\am43xx-evm\gcc\qspi_app_flash_writer_a9host_debug.out to CortexA9 and run it without any issue, although the qspi flash is not available on my GP EVM.

    >> MyExampleProjects seems more complex for basic peripheral testing. The code inside starterware seems very simple & easy to adapt to new board. This  >>PDK option seems to involve lot of XCD tools which is making debugging very complex & i'm unable to put breakpoints or change pin.port values.

    I was able to create the CCS project using the UART example from UART LLD in PDK. They do use the XDC tools and SYS/BIOS to build. I can set up break point as long as the build is using Debug profile.

    >>when tested uart through these CCS projects, i'm getting garbage values in my terminal [teraterm/putty, etc.,] in my PC. [even though i've set all proper >>params - baud : 115200, etc.,].

    The test output on UART works fine to me. I connected the J9 to a RS-232 cable then it connects to a USB to RS-232, then to a PC. The outputs are correct for all the following: 

    pdk_am437x_1_0_15\packages\ti\starterware\binary\qspi_app_flash_writer\bin\am43xx-evm\gcc\qspi_app_flash_writer_a9host_debug.out,

    pdk_am437x_1_0_15\packages\ti\starterware\binary\uart_app_echo\bin\am43xx-evm\gcc\uart_app_echo_a9host_debug.out and

    pdk_am437x_1_0_15\packages\MyExampleProjects\UART_BasicExample_evmAM437x_armExampleProject\Debug\UART_BasicExample_evmAM437x_armExampleProject.out

    Ming

  • Hi Anantha,

    I understand you will need nand_flash _writer to program NAND flash on AM437x GP EVM. Currently there is source code nor the binary for you to program your application program into NAND flash. I will check around to locate it for you.

    Ming

  • Hi Anantha,

    According to the Processor SDK RTOS user guide: http://software-dl.ti.com/processor-sdk-rtos/esd/docs/latest/rtos/index_Foundational_Components.html#boot the only two boot modes supported for AM437x GP EVM and Starter Kit are the SD/MMC and UART. For IDK, qspi flash is supported in addition to the UART and SD/MMC. If you are using the qspi flash, then you can use the qspi_flash_writer, otherwise we only support SD/MMC or UART boot.

    Ming

  • Hi Ming,

    Thats great to hear.

    >> I tried the CCS 9.0.1 with the AM473x GP EVM (XDS100v2 on board emulator, J21) using the default gel file. I was able to load the pdk_am437x_1_0_15\packages\ti\starterware\binary\qspi_app_flash_writer\bin\am43xx-evm\gcc\qspi_app_flash_writer_a9host_debug.out to CortexA9 and run it without any issue, although the qspi flash is not available on my GP EVM.

    I also followed same steps. I'm trying to flash pdk_am437x_1_0_15\packages\ti\starterware\binary\uart_app_echo\bin\am43xx-evm\gcc\uart_app_echo_a9host_debug.out file to EVM AM437x target configuration. I think I'm over looking / missing some steps you're performing. Herewith I've mentioned step by step what I did. please let me know if anything is wrong. Thanks.

    1. Remove bootable SD card from EVM board.

    2. Connect USB JTAG [J21] from EVMAM 4372 to PC.

    3. Have Rs232 -> USB -> PC connected as UART.

    4. Downloaded official CCS version mentioned in product downloads page [[View:http://software-dl.ti.com/processor-sdk-rtos/esd/AM437X/latest/index_FDS.html:1230:0]] - CCS version  9.1.0 [CCS9.1.0.00010_win64.zip]

    5. created a example project "hello world" with Variant : AM43xx - Cortex A9, EVMAM437X[A9].

    6. Built the hello world example program.

    7. started using this setup to load the example program I built using GCC [Run -> Load -> select program to load].

    8. It opened a pop-up asking for which core to be used [as below].

    9. I selected Cortex A9 core & unchecked cortex -M . [even tried selecting both options enabled].

    10. still getting same "load program error - multiple debuggable cores detected".

    is there any prior setting in CCS/Board that I'm missing?

    BR,

    Anantha R

  • Hi Ming,

    At last I'm able to load the program built using GCC & flash it using CCS.

    I followed below steps:

    1. Click on Target -> Reset CPU
    2. Click on Target -> Load Program
    3. Select the executable file to be loaded.
    4. It started loading the out file in CCS generated using GCC.

    Thanks a lot for the support. I'll continue my testing from here.

    BR,

    Anantha R