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.

About SYS/BIOS and Cortex-M3

Other Parts Discussed in Thread: SYSBIOS

Dear all,


1) I successfully load my custom application in DSP thanks to sysbios-rpmsg in TI repo. However, I was wondering how dual-core Cortex-M3 is handled. Is SYSBIOS multicore?

2) Since I have no TMS470. I would like to use arm-noneeabi-gcc instead. Is it possible with sysbios-rpmsg?

regards,

Kevin

  • Hello Kevin,

    RPMsg code is split into a host processor side and remote processor side code. While the host-side code is running as part of the Linux kernel, the remote processor/coprocessor-side code, runs on top of a RTOS, SYS/BIOS and is referred to as SYS/BIOS RPMsg.

    The RPMsg kernel driver expects to find the firmware binary by the exact file name, ducati-m3.bin. This file is loaded into the M3 processor cores. A basic ducati-m3.bin is generated by default when SYS/BIOS RPMsg is built.

    To produce your own firmware binary, use the genrprc utility found in the <sysbios-rpmsg root>/src/utils directory. It is a script file typically invoked from within the src/utils directory.

    src/ti/configs

    • omap4430/DucatiAmmu.cfg - AMMU Configuration File
    • omap4430/DucatiCore0.cfg - Basic core configuration settings for all IPC sample images running on Cortex M3/M4 Core0
    • omap4430/DucatiCore1.cfg - Basic core configuration settings for all IPC sample images running on Cortex M3/M4 Core1
    • omap4430/IpcCommon.cfg.xs - Basic core configuration settings for all IPC sample images that are common for both Cortex M3/M4 processor cores
    • *.xdc, *.xs, *.bld - XDC package and build files

    For more information see following page: http://omappedia.org/wiki/RPMsg_BIOS_Sources


    Best regards,

    Yanko

  • Yanko,


    Thank you very much for your reply. If I am right, genrpc output a binary file to place in /lib/firmware and it take a two binary file as input(for each core). But, I still have to use the TMS470 compiler to compile my example right?

    For now, I am able to build my own firmware for DSP with the free C64+ compiler using SYSBIOS-RPMSG. I also found this:

    https://github.com/n-aizu/freertos-multicore

    It's enable me to run FreeRTOS in the Cortex-M3 compiled with GCC but I would like to use the same RTOS on both cores (Cortex-M3 and DSP).

    So that the question is: Is there a way to replace the TMS470 arm compiler with gcc in the SYSBIOS-RPMSG in order to generate two identical application for DSP and Cortex-M3 target?

    Best regards,

    Kevin

  • Hello Kevin,

    But, I still have to use the TMS470 compiler to compile my example right?

    - If you use OMAP4 you must use only OMAP4 compilier. You could use Code Composer studio or cross compiler.

    The cross compiler as gcc, you can find in TI's SW releases for OMAP4. For example Android 4AJ.2.5P2. The GCC can be find at following path - 4AJ.2.5P2/mydroid/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin/ arm-eabi-

    So that the question is: Is there a way to replace the TMS470 arm compiler with gcc in the SYSBIOS-RPMSG in order to generate two identical application for DSP and Cortex-M3 target?

    I notice following:

    The SYS/BIOS RPMsg code, requires the following tools/products, in addition, to provide a proper development environment.

    • XDC - XDCtools is the actual product that contains all the tools necessary for you to use the SYS/BIOS-side components and configure your application. The RTSC-pedia web site describes RTSC and XDCtools in more detail.
    • SYS/BIOS - SYS/BIOS is an advanced real-time operating system from Texas Instruments for use in a wide range of DSPs, ARMs, and microcontrollers. It is designed for use in embedded applications that need real-time scheduling, synchronization, and instrumentation. The dedicated SYS/BIOS wiki gives out more details about the RTOS.
    • IPC - The Inter Processor Communication (IPC) product provides a utility module, MultiProc needed by SYS/BIOS RPMsg modules. It is also required for building any customized versions of SYS/BIOS.
    • TI Code Generation Tools - Code Generation Tools (CGT) is the compiler/linker used for building your target executables for the ARM Cortex M3/M4 and DSP. Different CGT tools are used for compiling code depending on the target processor. The wiki has more information about TI Compilers.

    Most of the tools/products are also installed as part of Code Composer Studio (CCS), an eclipse-based IDE environment for creating, building and debugging projects. CCS is typically used for debugging purposes using a proper JTAG (XDS560v2 or a XDS100v2). Debugging using CCS and JTAGs are better explained in the Emulation wiki. The recommended version of CCS for debugging is CCSv5.1 and can be downloaded from the following download link.

    Clone: git clone git://git.omapzoom.org/repo/sysbios-rpmsg.git

    Tools Setup:

    All the required tools, except for ARM Code Generation Tools, are available for download publicly.

    • XDCTools can be downloaded from this page. Version currently used is XDC 3.22.03.41
    • SYS/BIOS can be downloaded from here. Version currently used is BIOS 6.32.01.38
    • IPC can be downloaded from here. Version currently used is IPC 1.23.01.26
    • Compilers for C64x can be downloaded from here. Please contact your TI Representative for ARM Compiler.
    • Other MFP tools needed for building MultiMedia code can be downloaded from the below links. Please use the versions as recommended by the corresponding MM release.

    Note:

    • Download of some of these tools may require a my.TI registration account.
    • Unless otherwise specified, it is recommended to pick the XDCTools and IPC as per the versions mentioned in the SYS/BIOS download page.


    In this branch of e2e forum are discussed only topics related with OMAP platforms.

    If you don't use OMAP based device, the most appropriate forum for your question is - http://e2e.ti.com/support/dsp/default.aspx

    Best regards,

    Yanko