Debugging is the process of finding and resolving of defects that prevent correct operation of computer software or a system. Debugging tends to be harder when various subsystems are tightly coupled, as changes in one may cause bugs to emerge in another. [Read more…]

Wide box Tiny box List
Ascent Descent

SEGGER J-Link Pro: an exhaustive review

SEGGER J-Link PRO an exhaustive review

In our minds, we have always seen SEGGER debugging solutions like a professional but costly tools: a debugger to perform advanced operations but definitely too much for a student. Some time ago we heard about a new version of SEGGER, the J-Link EDU, which is cheaper and addressed virtually to us. It started to take shape the idea of using it as external debugger for these ARM evaluation kit which comes without a debugger.

Some month ago SEGGER proposed a firmware suitable for STM32 Nucleo on-chip debugger which makes J-Link available also for the STM32 ecosystem and they continue reading...

Hello ChibiOS

Hello ChibiOS

One of most important feature of ChibiOS is multi-threading. Oversimplifying, a thread could be imagined like a sequence of instructions (with associated a priority and a working area) and multi-threading means kernel can manage more than a thread independently, executing them in a parallel fashion even if there is a single core.

Achieving this requires Kernel must plan operation sequence: this task is called scheduling. We could act indirectly on this operation though priority levels. Priority follows a simple rule:

among all the threads ready for execution, the one with continue reading...

A quick view of ChibiStudio

A quick view of ChibiStudio

We have said more than once that ChibiStudio is Eclipse based, therefore, should not surprise that project management is based on Eclipse rules. In Eclipse a C project is a folder containing basically a main.c, a makefile and two additional files used by eclipse to manage projects: .project and .cproject.

A ChibiOS based projects contains also three additional files:

chconf.h, containing configuration related to kernel. As example, here it is possible to configure system timing, enable/disable kernel features and enable/disable debug options; halconf.h, containing continue reading...