Embedded Science (38) In-Depth Analysis of C Language Preprocessing X-Macros and Practical Project Code Sharing

Embedded Science (38) In-Depth Analysis of C Language Preprocessing X-Macros and Practical Project Code Sharing

1. Overview 2. References 3. Classic X-Macros Code Analysis 3.1 Classic Code 3.2 Code Structure Analysis (Four Steps to Build an Automated System) 3.2.1 Central Data Table (Single Data Source) 3.2.2 Dynamically Generate Enumerations 3.2.3 Automatically Generate String Tables 3.2.4 Function Pointer Table Automatic Mapping (Core Execution Logic) 3.3 Runtime Working Principle 4. Analysis of … Read more

AI Smart Home Based on STM32

AI Smart Home Based on STM32

1. Development Software 1. Lichuang EDA: A Domestic Light, A Design Tool Combining Software and Hardware Lichuang EDA (LCEDA) is a domestic EDA tool focused on circuit schematic and PCB design, offering both online and client versions, friendly to individuals and small to medium enterprises, with the free version meeting most development needs. Core Highlights: … Read more

A Significant Step: The Launch of the RISC-V Performance Tracking System (PTS) by the Jiachen Project and Its Roadmap Release, Focusing on Enhancing Global Open Source Software Performance for RISC-V

A Significant Step: The Launch of the RISC-V Performance Tracking System (PTS) by the Jiachen Project and Its Roadmap Release, Focusing on Enhancing Global Open Source Software Performance for RISC-V

It is time to establish a high-performance “progress bar” for RISC-V. The Jiachen Project invites RISC-V vendors to donate machines to participate in the co-construction of PTS. Background, Mission, and Historical Significance of PTS The idea of the RISC-V Open Source Software Performance Tracking System (Performance Tracking System, PTS) was first conceived in 2020. At … Read more

A Significant Step: The Launch of the RISC-V Performance Tracking System (PTS) by the Jiachen Project and Its Roadmap Release, Focusing on Enhancing Global Open Source Software Performance for RISC-V

A Significant Step: The Launch of the RISC-V Performance Tracking System (PTS) by the Jiachen Project and Its Roadmap Release, Focusing on Enhancing Global Open Source Software Performance for RISC-V

It is time to establish a high-performance “progress bar” for RISC-V. The Jiachen Project invites RISC-V vendors to donate machines to participate in the co-construction of PTS. Background, Mission, and Historical Significance of PTS The idea of the RISC-V Open Source Software Performance Tracking System (Performance Tracking System, PTS) was first conceived in 2020. At … Read more

RK3399 Environment Configuration (Part 2): Samba Service Configuration and Cross-Compiler Setup

RK3399 Environment Configuration (Part 2): Samba Service Configuration and Cross-Compiler Setup

Samba Service Configuration Introduction to Samba Samba is a file and print sharing service based on the SMB/CIFS protocol, commonly used for sharing files between Linux and Windows. In our development environment, Samba can be used to: Share directories from the Ubuntu virtual machine; Directly access, copy, and modify files generated by the cross-compiler on … Read more

GDB Debugging Methods (4) – Debugging Information

GDB Debugging Methods (4) - Debugging Information

The key to whether a program is easy to debug lies in the completeness of the debugging information. This article provides a brief introduction to what DWARF debugging information is based on this premise. What is DWARF Debugging With Attributed Record Formats is a debugging information format used by many compilers, which allows for easy … Read more

Embedded Development: Why C Language is the Irreplaceable King?

Embedded Development: Why C Language is the Irreplaceable King?

Embedded development is like the “brain of smart devices”; it controls everything from smartphones, cars, smart home appliances, medical devices, to drones. For instance, the air conditioner in your home can be controlled via your smartphone, and your car can automatically brake—these functionalities are all powered by embedded systems. With the development of the Internet … Read more

How to Represent Memory Address 0 in C/C++

How to Represent Memory Address 0 in C/C++

Click the blue “Most Programmer” to follow me! Add a “star“, every day at 18:03 to learn technology together! This is a typical case of “knowing the phenomenon but not the reason behind it”, a common issue in our learning process.When teachers or textbooks mention that “accessing address 0 is an illegal access”, how many … Read more

Using ATSAMC21 as an I2C Slave

Using ATSAMC21 as an I2C Slave

Get the demo source code file at the end of the article ↓Software Platform: MCC v5.5.2, MPLAB X IDE v6.25Hardware:ATSAMC21J18AUsing MPLAB-Harmony Configuration ToolSet the system clock to 48MHzSet the corresponding option bits in the clock tree to make the CPU clock 48MHzOpen the pin configuration interfaceUART Pin and Function Parameter SettingsRefer toSAM C21 Xplained Prodevelopment … Read more

emio: Make Your Embedded Firmware More Space-Efficient!

emio: Make Your Embedded Firmware More Space-Efficient!

Embedded developers often encounter the following problem: when trying to implement simple character input and output, they end up struggling with <span>fmtlib</span>, <span>iostream</span>, and <span>printf</span>, causing a sudden increase in binary size, and the exception handling and heap allocation can be quite alarming; or they may not receive output on RTOS and have to dig … Read more