Why Design Patterns Are Rarely Used in Embedded Development

Why Design Patterns Are Rarely Used in Embedded Development

Follow+Star Public Account, don’t miss the wonderful content Author | Li Xiaoyao Source | Technology Makes Dreams Greater In the first two years of my work, I wrote code for projects without considering code extensibility, portability, or modularity, which led to difficulties when new features were added or modifications were needed. Today, I’m sharing an … Read more

Comparison of C Compilers on Embedded Development Boards

Comparison of C Compilers on Embedded Development Boards

Comparison of C Compilers on Embedded Development Boards Embedded system development has always been a field that is both challenging and fun in the programming world, especially when conducting project practices on development boards like Raspberry Pi. Among them, choosing a suitable C compiler is one of the important decisions every developer must make before … Read more

Common C Language Tools for Embedded Development

Common C Language Tools for Embedded Development

The C language tools commonly used in embedded development are indeed very important. Below are some sword-level C language tool code examples, along with brief explanations. 1. Circular Buffer: typedef struct { int buffer[SIZE]; int head; int tail; int count; } CircularBuffer; void push(CircularBuffer *cb, int data) { if (cb->count < SIZE) { cb->buffer[cb->head] = … Read more

Design of a Pauseable Eight-Way Buzzer Based on AT89C51 Microcontroller

Design of a Pauseable Eight-Way Buzzer Based on AT89C51 Microcontroller

Click the link below to read the original article or copy the link to your browser to obtain the Keil source code and Project Backups simulation images: https://gf.bilibili.com/item/detail/1107885063 C+15 Abstract With the advancement of society and technology, the application of electronic devices in various activities has become increasingly common. Buzzers, as a tool for answering … Read more

Understanding Byte Alignment in Linux

Understanding Byte Alignment in Linux

Recently, I encountered a problem where threadx running on ARM crashed when communicating with DSP using message queues (the underlying implementation is through interrupts and shared memory). During the troubleshooting process, it was found that the structure used for message passing did not consider the issue of byte alignment. Here, I will整理一下 the issue of … Read more

Introduction to Synchronization and Mutex in FreeRTOS

Introduction to Synchronization and Mutex in FreeRTOS

This article aims to learn and use synchronization and mutex in FreeRTOS. Following the descriptions in this article, you should be able to run the experiment and apply the knowledge. Experimental conditions: Basic knowledge of C language and an integrated development environment installed, such as Keil uVision5. Concepts of Synchronization and Mutex Synchronization is used … Read more

Task Scheduling in FreeRTOS

Task Scheduling in FreeRTOS

Convention: This article is based on freeRTOSv202212.01. Defining a Task Task scheduling involves the “tasks” that need to be managed, so we need to first understand what a “task” looks like. An independent task must consider the following points: 1. The system must recognize and manage this task, so the task needs an identification card … Read more

Getting Started with FreeRTOS: Memory Management

Getting Started with FreeRTOS: Memory Management

1. Concept and Classification of Memory In computing systems, memory is used to store variables and intermediate data. The system memory can be divided into two types: Internal Storage Space (RAM): Typically refers to Random Access Memory, which allows fast data access and random access, but data is lost when power is off. External Storage … Read more

Embedded Systems Beginner’s Progression: Key Milestones

Embedded Systems Beginner's Progression: Key Milestones

01 Basic Stage 1.1 Basics of Programming Languages C Language: As the cornerstone of embedded development, it is essential to master its various features. By carefully studying classic books such as “The C Programming Language,” deeply understand the syntax rules, accurately grasp the use of data types, skillfully manipulate pointers as a powerful tool, and … Read more

Running .NET Core 3.0 on Raspberry Pi 4: True 64-bit!

Running .NET Core 3.0 on Raspberry Pi 4: True 64-bit!

Introduction Recently, I wrote an article titled “Installing .NET Core 3.0 Runtime and SDK on Raspberry Pi 4”, followed by subsequent articles on “Auto-starting .NET Core 3.0 Environment on Raspberry Pi”, “Nginx Configuration for Internal Access to Raspberry Pi 4 ASP.NET Core 3.0 Website”, and “Tianpai Magic | .NET Core 3.0 + Azure Remotely Turning … Read more