Category Archives: Agile

Code Quality – Cyclomatic Complexity

Niall Cooling

Director at Feabhas Limited
Co-Founder and Director of Feabhas since 1995.
Niall has been designing and programming embedded systems for over 30 years. He has worked in different sectors, including aerospace, telecomms, government and banking.
His current interest lie in IoT Security and Agile for Embedded Systems.

In the standard ISO 26262-6:2011 [1] the term “complexity” appears a number of times, generally in the context of reducing or lowering said complexity.

There are many different ways of defining “complexity”, for example, Fred Brooks, in his 1986 landmark paper, “No Silver Bullet — Essence and Accidents of Software Engineering” asserts that there are two types of complexity; Essential and Accidental. [2]

Rather than getting into esoteric discussion about design complexity, I’d like to focus on code complexity.

Over the years, I […]

Posted in Agile, C/C++ Programming, General, Testing | Tagged , , | Leave a comment

Setting up Sublime Text to build your project

Glennan Carnie

Glennan Carnie

Technical Consultant at Feabhas Ltd
Glennan is an embedded systems and software engineer with over 20 years experience, mostly in high-integrity systems for the defence and aerospace industry.

He specialises in C++, UML, software modelling, Systems Engineering and process development.
Glennan Carnie

Latest posts by Glennan Carnie (see all)

For many years embedded development was dominated by complex integrated development environments (IDEs) that hide away all the nasty, messy details of a typical embedded software project.

Recently, with the rapidly accelerating adoption of agile techniques in embedded systems, there has been a move away from integrated development environments towards smaller, simpler, individual tools.  Tools like CMake, Rake and SCons are used to manage build configurations.  Container facilities like Docker provide lightweight environments for build and test.  And developers are free […]

Posted in Agile, C/C++ Programming, General | Tagged , , , , | 1 Comment

Bugs do matter…(unsurprisingly)

Niall Cooling

Director at Feabhas Limited
Co-Founder and Director of Feabhas since 1995.
Niall has been designing and programming embedded systems for over 30 years. He has worked in different sectors, including aerospace, telecomms, government and banking.
His current interest lie in IoT Security and Agile for Embedded Systems.

Welcome to 2018! How did that happen?

Thank you to everyone who attended last week’s webinar on “Measuring Software Quality“, and thank you for the positive feedback, it really does help us shape our future webinars/blogs.

During the talk, I discussed a suggestion by Sally Globe,  along the lines of “Bugs don’t matter”/”Perfect software is the enemy of rapid deployment” as long as you are “Not wrong long”, which came from an initial exchange on Twitter back last year:The caveat was this […]

Posted in Agile, Industry Analysis, Testing | Tagged , | Leave a comment

An Introduction to Docker for Embedded Developers – Part 4 Reducing Docker Image Size

Niall Cooling

Director at Feabhas Limited
Co-Founder and Director of Feabhas since 1995.
Niall has been designing and programming embedded systems for over 30 years. He has worked in different sectors, including aerospace, telecomms, government and banking.
His current interest lie in IoT Security and Agile for Embedded Systems.

In Part 3  we managed to build a Docker image containing the tools required to compile and link C/C++ code destined for our embedded Arm target system. However, we’ve paid little attention to the size of the image. Doing a quick Docker image listing we can see its grown to a whopping 2.14GB:

$ docker image ls
REPOSITORY TAG IMAGE ID […]

Posted in Agile, ARM, C/C++ Programming, Cortex, Testing | Tagged , , , | 3 Comments

An Introduction to Docker for Embedded Developers – Part 3 Cross-Compiling for Cortex-M

Niall Cooling

Director at Feabhas Limited
Co-Founder and Director of Feabhas since 1995.
Niall has been designing and programming embedded systems for over 30 years. He has worked in different sectors, including aerospace, telecomms, government and banking.
His current interest lie in IoT Security and Agile for Embedded Systems.

In the previous posting we looked at defining a custom Dockerfile where we can add specific tools (and their dependencies). From that we created a Docker image and this allowed us to build C/C++ code in a Docker container, ensuring a consistent build environment.

So far we have to build all our code using the native GCC toolchain which is part of the base Docker image (gcc:7.2). However, I want to be able to build an image I can download and run […]

Posted in Agile, ARM, C/C++ Programming, Cortex, Testing | Tagged , , | Leave a comment

An Introduction to Docker for Embedded Developers – Part 2 Building Images

Niall Cooling

Director at Feabhas Limited
Co-Founder and Director of Feabhas since 1995.
Niall has been designing and programming embedded systems for over 30 years. He has worked in different sectors, including aerospace, telecomms, government and banking.
His current interest lie in IoT Security and Agile for Embedded Systems.

In the initial post, we covered the basics of getting Docker setup and using an official base image for compilation.
But let’s suppose the base image doesn’t include all the facilities our company uses for development. For example, we have migrated from make files to CMake, but more lately we have taken to using the python-based Scons build system for C/C++ projects.
The official gcc base image supports make but not Scons or CMake. As before, we can search for a Scons docker […]

Posted in Agile, General | Tagged , | 3 Comments

An Introduction to Docker for Embedded Developers – Part 1 Getting Started

Niall Cooling

Director at Feabhas Limited
Co-Founder and Director of Feabhas since 1995.
Niall has been designing and programming embedded systems for over 30 years. He has worked in different sectors, including aerospace, telecomms, government and banking.
His current interest lie in IoT Security and Agile for Embedded Systems.

Docker is a relatively new technology, only appearing just over four years ago. The core building blocks have always been part of Unix; but the significant support, Linux containers (LCX), first appeared back in 2008.

Initially Docker was only supported on Linux, but more recently native support for OSX (my development OS of choice) and Windows (albeit Windows 10 Pro) suddenly opens up some interesting workflow choices.

The “What”

So, first, what is Docker? I’m always trying to find the right words here […]

Posted in Agile, Design Issues, Testing | 2 Comments

Agile for Embedded Conference – Early Bird registration ends this week

Our early bird offer ends on 31 March, so book now and join us on 3 May for a day dedicated to Agile for Embedded.

The agenda pronises an exciting event and included talks from industry guest speakers Ericsson Television, Altran, and Dyson, all sharing their experiences.

Click here to find out more about the speakers, presentation abstracts or to book your place.

Posted in Agile, General | Leave a comment

Agile for Embedded Conference announcement

Whilst there are a number of conferences dedicated to Agile and Scrum, content dedicated to looking at Agile from an embedded systems development perspective is much more scarce and a topic in which many of us are interested.

Although we don’t generally use the Blog to promote events, we think our conference is unique and definitely worth a mention.

3 May, Easthampstead Park, Berkshire

The day offers a pragmatic and practical approach to using Agile in the embedded development environment.

What’s on the agenda?

Using a mix of keynote […]

Posted in Agile, Testing, training | Tagged , | Leave a comment