The best microcontroller development environement - Page 1
Forum section: electronics / general

author: michaelym
author_rank: Regular Contributor
timestamp: November 06, 2013, 06:49:37 am
content: Aaaagh, its so hard to choose. ARM/PIC/AVR/8051. I thought maybe I should approach it from the direction of the development environment.What is the most feature rich development environment for microcontrollers on the market.I'm looking for things such as debug features, auto code generation, 21st century code editor,simulations, etc.

author: Kjelt
author_rank: Super Contributor
timestamp: November 06, 2013, 08:39:32 am
content: Also include the price or budget for it since that is usually one of the major decision makers.

author: michaelym
author_rank: Regular Contributor
timestamp: November 06, 2013, 09:03:44 am
content: I'm assuming no budget constraints.

author: bench_knob
author_rank: Regular Contributor
timestamp: November 06, 2013, 09:16:26 am
content: Quote from: michaelym on November 06, 2013, 06:49:37 amHi there!Throw my two burritos into the pot..I'm an open-source advocate, and for me that filters out MicroChip/PIC and Texas Instruments MSP430 series, but it leaves wide open, at least in my humble opinion, both the ARM and the Atmel (Norwegian company) chip makers. Various ARM chips are supported by open-source tools, while Atmel also produces an ARM chip, virtually all (if not all) of the Atmel microcontrollers are supported by free open-source tools. So for my perspective, I suggest Atmel/AVR of which incidentally, the very popular Italian open-source Arduino is a member. There inexpensive debuggers (JTAG Mark II ICE) and various development boards, guys such as Olimex and AdaFruit, and my friends over at SparkFun (they've been getting expensive lately, but they have lots of kewl stuff), and of course there are the 'restricted memory' tools offered by Atmel, and FREE C & C++ (junk) compilers too. So I feel confident that you can't really go too far wrong with Atmel. And no ITAR restrictions either if you are US based.:->Cheersbench knob

author: Stonent
author_rank: Super Contributor
timestamp: November 06, 2013, 10:02:40 am
content: Why change environments?Arduino/Energia/MPIDE !Atmel/MSP40/PIC !

author: nctnico
author_rank: Super Contributor
timestamp: November 06, 2013, 11:02:47 am
content: Definitely Eclipse. Its designed to be the best code development environment. Companies involved are IBM, Google, Oracle, SAP, etc. For most compiler vendors the IDE is just costing them money so they only provide the bare minimum to get newbies started quickly.

author: dannyf
author_rank: Super Contributor
timestamp: November 06, 2013, 11:23:23 am
content: The phrase "development environment" can be a bunch of things, like compiler, IDE, debugger / programmer, or anything one uses in developing a code.In the latter, I think the ARM chips tend to have the best of them all: the compilers are of high quality in general, IDEs are plentiful and full featured, the debuggers are far more capable than those for 8-bit chips, ...

author: BravoV
author_rank: Super Contributor
timestamp: November 06, 2013, 12:14:13 pm
content: Quote from: nctnico on November 06, 2013, 11:02:47 am+1 , I know this sounds weird, as an enthusiast on my journey into ARM, Eclipse is the reason Isold my soul tochoosed TI since spending time & energy from the scratch just for the "development environment" is way too much when migrating to new platform/architecture.Simple yet valid reason, Eclipse is here to stay and will not just fade away say in next 5 or 10 years, and even though its far from perfect, chances on improving and getting better in the future is quite bright, imo.

author: dannyf
author_rank: Super Contributor
timestamp: November 06, 2013, 01:50:24 pm
content: QuoteI have yet to see someone sets out to design the 2nd best, or the 3rd best, or the worst, code development environment,In terms of IDE, my favorite is CodeBlocks, followed by IAR's (highly consistent and utilitarian). VS + VAX is also quite good but bloated.In terms of editors, Sublime Text (2/3) and SI are top notch.

author: nctnico
author_rank: Super Contributor
timestamp: November 06, 2013, 03:11:28 pm
content: Quote from: dannyf on November 06, 2013, 01:50:24 pmIn those cases its not called the 2nd best but its just designed to be mirrors and glimmers to go with a product.

author: andyturk
author_rank: Frequent Contributor
timestamp: November 06, 2013, 04:36:34 pm
content: Quote from: mojo-chan on November 06, 2013, 03:22:10 pmYep, GCC support for an architecture should be a requirement for serious projects. Even if you don't end up using it, the presence of a (free) GCC port means the architecture is well supported.

author: dannyf
author_rank: Super Contributor
timestamp: November 06, 2013, 04:51:41 pm
content: I generally avoid using "free" tools for commercial projects - your tools are the last thing you want to doubt. Strong vendor support is a must when your livelihood depends on it.It is a different story if you are simply playing with for fun.

author: nctnico
author_rank: Super Contributor
timestamp: November 06, 2013, 05:21:10 pm
content: In the past I've worked for a company which grew into a multi-million euro multinational where we used GCC exclusively for programming in C/C++. BTW GCC is usually maintained by the manufacturer of the microcontroller / cpu core. Who else knows their products inside out?The added value of commercial tools is a consistent development/debugging environment (Eclipse does that for free nowadays), a very optimised C/C++ library and a certified compiler (if you need that).

