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.

Which IDE should I select to develop ARM side of 6446 in Linux system?

Hi,  There are many IDE to develop C project in Linux, but I want to know which one is fit for develping ARM side of 6446.  I'm running MontaVista in ARM, but I don't have DevRocket IDE. So I decide to use Eclipse with CDT plug-in to develop ARM side.

Could anybody tell me whether Eclipse is fit for developing ARM side? If it is not the one I should select, could you tell me your answer?

Thanks a lot.

  • Eclipse based debuggers can be suitable (though I am not terribly familiar with the CDT plug-in), in fact the DevRocket IDE is based on Eclipse. For a IDE on the Davinci processors you will probably find the most support with the actual Monta Vista DevRocket tool, or the Green Hills MULTI, however there are open source no cost options out there. One option is the DDD debugger which sits on GDB, there is actually an application note on using this free solution at the URL below.

    http://focus.ti.com/lit/an/spraap9/spraap9.pdf

  • That is to say, I can write C code and it's cmd file for ARM side  in Eclipse and then debug it on DDD, is that right?

  • Eclipse is a software platform, not necessarily a development tool; there are many eclipse-based IDE tools out there.  Only the most recent version of DevRocket (v 5.0) supports Eclipse, not the version used in the App Note suggested in this thread.  DDD is not a Eclipse based development tool, therefore it will not recognize Eclipse based cmd files. 

    The two tools suggested above (DevRocket and GHS MULTI IDEs) are your best bet for developing under DaVinci-ARM side; DevRocket is limited to ARM-side only and like most Linux debuggers, run on top of GDB (similar to DDD), but GHS MULTI can debug both ARM and DSP side on DM6446 from within a single IDE environment.

    Let me know if this helps and if there is anything else we can assist you with.

  • Frankly, I'm a beginner for ARM and Linux, so I think I don't express my mean clearly. Sorry about that.

    1. 

    I have a EVM of DM6446, and I've constructed DVEVM and DVDSK, and now I want to begin to develp ARM side of 6446. But I don't know where I can write my code, I hope I have an IDE like CCS in Windows platform. But now I'm in Linux, I think I can not afford DevRocket or GHS as you said. I know DDD is a debugger,it gives me a sense that the debugger is separated from IDE, but I think an IDE should allow me to write code and then compile it and then debug it ( just like Microsoft Visual Studio).

     So, could you recommend me a kind of free IDE software to develop ARM in Linux?

     

    2. 

    I know, in CCS, I can write cmd file to arrange memory for my program, I don't know whether the IDE in linux also needs me to do like in CCS .

     

    Thank you

  •  

    1) I do not know of any free Linux IDEs; ddd would be the closest thing.  ddd is a graphical interface to GDB debugger (keeps you from typing command line requests). 

    Linux heritage is very big on giving developers full control (includes source code); unfortunately, this often means doing most tasks via command line.  But this is not always the most efficient way to develop, especially if someone is new to Linux as it can take years to master all the free command line tools.  IDEs are expensive to develop and are probably not free; of course you also need to consider support (documentation, technical support for the tool) which is part of the cost in a commercial tool.

    From my experience as a software developer, when companies want to start via the least expensive way, they often use command line to build their executable (via hierarchy of make files in a source code tree) and ddd to debug code.  Of course, this method is less efficient than using a good IDE tool and hence often (not always) it turns out to be more costly when you consider time to market and other costs.  As you can probably appreciate, the decision on which tool to use is specific to each corporation.

    2) In a Linux system, memory arrangement is done at the boot-loader (u-boot) level.  Of course, the system developer needs to know ahead of time how much memory is going to be used by ARM and DSP and write their boot-loader (ARM specific) accordingly.

  • Thanks Juan, your response is very helpful.

  • I am happy to help!

  • Note that as to the second question here, when you configure your memory map in CCS you are configuring everything manually and have more control over where particular programs go. In Linux you do define the memory available in U-Boot, however that is for everything in Linux as opposed to specific programs, i.e. you say to Linux 'you have x bytes of space in DDR starting at y'. When you develop a program to run in Linux the memory management of that program is handled by the Linux kernel, it will allocate space for your program as opposed to you having to write a linker command file or BIOS configuration file to define where your code and data sections will be placed specifically.

    In essense developing for Linux on these devices is closer to developing for a PC than a DSP, the advantage is things are much more portable and you do not have to deal with memory mapping all your threads by hand, the down side is that you can lose some efficiency this way since you are more reliant on cache than mapping things to internal memory for performance.

  • This is a very good point! 

    DSPs are good at applications which require number crunching; its architecture and tools aim to give user more control on how to manage the system resources to accomplish their goals.

    ARM is a General Purpose Processor (GPP), the key-word being general; because of this, it can be used to run a wide variety of applications (browser, editor, media player...) written by many different companies/developers.  If there were no central resource managers (such as the virtual memory manager), there would be chaos in this type of scenario.  For this reason, GPPs normally have centralized resource managers as part of the OS.

    Perhaps it was not good to compare CCS memory allocation to u-boot memory mapping as u-boot is a much simpler type of mapping.

     

  •  About programing in ARM:

    In sprue66c.pdf,  4.4.1 Item:

    1) host $ mkdir ~/workdir/filesys/opt/hello
    2) host $ cd ~/workdir/filesys/opt/hello
    3) Create a file called hello.c with the following contents:
    #include <stdio.h>
    int main() {
    printf("Buongiorno DaVinci!\n");
    return 0;
    }
    4) host $ arm_v5t_le-gcc hello.c -o hello

    target $ cd /opt/hello

    target $ /.hello

    target $ Buongiorno DaVinci!

     

    1. 

    After compiling hello.c using arm_v5t_le-gcc, and type "./hello" on MontaVista , Could I understand that this program has been running on ARM ?

    2.

    On target $

    If I write a program named "Hello" and compile it using  "arm_v5t_le-gcc".

    Whether I can understand that it is what Juan said :"using command line to build executable."

     

  • 1) When you run ./hello on target EVM, you should see the printf line being output

       > Buongiorno DaVinci!

    2) Yes, typing "arm_v5t_le-gcc hello.c -o hello" at the shell prompt is one example of "using command line to build executable"; although more often, you will have a hierarchy of makefiles (which we avoided writing for hello program since it is so simple) and you will just type "make" at command prompt, similar to section 4.6 in sprue66 "Rebuilding DVSDK Software for the Target".

  • Where DVEVM DM6446 user can download DevRocket?

    Why montavista linux pro v4.0 present on CD without DevRocket or any IDE, only command-line compiler?

    GHS Multi IDE do not send licence => do not work.

  • DevRocket is a commercial IDE and costs $$$; if you have bought one of our DVSPB bundles(http://focus.ti.com/docs/toolsw/folders/print/tmdsdvspba9.html ), you should have received instructions on how to log on to MV Zone website where you can download DevRocket from.