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

Find Tricky Bugs With a Stack-Depth Analyzer [Cortex-M development with GCC]

Posted by Magnus Unemyr on Feb 2, 2017 10:48:17 AM

Embedded systems often include bugs developers have a hard time to find. One common cause of such tricky bugs are stacks that grow beyond their dedicated memory area, thus causing unpredictable behavior and a malfunctioning system. 

This is because the stack can overwrite important variable values, that thus inadvertently get the wrong value. Alternatively, a variable overwrite the stack, as the stack has expanded into the memory area dedicated to that variable. Upon the next function call return, the software crashes as it returns to the wrong location (the return address is stored on the overwritten stack and execution continues on a random location). Due to these reasons, stack related bugs often appear to be completely random, in most cases making them incredibly difficult to find.

If you use an RTOS running parallel tasks, these problems can multiply. Each task has its own stack, and with more tasks, you get more stacks that can cause stack related bugs. The stack depth analyzer in TrueSTUDIO Pro can help resolve such problems and help develop more robust systems. Read this blog post to learn more on analyzing the stack usage on Cortex-M systems developed with the GNU GCC compiler in TrueSTUDIO!

Read More

Topics: GNU tools (GCC/GDB), Software quality, Atollic TrueSTUDIO, Embedded Software Development

Why more meetings can make your code better [software quality for embedded systems]

Posted by Magnus Unemyr on Oct 26, 2016 7:55:23 AM

A major problem in the embedded systems industry of today is inferior software quality, which is much more costly and difficult to address in embedded systems that has been deployed in the field, compared to PC or mobile applications that typically can download new releases automatically from the Internet.

Several approaches are available to improve software quality. One of the cheapest and most effective is to perform source code reviews, where developers study each other’s source code and point out potential problems already at the development stage. By deploying methods and tools outlined in this blog post, you and your team can delivery higher quality software with less effort.

Read More

Topics: Software quality, Atollic TrueSTUDIO, 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

Read "Advanced development & debugging of ARM-based devices" [whitepaper series]

Posted by Magnus Unemyr on Aug 23, 2016 10:30:00 AM

Old habits can prevent you from making progress. It is often said that even after a long time, you only use the features of a software product you tried when you first installed the product. And so, many ARM Cortex developers still use only basic methodologies like single-stepping, running to breakpoints, and printf() debugging - despite having much more powerful capabilities already installed in their tools.

Make sure you don't fall behind other embedded developers - read this whitepaper to find out what great time-saving and quality-improving capabilities smart developers enjoy!

Read More

Topics: ARM Cortex, Software quality, Debugging, Atollic TrueSTUDIO, Embedded Software Development, version control, Getting Started, issue management

Learn how more eyes produce better code [whitepaper series]

Posted by Magnus Unemyr on Aug 22, 2016 8:30:00 AM

Do you blindfold one eye when you study your code? Of course not - you use both eyes, as it is clearly better. And so, what improvements would occur if you read your code with 4, 6 or even 12 eyes? Our free white paper on source code reviews describes how software quality can easily be improved by using methods and tools for peer review and code review meetings. The methods reduces the risks for introducing bugs in the embedded software, and thereby reduces time to market and cost.

Introducing source code reviews is one of the best ways to improve software quality. You will reduce your development and testing time, as well as improving your software quality and code maintainability. Read the whitepaper now to learn how more eyes on the code improve your software quality!

Read More

Topics: Software quality

Who is in control of your code - you, or bad luck? [whitepaper series]

Posted by Magnus Unemyr on Aug 16, 2016 10:30:31 AM

Something that separates professional software developers from "cowboy hackers" are their understanding of the importance of sound engineering principles, and following best-practice methodology rather than cranking out unmaintainable code at the speed of light. An example is how they manage their source code throughout the lifetime of the project. There are excellent tools that help developers manage their code; and these tools are free!

Yet, some developers I meet still don't use such tools, and this amazes me all the time. I have heard many lame excuses as to why developers don't use the excellent and free code management tools that are available; and none of those reasons have impressed me a bit. To help embedded developers understand the value of using readily available and free tools for code management, we have written an extensive whitepaper on the subject. This blog post outlines the abstract and provides a link to the free whitepaper.

Read More

Topics: ECLIPSE, Software quality, Embedded Software Development, Subversion, version control, svn

How can you ensure success in your Cortex-M project?

Posted by Magnus Unemyr on Aug 14, 2015 10:55:14 AM

