<img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=1596188457259603&amp;ev=PageView&amp;noscript=1">

Editor power: 130 useful keyboard shortcuts [plus the only one you need to know!]

Posted by Magnus Unemyr on Oct 24, 2016 1:55:33 PM

The C/C++ editor in Atollic TrueSTUDIO (and most other Eclipse IDE’s as well) is incredibly powerful. In addition to the docking views and toolbar icons, the C/C++ editor contains a large number of useful keyboard shortcuts that give you instant access to powerful editing commands as you work with your code.

In this blog post, I will list 130 useful editor keyboard shortcuts. But you will only need to remember one of them. Read this blog post to learn the secrets of a very special shortcut – and all the others too!

Read More

Topics: ECLIPSE, Atollic TrueSTUDIO, editing

Device Driver Development: The Ultimate Guide For Embedded System Developers

Posted by Magnus Unemyr on Oct 21, 2016 4:29:12 PM

One of many difficulties in embedded systems development is hardware dependencies. A software developer targeting PC/web/mobile platforms generally doesn’t need to understand the hardware, at least not in any detail. To an embedded systems developer, this is critical.

In this blog post, I will explain how embedded software interacts with the hardware to get access to, and to control various hardware resources called peripheral modules. These can be timers, A/D or D/A converters, digital I/O, LCD display controllers, and much more. To use hardware resources like these, you will have to write device drivers, also known as a HAL (hardware abstraction layer).

Read More

Topics: Embedded Software Development

How to debug an NXP Kinetis Freedom board using a P&E Micro GDB-server and OpenSDA [video tutorial]

Posted by Magnus Unemyr on Oct 20, 2016 1:30:30 PM

Do you want to debug an NXP Kinetis Freedom board using the P&E Micro GDB-server with Open-SDA? If so, I recommend you watch this video tutorial that show you how to configure this in the correct way!

Read More

Topics: Debugging, Kinetis, OpenSDA, P&E Micro

Volatile is better for embedded developers [updated]

Posted by Magnus Unemyr on Oct 18, 2016 11:17:00 AM

Note: This blog post was originally published on 26th of July 2016, but has now been republished with additional information on critical regions.

Usually stability is a good thing. Sometimes however, volatile is better. In fact, volatile equals reliability in some cases - in particular for embedded developers. One of the most classic embedded development bugs is NOT using the "volatile" keyword in some variable declarations. If you are thoroughly confused by now, and have no clue what I am writing about, you really need to read this blog post right now.

Read More

Topics: Embedded Software Development

Should your source code be as beautiful as a Shakespeare novel? [how to write readable and maintainable code]

Posted by Magnus Unemyr on Oct 17, 2016 2:19:30 PM

Software developers – like most other professionals – have their own areas where people have strong opinions on how something should be done. For embedded developers, one such area is the “look” of the source code. Few things are so personal to a software developer as the coding style he or she prefers.

You may be a Kernighan and Ritchie (K&R) guy, a Whitesmiths guy, or you are a “rebel” who create your own coding style. Or even worse, you are a coding cowboy who doesn’t follow any coding standard. Either way, a good editor is a critical tool to simplify your coding efforts. This blog post will teach you more on how developers can code in style and how great editors can make your life easier.

Read More

Topics: Software quality, Embedded Software Development, editing

Learn how to use SWV to do real-time data tracing on ARM Cortex-M devices [video tutorial]

Posted by Magnus Unemyr on Oct 14, 2016 8:51:02 AM

Cortex-M developers have fantastic debug capabilities right at their fingertips. One extremely useful debug capability, that Serial Wire Viewer (SWV) event- and data tracing enables, is real-time data tracing. With a debugger that supports this useful functionality, you can watch variable values live as the target system runs at full speed (no need to stop on a breakpoint to watch a variable value).

And not only that. You can even watch an "oscilloscope style" real-time graph, that plots variable values live as the target system run at full speed. And you can monitor the memory reads and writes of particular variables too, and use the data access history log to work out when and why a certain variable suddenly got that erroneous value it should never get. Learn how to use these powerful debug techniques in this free video tutorial!

Read More

Topics: Debugging, Atollic TrueSTUDIO

Code-block execution time measurement using SWV/ITM tracing [video tutorial]

