Choosing the right IDE (Integrated Development Environment) - Keil vs IAR vs Eclipse vs J-Link vs OpenOCD

Hi Qorvo, I see you support many IDEs. How do I choose between them? What are the advantages/disadvantages of each?

Hi Brett, great question! The PAC5xxx family of devices is supported by a decent variety of Integrated Development Environments (IDE’s). The most typical ones, in no particular order, are IAR, Keil uVision and Eclipse. We have also started to see some traction towards Visual Studio Code. When it comes to choosing the IDE there is really not much of a “right” or “wrong”. That is, either will be able to give you most of the tools required to properly complete the project in questions. What we see are the following trends. Some companies have already invested in any given tool and have acquired licenses. This is true for premium products like IAR and Keil. So once those agencies are invested in said tools they will want to stay with said tools. This is why we provide our main motor control projects in all of these project formats.

There are users who have not obtained a license for the premium products so they prefer to evaluate our products with a free IDE tool. For this purpose we provide an Eclipse based IDE which can be used to program and debug any PAC5xxx device using Segger J-Link or ST-Link.

Another important area to consider is the compiler. IAR IDE has its own IAR compiler, whereas Keil uses its Keil compiler. The Eclipse tool uses the GNU compiler. All of these compilers provide good results when it comes to machine code generation. However, as it should be expected, the premium product compilers tend to provide a tad more efficiency. For most applications this increase in code efficiency is not required. But worth keeping in mind for those applications which require the best possible performance.

The last aspect of the question, when it comes to J-Link vs OpenOCD has to do with the SWD debugger and not necessarily the IDE (although there is some connection to the later). J-Link is a Segger product and neatly couples with all IDE’s (IAR, Keil and Eclipse). Since Segger supports all PAC5xxx devices, all the user needs to do is install the Segger latest driver, and the IDE’s will update themselves to the latest drivers. OpenOCD is an open source transport protocol we leveraged to allow Eclipse to use other debuggers that are not natively supported by the Eclipse IDE. So which one should you choose? It depends on what you want to do. If all you want to do is program your device with your latest FW, then pretty much either will do. If you want to perform complicated real time debugging sessions, then you will be much better off with J-Link and it’s enhanced tool-set such as J-Scope which allows for real time variable debugging.

Hope the info helps!