GNU Code Coverage on Embedded Target with Eclipse Neon and ARM gcc 5

For a research project, we are going to send a satellite with an embedded ARM Cortex microcontroller into space early next year. Naturally, it has to work the first time. As part of all the ESA paperwork, we have to prove that we tested the hardware and software thoroughly. One pice of the that is to collect and give test coverage evidence. And there is no need for expensive tools: Free-of-charge Eclipse and GNU tools can do the job for a space mission 🙂

Eclipse with Coverage Views

Eclipse with Coverage Views

Continue reading

Advertisements

ARM SWO Performance Counters

In “Cycle Counting on ARM Cortex-M with DWT” I have used the ARM DWT register to count the executed cycles. With the MCUXpresso IDE comes with a very useful feature: it can capture the ARM SWO (Single Wire Output) trace data. One special kind of trace data is the ‘cycle counter’ information which is sent through SWO.

SWO Counters

SWO Counters

Continue reading

MCUXpresso IDE: Terminate and Disconnect a Debug Session

Eclipse for C/C++ (CDT) offers two different ways to get out of a debug session: Terminate and Disconnect:

Terminate and Disconnect

Terminate and Disconnect

The terminate and disconnect behaviour is not standardized, and varies between Eclipse distributions and debug connection. This article is about how things are handled in MCUXpresso IDE, and how I can influence the behaviour.

Continue reading

McuOnEclipse Components: 06-May-2017 Release

I’m pleased to announce that a new release of the McuOnEclipse components is available in SourceForge, with the following changes and updates:

  • SEGGER SystemView updated to V2.42
  • More components to work with MCUXpresso SDK: GenericSWSPI, FXO8500 and SimpleEvents
  • SSD1351 display driver supports 128×128 pixel resolution and Adafruit 1.5″ breakout module
  • Extended FreeRTOS debug helper settings
  • GenericI2C: added ReadWordAddress8() and ReadWordAddress8() functions
  • RingBuffer with new Getn() and Update() functions
  • Utility with map(), constrain(), random() and randomSetSeed()
  • XFormat: new xsnprintf(), contributed by Engin Lee
  • OneWire protocol component with Maxim DS18B20 temperature sensor
  • Many smaller bug fixes and enhancements
SourceForge

SourceForge

Continue reading

Using Eclipse to Program Binary Files to an Embedded Target

I’m using Eclipse based IDE’s to develop and debug my embedded applications. This works great, as Eclipse has all the necessary tools to edit, build and debug it. But when it comes just to download/flash a binary to the board, then things are pretty much specific to the tools used. With the advent of the new MCUXpresso IDE, here is how that Eclipse IDE can be used for this.

LinkServer GUI Flash Programmer

LinkServer GUI Flash Programmer

Continue reading

Using the LPCXpresso V2/V3 Boards to Debug an external Board

The MCUXpresso IDE (see “MCUXpresso IDE: Unified Eclipse IDE for NXPs ARM Cortex-M Microcontrollers“) has one great feature: it includes debug support for the popular LPC-Link2 debug probes. That way I have yet another powerful debug probe with extra features for ARM based boards. That LPC-Link2 circuit is present on many LPCXpresso boards from NXP. So why not using it to debug it my custom hardware?

Debugging Custom Hardware with LPCXpresso Board

Debugging Custom Hardware with LPCXpresso Board

Continue reading

Tuturial: mbedTLS SSL Certificate Verification with Mosquitto, lwip and MQTT

In “Tutorial: Secure TLS Communication with MQTT using mbedTLS on top of lwip” I already used TLS for a secure communication, but I had not enabled server certificate verification. This article is about closing that gap.

MQTT running on NXP FRDM-K64F

Secure MQTT running on NXP FRDM-K64F with lwip and mbed TLS

Continue reading

Tutorial: Secure TLS Communication with MQTT using mbedTLS on top of lwip

One of the most important aspects of the ‘IoT’ world is having a secure communication. Running MQTT on lwip (see “MQTT with lwip and NXP FRDM-K64F Board“) is no exception. Despite of the popularity of MQTT and lwip, I have not been able to find an example using a secure TLS connection over raw/native lwip TCP :-(. Could it be that such an example exists, and I have not found it? Or that someone implemented it, but has not published it? Only what I have found on the internet are many others asking for the same kind of thing “running MQTT on lwip with TLS”, but there was no answer? So I have to answer my question, which seems to be a good thing anyway: I can learn new things the hard way :-).

Blockdiagram MQTT Application with TLS using lwip

Block diagram MQTT Application with TLS using lwip

Continue reading

