41554 blogs · [ { "id": "01a087cb-fe10-737c-a280-1c474ff80720", "title": "Sunsetting - The Library Access", "url": "http://pyjamacafe.com/posts/sunsetting-library-access/", "published_at": "2026-08-30T00:00:00+00:00" }, { "id": "01a087cb-fe10-737c-a280-1c4750f461be", "title": "ARM TF-A Day 5: BL2 Deep Dive - Image Loading Framework", "url": "http://pyjamacafe.com/posts/arm-tfa-day5-bl2-loading/", "published_at": "2026-06-19T00:00:00+00:00" }, { "id": "01a087cb-fe10-737c-a280-1c4751a11495", "title": "ARM TF-A Day 4: BL2 Deep Dive - Platform Initialization", "url": "http://pyjamacafe.com/posts/arm-tfa-day4-bl2-platform/", "published_at": "2026-05-31T00:00:00+00:00" }, { "id": "01a087cb-fe10-737c-a280-1c4751eb6c39", "title": "ARM TF-A Day 3: BL1 Deep Dive - Memory Management and Handoff", "url": "http://pyjamacafe.com/posts/arm-tfa-day3-bl1-memory/", "published_at": "2026-05-26T00:00:00+00:00" }, { "id": "01a087cb-fe10-737c-a280-1c47521475d0", "title": "ARM TF-A Day 2: BL1 Deep Dive - The First Breath", "url": "http://pyjamacafe.com/posts/arm-tfa-day2-bl1-reset/", "published_at": "2026-05-25T00:00:00+00:00" }, { "id": "01a087cb-fe10-737c-a280-1c475232a6e2", "title": "ARM TF-A Day 1: Introduction to Trusted Firmware-A and The Execution Architecture", "url": "http://pyjamacafe.com/posts/arm-tfa-day1-intro/", "published_at": "2026-05-24T00:00:00+00:00" }, { "id": "01a087cb-fe10-737c-a280-1c4752c4dc1e", "title": "3 Must Have Skills to Ace Lower Level Software Engineering!", "url": "http://pyjamacafe.com/posts/skills/", "published_at": "2026-03-15T00:00:00+00:00" }, { "id": "01a087cb-fe10-737c-a280-1c4753078d35", "title": "Function Pointers - Everything you need to know!", "url": "http://pyjamacafe.com/posts/function-pointers/", "published_at": "2026-03-15T00:00:00+00:00" }, { "id": "01a087cb-fe10-737c-a280-1c47533f5944", "title": "But, What is a System Call?", "url": "http://pyjamacafe.com/posts/syscalls/", "published_at": "2026-02-23T00:00:00+00:00" }, { "id": "01a087cb-fe10-737c-a280-1c475348ff8a", "title": "Soan Papdi FPGA - Setup Guide", "url": "http://pyjamacafe.com/posts/soanpapdi-setup/", "published_at": "2026-01-08T12:18:22+00:00" }, { "id": "01a087cb-fe10-737c-a280-1c47536f8223", "title": "Pointers (in C)", "url": "http://pyjamacafe.com/pointers-old/", "published_at": "2025-11-07T18:30:00+00:00" }, { "id": "01a087cb-fe10-737c-a280-1c47541bac08", "title": "Building an Audio Visualizer in C using Fast Fourier Transform(FFT) and XCB", "url": "http://pyjamacafe.com/posts/audio-visualizer-using-fft-and-xcb/", "published_at": "2025-10-28T00:00:00+00:00" }, { "id": "01a087cb-fe10-737c-a280-1c4754b6a3f0", "title": "FreeRTOS - Teardown and Porting", "url": "http://pyjamacafe.com/freeRTOS-101/", "published_at": "2025-10-11T12:18:22+00:00" }, { "id": "01a087cb-fe10-737c-a280-1c4755018416", "title": "How to Embedded Systems?", "url": "http://pyjamacafe.com/posts/how-to-embedded/", "published_at": "2025-10-01T00:00:00+00:00" }, { "id": "01a087cb-fe10-737c-a280-1c4755cef468", "title": "Build and Run Linux Kernel", "url": "http://pyjamacafe.com/kernel-from-scratch/", "published_at": "2025-09-14T12:18:22+00:00" }, { "id": "01a087cb-fe10-737c-a280-1c4755f38b24", "title": "Debugging an Embedded System - Day 1 - Introducing different Tools", "url": "http://pyjamacafe.com/posts/debugging-arm64-day1-different-tools/", "published_at": "2025-07-14T00:00:00+00:00" }, { "id": "01a087cb-fe10-737c-a280-1c47569a00e5", "title": "Debugging an Embedded System - Day 0 - Understanding What is Debugging", "url": "http://pyjamacafe.com/posts/debugging-arm64-day0-problem-setup/", "published_at": "2025-07-13T00:00:00+00:00" }, { "id": "01a087cb-fe10-737c-a280-1c4756e340d9", "title": "ARMv8a Procedure Call standard and GPRs", "url": "http://pyjamacafe.com/posts/arm64-day3-gprs-and-pcs/", "published_at": "2025-07-06T00:00:00+00:00" }, { "id": "01a087cb-fe10-737c-a280-1c475710e440", "title": "ARMv-8a IRQ handling", "url": "http://pyjamacafe.com/posts/arm64-day2-irq-handling/", "published_at": "2025-06-15T00:00:00+00:00" }, { "id": "01a087cb-fe10-737c-a280-1c47573d1f46", "title": "ARMv-8a EL0EL1 Switching", "url": "http://pyjamacafe.com/posts/arm64-day1-el0-el1-switching/", "published_at": "2025-06-14T00:00:00+00:00" }, { "id": "01a087cb-fe10-737c-a280-1c4757f8da71", "title": "From Design to Tapeout (Physical Design) - Beginner's guide", "url": "http://pyjamacafe.com/posts/tapeout/", "published_at": "2025-06-12T00:00:00+00:00" }, { "id": "01a087cb-fe10-737c-a280-1c4758398478", "title": "ARMv-8a Exception Levels", "url": "http://pyjamacafe.com/posts/arm64-day0-exception-levels/", "published_at": "2025-06-09T00:00:00+00:00" }, { "id": "01a087cb-fe10-737c-a280-1c47590f9cb0", "title": "System on Chip (SoC) and Bare-Metal Programming", "url": "http://pyjamacafe.com/posts/soc/", "published_at": "2025-06-08T00:00:00+00:00" }, { "id": "01a087cb-fe10-737c-a280-1c475964f408", "title": "Power Management IC (PMIC)", "url": "http://pyjamacafe.com/posts/pmic/", "published_at": "2025-06-05T00:00:00+00:00" }, { "id": "01a087cb-fe10-737c-a280-1c4759dcbd6f", "title": "Bootloaders on Cortex-M CPUs", "url": "http://pyjamacafe.com/posts/bootloader/", "published_at": "2025-05-27T00:00:00+00:00" }, { "id": "01a087cb-fe10-737c-a280-1c475a89475b", "title": "The Embedded Systems Library", "url": "http://pyjamacafe.com/library-old/", "published_at": "2025-04-30T04:40:10+00:00" }, { "id": "01a087cb-fe10-737c-a280-1c475b14f531", "title": "The Firmware Essentials!", "url": "http://pyjamacafe.com/fw/", "published_at": "2025-04-30T04:40:10+00:00" }, { "id": "01a087cb-fe10-737c-a280-1c475bf9508c", "title": "Roadmap to Learning Linux Device Drivers", "url": "http://pyjamacafe.com/posts/linux-device-drivers/", "published_at": "2025-03-29T00:00:00+00:00" }, { "id": "01a087cb-fe10-737c-a280-1c475c4b83a7", "title": "OpenWRT vs. RDK vs. prplOS", "url": "http://pyjamacafe.com/posts/battle-router-titans/", "published_at": "2025-02-27T00:00:00+00:00" }, { "id": "01a087cb-fe10-737c-a280-1c475cdd3686", "title": "Anatomy of Assembly Program", "url": "http://pyjamacafe.com/posts/anatomy-assembly/", "published_at": "2025-02-23T00:00:00+00:00" }, { "id": "01a087cb-fe10-737c-a280-1c475d055ee2", "title": "Git, Gerrit! and the Industry", "url": "http://pyjamacafe.com/posts/git-gerrit/", "published_at": "2025-02-23T00:00:00+00:00" }, { "id": "01a087cb-fe10-737c-a280-1c475db8246f", "title": "Hand coding Audio files in C", "url": "http://pyjamacafe.com/posts/pcm/", "published_at": "2025-02-23T00:00:00+00:00" }, { "id": "01a087cb-fe10-737c-a280-1c475dc21000", "title": "A shallow dive into do{..}while(0) loop in C", "url": "http://pyjamacafe.com/posts/do-while-magic/", "published_at": "2025-02-19T00:00:00+00:00" }, { "id": "01a087cb-fe10-737c-a280-1c475e73a1e0", "title": "Scopes of Identifiers in C", "url": "http://pyjamacafe.com/posts/scope/", "published_at": "2025-02-18T00:00:00+00:00" }, { "id": "01a087cb-fe10-737c-a280-1c475ea96c88", "title": "Optimizing Timer Management in Embedded Systems with Delta Lists", "url": "http://pyjamacafe.com/posts/delta_lists_for_timers/", "published_at": "2025-02-16T00:00:00+00:00" }, { "id": "01a087cb-fe10-737c-a280-1c475f569f06", "title": "Storage Classes in the C Language", "url": "http://pyjamacafe.com/posts/storage-classes/", "published_at": "2025-02-13T12:18:22+00:00" }, { "id": "01a087cb-fe10-737c-a280-1c475f625b7c", "title": "Tokens in C Language", "url": "http://pyjamacafe.com/posts/tokens/", "published_at": "2025-02-12T12:18:22+00:00" }, { "id": "01a087cb-fe10-737c-a280-1c475fb24bb5", "title": "Cancellation and Refund", "url": "http://pyjamacafe.com/refund/", "published_at": "2025-01-23T15:52:09+00:00" }, { "id": "01a087cb-fe10-737c-a280-1c475ffb08cf", "title": "Contact Us", "url": "http://pyjamacafe.com/contact/", "published_at": "2025-01-23T15:52:09+00:00" }, { "id": "01a087cb-fe10-737c-a280-1c4760576aa5", "title": "Pricing Policy", "url": "http://pyjamacafe.com/pricing/", "published_at": "2025-01-23T15:52:09+00:00" }, { "id": "01a087cb-fe10-737c-a280-1c4760c26218", "title": "Privacy Policy", "url": "http://pyjamacafe.com/privacy/", "published_at": "2025-01-23T15:52:09+00:00" }, { "id": "01a087cb-fe10-737c-a280-1c4760df17ac", "title": "Shipping and Delivery", "url": "http://pyjamacafe.com/shipping/", "published_at": "2025-01-23T15:52:09+00:00" }, { "id": "01a087cb-fe10-737c-a280-1c4761ddd9de", "title": "Terms and Conditions", "url": "http://pyjamacafe.com/terms/", "published_at": "2025-01-23T15:52:09+00:00" }, { "id": "01a087cb-fe10-737c-a280-1c47624d20ae", "title": "Abstractions - From Nature to AI", "url": "http://pyjamacafe.com/posts/abstractions/", "published_at": "2025-01-08T12:18:22+00:00" }, { "id": "01a087cb-fe10-737c-a280-1c4762654a26", "title": "Data Structures", "url": "http://pyjamacafe.com/dsa/", "published_at": "2025-01-08T12:18:22+00:00" }, { "id": "01a087cb-fe10-737c-a280-1c4762f91d24", "title": "Scheduler Design on ARM Cortex-M", "url": "http://pyjamacafe.com/cortex-m-102/", "published_at": "2025-01-08T12:18:22+00:00" }, { "id": "01a087cb-fe10-737c-a280-1c4763b2c2a2", "title": "The C Language", "url": "http://pyjamacafe.com/c-old/", "published_at": "2025-01-08T12:18:22+00:00" }, { "id": "01a087cb-fe10-737c-a280-1c4763e4546a", "title": "Writing a RISC-V CPU!", "url": "http://pyjamacafe.com/posts/writing-a-risc-v-cpu/", "published_at": "2025-01-04T06:25:09+00:00" }, { "id": "01a087cb-fe10-737c-a280-1c4764c2525f", "title": "Aarch64 (101)", "url": "http://pyjamacafe.com/a101/", "published_at": null }, { "id": "01a087cb-fe10-737c-a280-1c4764d357aa", "title": "Aarch64 (102)", "url": "http://pyjamacafe.com/a102/", "published_at": null }, { "id": "01a087cb-fe10-737c-a280-1c476550effe", "title": "About", "url": "http://pyjamacafe.com/about/", "published_at": null }, { "id": "01a087cb-fe10-737c-a280-1c47661d6b75", "title": "ARM Cortex-M (101)", "url": "http://pyjamacafe.com/m101/", "published_at": null }, { "id": "01a087cb-fe10-737c-a280-1c47671c5e4b", "title": "ARM Cortex-M (102)", "url": "http://pyjamacafe.com/m102/", "published_at": null }, { "id": "01a087cb-fe10-737c-a280-1c4767baba49", "title": "Automotive Electronics", "url": "http://pyjamacafe.com/automotive-electronics/", "published_at": null }, { "id": "01a087cb-fe10-737c-a280-1c476828060b", "title": "Automotive Middleware 101", "url": "http://pyjamacafe.com/automotive-middleware-101/", "published_at": null }, { "id": "01a087cb-fe10-737c-a280-1c4768fd380e", "title": "Blog Posts", "url": "http://pyjamacafe.com/blog/", "published_at": null }, { "id": "01a087cb-fe10-737c-a280-1c4769648923", "title": "Budding Minds", "url": "http://pyjamacafe.com/buds/", "published_at": null }, { "id": "01a087cb-fe10-737c-a280-1c4769ca1179", "title": "C++ for Middleware Engineers", "url": "http://pyjamacafe.com/automotive-cpp-middleware/", "published_at": null }, { "id": "01a087cb-fe10-737c-a280-1c476ab96776", "title": "CAN Protocol 101.", "url": "http://pyjamacafe.com/can-protocol-101/", "published_at": null }, { "id": "01a087cb-fe10-737c-a280-1c476b939e33", "title": "Classic AUTOSAR (Part I): C Essentials", "url": "http://pyjamacafe.com/classic-autosar-c-essentials/", "published_at": null }, { "id": "01a087cb-fe10-737c-a280-1c476c64c2e5", "title": "Classic AUTOSAR (Part II): Architecture and Application Development", "url": "http://pyjamacafe.com/classic-autosar-architecture-application/", "published_at": null }, { "id": "01a087cb-fe10-737c-a280-1c476ce84404", "title": "Classic AUTOSAR (Part III): Basic Software (BSW) Integration", "url": "http://pyjamacafe.com/classic-autosar-bsw-integration/", "published_at": null }, { "id": "01a087cb-fe10-737c-a280-1c476d9edd48", "title": "Courses", "url": "http://pyjamacafe.com/courses/", "published_at": null }, { "id": "01a087cb-fe10-737c-a280-1c476e200462", "title": "Embedded Systems Library Access", "url": "http://pyjamacafe.com/library/", "published_at": null }, { "id": "01a087cb-fe10-737c-a280-1c476f18d198", "title": "How to Embedded systems?", "url": "http://pyjamacafe.com/embedded/", "published_at": null }, { "id": "01a087cb-fe10-737c-a280-1c4770025086", "title": "Linux Command-line & Tools", "url": "http://pyjamacafe.com/linux-command-line-tools/", "published_at": null }, { "id": "01a087cb-fe11-71d4-b0c0-00d0be6f7478", "title": "Pointers (in C)", "url": "http://pyjamacafe.com/c-pointers/", "published_at": null }, { "id": "01a087cb-fe11-71d4-b0c0-00d0bf10e356", "title": "Roadmap", "url": "http://pyjamacafe.com/roadmap/", "published_at": null }, { "id": "01a087cb-fe11-71d4-b0c0-00d0bfaed25c", "title": "Soan Papdi FPGA", "url": "http://pyjamacafe.com/fpga/", "published_at": null }, { "id": "01a087cb-fe11-71d4-b0c0-00d0c0495666", "title": "The Automotive Stack", "url": "http://pyjamacafe.com/automotive-stack/", "published_at": null }, { "id": "01a087cb-fe11-71d4-b0c0-00d0c12ac795", "title": "The C Language", "url": "http://pyjamacafe.com/c/", "published_at": null }, { "id": "01a087cb-fe11-71d4-b0c0-00d0c1d3d748", "title": "The Missing Mentor", "url": "http://pyjamacafe.com/missing-mentor/", "published_at": null } ] posts Claim your blog
Back to pyjamacafe.com
Blog · corpus.blog/blogs/pyjamacafe.com/posts

pyjamacafe.com

pyjamacafe.com

2026

2025

Undated