Embedded Auxiliary Tools: OpenOCD Toolchain

Embedded Auxiliary Tools: OpenOCD Toolchain

In the previous article, I introduced some useful debugging communication interface tools. Interested readers can check it out: [Embedded Auxiliary Tools]: Communication Interface Edition. This time, I will introduce the affordable and effective OpenOCD toolchain.Before introducing OpenOCD, let me first explain two concepts: ICD and OCD.ICD and OCDStrictly speaking, ICD (In-Circuit Debugger) and OCD (On-Chip … Read more

Setting Up GD32 Development Environment on Windows Using VSCode and CMake

Setting Up GD32 Development Environment on Windows Using VSCode and CMake

Setting Up GD32 Development Environment on Windows Using VSCode and CMake I previously set up the GD32 development environment in a Linux environment, but since I often use Windows, I made some improvements based on the original setup to enable compiling, downloading, and debugging microcontroller programs on Windows. See the following tweets for details: Building … Read more

RISC-V Processor and FPGA Reusing JTAG

RISC-V Processor and FPGA Reusing JTAG

Click to follow for more exciting content!! 01PARTIntroduction This article provides a brief explanation of the usage of BSCAN based on the Spartan-6 and Kintex-7 series of FPGAs, using the K735 development board and LS-Extended development board; the software used includes riscv-openocd and riscv-gdb (included in the toolchain). Principle Explanation02PART BSCAN stands for JTAG-boundary-scan, which … Read more

Getting Started with IoT Security: Router JTAG Debugging Analysis

Getting Started with IoT Security: Router JTAG Debugging Analysis

Background In the previous section on hardware security, we used a programmer and UART debugging pins to extract the firmware from the Tenda AC6 router, mastering how to obtain firmware through the UART interface and gain terminal access for debugging analysis. Besides the commonly seen UART interface, we often encounter JTAG interfaces on PCB boards, … Read more

Firmware Extraction Without Chip Removal in Automotive Applications

Firmware Extraction Without Chip Removal in Automotive Applications

Smart cars are a large collection of IoT devices, and the general electronic systems are shown in the figure below. Each electronic system uses a large number of electronic components. Smart cars not only include IVI and TBOX but also contain dozens of ECUs. Different modules focus on different aspects, and the chips used also … Read more

Introduction to HiFive1 Rev B Development Board and RISC-V

Introduction to HiFive1 Rev B Development Board and RISC-V

Today, I would like to introduce a SiFive development board, the HiFive1 RevB. It is equipped with the RISC-V Freedom E310 microcontroller and adopts the Arduino Uno “form factor” design, making it compact, which is exactly the board I wanted. My HiFive1 Development Board There is a lot of material available about RISC-V and how … Read more

Debugging with arm-none-eabi-gdb in Ubuntu

Debugging with arm-none-eabi-gdb in Ubuntu

【Trust me: Developing with Ubuntu absolutely provides a professional experience and gives others the impression of expertise】 In this article, we will look at the process of debugging with gdb. 1. Environment Preparation: Target System: STM32F407 Environmental Control Board, Host Machine: Ubuntu + VSCode + arm-none-eabi-gdb + OpenOCD + ST-Link 2. Using arm-none-eabi-gdb 1. Create … Read more

Debugging RISCV with Soft JTAG v1.2

Debugging RISCV with Soft JTAG v1.2

Due to current software limitations, the RISCV logic cannot share JTAG simultaneously. Therefore, if you want to debug both the logic and RISCV at the same time, you can achieve this through the RISCV’s soft JTAG. Soft JTAG is a software implementation of JTAG using GPIO. Here, we will demonstrate this using the TI60F225 DEMO. … Read more

JTAG Debugging – GDB Example

JTAG Debugging - GDB Example

OpenOCD is used to drive the JTAG interface, typically in conjunction with GDB for code execution debugging. The usage of GDB is fundamentally no different from its use in other contexts.Some debugging techniques for GDB: Advanced Usage of GDBThere are two ways to start GDB and interact with OpenOCD: GDB communicates with OpenOCD over TCP … Read more

Hardware Debugging for Reverse Engineers Part 1: SWD, OpenOCD, and Xbox One Controller

Hardware Debugging for Reverse Engineers Part 1: SWD, OpenOCD, and Xbox One Controller

“This article details the process of hardware disassembly, firmware extraction, debugging, and modification of the Xbox One controller. The author explores the internal structure by disassembling the controller, identifies the SWD interface, and uses the OpenOCD tool for hardware debugging. The article also explains how SWD works, how to use OpenOCD for firmware extraction and … Read more