Linux Kernel Synchronization Mechanisms: Unlocking the Secrets of Concurrent Programming

Linux Kernel Synchronization Mechanisms: Unlocking the Secrets of Concurrent Programming

In today’s digital age, multi-core processors have become standard in computer systems, from our everyday office computers to the massive server clusters in data centers. This hardware advancement allows computer systems to handle multiple tasks simultaneously, greatly enhancing computational efficiency. Just like a busy traffic hub with multiple lanes, vehicles move back and forth, seemingly … Read more

Linux Driver Development

Linux Driver Development

The MMC/SD driver model is widely used in embedded development, and its corresponding Linux system framework can be classified under block devices. If you want to understand the IO storage stack, you can start with the simple MMC/SD driver model. Linux MMC/SD Driver ModelIn Linux, the MMC/SD driver is mainly divided into three layers: the … Read more

Mastering Zephyr: A Step-by-Step Guide to Building Your Embedded Project (Part 1)

Mastering Zephyr: A Step-by-Step Guide to Building Your Embedded Project (Part 1)

Zephyr Basics Series: Starting from Scratch with Embedded Development Hello everyone, welcome to Lixin Embedded. Today, we are embarking on a brand new journey – the “Zephyr Basics Series”. The goal of this series is to guide you step by step into the powerful embedded real-time operating system, Zephyr, and to understand its core functionalities. … Read more

In-Depth Analysis of Zephyr Code Relocation Technology: From Principles to Best Practices

In-Depth Analysis of Zephyr Code Relocation Technology: From Principles to Best Practices

In modern embedded system development, code relocation technology is becoming a key means to optimize system performance. Imagine a scenario where your real-time control system experiences a 30% delay in critical interrupt response due to Flash access latency, or is unable to add new functional modules due to Flash capacity limitations. These are the pain … Read more

Implementing Static Library Compilation in Zephyr

Implementing Static Library Compilation in Zephyr

Zephyr has encapsulated a lot of functionality in its build system around CMake, primarily through a series of macros and functions that simplify the declaration of libraries and modules, the addition of source files, the setting of include directories, and linking operations. Below are detailed explanations of some key points: 1.zephyr_library() Macro lFunction This macro … Read more

What is the Fastest Way to Create an LVGL Project for a New LCD Screen?

What is the Fastest Way to Create an LVGL Project for a New LCD Screen?

Hello everyone, I am Pi Zi Heng. Today, I will share the steps for quickly creating a new LCD screen example project using NXP’s GUI Guider. In my previous article, “How to Quickly Light Up a New LCD Screen on i.MXRT1170: Methods and Steps,” I introduced how to modify the official SDK bare-metal driver elcdif … Read more

Detailed Explanation of UART Project – 08 Simulation Framework

Detailed Explanation of UART Project - 08 Simulation Framework

Click to follow the above “Two Monkey Society“ Set as “Top or Star“, and the valuable content will be delivered first. IC Monkey | Two Monkey Society Introduction The previous articles have covered the design part, and this article will analyze the simulation part of the code. This article mainly explains the overall simulation method … Read more

Using the CW32 Module with a 0.96-inch SPI Monochrome Screen

Using the CW32 Module with a 0.96-inch SPI Monochrome Screen

1. Module Source>>> Module Physical Display: Data Download Link: https://pan.baidu.com/s/1U9r32qeS2jOANB0SNwtwnw Data Extraction Code: 8888 2. Specifications>>> Refer to manufacturer documentation for the following information: Operating Voltage: 3.3V Operating Current: 15MA Module Size: 27.3 x 27.8 MM Pixel Size: 128(H) x 64(V) RGB Driver Chip: SSD1306 Communication Protocol: SPI Pin Count: 7 Pins (2.54mm pitch header) … Read more

An In-Depth Look at the SPI Communication Protocol and Practical Applications with STM32 (W25Q128 Driver) – Theoretical Part

An In-Depth Look at the SPI Communication Protocol and Practical Applications with STM32 (W25Q128 Driver) - Theoretical Part

1. SPI Communication Protocol: The High-Speed Dialogue of Electronic Devices SPI (Serial Peripheral Interface) is a commonly used synchronous serial communication protocol between electronic devices. Due to its high speed and full-duplex characteristics, it is widely used for communication with peripherals such as memory and sensors. 1.1 Basic Principles (Four-Wire Interaction) SCK: Clock signal line … Read more

A Simple Analysis of the Linux SPI Control Layer

A Simple Analysis of the Linux SPI Control Layer

Introduction I previously shared the control layer for I2C and mentioned that I would update the SPI section shortly. However, I was too tired and didn’t get around to it, so I apologize for the delay, haha. The SPI protocol is much simpler than I2C, but I find the software handling to be more complex … Read more