JTAG Debugging – Halt and Step Execution

JTAG Debugging - Halt and Step Execution

Through JTAG Debugging – Introduction to DAP, a DAP consists of a DP and an AP, where the AP serves as a window to access the resources behind it. In JTAG debugging, Halt and Step Execution actually control the resources of the CPU behind the AP.In STM32F4xx, the Cortex-M4 registers are controlled via AHB-AP, allowing … Read more

Detailed Usage of the Linux apropos Command

Detailed Usage of the Linux apropos Command

Introduction <span><span>apropos</span></span> is a fuzzy search tool that can search for input keywords in all <span><span>man</span></span> pages. Compared to <span><span>whatis</span></span>, which can only search command names, <span><span>apropos</span></span> can also search descriptions. Common Options <span><span>-e, –exact</span></span>: Returns names and descriptions that exactly match the keyword <span><span>-d</span></span>: Print debug messages <span><span>-w, –wildcard</span></span>: Use wildcard to search for … Read more

Collaborative Robot Control with Siemens PLC for Automotive Welding Automation Line

Collaborative Robot Control with Siemens PLC for Automotive Welding Automation Line

Hello friends! 👋 Today we are going to discuss a super cool topic in the industrial field—using Siemens PLC to create a collaborative robot control automotive welding automation line! 🚗🔧 Doesn’t it sound exciting, as if we can already see those robotic arms dancing gracefully on the production line? 💃🤖 Don’t rush, follow me step … Read more

Detailed Explanation of C++ Macros: Basics, Usage, and Precautions

Detailed Explanation of C++ Macros: Basics, Usage, and Precautions

In C++ programming, a macro is a text replacement tool processed by the preprocessor, implemented through the <span>#define</span> directive. While macros can be very useful in certain scenarios, they are also controversial due to their potential side effects. This article will cover the basic syntax, common uses, drawbacks, and modern alternatives to help developers use … Read more

Setting Up a QEMU Linux Kernel (5.10.209) Development Environment

Setting Up a QEMU Linux Kernel (5.10.209) Development Environment

Version Information Host Machine: <span>ubuntu 20.04.6 LTS (Focal Fossa)</span> Virtual Machine: <span>ubuntu 20.04.6 LTS (Focal Fossa)</span> The steps for installing the host machine are omitted, as they are no different from installing a virtual machine in <span>vmware</span>. It is important to ensure that <span>Intel VT-x</span> is enabled. If the virtual machine reports <span>This platform does … Read more

Basic Steps for CANFD Debugging

Basic Steps for CANFD Debugging

CAN (Controller Area Network) is a serial communication network that effectively supports distributed control or real-time control. The CAN bus is a widely adopted bus protocol in automotive applications, designed for microcontroller communication in automotive environments. As company projects gradually shift towards the automotive sector, the scenarios for using CAN are increasing. This article analyzes … Read more

From Beginner to Abandonment: Why 80% of People Can’t Learn C Language? Now I Understand, No Wonder I Can’t Learn It Either~

From Beginner to Abandonment: Why 80% of People Can't Learn C Language? Now I Understand, No Wonder I Can't Learn It Either~

“From today on, study hard and make progress every day” Repetition is the best method for memory; spend one minute every day to remember the basics of C language. 💻 From Beginner to Abandonment: Why 80% of People Can’t Learn C Language? Now I Understand, No Wonder I Can’t Learn It Either~ “C language is … Read more

Understanding JTAG Debugging and CMSIS-DAP

Understanding JTAG Debugging and CMSIS-DAP

CMSIS-DAP (Cortex Microcontroller Software Interface Standard – Debug Access Port) is a debug interface standard defined by ARM. In the introduction to JTAG debugging – DAP, it mentions that an implementation of ARM ADI is called DAP, so does CMSIS-DAP with the DAP suffix mean it is an implementation of DAP? See the diagram from … Read more

Introduction to JTAG Debugging and SWD

Introduction to JTAG Debugging and SWD

SWD stands for Serial Wire Debug Interface. Sometimes you may encounter terms like: JTAG-DP, SW-DP, SWJ-DP, which are interfaces for external hardware boxes. Among them, SWJ-DP was added in ADI v6.0:In summary: Physical Interface JTAG Interface? SWD Interface? Specification JTAG-DP Yes ADI v5.0/v6.0 SW-DP Yes ADI v5.0/v6.0Serial Wire (Serial Interface) SWJ-DP Yes Yes ADI v6.0Serial … Read more

Embedded Code Safety Checks: Choosing Between if and assert

Embedded Code Safety Checks: Choosing Between if and assert

1. Introduction In embedded system development, safety and reliability are crucial. When faced with input validation, boundary condition checks, and other scenarios, developers often need to choose between <span>if</span> condition checks and <span>assert</span> assertions. This article will analyze the applicable scenarios and best practices for both from a technical perspective. 2. Basic Differences Between if … Read more