author: dannyf
author_rank: Super Contributor
timestamp: November 06, 2013, 05:57:16 pm
content: QuoteAre you trying to say that it is a tiny company?

author: Kjelt
author_rank: Super Contributor
timestamp: November 06, 2013, 07:05:48 pm
content: Quote from: nctnico on November 06, 2013, 05:21:10 pm+1 , and would add that for commercial companies the benefit of a commercial tool is the (fast) support you get.Having said that I like to work with Keil uVision in my company, it works great but as a hobbyist I would never ever consider paying $5k for it

author: andersm
author_rank: Super Contributor
timestamp: November 06, 2013, 09:08:33 pm
content: Quote from: bench_knob on November 06, 2013, 09:16:26 amThere is a GCC port for the MSP430 (mspgcc), and a new port sponsored by TI will be included in the next FSF release.

author: timb
author_rank: Super Contributor
timestamp: November 06, 2013, 09:21:36 pm
content: Quote from: andersm on November 06, 2013, 09:08:33 pmYup, and it's really good. All of TI's libraries work just fine with it, as well. For someone who wants to go an easier route you can't beat Energia, which has the added benefit of running a lot of Arduino code with simple modifications.There's also a template floating around that lets you use Xcode on OS X as your IDE for Energia development. You can also make your own simple Xcode template for using mspgcc directly outside of Energia if you want to build "pure" applications.I've never seen what people saw in Eclipse myself. It seems bloated and slow.Right now I use CodeRunner as my editor and just debug by hand most of the time.

author: andyturk
author_rank: Frequent Contributor
timestamp: November 07, 2013, 04:12:18 am
content: Quote from: dannyf on November 06, 2013, 04:51:41 pmOpen source *never* goes out of business.

author: Unknown
author_rank: Unknown
timestamp: November 07, 2013, 05:38:11 am
content: Not much point arguing about the 'best' development environment. For some people this will be a highly-integrated stand-alone environment. For others it's whatever tools integrate the best with their existing development environment, be it Eclipse, Visual Studio or Emacs. Some people prefer and trust commercial support, other prefer to have access to source so they can support themselves or pay someone they choose to support it.After we agreed about the best development environment, can we go back to arguing about the best editor, compiler and MCU?

author: madshaman
author_rank: Frequent Contributor
timestamp: November 07, 2013, 08:18:17 am
content: My two cents. This is all like trying to figure out "what's the best colour".I suggest starting with a project first, figuring out the requirements (this can be a conservative ballpark even..) then picking a uC that best meets the requirements.Most dev environments are brain-dead or frustrating in one way or another; best to get familiar with many over time and not worry so much.

author: westfw
author_rank: Super Contributor
timestamp: November 07, 2013, 09:14:59 am
content: QuoteReally? I'd claim that Arduino did that: "we don't care about best, we want SIMPLEST!"Eclipse certainly seems to be the most widely used. One problem (?) is that there are all those "eclipse based" IDEs that are so heavily customized that I don't know whether they look like Eclipse any more... (But. I am not an eclipse expert. The last time I tried it I got annoyed that I couldn't get it to work "reasonable" with a dark background.)

