Driver Development Under Linux Device Tree

Driver Development Under Linux Device Tree

Overview This article introduces the development process and methods of device drivers under the platform framework, mainly including the development of device trees, drivers, and applications. Taking the random number driver as an example, it implements the process of the application calling the library function, entering the kernel through a system call, and finally executing … Read more

Understanding Zephyr System Timer Implementation

Understanding Zephyr System Timer Implementation

The kernel time of Zephyr is driven by sys_clock_announce. Regardless of the SOC type, the system timer is driven by interfacing with this API. For details, refer to the Zephyr Tick Clock Introduction. All system timer drivers for Zephyr are located under zephyr/drivers/timer. How Zephyr Chooses Which Driver to Use All system timer drivers supported … Read more

Key Considerations for Zephyr Driver Initialization

Key Considerations for Zephyr Driver Initialization

1. Basic Mechanism of Driver Initialization Zephyr’s driver initialization is implemented through the following mechanisms: Device Tree : Hardware resources are defined through the device tree, and the driver relies on this information for initialization. Initialization Macros (DEVICE_DT_DEFINE and DEVICE_DEFINE) : The driver registers to Zephyr’s device model using these macros. Initialization Priority : The … Read more

Unlock Multiple Configurations for Beaglebone Black Cape

Unlock Multiple Configurations for Beaglebone Black Cape

1. Introduction If you bought the BBB for hardware-related projects, you will likely need to create a cape. The term cape is the official name from BBB, referring to the software and hardware peripherals of the BBB. By learning about the device tree, we understand that BBB uses capemgr and device tree to control the … Read more

How to Build a Linux Image Using Yocto

How to Build a Linux Image Using Yocto

Author: Zhang Longley, AMD Engineer, Source: AMD Developer Community All FPGA SoC devices from AMD XILINX (Zynq-7000, Zynq MPSoC, Versal) and soft cores (Microblaze) support building Linux images using Yocto. This blog demonstrates how to build a Linux image using Yocto. The blog uses version 2024.1 of the tools to quickly build a Linux image … Read more

Understanding Zephyr Build System Process

Understanding Zephyr Build System Process

The build process of Zephyr is divided into two main stages: the configuration stage and the compilation stage. The configuration stage generates the necessary configuration items, while the compilation stage selects the source code to compile based on the configuration items and links them into the final executable file. The configuration stage is driven by … Read more

In-Depth Introduction to ZephyrRTOS: Using Device Tree for Hardware Abstraction

In-Depth Introduction to ZephyrRTOS: Using Device Tree for Hardware Abstraction

In the previous article, we ran a minimal Hello World application. The original code is simply // Copyright (c) 2024 Qingdao IotPi Information Technology Ltd., All rights Reserved #include <zephyr/kernel.h> int main(void){ printk("Hello World! %s\n", CONFIG_BOARD); return 0;} which can output “Hello World” without any hardware configuration. This also reflects the hardware abstraction capability of … Read more

Detailed Explanation of Device Trees (Part 2)

Detailed Explanation of Device Trees (Part 2)

Follow and star Baiwen Technology Embedded essentials delivered promptly ———- Last week, I published an article on the background knowledge of Device Trees, and many colleagues in the background requested a deeper analysis of the code. Today, we will discuss the knowledge related to DTS scripts and the loading process. The article is a bit … Read more