What is referencing and dereferencing in C

This article is intended for the novice programmer who wants to understand the concept of referencing and dereferencing data in the C programming language. I will try to explain it as simply as possible, using some simple and easy to understand examples. To fully understand the topic, it is worth looking at some introduction to […]

CoAP protocol

This article provides a general introduction to the Constrained Application Protocol (CoAP) for those interested in a lightweight, easy-to-implement data transfer solution for devices with limited hardware resources, also known as ‘constrained devices’. CoAP is a UDP-based protocol defined by the RFC 7252 specification. CoAP is very similar to HTTP, has a similar client-server model, […]

How to install arm-none-eabi-gdb on Ubuntu

Unfortunately some time ago ARM decided to deprecate the use of PPA so to use their latest arm-none-eabi-gdb you have to install gcc-arm-embedded manually. But don’t worry, in this article I will guide you through this process step by step so it would be very easy. STEP 1: Removing current arm-none-eabi-gcc If you already have […]

User Datagram Protocol basics

User Datagram Protocol is an Internet protocol used to transfer user data between two points without requiring a connection. This makes it very lightweight. It works on the transport layer like TCP, but is much simpler. Unlike TCP, there is no guarantee that the data packet has reached the recipient because no acknowledgements are used. […]

How to install NRF Command line tools on Ubuntu

If this error looks familiar to you, probably after installing zephyr and setting west environment you forget about last step which is nrf tools. In this article I will show you how to manually install „nRF Command Line Tools” on linux systems. The nRF Command Line Tools is a necessary tool for development, programming and […]

Stack, heap and memory management in microcontrollers

In this article I’ll do my best to explain as simply as possible how memory management in microcontrollers works, what are „stack” and „heap” areas, and what’s the difference between them. Let’s start with a general diagram presenting how „uC” RAM memory is divided into diffrent arreas: Starting from the bottom, which is the beginning […]

What is function prototype in C

In C language function prototype is just information for the compiler about the existence of a function. It also provides basic information about its name, returning type, and list of accepted arguments. Let’s see it in an example: #include <stdio.h>void print_hello_msg(void); // This is prototype for the print_hello_msg functionint main(){ print_hello_msg(); return 0;}void print_hello_msg(void){ printf(„Hello […]

Declaration vs Definition

In this article, I will explain two most important concepts in C language that are very often confused by beginner embedded developers. I will explain what each of them means and what is the key difference, so from now on you won’t confuse them