Posted by Magnus Unemyr on Oct 7, 2016 10:47:22 AM

Most software developers are used to execution time profiling, where the execution time of different C functions are measured and visualized - usually as bar graphs with timing information added to the bars. But what if you want to measure the execution time of a code-block that is not exactly one complete function - and one function only?

Say, you want to measure the execution time of a block of code (for example, 15 lines of C code) somewhere deep within a function, or the time it takes from a push-button is clicked to some result is achieved. In the first example, you only want to measure the execution time of a small part of a C function, and in the latter example, you want to measure the execution time between two events across many functions. In neither of these cases, traditional execution time profiling is of any help. Luckily, you can easily do this using SWV/ITM tracing on Cortex-M microcontrollers. This free video tutorial show you how!

Read More

Topics: ARM Cortex, Debugging, Atollic TrueSTUDIO

Show your embedded expertise [and write a guest blog post]

Posted by Magnus Unemyr on Oct 5, 2016 4:10:53 PM

Are you a seasoned embedded developer, with lots of experience in deeply embedded software development?

  • Do you have a story to tell about development practices (good or bad)?
  • Do you want to explain how to use some cutting edge development methodology or technology?
  • Do you have advice to share with your fellow developers about how to succeed in the business we are in?

 If so, you can apply to write a guest blog post for the Atollic TruePERSPECTIVES blog. This is a great opportunity to show off your skills and expertise, while at the same time helping your fellow developers.

Read More

Statistical profiling: Performance analysis using SWV [video tutorial]

Posted by Magnus Unemyr on Sep 27, 2016 10:19:10 AM

Using the Serial Wire Viewer event- and data tracing capability of most Cortex-M cores, you can use statistical profiling to quickly get a good understanding of how your software application uses the CPU resources. This insight is essential if you want to optimize your application for speed.

Atollic TrueSTUDIO supports SWV statistical profiling, thus giving developers a great tool for performance analysis and speed optimization. Watch this free video tutorial to learn how to use SWV statistical profiling:

Read More

Topics: Debugging, Atollic TrueSTUDIO

ARM GCC: The ARM compiler for embedded developers

Posted by Magnus Unemyr on Sep 22, 2016 11:07:48 AM

In the past decade, there has been an unmistakable trend in the embedded industry towards the use of GNU build tools and open-source build management tools, such as the Eclipse IDE. The GNU ARM compiler and Eclipse also break development teams away from expensive vendor lock-in.

The ARM GCC compiler with its associated tools and the Eclipse IDE are freely available, of high quality, and are becoming the de-facto standard development environment in the software industry. This blog post will touch upon considerations of using the GNU GCC C/C++ compiler and associated tools for embedded systems development, for ARM-based projects and together with the ECLIPSE integrated development environment.

Read More

Topics: GNU tools (GCC/GDB)

ARM development: what do Cortex developers want from a modern IDE?

Posted by Magnus Unemyr on Sep 21, 2016 11:46:28 AM

In terms of ARM development, many software developers spend a major part of the work week in front of their ARM development tools; primarily the IDE with its integrated C/C++ compiler and debugger. How does a modern ARM IDE compare to what embedded developers were using a few years ago?

In this blog post, I will highlight some of the advances the embedded market has made in terms of the C/C++ IDE (including the compiler and debugger itself) – and in particular, what tool features are now available for ARM Cortex developers specifically.
Read More

Topics: ECLIPSE, ARM Cortex, GNU tools (GCC/GDB), Debugging, Embedded Software Development, Project migration, version control, issue management, editing

Use DYNAMIC printf() during your debug sessions [be lazy and save time]

Posted by Magnus Unemyr on Sep 19, 2016 1:56:23 PM

printf()-style debugging has been around since the beginning of time (at least, since the beginning of the software industry). As popular as printf() debugging has been, and still is, it is very inconvenient and time-consuming.
Not only do you have to clutter your code with printf() instrumentation, you have to rebuild and relaunch the debug session every time you need to watch a new condition, and you lose the debug context every time you do so. But now, there is a better way: Dynamic printf().
Read More

Topics: ECLIPSE, Debugging, Atollic TrueSTUDIO

The best free tool for ARM development