author: bench_knob
author_rank: Regular Contributor
timestamp: November 09, 2013, 08:22:21 pm
content: Quote from: michaelym on November 06, 2013, 06:49:37 amI recommend that you consider reading 'Computer Design' magazine, another is Embedded Systems (they went fully InterNet this year, no more print, I haven't read a single issue since, too many ads), it used to be good magazine for micro developers. In any case, they host surveys to help guide folks with development choices. Its a thorny question you are asking, but it all basically distills down to, "what do you wanna do?"YOU must understand what it is that YOU really desire in a tool. You want it to think for you? To write code for you? Or do you desire that the tools reduce the laborious aspects of the programming tasks? If its the first, well, maybe you shouldn't be programming; if the latter, well, checkout guys such as GreenHills or IAR. Greenhills is the more expensive, their JTAG debuggers/ICE tools typically cost (does not include environment...just the HW), around $5,000, then the environment is around another $5000 per seat. Its feature rich, but generally is processor specific. While the new Atmel AVR 'Studio 6' suite (doesn't run in WinXP SVCPK 3, sans all of the .NET updates, will not install), the suite is of course, Atmel controller centric, however it does employ much auto-code 'frame-works' and for all of their processors, which is nice, but ultimately, the programmer must know what it is that the framework generates. And...Atmel's ICE only costs $500 while their JTAG-ICE Mark II, is around $250, and both environments are free, while providing numerous features found in the $7,500 ~ $15k price development systems. But there is a distinct difference between the tools, its the matter of tech-support. In the old days, company's owned their SW bugs and helped their customers with those bugs for free, today, ya gotta pay for those work-arounds, or its tough-doodoo.And then, hah hah hah, you nailed it. The text editors. My God, these commercial programmers are idiots. They boast these awesome environments and then stick in a note-pad for an editor, what're they smoking? Crack?NotePad could be laughable if it weren't so bad. Millions of Dollars are wasted because of NotePad programming environment editors. It stinks that bad. There are other competent text-editors out there, but not many meet the efficiency of the WordStar keyboard strategy or the productive usefulness, and none, as far as I know, are integrated into a commercial programming environment tool-suite.So if money isn't an issue, go with the big boys. But if you are new to microcontrollers, what do you wanna do? Math oriented tasks? Then Texas Instruments DSP oriented chips could be the deal. Microwave ovens/dish washers? Then 8 bit MicroChip PIC (or any of the dozens of other companies products, --ST, FreeScale, Renesys, etc) might be the ticket. But if you are interested in an in-between complexity programming such as doing XBee, WiFi, WebServers, AES/DES, DSL Modems, etc, then Atmel's AVR 8/16 bit XMega series processors are a good choice. And if wanna do something that's really resource intensive, then ARM chips are a good choice, 32bits and there are competent pay/and free tools available too. Then ya go out and find the tool-chain that suits your programming style.Enough Yakin & Good Luckbench knob

author: krenzo
author_rank: Regular Contributor
timestamp: November 09, 2013, 09:04:45 pm
content: I would like to add that it's definitely not NXP's LXPresso software for their ARM Cortex chips.

author: idolstar
author_rank: Newbie
timestamp: November 09, 2013, 10:32:48 pm
content: I second (or third) people who suggest pick a project and jump in. I started with PICs (quite recently) because we were doing an ethernet based project and a friend of mine had experience with a PIC18 chip that fit our needs. I spent $75 on a pickit3, and around $100 for the dev board. You don't need a dev board though, you can just start with a few chips. I have been using the pic12f1822 for a few projects which is tiny, cheap, well documented, and I think pretty good for starting out. The Atmel ATtiny series has chips with very similar capabilities which I imagine are also great for starting out like the ATtiny85.

author: dannyf
author_rank: Super Contributor
timestamp: November 10, 2013, 12:10:30 am
content: QuoteI feel like investing in XMega is no different than investing into PIC17 now.QuoteNumerous people recommending Eclipse may disagree with you on that.

author: trackman44
author_rank: Regular Contributor
timestamp: November 10, 2013, 07:08:00 am
content: Personaly i started with the Arduino UNO. When you download the dev environment software from the Arduino website, you get example code so you can learn to make your own sketches. Then I was interested in making my own PIC programmer, so I found this web site :-https://sites.google.com/site/thehighspark/arduino-pic18fDownloaded the latest PICKit2 hex file from Microchip's website, programed a PIC18F2550 then i made my own PICKit2 clone from this site :-http://www.circuitvalley.com/2011/07/pickit-2-clone-universal-microchip-pic.htmlPlugged in the PIC chip I programmed and hey presto, I can program PICs! I also made a PIC18F2550 clone of the Arduino UNO called the Pinguino :-http://www.pinguino.cc/The beautiful thing about Pinguino is it's open source. Sketches are almost identical to Arduino's. All in all invested about $80 in parts, blood sweat and tears!This is one route you may decide to choose. I hope I helped in some way.Will

author: vvanders
author_rank: Regular Contributor
timestamp: November 10, 2013, 08:08:09 am
content: Quote from: nctnico on November 06, 2013, 11:02:47 amJust because there's a bunch of big names behind Eclipse doesn't make it the best. Google is migrating to NetBeans in the latest Android studio.Granted it'll work eventually and you can learn your ways around it's quirks, issues and bugs, however I'd rather spend my time in VIM and makefiles then touch a project in Eclipse.IMO I'm a pretty huge fan of what Atmel has done with AVR Studio. They took the Visual Studio shell from Microsoft which is one of the most stable, consistent IDEs out there and wrapped it around AVR in a nice, straightforward way. You get full programming, debugging, hell you can even poke a registers and ports mid-break and see results on the board. AVR is a very well understood platform with loads of resources and examples to get you up and running.

author: JuKu
author_rank: Frequent Contributor
timestamp: November 10, 2013, 09:03:08 am
content: Quote from: dannyf on November 06, 2013, 04:51:41 pm"Free" and "Strong vendor support" are not mutually exclusive. In fact, they often go together. Atmel is a good example. Strong vendor support is indeed a must.Another way to look at the issue os how much free code you get: OS, network, USB, UI, file system...

author: remixed123
author_rank: Regular Contributor
timestamp: November 10, 2013, 09:52:35 am
content: The best microcontroller development environment is a very subjective thing! This is my subjective opinion, which is coming from the perspective of a professional who designs and develops consumer products.I pretty much work exclusively with Texas Instruments tool chain for ARM Cortex M4F Microcontrollers (aka Tiva C Series). So that means Code Composer Studio IDE, which is an Eclipsed based IDE. It does the job, I do miss the auto-complete/intellisense feature which you find in IDEs like Microsoft's Visual Studio and Apple's Xcode, also the lack of a Macintosh version is annoying (but something they are looking to correct at some stage). But it does provide the low level stuff that you need to access sometimes, assembly stepping in debug mode, access and ability to change memory directly etc.One other thing to consider, is not just the IDE, but the SDKs and other environments that are provided. I have recently begun using TI-RTOS (Texas Instrument Real-Time Operating System), which is available for free. working with an RTOS makes life so much easier, and to explain how is more a topic for another thread, but if you want to find out more, check out this link -http://processors.wiki.ti.com/index.php/TI-RTOSTI also provide TivaWare which includes examples, drivers and code for just about any peripheral, including USB, Wifi, ADC/DAC, Timers, Graphics, Bootloaders....and whatever.Another option for developing on TI ARM if you do not want to develop in C, and can do without inline debug (not something I could ever do without, but lots of Arduino projects are developed in this way...you Arduino developers are a patient lot!) is Energia (http://www.energia.nu/) or if you want to develop on Macintosh and want auto-complete/intellisense then check out embedXcode (http://embedxcode.weebly.com/)And hi everyone, my first post in this forum.Glenn.

author: westfw
author_rank: Super Contributor
timestamp: November 10, 2013, 09:54:43 am
content: Not all aspects of an IDE are subjective. Several people have mentioned Visual Studio, but it's "single platform" which would eliminate it from some lists quite quickly.

author: timb
author_rank: Super Contributor
timestamp: November 10, 2013, 09:55:35 am
content: I've always been partial to MikroElektronika's stuff myself. You get a consistent IDE across a wide range of platforms (PIC, dsPIC, PIC32, AVR, ARM Cortex-M [STM and TI] and 8051) plus three languages (mikroBasic, mikroC and mikroPascal). Because the (huge list of) libraries are supported on all of the platforms you can literally pick right up and move to another vendor with very little changes to your code. Note super expensive at under $300 per platform/language!I'm currently using mikroBasic  for a project and I like it a lot. Right now I'm developing for an STM32 but plan on moving over to a Tiva C which will just take a simple recompile of the code!

author: remixed123
author_rank: Regular Contributor
timestamp: November 10, 2013, 10:22:37 am
content: Hi Timb,The whole concept and implementation of the MikroElektronika suite is well sweet.The only thing I find annoying about not going with the vendors tool chain is that you usually have to wait for things to be ported. So if you are like me and usually are trying to integrate the latest and greatest into your products, it can be really annoying having to wait for the 3rd party to port over code and drivers or provide working examples, if they ever get around to it. For example, MikroElektronika is still using the Stellaris branding, which was changed to Tiva C almost 6 months ago. If they cannot change something as simple as the branding on their website, what else have they not got around to?If however, the latest and greatest is not so important, and migrating the same code from one vendor to another is more important, then MikroElektronika is definitely something to look into.Glenn.

author: timb
author_rank: Super Contributor
timestamp: November 10, 2013, 11:25:38 am
content: If you look at the device list for the ARM compilers, it supports all 50 of the TM4C123xxx chips. They also mention it several places (look at the specifications tab and the Version 4 area). They sell a line of (pretty slick) Stellaris development boards and Stellaris so that may be another reason the branding hasn't fully changed. Plus Stellaris is still the more popular name, even Energia still refers to it as that.They also have a site called libstock.com which is full of user submitted libraries that are generally pretty good, or at least a decent baseline (here's a port of FreeRTOS to the STM32). You're right though, there are some things on the bleeding edge that just aren't out there. For instance, no TI CC3000 library (but they do have one for a similar Microchip WiFi module). On the other hand, they have a full library for the brand-spanking-new FTDI EVE graphics processing chip; even so far as natively supporting it in their Visual TFT GUI design software.That said, TI provides a lot of their libraries for IAR and Code Composer, so if you wanted to use something like GCC you'd still have to do some porting, which would be the case here. I find the quality of their libraries to be hit and miss (mostly miss) anyway, so a lot of times I've used them as a baseline to write my own.They've got a free demo, so it's worth checking out!

author: dannyf
author_rank: Super Contributor
timestamp: November 10, 2013, 01:42:22 pm
content: The divergent, and sometimes diametrically opposing views should be more than sufficient to answer the original question of what is the best development environment.

author: remixed123
author_rank: Regular Contributor
timestamp: November 10, 2013, 01:42:43 pm
content: "You're right though, there are some things on the bleeding edge that just aren't out there. For instance, no TI CC3000 library"Ha...I bleed often!

author: dannyf
author_rank: Super Contributor
timestamp: November 10, 2013, 07:20:25 pm
content: QuoteMy experience with them is mixed.I see the advantage of using one platform across multiple chips - that's why I stick with IAR.The issues with a closed library system are not that important to me, as I don't utilize their libraries. But a framework of canned libraries to be important to some people.They are in a difficult spot in my view: the commercial guys probably don't use them; the amaturers probably don't want to pay to use them, given the availability of free tools.It would be interesting to see how they evolve.

author: nctnico
author_rank: Super Contributor
timestamp: November 10, 2013, 08:06:48 pm
content: As long as they fix bugs & add requested features in the libraries quickly they should be OK.

author: Nerull
author_rank: Frequent Contributor
timestamp: November 11, 2013, 01:54:16 am
content: Quote from: andyturk on November 07, 2013, 04:12:18 amNo, it just gets abandoned.GCC is a very large, very complex project and the people who know enough to really work on the internals are few and far between. There were some serious issues with many of it's implementations for quite a while that no one could be bothered to work on until CLANG gave them a kick in the behind and woke them up. And you're never going to get much in the way of support.

author: westfw
author_rank: Super Contributor
timestamp: November 11, 2013, 02:55:35 am
content: Meh. If you're talking about something that has become a major tool (linux, gcc, eclipse), there are many vendors that will offer you "support" of the free software for an added fee. And if you're big enough that it's really important, you probably have an internal 'tools' group with at least some expertise in fixing things, dealing with vendors to fix things, or dealing with the open source community to fix things. (You can read that as "free software isn't actually free" if you want to...)That means that as a beginner, you're in relatively good shape with the right "free" tools, because other people are paying to make sure they work.Now, for microcontrollers, gcc/eclipse is a bit of an orphan child. The gcc community is as likely to say "it's not a compiler bug; avr-libc is written wrong!" as to fix an avr "issue", and bugs are likely be present and have low priority for getting fixed. (One reason that Arduino is using a "quite old" version of gcc is that all of the newer versions had catastrophic bugs wrt the arduino environment. At least, until quite recently.) Now - are the avr-gcc users better off than KEIL 8051 compiler users, after KEIL was acquired by ARM? I dunno; but it's not simply a "free vs commercial" question.

author: remixed123
author_rank: Regular Contributor
timestamp: November 11, 2013, 02:56:31 am
content: Quote from: dannyf on November 06, 2013, 04:51:41 pmI have to agree with this statement, additionally there are few "free" tools available that are up to scratch especially when it comes to installing, configuring and UI capabilities. All the time you spend trying to get the tool working could be spent developing.For people that enjoy tinkering, then these "free" tools are great, but for those of us who have deadlines to meet and clients to keep happy, you better focus on delivering as fast as possible. The cost of skilled labor is usually significantly larger than the cost of tools, no one is going to want to hire someone who says I saved you $200 by not purchasing a specific tool, and by the way it ended up costing you a $1000 in labour for me to get it working.And as for the above, I am not talking about some of the excellent open source libraries that are well supported or stable and serve a specific task (and have a usable license). These are fantastic and the whole area of open source sharing of libraries is something that any developer would be silly to dismiss. I benefit from these, so always try my best to give back in some way...whether that is giving some time to offer support, some code (when possible) or a donation.Glenn.

author: madshaman
author_rank: Frequent Contributor
timestamp: November 11, 2013, 05:09:06 am
content: I actually disagree wrt the gnu toolset and not being able to "trust" it.It's *extremely* well documented and you have the source available. You also have an entire community of hackers for support.Another thing about gnu is that you can conceivably create a new back-end to target *any* instruction set and the linker can easily be used to support virtually *any* hardware environment.Gnu might not be the right tool for the job in some cases (examples: there's not much utility in doing original Windows development with gnu; the vendor specific tools for a given specific hardware platform are likely to exceed gnu in ease-of-use).Also, gnu might *not* be the right solution for a beginner or for someone who doesn't care to become an expert in code generation.

