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.

RTOS: Booting on Beaglebone Black

Other Parts Discussed in Thread: AM3358

Tool/software: TI-RTOS

Hello everyone,

at the moment I'm tring to evaluate if we could use the AM3358 to replace Cortex M3 microcontrollers in some applications.

As an evaluation-board i bought the BeagleBordBlack and installed code composer studio and the Ti-RTOS SDK. Now i'm really having a hard time to get so test code into the controller (i'm really more the hardware guy).

At first I treid to figuere out if it is possible to get the code directly to the Board (but without an external debugger - i don't have one here) this doesn't work right?

Then i  tried to load the code to an SD card, but i dont quite understand how to do that. After i build my code i get an .out-file which has to be conveted in some way besfore i can load it on the CD card .But i dind't find anything newbe-friedly on how to do that. Can you help me with this?

Thanks in advance,

Christian

  • I'm moving this to the device forum.
  • Christian,

    I will try to provide guidance for you to load and run code on the Beagle bone black.

    In order run code of an SD card, you need to created a _ti.bin file using the procedure described here:
    processors.wiki.ti.com/.../AM437x

    you can then create the SD card using the procedure described here:
    processors.wiki.ti.com/.../AM437x

    If you plan to use debugger which is essentially the ideal way to develop and debug TI RTOS code, please refer to the article here:
    elinux.org/Beagleboard:BeagleBone

    Hope this helps.

    Regards,
    Rahul
  • Hello Rahul,

    thanks for your reply!

    I've already seen that page but my problem is that I don't know what to do with the lines

    "TOOLCHAIN_PATH_<A8/A9>/bin/arm-none-eabi-objcopy -O binary <application>.out <application>.bin"

    and

    "tiimage.exe <Image Load Address> NONE <application>.bin <application>_ti.bin".

    I guess they have to be pasted somwhere in Code Composer Studio (or is is something diffent?)

    Best regards,

    Christian

  • Christian,

    Either you can run this from command line or add this to the post build steps in your CCS project.

    to run this from command line, locate the ARM compiler in CCS installation under ccsv6\tools\compiler\gcc-arm-none-eabi-4_9-2015q3\bin and run the command

    arm-none-eabi-objcopy -O binary <application>.out <application>.bin"

    then go to tiimage.exe install location in the SDK found in the boot package for your device and create the _ti.bin file by invoking the utility from command line.

    To do this from CCS, right click on the project file and go to Properties. Under "CCS build" Settings , Go to GNU OBJ utilty and select Enable GNU OBJCOPY utility. in generaal options change the out from .hex to .bin

    to run the tiimage.exe, go to "CCS Build " and click on the "Steps" Tab and then add the tiimage command with the full location of the utility.

    Hope this helps.

    Regards,
    Rahul
  • Hello Rahul,

    I've addad the Lines

    C:\ti\AM335X_StarterWare_02_00_01_01\tools\ti_image\tiimage.exe 0x80000000 NONE ${BuildDirectory}/${BuildArtifactFileBaseName}.bin ${BuildDirectory}/app
    C:\ti\AM335X_StarterWare_02_00_01_01\tools\ti_image\tiimage.exe 0x402F0400 MMCSD C:\ti\pdk_am335x_1_0_5\packages\ti\starterware\binary\bootloader\bin\am335x-evm\gcc\bootloader_boot_mmcsd_a8host_release.bin ${BuildDirectory}/MLO

    to the post buil steps and now i get an app and a MLO File.

    I've tried theese files with two example projects (one "typical"-RTOS project which should print out some strings via printf and one similar to this LED-blink example [https://e2e.ti.com/support/embedded/tirtos/f/355/t/443187] )but i alwas get the following message on my terminal

    <\r>StarterWare Boot Loader <\n>
    <\r>BOARDInit status [0x0]<\n>
    <\r> SoC : [AM335X]<\r><\n>
    <\r> Core : [A8]<\r><\n>
    <\r> Board Detected : [BEAGLEBONEBLACK]<\r><\n>
    <\r> Base Board Revision : [UNKNOWN]<\r><\n>
    <\r> Daughter Card Revision: [UNKNOWN]<\r><\n>
    <\r><\n>
    <\r> Pin Muxing failed !<\n>
    <\r>Copying application image from MMC/SD card to RAM<\r><\n>
    <\r>Jumping to StarterWare Application...<\r><\n>
    <\r><\n>

    if i use the MLO File provided in ti\processor_sdk_rtos_am335x_3_02_00_05\prebuilt-sdcards\evmAM335x\sd_card_files there is no "Pin Muxing failed !" but the programm still seems to be stuck at "Jumping to StarterWare Application..."

    Is there some way to determine if the application gets stated or not?
  • One good way to see if the application started is to connect to the ARM core using and emulator and check the value of the Program counter. If this matches to a region in your applciation binary then the application booted correctly.

    Other option is to add UART_printf to your application so that you have feedback on the serial console. Other option is to add LEd blink code so there is visual feedback.

    From the log it appears that the boot image and board was detected correctly but the pinmux failed for some reasson. The MLO also seems to have detected the app and copied it so from the log it looks like the MLO finished executing correctly. you just need to add similar print messages in the application to get feedback that application booted.

    Hope this helps.

    Regards,
    Rahul