Showing results for 
Search instead for 
Did you mean: 

Software on Silicon Blog


The March of IDEs

Back in 44 BCE, Julius Caesar was on the wrong end of an assassination plot on the Ides of March. Our goal is to support your choice of IDEs, and not put a sharp stick in your eye in the process. We’re developers here, so we know that you have your favorite tools. Let's make it easy to use them. What a concept.

IDes of March.png

Not How We Treat Our Customers

The number one design rule for ModusToolbox software is that you can use it however you want. We do provide an IDE as part of the package, but you don’t have to use it, ever. We support some of the most popular development environments: Visual Studio Code (VS Code); IAR Embedded Workbench; Keil Vision; and the venerable Eclipse IDE (including our own variant, the Eclipse IDE for ModusToolbox). You can do all this from a command line as well.

IDE Icons.png

Forcing you to use our IDE is a non-starter (see “sharp stick in the eye”). If you do use our Eclipse IDE for ModusToolbox, then you can launch the Project Creator, Library Manager, and Device Configurator (among other tools) directly from the IDE.  However, each of these is a stand-alone tool. The tools of course are cross-platform: Linux, macOS, and Windows. I described the usual flow here, with a discussion of some neat improvements here.

In a nutshell, without ever touching our IDE, you start with the Project Creator. Pick a BSP and an example application. That creates an application folder, and (likely) an mtb_shared folder with libraries that are shared among multiple applications. You use the Library Manager to add, update, or remove libraries. Use the Device Configurator to modify the design (clocks, peripheral parameters, and so on). There are other configurators as well. These tools modify the contents of your application folder. Every source file you need is in either your application folder of the mtb_shared folder.

After you have your project set up the way you want, use the command line to export to your preferred IDE. This is all documented in the ModusToolbox User Guide chapter on Exporting to IDEs. We added a make target to export to each IDE. What happens varies per IDE of course, but the make command is simple.

make vscode  uses the default GCC TOOLCHAIN

make ewarm8 TOOCHAIN=IAR

make uvision5 TOOLCHAIN=ARM

make eclipse for some other Eclipse IDE, not necessary for our IDE

That’s it, no muss no fuss. In each case the command line also tells you what to do afterwards, like this.


For VS Code you get the necessary JSON files and launch configurations. For IAR tools you get a .ipcf file. For Keil you get a .cprj file (and a .cpdsc file for older versions of the tool). For an Eclipse IDE you get the necessary project files. You know how to use your IDE, so simply follow the instructions. Your project appears in your IDE, all neat and complete.

If you make changes using our tools (e.g. update libraries or change the design with a configurator), simply run the make command again. That updates the connection file(s) and your IDE updates automatically.

Build settings (compiler options, linker scripts, flash loaders and so on) are set automatically. You can of course modify them using your IDE’s UI as you see fit.

There is, of course, one exception. This process does not set up your IDE’s debug connection to the board. We have no idea what probe you want to use. Once again, you know your tools. Set the debug connection to work as you want. For Eclipse IDEs and VS Code we provide launch configurations you can use.

Design rule: use it however you want.  Making an IDE choice? This borders on trivially easy. For sure it is a lot better than what Julius Caesar got on the Ides of March. We have ideas how to make it even easier. Your ideas are always welcome! I promise to not use any sharp objects.

About the Author
Been there, done that. Mostly. For software tools and developer support.