June 17, 2025

pbhanot

Getting Started with Hyprland
Linux

Getting Started with Hyprland

Hyprland is a dynamic tiling window manager designed for the Wayland display server protocol, which is considered the modern successor to the aging X11. While many traditional window managers like i3 and Sway focus on X11 or a hybrid setup with Wayland, Hyprland is built entirely with Wayland in mind from the ground up.

Read More
Understanding Enums in C
Embedded-C

Understanding Enums in C

In the C programming language, enums (short for enumerations) provide a way to define a set of named integer constants. They are often used to represent variables that can take a limited set of values, making the code more readable, maintainable, and less error-prone. Instead of using arbitrary numbers, you can use meaningful names that represent specific values, making your program more intuitive to work with.

Read More
Segmentation Fault and Stack Overflow in C
Embedded-C

Segmentation Fault and Stack Overflow in C

In the world of C programming, two common types of runtime errors that programmers encounter are Segmentation Faults and Stack Overflows. Both are serious issues that cause a program to crash, but they occur due to different reasons. Understanding the causes, differences, and ways to prevent or handle these errors is crucial for writing stable and efficient C programs.

Read More
Startup Code in MCU: A Critical Component for Embedded Systems
Embedded-C

Startup Code in MCU: A Critical Component for Embedded Systems

Startup code is the first piece of software that runs after a microcontroller powers up or resets. This code prepares the MCU for normal operation by performing several tasks that are critical for the functioning of the system. The startup code is executed before the main program (often called main() in C) and is responsible for setting up hardware, memory initialization, interrupt handling, and sometimes basic system configurations.

Read More
Understanding the volatile Keyword in C
Embedded-C

Understanding the volatile Keyword in C

In C, the volatile keyword is used to tell the compiler that a variable may change at any time, outside the normal program flow. This means that the compiler should not assume the value of the variable remains constant during the execution of the program. The compiler typically optimizes code by assuming that the value of a variable does not change unexpectedly, but this assumption can be dangerous when dealing with hardware registers, memory-mapped devices, or variables that might be altered by interrupts.

Read More
Understanding Pointers in C
Embedded-C

Understanding Pointers in C

A pointer in C is a variable that stores the memory address of another variable. Instead of holding a data value like an integer or a character, a pointer holds the address where the actual data is stored. This enables C programmers to manipulate data indirectly through the pointer's address, offering greater flexibility and control over memory.

Read More