author: Seg
author_rank: Regular Contributor
timestamp: November 11, 2013, 06:42:24 am
content: A programmer using closed source tools is like an EE using test equipment with the lid welded shut.Would you use test equipment you were forbidden to ever see a tear down of?Anyone with a Computer Science degree or equivalent knows how GCC works, because designing and implementing a compiler is a cornerstone of a CS education. The other is writing an OS kernel...Much like Dave makes fixing complicated electronics look easy, back in 2008 a smart guy named Anthony Green made inventing a virtual CPU architecture, then porting GCC to it look easy:http://atgreen.github.io/ggx/Which has apparently since evolved to implementing said architecture in FPGA hardware:http://moxielogic.org/blog/

author: remixed123
author_rank: Regular Contributor
timestamp: November 11, 2013, 07:11:24 am
content: Quote from: Seg on November 11, 2013, 06:42:24 amYes. Well actually it is not so much about being forbidden, it is just that I don't have the time or desire to do so. Tools do not have to be toys, educational opportunities or anything else but tools....if they serve their purpose then I'm happy.For example, I do not need to be able to tear down my car's engine for it to perfectly serve the purpose of getting me from point a to point b.I measure tools on their effectiveness to deliver what they promise, not on whether I can pull them apart. Many tools let you pull them apart, but do they actually deliver what they promise?Glenn.

