I came across this:
http://www.adafruit.com/blog/2013/10/14/armstrap-arming-the-next-generation-engineer/
// Christian
I came across this:
http://www.adafruit.com/blog/2013/10/14/armstrap-arming-the-next-generation-engineer/
// Christian
cbrunschen - What they have done is put an STM32F4 on a board, with a Black Magic probe.
Black Magic probe is at:
http://www.blacksphere.co.nz/main/blackmagic
So IMHO the bulk of the value is the Black Magic probe. STM32F4 board designs are '10 a penny'.
At least one of the LeafLabs folks have used Black Magic probe, and highly recommended it.
The key innovations of the Black Magic probe are:
1. It takes gdb commands, and interprets them directly, so there is no need for a 'gdb server'
2. It works for several different MCU's over JTAG or SWD.
It would have been nicer if the armstrap guy had mentioned that all of the hardware design, and (unique) software for the Black Magic probe was done by gareth at Blackspehere. There was't much time on the Adafruit show-and-tell, and maybe it's harder to get included if you try to explain all the gory details. I imagine 'lady ada' encourages everyone. However, it doesn't sound as compelling to say, I took this guys hardware and very clever, unique, software and stuck a simple processor board on the side, as the chat that did appear on the video. Everyone is fighting for attention!
Anyway, I have posted a comment at Adafruit identifying Gareth at Black Magic probe's outstanding contribution to Open Source Hardware, Open Source Software, and embedded debugging.
(full disclosure: I am not a member of LeafLabs staff.)
Hi gbulmer.
Disclosure: I am the armstrap guy.
I just want to chime in an talk about my work because I think there may be some confusion in the air. I am not hiding the fact that I'm using the BlackMagic probe. In fact, I advertise it right on the armstrap.org website. I actually spoke with Gareth to get his blessing and advise, so all is good there. We both believe in open-source so it's important to note that we are on the same team. The work I do can be extended the same way I'm extending Gareth's work. That's what open source is about and that's a good thing.
The armstrap.org website is not dedicated to JTAG debugging. It's dedicated to easy-to-use open ARM development that just works on every platform. That's how it is different.
I started armstrap.org because ARM development on Mac and Linux was just too hard. Do you have any recommendations on ARM development boards that have integrated debugging that works on a Mac?
armstrap - welcome to the forum.
"Do you have any recommendations on ARM development boards that have integrated debugging that works on a Mac?"
All of ST Micro's STM32FxDiscovery boards have integrated hardware debugging, and typically cost $10-$20. They have have fun and interesting peripherals too, for example accelerometers, gyroscope, magnetic compasses.
stlink at https://github.com/texane/stlink works on Mac and Linux, works with a variety of those ST Micro development boards, and supports gdb.
I did notice a few months ago that someone had re-programmed an STM32FxDiscovery board with Gareth's Black Magic probe software, so that is likely the lowest cost route to its advantages. Though I suspect you are more up-to-date than I on the status of Black Magic probe software.
Personally, I'm a bit torn between low-cost smallest-practical boards, and boards with integrated debugging.
It is feasible to make a sub $10 STM32F development board. For example, use a low-end STM32F on our community designs. Further those boards could also run Black Magic Probe software. So it is practical to have all the functionality on two low-cost boards, and have flexibility about the target embedded board.
On the other hand, I do appreciate why a beginner might prefer a single integrated board. Simplicity is very attractive.
One of my interests is small autonomous vehicles, for example micromouse or mini-sumo, which are popular with some school children (one exceptional person I had the pleasure to introduce to Arduino has won one of the UK championships 8 times in four years).
For these sorts of applications, size and weight is important, so a single integrated board is less desirable. Hence I oscillate between integrated and independent designs. Over the last year, I am seeing more advantages for two independent boards. However, IMHO both have a useful role.
I am very pleased to learn that you have discussed using Gareth's software. It is a very impressive piece of work.
I couldn't find any mention of Black Magic probe on your web site. Would you please post a link?
(Full disclosure: I am not a member of LeafLabs staff)
Thank you for that warm welcome.
> I couldn't find any mention of Black Magic probe on your web site. Would you please post a link?
Here is your link:
http://armstrap.org/armstrap-1-0-0-is-released-2/
You can also find it by doing a Ctrl+F on armstrap.org and look for "Black Sphere".
I love the STM32 discovery boards but you still cannot easily debug them on a Mac. They are incredibly economical boards and a great product for people who want to dip their toes into the ARM ecosystem. I have several flavours of discovery boards and they all suffer from the same problems:
-- You will need to do a lot of fiddling to get stuff working on Mac and Linux. They are typically easier to work with on Windows. They don't come with a ready-to-use IDE and the IDEs STM recommends costs a lot of money.
-- the stlink stuff is only used to upload code. It's not used for debugging. Having direct access to the hardware and low-level debugging is very important to real-world developers.
-- STM's licensing agreement does not allow you to resell or include the discovery into any released product. That's understandable given STM probably doesn't make much margin off their discovery line. ARMstrap doesn't have restrictions like that. The schematics and designs are released under a MIT license so you can use ARMstrap boards either personally or commercially.
-- STM32 Discovery boards are not remixable. I talk about the importance or remixability here:
http://armstrap.org/about/core-values/armstrap-is-remixable/
I understand that many may not see this as a big deal.
I know you are torn between low-cost smallest-practical boards, and boards with integrated debugging. Many people are. There are a bunch of people though who do prefer the integrated approach. Those people have an open-source alternative, that's all.
ARMstrap will probably will never be the cheapest solution because of the integrated debugger and that's ok. I'm not trying to provide the cheapest board. ARMstrap boards will save you time when trying to prototype an ARM project, especially if you're on a Mac.
I see you have a lot of experience with ARM development boards. What single thing do you consider important that ARM development boards should have?
armstrap - Thank you for that link to the page declaring armstrap's use of Gareth McMullin's Black Magic probe.
I didn't find any way to reach that page from the home page (but I may have missed a link somewhere). It seems unlikely that anyone would search for "Black Sphere" unless they knew that armstrap uses Gareth's software already.
I think it is clear that LeafLabs Maple or Maple-mini addresses all of your issues, except for integration of development board and hardware debugging. LeafLabs have recommended Black Magic probe for debugging, but people also use other OCD-compatible solutions. Maple adds the choice of Arduino-header or breadboard compatibility and core Arduino "language" compatibility.
While I agree with plenty of your post, their are some points I disagree with.
"-- the stlink stuff is only used to upload code. It's not used for debugging."
Not true.
I have used texanes stlink gdb server to debug STM32F4Discovery boards using gdb on my Mac. It worked fine.
texanes stlink software includes both a stand-alone flash programmer for a range of STM32FDiscovery boards, as well as a gdb server.
FYI texanes stlink gdb server supports hardware breakpoints, data watch points, single stepping, etc.
"They don't come with a ready-to-use IDE ..."
I think I understand.
I have no quibble with folks who would prefer to buy a complete solution from a single vendor. However IMHO there are reasonable, defensible alternative views too.
"and the IDEs STM recommends costs a lot of money."
Not true.
There was a free (restricted) versions of Keil. I have seen that in use on an STM32F4 board, designed by Pete Harrison, and used the JTAG-SWD on a FREE STM32F4Discovery (some were given away at an event). I have used it a little myself on an STM32F4Discovery. IIRC the limits were big enough that it is worth trying (32KiB code).
There was free 'nagware' from Atollic, I was told that it worked fine, but I was nagged-off, and can not vouch for it.
Their maybe free or low-cost versions of products from the other vendors mentioned on STM32F Discovery board packaging. I haven't checked recently enough to know.
However, I don't think that it being printed on the STM32xxDiscovery boards A6-ish packaging is the only place to look for recommendations.
Starting at st.com, with a search for 'STM32 Software Development Tools':
http://www.st.com/web/en/catalog/tools/FM147/CL1794/SC961/SS1533
I quickly spotted:
Coocox offer a free IDE for STM32, which several forum members have recommended.
Rowley Crossworks has a reasonably priced (£100?) IDE
Looking through this forum:
- folks have recomended using codeblocks.
- there are regular posting about using XCode (free, but Mac only, of course) IDE with Maple and STM32. etc.
ARM support a reasonably up-to-date free, Open Source toolchain based on gcc, through launchpad. AFAIK, it works with eclipse.
I am aware of free versions of Python for STM32, which should work with IDLE (free), and C# with free Microsoft-based-IDE for STM32F.
Looking at the list at ST, I can believe there are a bunch of other free, or low-cost toolchains and IDEs out there, but I didn't bother doing an exhaustive check.
Further, I think just looking at the cost of the IDE isn't enough.
Anyone seriously doing real-world embedded development would have several development boards; they would expect to damage a board at some stage, or need to do tests that need some statistical significance (a one off test on one board is not enough).
Analysing the "total cost of ownership" might lead some folks to choose commercial, affordable, IDEs and low-cost development boards, rather than free software and more costly development boards. I know at least one person who has come to that conclusion after many years of experience.
None of this is to say armstrap is in any way 'wrong'; IMHO it looks like a very useful piece of work.
"... What single thing do you consider important that ARM development boards should have?"
I can't think of a specific, single, generic thing. IMHO that is a bit too vague. I can only respond with generic qualities like "robust", maybe "reliable" or "affordable" etc. It is much easier to identify and prioritise requirements or capabilities within specific contexts or sets of use-cases. Otherwise it is almost as easy to define a contradictory context where a specific capability might be irrelevant or even a disadvantage.
For a beginner, ease-of-use might over-ride most other things I can currently think of. On the other hand, some beginners might want low-cost too. They may be concerned their inexperience will lead them to damaging the board. Or they may feel they will "put a toe in the water", to learn enough so that they can then choose a board which does what they need. So maybe it should be "throw-away" cost.
Please explain the context of your question, and I'll try to do better.
(Full disclosure: I am not a member of LeafLabs staff.)
gbulmer - Thank you for that great post.
There are thousands of ARM development boards out there (and some great ones from LeafLabs too). Most of these don't have an integrated JTAG debugger on them. As you know, I'm using the integrated debugger as a way to differentiate my board from the other guys. Having a board that's ready to go right out of the box can be very attractive option to certain developers.
I completely redact everything I said about stlink. You are right. I was working off a codebase that was really old and didn't really work on the Mac. It looks like lots of things have changed. I guess if you have the time to invest, you can get any ARM development board to work. Well done sir.
One of the greatest things I love about Arduino is that it just work on Mac, Linux and Windows without any tweaking, compiling, ini editing, etc. ARMstrap tries to turbo charge that experience with an ARM chip. It's hard to do that without an integrated debugger.
Don't get me wrong, I agree with your analysis on "total cost of ownership". I'm simply trying to lower a few barrier's of entry, that's all.
"What single thing do you consider important that ARM development boards should have?
I purposely left this question vague to see where you would take it. Naturally, people put importance on different things. One of the things that surprised me is that several ARM developers I know listed ease-of-use as a top three requirement. The software guys who tested ARMstrap looked for great example so that can get a feel (at least software wise) how the chip works. What I detest is a bad user-experience where people open their newly-purchased ARM board and fight tooth-and-nail to get a simple Hello World program up and running.
I'm currently working on getting ARMstrap examples working. I can keep you posted if you like, or can can stop by ARMstrap.org too.
You must log in to post.