1. This forum section is a read-only archive which contains old newsgroup posts. If you wish to post a query, please do so in one of our main forum sections (here). This way you will get a faster, better response from the members on Motherboard Point.

Replace Keil/ARM tools

Discussion in 'Embedded' started by MK, May 14, 2014.

  1. There's also a character cell frontend as well at:

    Insight was indeed a separate project in recent years and it's
    development stalled at gdb 6.8. The website is:


    As you say, the major disadvantage of Insight is that it's tightly bound
    to the gdb source instead of the more typical communication via a gdb
    protocol you have with the other GDB frontends. (IIRC, Insight also
    came with it's own copy of the gdb source).

    That makes it unusable with later gdb versions and I switched to using
    ddd which works ok for my needs.

    Simon Clubley, May 16, 2014
    1. Advertisements

  2. MK

    David Brown Guest

    That looks nice. I sometimes like to use gdb from the command line for
    speed and convenience - a bit of colour would be pretty. Thanks for the
    David Brown, May 16, 2014
    1. Advertisements

  3. Yes, that's it.
    That's what I thought. I usually use gdb from command line or emacs,
    but very occasionally when working on startup code I used to use
    Insight because it made it simple to watch register and a block of
    memory change as you single-step through assembly language. Other
    debuggers provide the same thing, but back then Insight was sort of
    "built in", so that's what I used.
    I've always wanted to try Ada on an embedded system, but never got
    around to it. About 30 years ago I spent a tiny amount of time
    working with Ada for a 16-bit Navy CPU, and the dev environment was
    horrible. It ran on on VAX/VMS, but the Ada environment was completely
    stand-alone: it didn't even use the host filesystem directly. it had
    it's own editor and filesystem, and it was miserable.
    Grant Edwards, May 16, 2014
  4. Ding, ding, ding: you lose!

    Never, never, never, ever use any software (development tools or
    target source) written by a silicon/chip vendor/designer. They are
    _all_ incompetent when it comes to software.
    I'd be very wary of using anything from ST either...
    Grant Edwards, May 16, 2014
  5. MK

    Rich Webb Guest

    CrossWorks works well with Rowley's own JTAG but it also supports many
    of the other "usual suspects" out there, including Segger's J-LINK and
    the $25 interface plus quite a few that I've never heard of before. An
    Olimex ARM-USB-JTAG is a little slow but it works fine otherwise; I
    use one at home when the rest of the kit is on the bench at work.
    Rich Webb, May 16, 2014
  6. MK

    Mel Wilson Guest

    I've been using ST supplied libraries like STM32F4xx_StdPeriph_Driver, up to
    now only in prototypes. At that level, they've worked OK so far. It seemed
    like a quick way to a running program, OTOH, it's a different level of API
    to learn above the vital hardware register level, and using it to substitute
    for knowing the hardware is risky. About the 3rd thing I had to do was
    write my own function for full-duplex SPI, adapted to the API idiom. That
    idiom imposes a thin layer of complication all its own.

    And it doesn't do one thing I really want it for: parameterizing the choice
    of resources like UARTS, SPI ports, I2C, and so on. Once these get
    distributed among different peripheral buses, you may have to change quite a
    few setup function calls if you change your mind. C++ could probably
    implement this in some horribly opaque way, but ... that would be C++.


    P.S. Hardware guys' C code is a whole other area, whither I will not go.
    I'll just accept their hardware contributions and be happy.
    Mel Wilson, May 16, 2014
  7. MK

    Mike Perkins Guest

    I compromised with an Olimex one that works for the most part with
    Crosworks for an NXP device.
    Mike Perkins, May 16, 2014
  8. MK

    Tim Guest

    Rowley is terrific. Takes away the guesswork, flattens the learning
    curve. And it works.
    Tim, May 16, 2014
  9. MK

    Mike Perkins Guest

    I have to agree, it works straight out of the box and you get good support.

    However, I was peeved when in Rowley's very early days they promised
    lifetime updates. Of course it went from version 1.7 to 2.0, and I was
    told I had died and was no longer eligible for updates, or something
    like that. Sort of rankled with me.

    I then moved to the STM32 devices and there us a wealth of open source
    support plus libraries. I started with Yagarto but this was made
    obsolete by GCC-ARM tools.

    Coupled with Eclipse, OpenOCD (though reverted back to 0.6.0 due to
    bugs) I feel I have a pleasant and effective IDE.

    One very significant point of using open sourced tools is that you can
    set all this up on your customer's PC as a mirror of my own system
    without any issues of dongles or magic codes. Where the customer is
    also free to make his own mods and changes to his code.
    Mike Perkins, May 16, 2014
  10. You are welcome. Be warned however, I've only played with it briefly
    back from when I was evaluating frontend alternatives to Insight and
    my notes from that time (I've just re-read them) say I considered it
    to be too limiting for my requirements.

    It appears I stopped the evaluation when I had trouble while trying to
    debug Ada code. My notes are also silent on the subject of remote target
    debugging support and whether I could easily switch between various
    cross-compiled and native gdb builds (as you can with ddd by using a
    option on the ddd command line).

    Simon Clubley, May 16, 2014
  11. MK

    Tim Wescott Guest

    On Fri, 16 May 2014 21:10:07 +0100, Mike Perkins wrote:

    << snip more >>

    What bugs? Have you tried 0.8.0 yet? Do you like it?

    (I'm using 0.7.0, and it's working well for me).
    Tim Wescott, May 16, 2014
  12. The slightly weird thing about that is that IIRC ARM contracted
    CodeSourcery to provide a free toolchain, but in order to not upset
    other compiler vendors, it could not include hardfp support.
    ARM engineers have been feeding some of the optimizations back into
    Newlib. Newlib has I think always had integer-only versions of the
    formatted input and output functions (iprintf and friends), but they
    still have a pretty large footprint.

    Anders.Montonen, May 17, 2014
  13. MK

    boB Guest

    That's OK. Since there are only 2 commercial compilers for ARM that I
    know of, and they are both pretty good AFAIK that title should work
    well for that.

    So, from what I am hearing, nobody has done a comparison of a
    large-ish project that we can hear about here.

    boB, May 17, 2014
  14. Looking back at the above, "unsupported" is wrong; forum support can be
    adequate especially when the authors participate as in this case. And it
    is gcc; the answer to any question I have had is a google search away in
    any case.
    Oh really? I did not know that. It is just an edit to a config file
    anyway, when building from source ("multilibs"). This sort of nonsense
    is annoying. I expect it is the reason the ST gcc code examples only
    build with someones proprietary packaging of gcc. Instead of a Makefile,
    I think you use linker flags to choose a cut-down printf. Not sure of
    the details, I use my own "formatted output" functions myself.
    John Devereux, May 18, 2014
  15. MK

    David Brown Guest

    For "big name" commercial ARM compilers, there is ARM/Keil (though it
    will be replaced by llvm), IAR, Green Hills, CodeWarrior (though gcc is
    the default now). There are also "small" commercial compilers such as
    ImageCraft. I don't have a complete list, but that's 5 independent
    commercial compilers for ARM that I know of.

    I can't give any indication of their quality for code generation or as
    tools in general (even if it was allowed by their licenses!) - I simply
    haven't used them.
    Correct. If you are planning a big project for which these tools are a
    possible choice, it should not be hard to get evaluation versions - but
    expect to spend quite a bit of your time if you want to get a fair test.
    David Brown, May 18, 2014
  16. MK

    Randy Yates Guest

    I get very confused on which JTAGs/debugger interfaces OpenOCD will work
    with. E.g., how about the following (some of my immediate work and/or

    1. TI Tiva tm4c1294ncpdt

    2. Freescale Coldfire MCF52235

    3. Freescale Ketis K6x

    4. TI Sitara AM335x

    Randy Yates, May 19, 2014
  17. MK

    Randy Yates Guest

    Randy Yates, May 19, 2014
  18. MK

    Randy Yates Guest

    Actually, let me ask a very naive question: Can one even use a
    debugger with a largish process/OS like the AM335x/linux? I
    mean, what happens if you break in some time-critical portion
    of the linux kernel?


    Randy Yates, May 19, 2014
  19. MK

    Paul Rubin Guest

    You mean to debug the kernel? Or a user-level application? You can use
    gdb at user level and that's usually enough. I don't know about
    debugging kernels on those boards though.
    Paul Rubin, May 19, 2014
  20. I can't imagine how it would be useful for application development.
    For that, you run gdb-server on the target and then the gdb front-end
    on a desktop/laptop. [Actually, I generally do most of my debugging
    by running the application on a desktop before I try to run the app on
    target hardware.]

    A JTAG debugger might be useful for debugging initialization and
    startup code. It's certainly useful for troubleshooting and testing
    Good question.

    In theory it _might_ be useful for kernel debugging, but Linux has
    other facilities for that.
    Grant Edwards, May 19, 2014
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.