<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[trox]]></title><description><![CDATA[Trox: Code, Learn, Connect, Succeed]]></description><link>https://ashokatronix.wixsite.com/trox/blog</link><generator>RSS for Node</generator><lastBuildDate>Tue, 19 May 2026 17:57:06 GMT</lastBuildDate><atom:link href="https://ashokatronix.wixsite.com/trox/blog-feed.xml" rel="self" type="application/rss+xml"/><item><title><![CDATA[Aurix: Generic timer module(GTM)]]></title><description><![CDATA[The Generic Timer Module (GTM) is one of the most powerful and complex peripherals found in automotive microcontrollers, such as the Infineon AURIX™ family. Originally designed by Bosch, it is the industry standard for handling complex timing, engine management, and motor control tasks. What is the use of the GTM? The primary use of the GTM is to offload the main CPU (TriCore) from real-time, time-critical, and highly complex input/output tasks. Instead of the main CPU waiting for a timer to...]]></description><link>https://ashokatronix.wixsite.com/trox/post/aurix-generic-timer-module-gtm</link><guid isPermaLink="false">6a030071a4a34bdda06ce315</guid><category><![CDATA[MCU/SoC Embedded]]></category><pubDate>Tue, 12 May 2026 12:13:11 GMT</pubDate><enclosure url="https://static.wixstatic.com/media/40db6b_85bb400338284f80975de2b67a9e4a85~mv2.png/v1/fit/w_953,h_742,al_c,q_80/file.png" length="0" type="image/png"/><dc:creator>Ashok Kumar Kumawat</dc:creator></item><item><title><![CDATA[How to Master Memory Linking for STM32 Boards: Creating a Comprehensive Linker Script]]></title><description><![CDATA[When delving into the intricate world of STM32 board development, one aspect that often perplexes many developers is memory linking. Properly managing memory and creating an efficient linker script is crucial for optimizing the performance of your STM32 board or any board. In this blog post, we will explore the detailed process of creating a linker script for an STM32 board and unravel the mysteries of memory linking control. Unveiling the Magic of Memory Linking Memory linking plays a...]]></description><link>https://ashokatronix.wixsite.com/trox/post/how-to-master-memory-linking-for-stm32-boards-creating-a-comprehensive-linker-script</link><guid isPermaLink="false">6a018385522ae05c4420f497</guid><category><![CDATA[MCU/SoC Embedded]]></category><pubDate>Mon, 11 May 2026 07:23:20 GMT</pubDate><enclosure url="https://static.wixstatic.com/media/40db6b_22afb74c829c4a749aebb24a2105ad95~mv2.jpg/v1/fit/w_741,h_871,al_c,q_80/file.png" length="0" type="image/png"/><dc:creator>Ashok Kumar Kumawat</dc:creator></item><item><title><![CDATA[CPP: Decorator]]></title><description><![CDATA[The Decorator Pattern The Decorator is a Structural design pattern. It allows you to dynamically attach new behaviors or responsibilities to an object by placing it inside a special wrapper object that contains these new behaviors. The Problem It Solves Imagine you are writing a system for a coffee shop. You start with a base Coffee class. Then, customers want variations: Coffee with Milk, Coffee with Sugar, Coffee with Vanilla, Coffee with Milk AND Sugar... If you use standard inheritance to...]]></description><link>https://ashokatronix.wixsite.com/trox/post/cpp-decorator</link><guid isPermaLink="false">6a0181600cf45a42ccaa438f</guid><category><![CDATA[CPP coding]]></category><pubDate>Mon, 11 May 2026 07:13:14 GMT</pubDate><dc:creator>Ashok Kumar Kumawat</dc:creator></item><item><title><![CDATA[CPP: Lambda function]]></title><description><![CDATA[What is a Lambda Function in C++? A lambda function (often just called a "lambda") is an anonymous function—a function without a name. Introduced in C++11, lambdas allow you to write quick, throwaway functions directly inline inside your code, exactly where you need them. They are incredibly useful when you need to pass a short snippet of code to another function, such as when using C++ Standard Library (STL) algorithms like std::sort, std::find_if, or std::for_each. The Syntax of a Lambda...]]></description><link>https://ashokatronix.wixsite.com/trox/post/cpp-lambda-function</link><guid isPermaLink="false">6a016d96522ae05c4420bd22</guid><category><![CDATA[CPP coding]]></category><pubDate>Mon, 11 May 2026 05:53:55 GMT</pubDate><dc:creator>Ashok Kumar Kumawat</dc:creator></item><item><title><![CDATA[Q&#38;A: C Code]]></title><description><![CDATA[Q1: How do you find the size of an array in C? Q2: What is an array of pointers in C, and why is it useful? Q3: How can function pointers be used to trigger callbacks in C? Q4: How can we determine the size of a struct in C without using sizeof or any library macros? Q1: How do you find the size of an array in C? Use sizeof(arr) / sizeof(arr[0]), which divides the total memory by the size of one element to get the number of elements. #include <stdio.h>  int main() { int arr[] = {10, 20, 30,...]]></description><link>https://ashokatronix.wixsite.com/trox/post/q-a-c-code</link><guid isPermaLink="false">69ec50e6b502c05c43b59607</guid><category><![CDATA[C Coding]]></category><pubDate>Sat, 25 Apr 2026 05:41:18 GMT</pubDate><dc:creator>Ashok Kumar Kumawat</dc:creator></item><item><title><![CDATA[Bubble Sort Concept]]></title><description><![CDATA[Bubble Sort repeatedly compares adjacent elements and swaps them if they are in the wrong order. After each pass, the largest element "bubbles up" to its correct position at the end. C Code Example #include <stdio.h>  int main() { int arr[5] = {5, 3, 8, 4, 2};  // Example array int i, j, temp;  	int n = sizeof(array) / sizeof(array[0]);  printf("Original array: "); for(i = 0; i < n; i++) { printf("%d ", arr[i]); }  // Bubble Sort for(i = 0; i < n-1; i++) { for(j = 0; j < n-i-1; j++) {...]]></description><link>https://ashokatronix.wixsite.com/trox/post/bubble-sort-concept</link><guid isPermaLink="false">69ec4df9b502c05c43b58b8c</guid><category><![CDATA[C Coding]]></category><pubDate>Sat, 25 Apr 2026 05:22:28 GMT</pubDate><dc:creator>Ashok Kumar Kumawat</dc:creator></item><item><title><![CDATA[Storage Classes in Embedded C]]></title><description><![CDATA[Excellent, let’s now systematically cover Storage Classes in Embedded C with the structured breakdown you asked for. 1. Concept Overview Storage classes define scope, lifetime, and visibility of variables/functions. In embedded systems, this directly impacts memory usage, ISR behavior, and cross-module communication. The main storage classes are: auto → Default for local variables (stack-based, temporary). static → Persistent across function calls, limited scope if declared inside a function....]]></description><link>https://ashokatronix.wixsite.com/trox/post/storage-classes-in-embedded-c</link><guid isPermaLink="false">698800ae40d7c5baf3acf5a0</guid><category><![CDATA[C Coding]]></category><pubDate>Sat, 25 Apr 2026 05:12:25 GMT</pubDate><dc:creator>Ashok Kumar Kumawat</dc:creator></item><item><title><![CDATA[Static vs Dynamic Libraries in Linux and Linking Executables]]></title><description><![CDATA[Prerequisites Before diving in, make sure you have: A Linux environment (Ubuntu, Fedora, etc.) GCC compiler (sudo apt install build-essential on Ubuntu) Basic knowledge of C programming (printf, scanf, functions) Familiarity with terminal commands (ls, nm, ldd) Terminal commands 1. ls Purpose: Lists files in a directory. Usage for libraries: Helps you see whether .a (static) or .so (dynamic) files exist. Command: bash ls --color=auto /usr/lib | grep libc Output example: Code libc.a libc.so...]]></description><link>https://ashokatronix.wixsite.com/trox/post/static-vs-dynamic-libraries-in-linux-and-linking-executables</link><guid isPermaLink="false">69d2691ff7044e6cf7af88d7</guid><category><![CDATA[Linux]]></category><pubDate>Sun, 05 Apr 2026 13:54:19 GMT</pubDate><dc:creator>Ashok Kumar Kumawat</dc:creator></item><item><title><![CDATA[Macros — Complete Guide for Embedded C]]></title><description><![CDATA[What is a Macro and How It Works at Compilation Stage Macros are handled by the C Preprocessor, which runs before the actual compilation begins. The compilation pipeline looks like this: Source.c  →  [Preprocessor]  →  Expanded.i  →  [Compiler]  →  object.o  →  [Linker]  →  final.elf The preprocessor performs textual substitution — it finds every macro usage and replaces it with the defined text, literally copy-pasting the expansion into the source before the compiler ever sees it. No type...]]></description><link>https://ashokatronix.wixsite.com/trox/post/macros-complete-guide-for-embedded-c</link><guid isPermaLink="false">699b0ffa8133563068c6e699</guid><category><![CDATA[C Coding]]></category><pubDate>Sun, 22 Feb 2026 14:17:35 GMT</pubDate><dc:creator>Ashok Kumar Kumawat</dc:creator></item><item><title><![CDATA[Const and Pointer Qualifier Combinations in Embedded C]]></title><description><![CDATA[1. Concept Overview There are two main dimensions when combining const with pointers: Pointer to const integer → The integer value cannot be modified through this pointer, but the pointer itself can point elsewhere. Const pointer to integer → The pointer itself cannot change (fixed address), but the integer value it points to can be modified. Const pointer to const integer → Neither the pointer nor the value can be modified. 2. Embedded Industry Usage Pointer to const integer (const int *p):...]]></description><link>https://ashokatronix.wixsite.com/trox/post/const-and-pointer-qualifier-combinations-in-embedded-c</link><guid isPermaLink="false">699a6e3433aebccb48682715</guid><category><![CDATA[C Coding]]></category><pubDate>Sun, 22 Feb 2026 02:53:29 GMT</pubDate><dc:creator>Ashok Kumar Kumawat</dc:creator></item><item><title><![CDATA[qualifiers interacting with storage classes]]></title><description><![CDATA[1. Concept Overview When qualifiers (const, volatile, signed, unsigned) are combined with storage classes (static, extern, register), they define scope, lifetime, mutability, and optimization rules. const volatile: Read-only from software, but value may change unexpectedly (common in hardware registers). static volatile: Persistent variable across function calls, but updated asynchronously (ISR flags). extern const: Shared constant across modules. extern volatile: Shared hardware register...]]></description><link>https://ashokatronix.wixsite.com/trox/post/qualifiers-interacting-with-storage-classes</link><guid isPermaLink="false">6987ffc740d7c5baf3acf3ff</guid><category><![CDATA[C Coding]]></category><pubDate>Sun, 08 Feb 2026 03:18:28 GMT</pubDate><dc:creator>Ashok Kumar Kumawat</dc:creator></item><item><title><![CDATA[Data Type Qualifiers + Storage Class Interactions]]></title><description><![CDATA[Perfect, let’s extend our revision into Data Type Qualifiers + Storage Class Interactions. This is where embedded C really differs from desktop C, because qualifiers directly affect how the compiler generates code for hardware registers, ISRs, and memory-constrained systems. 1. Concept Overview Data type qualifiers: const, volatile, signed, unsigned, restrict (rare in embedded). Storage classes: static, extern, register, auto (default). Together, they define scope, lifetime, mutability, and...]]></description><link>https://ashokatronix.wixsite.com/trox/post/data-type-qualifiers-storage-class-interactions</link><guid isPermaLink="false">6987ff5ff9bc488e7f0a6239</guid><category><![CDATA[C Coding]]></category><pubDate>Sun, 08 Feb 2026 03:14:54 GMT</pubDate><dc:creator>Ashok Kumar Kumawat</dc:creator></item><item><title><![CDATA[Data Type Qualifiers in Embedded C]]></title><description><![CDATA[1. Concept Overview Data type qualifiers modify the behavior of variables beyond their base type (int, char, etc.).Common qualifiers in C (and Embedded C) are: const → Read-only, cannot be modified after initialization. volatile → Tells the compiler the variable may change unexpectedly (e.g., hardware register, ISR). restrict (C99) → Optimizes pointer usage, rarely used in embedded. signed / unsigned → Defines whether a type can represent negative values. Default qualifiers: int → signed by...]]></description><link>https://ashokatronix.wixsite.com/trox/post/data-type-qualifiers-in-embedded-c</link><guid isPermaLink="false">6987fde8f9bc488e7f0a603a</guid><category><![CDATA[C Coding]]></category><pubDate>Sun, 08 Feb 2026 03:12:15 GMT</pubDate><dc:creator>Ashok Kumar Kumawat</dc:creator></item><item><title><![CDATA[Data type in c]]></title><description><![CDATA[Alright Ashok, let’s dive into Data Types in Embedded C with the structured breakdown you asked for. I’ll keep this focused on embedded industry applications, resource-constrained environments, and safety-critical practices. 1. Concept Overview Data types define how the compiler interprets and allocates memory for variables. Common C types: char, int, short, long, float, double. In embedded systems, sizes are implementation-dependent (e.g., int may be 16-bit on some MCUs, 32-bit on others)....]]></description><link>https://ashokatronix.wixsite.com/trox/post/data-type-in-c</link><guid isPermaLink="false">6987fba3babf74b7d0ddce26</guid><category><![CDATA[C Coding]]></category><pubDate>Sun, 08 Feb 2026 03:06:42 GMT</pubDate><dc:creator>Ashok Kumar Kumawat</dc:creator></item><item><title><![CDATA[Microcontroller Memory Layout]]></title><description><![CDATA[In my corporate days, when we had to fit a complex automotive airbag driver into a tiny microcontroller with only 32KB of memory, we had to know exactly where every single bit lived. ​To understand how a C program is stored, you have to look at the Memory Layout. A microcontroller doesn't have a hard drive; it has Flash (ROM) and SRAM (RAM). ​ 1. The "Storage" (Flash vs. RAM) ​When you turn the power off, your code stays on the chip. That’s because the actual instructions are burned into the...]]></description><link>https://ashokatronix.wixsite.com/trox/post/microcontroller-memory-layout</link><guid isPermaLink="false">6982293ab3cad227932dae3e</guid><category><![CDATA[C Coding]]></category><pubDate>Tue, 03 Feb 2026 16:58:38 GMT</pubDate><enclosure url="https://static.wixstatic.com/media/40db6b_713dba75abe741bebb1c81a83c4f58b8~mv2.jpg/v1/fit/w_959,h_480,al_c,q_80/file.png" length="0" type="image/png"/><dc:creator>Ashok Kumar Kumawat</dc:creator></item><item><title><![CDATA[The "Essential" Standard Functions]]></title><description><![CDATA[In a professional C or embedded environment, we call these Standard Library Functions. While you won't use printf inside a car's braking system (because there is no screen to print to!), you will use it constantly during testing and debugging on your PC or through a UART console. A close-up view of a microcontroller circuit board showcasing its intricate design. Here is the "Essential List" of functions every embedded engineer should know by heart. ​1. Input / Output Functions (stdio.h)...]]></description><link>https://ashokatronix.wixsite.com/trox/post/mastering-embedded-c-tips-and-tricks</link><guid isPermaLink="false">698221e099fa9e70ea627f74</guid><category><![CDATA[C Coding]]></category><pubDate>Tue, 03 Feb 2026 16:27:12 GMT</pubDate><enclosure url="https://static.wixstatic.com/media/40db6b_166102356e1b487f91c1ab0391063e06~mv2.png/v1/fit/w_1000,h_768,al_c,q_80/file.png" length="0" type="image/png"/><dc:creator>Ashok Kumar Kumawat</dc:creator></item><item><title><![CDATA[C Language Interview Questions for Every Experience Level]]></title><description><![CDATA[The C programming language has been a cornerstone of computer science since its inception in the early 1970s. Its simplicity and efficiency make it a popular choice for system programming, embedded systems, and application development. As a result, C remains a staple in technical interviews across various industries. Whether you are a novice or a seasoned developer, preparing for C language interview questions is crucial to showcasing your skills and knowledge. In this blog post, we will...]]></description><link>https://ashokatronix.wixsite.com/trox/post/c-language-interview-questions-for-every-experience-level</link><guid isPermaLink="false">698221d97a653e8bed2db265</guid><pubDate>Tue, 03 Feb 2026 16:27:05 GMT</pubDate><enclosure url="https://static.wixstatic.com/media/40db6b_73d759c922d1449286e938be70fec6fa~mv2.png/v1/fit/w_1000,h_768,al_c,q_80/file.png" length="0" type="image/png"/><dc:creator>Ashok Kumar Kumawat</dc:creator></item></channel></rss>