This is an interesting question, and you probably have a personal opinion on this too. But I would argue there are certain things you can and should do to greatly improve the chance of project success. By deploying best practices, you will be less likely to end up with project delays, a malfunctioning product, or a product that do not fulfil user expectations.

If you are a development manager with responsibility for business success of the product being developed, there are a couple of other items you need to consider. Project delay or even failure may become very costly if the wrong decisions are made early in the project. So what are the key factors for project success, and how can you reduce project risk to a minimum?

Read More

Topics: Software quality, Embedded Software Development

Follow best-practice coding standards by using MISRA-C compliance checking

Posted by Magnus Unemyr on May 19, 2015 2:13:00 PM

MISRA (The Motor Industry Software Reliability Association) was established as a collaboration between various vendors in the automotive industry, with the purpose to promote best practices in developing safety-critical systems for road vehicles and other types of embedded systems. Nowadays MISRA-C is used for any embedded system, not necessarily safety-critical or related to the automotive industry.

MISRA-C is a coding standard for the C programming language, developed by MISRA. The purpose is to identify a subset of the C language that improves safety, portability, reliability and maintainability. MISRA-C contains many coding rules, which limit the flexibility for how the source code can be written. Following the MISRA-C coding standard ensures that unsafe or unreliable coding constructs are not used, thus improving software quality and reducing the time spent on debugging.

Read More

Topics: Software quality, Atollic TrueSTUDIO, Embedded Software Development

12 great tools and techniques for STM32 developers

Posted by Magnus Unemyr on May 13, 2015 12:35:00 PM

Are you a skilled embedded developer, creating great software for STM32? You are in good company. If so, this blog article is for you. I have collected a number of tools and techniques that can be used to help you write STM32 software in an even better way, launching your embedded product more timely and of higher quality.

What does it take to write great STM32 software? Naturally, you need to know C or C++ and possibly a tad bit of assembler as well. You also need to know your target device and its device driver libraries as well. STMicroelectronics will provide information on this. But when what? What are the “secret” techniques used by really skilled STM32 developers? What tips and tricks do they want to keep to themselves?

Read More

Topics: ARM Cortex, Software quality, Debugging, Embedded Software Development

Watch the new Atollic TrueSTUDIO overview video - Welcome to the embedded developer's paradise!

Posted by Magnus Unemyr on May 6, 2015 9:50:00 AM

My colleagues have published a new overview video on the Atollic TrueSTUDIO C/C++ IDE for ARM Cortex development, highlighting benefits with using a commercially extended and supported Eclipse and GNU gcc/gdb tool for development on ARM Cortex devices like STM32, Kinetis, EFM32, XMC or LPC.

Click here to watch the 2 minute movie!

Watch the Atollic TrueSTUDIO overview movie!

Read More

Topics: ECLIPSE, ARM Cortex, GNU tools (GCC/GDB), Software quality, Debugging, Atollic TrueSTUDIO, Embedded Software Development

How to write better software with less effort using static source code analysis

Posted by Magnus Unemyr on Apr 29, 2015 2:09:17 PM

Almost all software products contain errors. If you think that your product is an exception to that, it is most likely that you are just not aware of the bugs yet. As code size increase, so do complexity and the number of software problems. There have been many attempts to fight software quality issues.

A good strategy to improve the situation is to avoid introducing problems in the first place, or at least fix them before the testing phase starts. This can be done automatically using static source code analysis and by gathering important code metrics.  This blog article will outline how this can be done.

Read More

Topics: Software quality, Embedded Software Development

What is cyclomatic value of code complexity and why should you care?

Posted by Magnus Unemyr on Apr 22, 2015 11:08:52 AM

Do you know the cyclomatic value of code complexity for your code? Or what your McCabe index is? If you are like most embedded developers, you probably answered no to these questions. And why would you care in the first place? As it turns out, there are extremely good reasons why every embedded developer should care a lot about this; and it doesn’t matter if you are developing for STM32, Kinetis, EFM32, LPC or any other popular Cortex-M device. Or non-ARM devices either, for that matter.

As embedded systems contain a lot more software today than only a couple of years ago, projects are exposed to an increased likelihood of distributing products with software problems. A good strategy to improve the situation is to avoid problems in the first place. This can be done by measuring and managing code complexity, as software with a high complexity level is likely to contain more bugs than software of lower complexity. By deploying methods and tools outlined in this blog article, you and your team can deliver higher quality software with less effort, by measuring and managing the software complexity in an effective manner.

Read More

Topics: Software quality, Atollic TrueSTUDIO, Embedded Software Development

The new standard in ARM development