MQTT with lwip and NXP FRDM-K64F Board

In the area of IoT (Internet of Things), one obvious need is to have a way to send and receive data with an internet protocol. MQTT (or Message Queue Telemetry Transport) is exactly like that: a light-weight Machine-to-Machine communication protocol. With the MQTT protocol a microcontroller (or ‘client’) can send data and/or subscribe to data. For example to the Adafruit.IO:

Adafruit MQTT IO Feed

Adafruit MQTT IO Feed

Continue reading

MCUXpresso IDE: Installing Processor Expert into Eclipse Neon

In “MCUXpresso IDE: Importing Kinetis Design Studio Projects” I explained how Kinetis Design Studio projects can be imported and used inside the MCUXpresso IDE. Processor Expert projects can be used, but no new components added, modified or new Processor Expert projects created. To fully use Processor Expert, two plugins need to installed, and this is what this article is about.

Processor Expert in MCUXpresso IDE

Processor Expert in MCUXpresso IDE

Continue reading

MCUXpresso IDE: Importing Kinetis Design Studio Projects

Many of my currently active projects are using Kinetis Design Studio (KDS) V3.2.0 from NXP (I have published many of my projects on GitHub). Now with the advent of the MCUXpresso IDE (see “MCUXpresso IDE: Unified Eclipse IDE for NXPs ARM Cortex-M Microcontrollers“), I have migrated several projects from KDS to MCUXpresso. This post is about how to easily get KDS projects ported and running in MCUXpresso IDE.

Debugging KDS Project in MCUXpresso IDE

Debugging KDS Project in MCUXpresso IDE

Continue reading

The Influence of Software and Tools on ARM Cortex-M Microcontroller Vendor Selection

For me, the available software and tools are the primary key decision factor why I select a particular silicon vendor. Without good software and tools, a microcontroller only ‘sand in plastic case’, even if it is the best microcontroller in the world. I do have several probably excellent microcontroller boards, and they are only getting touched by more durst over the months and years.

Undusted LPC824 Board

Undusted LPC824 Board

Continue reading

MCUXpresso IDE: Adding the Eclipse Marketplace Client

One great thing with Eclipse compared to proprietary IDEs are the thousands of available plugins. Yes, not every plugin is probably on the ‘must have’ list (I have listed some in a series starting with “5 Best Eclipse Plugins: #1 (Eclox with Doxygen, Graphviz and Mscgen)“).

The ‘traditional’ approach to install Eclipse plugins is using the menu Help > Install New Software. Using that approach, I have to use or enter an Eclipse update site. An easier way is to use the Eclipse Marketplace plugin which allows me to search and browse for plugins and simplifies installation of it. But as this one does not come installed by default with MCUXpresso. But it is my preferred way to browse and install plugins into Eclipse:

Eclipse Marketplace under Eclipse Neon and MCUXpresso IDE

Eclipse Marketplace under Eclipse Neon and MCUXpresso IDE

Continue reading

MCUXpresso IDE: S-Record, Intel Hex and Binary Files

This is another article about the NXP MCUXpresso IDE (see “MCUXPresso IDE: Unified Eclipse IDE for NXPs ARM Cortex-M Microcontrollers“), this time it is about Post-build steps. Post-build steps are custom actions which can be executed after the build (or link phase), and are typically used to generate S-Record, Binary or Intel Hex files (see “S-Record, Intel Hex and Binary Files“).

Post Build Steps Details

Post Build Steps Details

Continue reading

MCUXpresso IDE: Unified Eclipse IDE for NXPs ARM Cortex-M Microcontrollers

There are many mergers going on in the industry, and one of the largest one was in 2016 the integration of Freescale Semiconductor with NXP Semiconductors, with both providing Eclipse based IDE’s to their customer base. Consequently, the company merger triggered a merger of the IDE’s, and last week NXP has released the result: the MCUXpresso IDE.

MCUXpresso IDE

MCUXpresso IDE

Continue reading

Embedded World Nürnberg 2017 Impressions: MCUXpresso, Hexiwear, NTAG, LPC800-DIP and Alan Hawse

This year I managed to attend the Embedded World in Nürnberg/Germany after missing the 2016 show. And 2017 has been a blast! With more than 1000 exhibitors and >30’000 visitors it was huge! There were too many exciting things, so I just pick a few: NXP demonstrated the new MCUXpresso Software and Tools with a new Eclipse Neon based IDE, lots of IoT and Hexiwear, the tiny LPC800-DIP board, and I have met Alan Hawse in person!

Impresson from the Show (embeddedworld 2017)

Continue reading