author: resistor
author_rank: Regular Contributor
timestamp: November 11, 2013, 07:20:08 am
content: I come from a Linux/Unix background, so I generally find no added utility in IDEs. I do all my editing in vim, and my building with make.To weigh in on the free vs non-free debate, well, I might be biased because my day job is writing compilers, so I have the skills to go fix a bug in an open source tool if I need to. Moreover, while I understand that paid support is valuable for professionals, I find it to be a turn-off for me as a hobbyist. A commercial tool with paid support says to me that I won't be able to get any support, since I can't justify the expense for paying for it, even if there is a gratis/trial version. With a open source package, I'm both better able to support myself and more likely to be able to find someone who can help me out without paying them.

author: dannyf
author_rank: Super Contributor
timestamp: November 11, 2013, 11:52:36 am
content: QuoteSounds like you don't use Intel chips, Microsoft operating systems, Apple phones, Ford cars, or just about 99.99% of all the things out there,If we all insist on understanding fully, down to the smallest / tiniest elements, things we use, we would still be in the stone age.

author: NiHaoMike
author_rank: Super Contributor
timestamp: November 11, 2013, 04:58:04 pm
content: Quote from: dannyf on November 11, 2013, 11:52:36 amIntel/AMD chips (and ARM for that matter) have plenty of proprietary stuff locked inside, but at least they're well documented. For those writing programs for such chips, that's really all you need.Same with Windows, although I only have it as a backup in a VM in case I ever need it. I use Linux since I can easily modify everything in it. And it has a much better audio subsystem, at least if you stick with plain ALSA. Non-server Windows also at least used to have a deliberately crippled network stack but I don't think that's the case any more.No Apple for me. If it's bad enough to purposely make it hard on advanced users, it's even worse to purposely try to break user applied "tweaks" with every update. I stick with Android, along with hardware popular with the developers. (Some like the honor of owning a "hacked" Apple product, but I have better stuff to do.)Agree with Ford. Very horrible documentation and a real pain to debug when something goes wrong. In contrast, Toyota at least tells you what signals to expect on many lines so you can take a scope to some control lines and actually get some useful information. Still loads of room for improvement but at least it's one of the better options out there...

