ARM Cortex-M, Interrupts and FreeRTOS: Part 1

The ARM Cortex-M microcontroller are very popular. And it has a very flexible and powerful nested vectored interrupt controller (NVIC) on it. But for many, including myself, the Cortex-M interrupt system can be leading to many bugs and lots of frustration :-(.

NXP KV58F ARM Cortex-M7

ARM Cortex-M7: NXP KV58

Understanding the NVIC and the ARM Cortex-M interrupt system is essential for every embedded application, but even for if using an realtime operating system: if you mess up with interrupts, very bad things will happen….

Continue reading →

Prototype of Wireless Remote Controller with NXP Kinetis K20

For next semester I plan to use the tinyK20 as a remote controller for the Zumo Robots. I already had an early prototype presented in “3D Printed Gameboy and Remote Controller with tinyK20 Board“, so here is the next iteration of, in a sneak preview:

Remote Controller Prototype

Remote Controller Prototype

Continue reading →

Eclipse and GDB: Process Properties, Arguments and GDB Traces

To me this was new, and thanks to Liviu I know now how to inspect the command line passed to the GDB server (see “Semihosting (again!) with NXP Kinetis SDK V2.0“) 🙂

Process Properties

Process Properties

Continue reading →

Bricking and Recovering OpenSDA Boards in Windows 8 and 10

Getting a board from a distributor like Farnell/Element14/Mouser (add your own distributor) means that chances are high that the default firmware on it is written years from now because the inventory has not been updated, or because boards are still produced with that original firmware (because of testing?). So what happens if I use board with a firmware developed pre-Windows 8/10 area?

Freshly Unboxed NXP FRDM-KL25Z Board

Freshly Unboxed NXP FRDM-KL25Z Board

It might work, but chances are high that the bootloader and firmware is not ready for the ‘modern age’, and as a result the board might be bricked. If you still have a Windows 7 machine around (I do!), you are lucky. If not, then you need to read this article….

Continue reading →

McuOnEclipse Components: 31-July-2016 Release

Time for a new major update of the McuOnEclipse components, with the fillowing main features and changes:

  • FatFS component updated to R0.12 with patch 3 and exFAT support
  • Extended support for Cortex-M7
  • Extended support for Kinetis SDK V2.0
  • USB component support for Kinetis SDK V1.3
  • Improved FreeRTOS for NXP FreeRTOS TAD plugin
  • Added C++ wrappers to multiple components
  • Many smaller fixes and improvements

    SourceForge

    SourceForge

Continue reading →

NXP Pins Tool: Understanding Data for Offline Usage

I’m using the NXP Pins tool (see “Tutorial: Muxing with the New NXP Pins Tool“) now in several projects, and I think it is time to share a few tips and tricks.

Pins Tool

Pins Tool

So join me on a journey through the internals of the NXP Pins tool :-).

Continue reading →

NXP Pins Tool: Clock Gates and Controlling the Bits

With the NXP Pins Tool (see “Tutorial: Muxing with the New NXP Pins Tool“) I can configure and mux (multiplex) the microcontroller pins. What is really powerful and what might not be so obvious at the first sight is that it gives me deep control over every register bit and setting. For example I have below the PTB1 (Port B, pin 1) muxed as GPIO (General Purpose I/O):

PTB1 Muxed with Pins Tool

PTB1 Muxed with Pins Tool

But it only generates this:

void BOARD_InitPins(void) {
  CLOCK_EnableClock(kCLOCK_PortB);                           /* Port B Clock Gate Control: Clock enabled */

  PORT_SetPinMux(PORTB, PIN1_IDX, kPORT_MuxAsGpio);          /* PORTB1 (pin 54) is configured as PTB1 */
}

So what about all the other bits and pieces? Continue reading →

Hexiwear: Teardown of the Hackable ‘Do-Anything’ Device

Smartwatches are around for a while now. To me it is still questionable how useful the ‘big’ ones for iOS and Android are. But there are definitely the crowd funded smartwatch projects which caught my attention. Maybe it is about the ‘do-anything’ with connectivity?  One of these gadgets is Hexiwear: a hackable open source device

Hexiwear Device

Hexiwear Device

While it *could* be a kind of smartwatch, the value of this thing is more that it includes a plethora of sensors with two microcontroller, and I can use Eclipse with GNU tools to build my firmware :-).

Alert: Hackster.io is giving away 100 Hexiwears, but you need to hurry up (submission until July 15th 2016)!

Continue reading →

FatFS with Adafruit MicroSD Breakout Board and NXP FRDM-KL25Z

Breakout boards are great: they allow me to explore functions quickly, without to build my custom board: all what I need is some wires and ideally a bread board.

Adadfruit MicroSD Card Breakout Board

Adadfruit MicroSD Card Breakout Board

Continue reading →