Latest Blog Posts

Tracing the Root of Linux Kernel Problems with Error Messages

Reading Time: 3 minutes Introduction When setting up Linux on a new board, you are bound to encounter issues. These issues can range from preventing the kernel from booting to emitting warnings or...

Kernel Drivers vs. Userspace Drivers: A Guide for Embedded Linux Developers

Reading Time: 4 minutes Introduction In Embedded Linux projects, developers dedicate a substantial amount of time to managing external hardware interfaces. A common dilemma they face is deciding...

Practical Tips for Creating Systemd Services in Yocto

Reading Time: 3 minutes Introduction Systemd is a widely adopted service manager in modern Linux systems responsible for initializing, loading, and managing essential components and services required...

Demystifying PL-PS Interrupts and Device Tree Configuration on the Zynq UltraScale+

Reading Time: 3 minutes Introduction and Problem The AMD Zynq Ultrascale+ contains many available interrupt sources in its design. Most notably, are the interrupt channels available between the PL...

Leveraging Systemd for Hardware Watchdog Control in Embedded Linux

Reading Time: 3 minutes Introduction In embedded systems, the hardware watchdog timer is a crucial yet often overlooked feature, especially in Linux systems. Many modern system-on-chips (SoCs)...

Debugging Embedded Software: A Simple Sanity Check for Code Compilation

Reading Time: 2 minutes Introduction and Problem: As Embedded software engineers, we often work on various projects and modules, leading to complex codebases and build systems. When making changes...

Overcoming Software Limitations in AMD-based FPGA Video Designs

Reading Time: 5 minutes Introduction In today’s market, video capture and display designs have become very common, especially in fields like the medical industry. While both FPGAs and traditional...

Controlling Zynq Ultrascale+ pl_resetn Signals in Software

Reading Time: 5 minutes Introduction Oftentimes, it is desirable for a system to be able to dynamically control the FPGA logic resets in software. There are a number of reasons for this, but...

Hello and Welcome to the Blog

Reading Time: 3 minutes Introduction Welcome to the Cornersoft Solutions blog! Through this blog I hope to not only demonstrate my expertise, but more importantly, to educate others on complex topics...