author: Galenbo
author_rank: Super Contributor
timestamp: November 11, 2013, 05:29:42 pm
content: Quote from: dannyf on November 10, 2013, 07:20:25 pmI am a beginner, use the Mikroelektronika environment, like it.Big disadvantage is that you need the 150-200 dollar license for every variant.So my PIC-C license doesn't allow me to program a PIC32, or a PIC in Basic.Yes , they have the free demolimit possibility, this allows you to use it, but once you use libraries it stops.

author: dannyf
author_rank: Super Contributor
timestamp: November 11, 2013, 05:53:37 pm
content: QuoteDepending on what "documentation" you are talking about and its availability to you.The point is that if you insist on understanding everything you use, there is very little you can use.

author: ben1066
author_rank: Contributor
timestamp: November 11, 2013, 07:17:36 pm
content: Personally I like MSP430. I used to use AVR but got tired with the expensive tools, so tried the MSP430 LP. The Eclipse based toolchain is good, as much as I hate eclipse but the tools are far better. CCSv6 even supports an MSP430 GCC port that gives you unlimited code size which is great. My only complaint is only the new USB launchpad is supported under Code Composer on Linux.

author: andersm
author_rank: Super Contributor
timestamp: November 11, 2013, 09:14:54 pm
content: Quote from: Nerull on November 11, 2013, 01:54:16 amMy ratio of bugs reported to bugs getting fixed is probably higher for the GNU toolchain than for any other software I've used. And if you need it, there are plenty of companies (like CodeSourcery/Mentor Graphics) that will sell you commercial support. You can even get the usual dongle/license server nonsense that you may be used to!At my current workplace we have some older products that use dongle-locked compilers. The vendor is no longer supporting that line of MCUs or the compiler, and naturally the dongle drivers don't work on anything newer than Windows XP. Once Microsoft drops support for XP, corporate IT will probably demand that all machines still using it must be taken offline. Since the product in question requires certification, changing compilers would be both a lengthy and expensive process. So if you ask me, betting your livelihood on a closed toolchain is among the worst things you can do.

author: Seg
author_rank: Regular Contributor
timestamp: November 11, 2013, 10:24:53 pm
content: Quote from: dannyf on November 11, 2013, 05:53:37 pmIf you don't seek to understand everything you use, you are not an engineer.

author: dannyf
author_rank: Super Contributor
timestamp: November 11, 2013, 10:31:22 pm
content: QuoteI would actually flip that statement: if you seek to understand everything you use, you cannot be an engineer.We have limited capabilities and our job is to maximize returns on those capabilities, through specialization. If you try to understand everything you use, you have understood nothing.

