QtCreator for uController development (Tim Sander)

QtCreator was originally an IDE targeted at desktop development, but it has evolved to desktop, mobile, embedded and bare metal. Since last years, it has suport for Android, C99, a code model in clang. It only supports gdb –with-python as the debugger though.

Bare metal development is for the small chips with no external memory: CortexM/R, with a hardware debugger (openOCD) and no OS or a very small one (FreeRTOS recommended). Otherwise, if Linux is running, then you can use the remote Linux debugging plugin.

The bare metal plugin uses a hardware debugger through gdb-server. QtCreator organises the targets by Kits – a Kit is compiler+debugger for a specific target. You have to assemble your toolchain into a BareMetal type Kit. Build system can be qbs (json-described build used by QtCreator), cmake, or qmake (but that needs a fake Qt and is not recommended).

New features in 2014: Fast Restart option, to avoid having to reflash, instead just reset the device. Recently added gdb provider support, which allows you to configure things from QtCreator itself – targeted for 3.4 release. To be added later: generic make support (which will make it possible to use this for Linux kernel debugging); device view (structured view of the hardware, so giving names to memory mapped addresses).

Advertisements

3 responses to “QtCreator for uController development (Tim Sander)

  1. wim de kimpe

    Is Jlink also supported? Is it difficult to add?

  2. JLink will work if you run the JLink GDB server. Then just point the bare metal plugin’s “default” connection type to its IP:port.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s