Differences Between Circular Queue and Message Queue in RTOS

Differences Between Circular Queue and Message Queue in RTOS

Original from WeChat Official Account | Embedded Column “Circular queue” and “message queue” are widely used in the embedded field, and experienced embedded software engineers are likely familiar with them. However, beginners often have related questions. Today, I will share some content about “circular queues” and “message queues”. Circular Queue A circular queue is a … Read more

Comprehensive Learning Path for Embedded AI Engineers

Comprehensive Learning Path for Embedded AI Engineers

Follow the Embedded Learning Station to get more fresh hot topics. Before discussing the learning path, let’s first understand what embedded development is. Simply put, an embedded system consists of two parts: software and hardware. It is application-centered and can achieve software and hardware tailoring. Software includes: specific business applications and operating systems (simple applications … Read more

Optimizing Program Size in Embedded C/C++ Development: Structure Optimization

Optimizing Program Size in Embedded C/C++ Development: Structure Optimization

Optimizing Program Size in Embedded C/C++ Development: Structure Optimization In <span>C</span> and <span>C++</span> programming, the memory layout of structures (<span>struct</span>) has a significant impact on program performance and memory usage, especially in embedded development where <span>RAM</span> is limited to <span>16K</span>, <span>8K</span>, or even <span>4K</span>; every byte counts, and there is no room for waste. This … Read more

Python-ds: A Powerful Python Library for Data Structures

Python-ds: A Powerful Python Library for Data Structures

What is python-ds? First, let’s understand what python-ds is. Python-ds is a Python library designed to simplify and enhance data structure operations. It provides a rich set of data structures, including linked lists, stacks, queues, graphs, hash tables, and more, along with methods for operating on these structures, greatly reducing the workload of manually implementing … Read more

Common Data Structures in Zephyr Kernel

Common Data Structures in Zephyr Kernel

This article provides an overview without technical details or usage instructions. The Zephyr kernel uses a generic data structure library, which can also be utilized in applications. The data structures include: Linked List Packet Buffer Red-Black Tree Circular Buffer It is important to note that the APIs for accessing these data structures are not thread-safe. … Read more

Zephyr Kernel Data Structures – Red-Black Tree

Zephyr Kernel Data Structures - Red-Black Tree

Overview The search time complexity of a linked list is O(N). As the number of members managed by the linked list increases, the algorithmic cost of searching increases. To address this, Zephyr provides an implementation of a red-black tree, where the time complexity for search and delete operations is O(log2(N)) for a tree of size … Read more

Zephyr Kernel Data Structures – Ring Buffer

Zephyr Kernel Data Structures - Ring Buffer

Overview The ring buffer is one of the commonly used data structures in embedded software development, storing content in a first-in-first-out manner, and is used to implement asynchronous “stream” replication of data. Zephyr provides a struct ring_buf abstraction to manage such data structures. Various drivers in Zephyr (UART, Modem, I2S, etc.), as well as shell, … Read more

Understanding MATLAB Arrays and Functions

Understanding MATLAB Arrays and Functions

Previously, we discussed a lot about MATLAB vectors and matrices. In this chapter, we will discuss multidimensional arrays. In MATLAB, all variable data types are multidimensional arrays; a vector is a one-dimensional array, and a matrix is a two-dimensional array. First, let’s look at some special types of arrays. Special Arrays in MATLAB In MATLAB, … Read more

A Comprehensive Guide to Assembly Language

A Comprehensive Guide to Assembly Language

Scan the QR code to follow “Finger Tips Sound” and learn together, grow together. Part1 Definition of Content 1.1 Definition of Data Segment Assembly language programs are written in segments, generally defining data in the data segment and the program in the code segment. The syntax for defining a segment is as follows: segment_name SEGMENT … Read more

C++ Learning Path

C++ Learning Path

Hello everyone, I am Village Chief Axiang.This is the 42nd original article from the Village Chief.According to our previous agreement, I will gradually bring youarticles combining software and hardware.The so-called software refers to more directional suggestions and planning; the so-called hardware refers to technical content. This is also an article that digs a pit, meaning … Read more