author: timb
author_rank: Super Contributor
timestamp: November 12, 2013, 03:11:47 am
content: I do agree that GCC is really bloated. The code is almost unreadable for 99% of developers out there, so you have a very small subset of people who can actually work on it.For C-like languages, CLANG/LLVM is the way to go. It's a lot faster and was designed from the ground up for use with IDEs (no FOLD process like GCC, so late compile debugging is a lot easier). There's also the fact that Apple, Google and other big companies are behind the primary development of it, and have invest hundreds of millions of dollars, which should tell you it's pretty well supported.

author: madshaman
author_rank: Frequent Contributor
timestamp: November 12, 2013, 04:58:20 am
content: Quote from: timb on November 12, 2013, 03:11:47 amI wouldn't use Apple as a shining example of good software development; not any more..

author: timb
author_rank: Super Contributor
timestamp: November 12, 2013, 06:07:10 am
content: Really? Why? (And don't give me that "iOS is a Walled Garden" load of BS. iTunes doesn't count, either.)Last time I checked they had the most advanced desktop OS in the world. That they give away. For free.

author: madshaman
author_rank: Frequent Contributor
timestamp: November 12, 2013, 06:13:01 am
content: Quote from: timb on November 12, 2013, 06:07:10 amObviously it's just my opinion. All I would say is that it's not the fault of the engineers, more the result of market pressure and a slow change of corporate culture after the late Steve Jobs left.

author: madshaman
author_rank: Frequent Contributor
timestamp: November 12, 2013, 06:22:48 am
content: Quote from: timb on November 12, 2013, 06:07:10 amI'm not saying you are wrong, but how did you "check" ?

author: timb
author_rank: Super Contributor
timestamp: November 12, 2013, 06:26:12 am
content: Right, but what exactly?They just did a major overhaul of iOSandOS X, both to critical acclaim. Is it because they haven't released some revolutionary "One More Thing" piece of hardware? I'm sure they've got stuff in the pipeline, plus we've gotten stuff like the iPad Air and New Mac Pro recently.Aside from getting rid of skeuomorphism in the UI (which was a positive change) I think Tim Cook is running the company exactly like Steve Jobs hoped for. Keep in mind, no one will ever be able to live up to the image of Jobs. In fact, he specifically said that he expected Cook to run the company his own way. The last thing he wanted was for his replacement to say "Is this what Steve would do?" about everything. He wouldn't have left him in charge if he wasn't 110% confident in his ability to take Apple into the future.

author: ddavidebor
author_rank: Super Contributor
timestamp: November 12, 2013, 06:32:21 am
content: Xcode is the best ide for computer.For microcontroller.... Mplad ide is good but it could be a lot better

author: timb
author_rank: Super Contributor
timestamp: November 12, 2013, 06:34:41 am
content: Quote from: madshaman on November 12, 2013, 06:22:48 amJust a figure of speech. That said, I do keep up on OS development and if you weigh a number of factors* I'd say OS X Mavericks comes out ahead of anything else on the market.*Speed, Stability, Power Management, GUI, Kernel, Quality of Available Software & Development Tools, Portability, Ease of Use, Power User Features, Frameworks, Underlying Components

author: madshaman
author_rank: Frequent Contributor
timestamp: November 12, 2013, 06:38:44 am
content: My feeling is the level of polish, both in the level of bugs at release time and in the aesthetics of the UI has degraded over time. As for the OS itself, I couldn't say it's vastly superior to any other bsd unix; but this is my opinion.If it makes you feel better, all my laptops are Macs, use an iPhone 5 and have numerous iPads and AppleTVs.My opinion is based on the general aesthetic feeling I get when using MacOSX and iOS now as opposed to in the past; from a user perspective.Apple has many great engineers and designers; I would forward the opinion that their code is at least as good as MS's or Google's. I feel that in general, industry-wide, lack of attention to detail is eroding the level of quality of all products; new features/bell-and-whistles aside.

author: remixed123
author_rank: Regular Contributor
timestamp: November 12, 2013, 08:09:39 am
content: Hehe...this discussion has moved on from "the best microcontroller development environment"Oh well I guess this is a good time to say, that I may use TI pretty much exclusively for my microcontroller development....but that takes up only 50% of my time, the other 50% is spent developing IOS apps that work with the microcontroller. There is nothing like switching from an advanced and modern IDE like Xcode which is all about developing code for the UI/UX to the raw power of ANSI C coding in an Eclipse environment.

author: madshaman
author_rank: Frequent Contributor
timestamp: November 12, 2013, 08:18:19 am
content: Quote from: remixed123 on November 12, 2013, 08:09:39 amI think it's all about personal preference. I prefer a bare-bones editor with syntax highlighting and controlling the make process explicitly with a make file.I will admit that when developing on iOS or MacOSX I just use the IDE and certainly wouldn't edit xib files with a text editor.

author: timb
author_rank: Super Contributor
timestamp: November 12, 2013, 08:38:05 am
content: I write all my embedded code in Quick Basic 4.5 and just run it in an x86 SoftCore on an FPGA.

