Pyjama Brah!

Putting the 'Engineering' back in the Engineer!

Posts

OpenWRT vs. RDK vs. prplOS

What does a humble device like a router do? To most, a router is used till it breaks like many other devices in the house. The router plays such an important role by making sure your netflix works smoothly. However, a solo glance at its shell will reveal a battle raged for OpenWRT, RDK, and prplOS.

Read more...

Anatomy of Assembly Program

I am going to explain the anatomy of assembly code using RISC-V as an example since it’s a clean, modern instruction set architecture (ISA) that’s easy to understand. Assembly code is a low-level programming language that directly corresponds to machine instructions executed by a processor.

Read more...

Git, Gerrit! and the Industry

Git and Gerrit are pivotal tools in the software development industry, each serving distinct yet complementary roles that enhance collaboration, code quality, and workflow efficiency.

Read more...

Hand coding Audio files in C

Pulse-Code Modulation (PCM) is a method used to digitally represent analog signals, particularly audio. It works by sampling the amplitude of an analog signal at regular intervals and then quantizing those samples into a series of discrete numerical values. These values are stored or transmitted as binary data, making PCM a foundational technique for digital audio in computers, CDs, DVDs, and other media.

Read more...

A shallow dive into do{..}while(0) loop in C

In this article, I want to talk about the do{..}while(0) construct in C. This construct is often used in C programming to define multi-statement macros. It is a common pattern used in the Linux kernel and other standard C projects. I will take an example of a macro that is not safe and show how do{..}while(0) construct can be used to make it safe. Especially in the conditional statements.

Read more...

Scopes of Identifiers in C

various types of scopes.

In the C programming language, the scope of an identifier determines where it can be accessed or referenced within a program. Understanding the different scopes in C is crucial for managing variable and function names effectively without causing conflicts.

Read more...

Optimizing Timer Management in Embedded Systems with Delta Lists

Delta Timer List

Efficient timer management is a crucial aspect of embedded systems, especially in applications requiring low-power operation, RTOS scheduling, or precise event timing. One of the most efficient ways to manage multiple software timers is the delta list approach, which significantly reduces CPU overhead and optimizes wake-up schedules.

Read more...

Storage Classes in the C Language

Storage Classes in C Language

In the C programming language, a storage class defines the scope (visibility) and life-time of variables and/or functions within a program. There are four fundamental storage classes that can be used to define these properties: auto, register, static, and extern.

Read more...

Tokens in C Language

Tokens

In the C programming language, tokens are the smallest individual units of a program that the compiler recognizes and processes during lexical analysis, the first phase of compilation. The C compiler breaks down the source code into tokens before proceeding to syntax analysis and further stages. Tokens are the building blocks of a program, and understanding them is fundamental to grasping how C code is interpreted.

Read more...

Abstractions - From Nature to AI

Various Abstractions

The layers of abstraction all the way down to Nature that lead us to the world of Electronics, Solid State machines and AI. This article explores the contracts that got us to where we are.Let us start by asking the question -

Read more...

1 of 2 Next Page

Newsletter

Stay updated on the technical posts, resources and curated content.

I agree to receive emails.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.