author: remixed123
author_rank: Regular Contributor
timestamp: November 12, 2013, 08:47:31 am
content: Quote from: madshaman on November 12, 2013, 08:18:19 amI actually admit a far bit of ignorance about the bare-bones development process. Do you get features like inline debugging? To me that is an absolutely essential feature, and without I would expect coding would take significantly longer, especially when something strange is happening. Or are there other techniques to help with the difficult bugs?Hehe....using the Xcode UI editor....that's the thin edge of the wedge and could lead to developing Windows Forms programs in Visual Studio .Net...

author: resistor
author_rank: Regular Contributor
timestamp: November 12, 2013, 08:55:30 am
content: Quote from: remixed123 on November 12, 2013, 08:47:31 amIt depends. Emacs has a very good gdb integration mode, which will give you a fairly similar experience to what you'd see in an IDE. I personally don't use any integration between my debugger and my editor. The debugger prints the last N lines of code whenever it hits a breakpoint, and prints the current line as I step through it. I can query the values of variables at any point. I generally have my editor open right next to it for cross-referencing as needed.Quote from: remixed123 on November 12, 2013, 08:47:31 amIt's all what you're used to. Some people find a UI essential; some people can debug anything with a single printf. Personally, I use a command line debugger with heavy use of conditional breakpoints.

author: remixed123
author_rank: Regular Contributor
timestamp: November 12, 2013, 09:37:16 am
content: There is one free and open source tool I use and absolutely swear by, as do a large percentage of developers, and that is Git!I of course prefer to use it with a GUI integrated into the IDE and managed via github, bitbucket or stash.Git is the best thing Linus created! I see that messy confusion called Linux as a practice opportunity for Linus to create the beautifully functional Git

author: westfw
author_rank: Super Contributor
timestamp: November 12, 2013, 11:20:12 am
content: QuoteDo you think that Xcode is a bad IDE for microcontrollers, or were you just unaware that there are major projects around that allow you to use XCode for micros?

author: ddavidebor
author_rank: Super Contributor
timestamp: November 12, 2013, 01:24:25 pm
content: Quote from: westfw on November 12, 2013, 11:20:12 amNone of those. You've actually rearranged my sentence.

author: madshaman
author_rank: Frequent Contributor
timestamp: November 12, 2013, 02:08:01 pm
content: Since the real answer to OP's question is "whatever works best for *you*", maybe a better way to approach this kind of question is to ask:"I'm new to uC development environments, I'm thinking of trying 'x', is this a fundamentally bad choice? Am I asking for trouble?"I'm thinking posing the question this way would yield more consensus among those who answer.

author: remixed123
author_rank: Regular Contributor
timestamp: November 12, 2013, 02:32:57 pm
content: Quote from: michaelym on November 06, 2013, 06:49:37 amLet's look at the OPs original question....From this, we can quickly reject gcc, and in fact would could reject every development environment mentioned in this thread. As none have auto code generation built in, that I am aware of.....at best some will be able to have some code auto generated using UML models. As for simulations, I am not sure if the OP means simulator, as many will have an MCU simulator, but simulations are another area completely, and again, I am not aware of any of the IDEs mentioned having one.Looks like we failed on providing a decent answer to the original question....and got a little side tracked

author: Unknown
author_rank: Unknown
timestamp: November 12, 2013, 11:00:19 pm
content: The Imagecraft and CodeVisionAVR IDEs offer wizards that generate code for (mostly) initializing peripherals.

author: Didier9
author_rank: Newbie
timestamp: November 13, 2013, 12:37:36 am
content: I cannot necessarily comment on all your requirements, but my favorite 8 bit environment for the last 10 years has been the Silabs IDE and their 8051 family.They cover the whole gamut from a small 11 pin device to 144 pins monsters with excellent analog functions and fast processing (25MIPS minimum up to 100MIPs), the fastest 8051's I have seen.The IDE is well done and solid. They support the usual suspects tool manufacturers including Keil and the free SDCC. The debugger works well and is non-intrusive. Most devices are programmed and debugged via 2 pins, one being the reset and the other that can be shared with normal functions when not debugging.They all have a 25 MHz precision oscillator such that a crystal is usually not necessary. Those that run faster than that have a PLL.The IDE is fully functional and fairly bug-free, but aside from solidity, not something to write home about.All in all, a very functional package that is essentially free (if you use SDCC).Silabs has set a very high standard with working tools and code examples that run out of the box with a minimum of fuss (that applies to their Cortex-M3 line as well), unlike many of the ARM wannabees these days.Probably the only thing negative I can say is that they do not have any DIP packages, so not so great for hobbyists. However, many of their chips are available on a small development tool called the Toolstick. They have toolsticks for most of their chip families and they usually cost about $10, so for prototyping, they are ideal.

author: dannyf
author_rank: Super Contributor
timestamp: November 13, 2013, 12:48:38 am
content: Quote= older Keil C51?

author: michaelym
author_rank: Regular Contributor
timestamp: November 19, 2013, 05:28:07 pm
content: Quote from: Didier9 on November 13, 2013, 12:37:36 amI actually currently use the SiLabs IDE, but I'm looking for an upgrade because it seems primitive compared to other environments I've glanced at.