TRACE32 Virtual Target Debugging Solution
목차
TRACE32 Virtual Target Debugging Solution
JTAG 또는 BMD(Back Ground Debug Module)과 같은 Debug Port를 가지고 있지 않아 Hardware Debugger를 직접 연결할 수 없는 개발 환경들을 Virtual Target이라 칭하고 있습니다. 이러한 개발환경들은 시간이 지날수록 그 사용이 증대되고 있는 양상입니다.
Silicon SoC가 나오기 전 Software 개발을 병행하기 위한 목적으로 출시된 ARM의 FasteModel이 그 좋은 예 중에 하나입니다.
또 다는 좋은 예로 최근 들어 SoC Design 크기가 증대되고 Time to Market에 대한 요구사항이 어느 때보다 중요한 요소로 자리 잡음으로서 Pre-silicon 단계에서의 Hardware와 Software를 동시에 개발 및 검증할 수 있는 Synopsys ZEBU, Mentor Veloce, Cadence ParadiumXP 등의 Emulator 개발 환경들이 바로 그것들입니다.
TRACE32 역시 오래 전부터 이러한 기술의 진화에 능동적으로 발 맞춰오고 있으며 해당 개발환경들에 대해 안정적으로 지원하기 위하여 최선의 노력을 다하고 있습니다.
이러한 개발환경에서의 Debugging solution은 위 그림과 같이 크게 두 가지로 나뉩니다.
Front-End Solution
Low level debug handler(Debug Driver)를 포함하고 있는 Target과 연결되는 Debug Solution입니다. 보통 각 Processor Core에 해당하는 TRACE32 GUI Debugger를 의미합니다. CADI(Cycle Accurate Debug Interface)를 사용하는 ARM FastModel이나 VDI(Virtual Debug Interface)를 사용하는 Synopsys의 Virtio, GDB, GDI, VaST, MCD에 연결되어 동작하는 Debugger 입니다.
Front-End and Back-End Solution
Low level debug handler(Debug Driver)를 포함하고 있지 않은 Target과 연결되어 동작할 수 있는 Debug Solution입니다. Target에 Debug Driver를 포함하고 있지 않으므로 Back-End Solution이 이를 커버하게 됩니다. Intel USB(JTAG over USB), GTL(Generic Transactor Library, XCP(JTAG over TCP for TriCore/PowerPC), FTDI(JTAG over USB for C166, TriCore)와 연결되어 Debugging하는 개발 환경이 여기에 속합니다.
Requirements
최근 SoC Hardware Software개발 환경은 매우 다양한 요구를 가지고 있습니다. 따라서 개발환경 선정 시에 다양한 검토와 검증은 필수불가결한 상황입니다.
다양한 Virtual Target 지원
개발 상황에 따라 다양한 Virtual Target Interface를 사용하게 됩니다. 따라서 Interface에 따라 각각 다른 툴을 사용하게 된다면 개발자로 하여금 개발 효율성 문제가 발생하게 됩니다.
다양한 Processor 및 SMP/AMP 동시 Debugging 지원
최근 SoC Hardware/Software 개발환경은 다양한 CPU core들로 구성되고 있습니다. 작게는 2~3개의 이종 Core로 구성되거나 많게는 10여개가 훌쩍 넘는 SoC들이 출시되고 있습니다. 따라서 이러한 SMP/AMP Debug환경을 동시에 debugging할 수 있느냐의 Factor는 매우 중요한 요소입니다. 일 예로
- ARMv8+Hexagon+ARMv7+CortexMx
- ARMv8+ARMv7+Xtensa+CortexMx
- ARMv8+ARMv7+TeakLite+CortexMx
- ARMv7+TeakLite DSP
Pre-Silicon 개발환경 >> Post-Silicon 개발환경 >> 최종 고객 사용을 위한 제품개발
Pre-Silicon 개발환경 단계에서부터 End User가 사용할 제품개발 단계에 이르기 까지 동일한 Debugging 환경을 일관성 있게 가져갈 수 있는 가는 개발 효율성 측면에서 매우 중요한 사항입니다.
다양한 Target OS 지원
최종 사용될 OS의 Pre-Silicon 단계에서 최종 제품개발까지 지원할 수 있어야 합니다.
- Android/Linux/Nucleus/QNX/OSEK/VxWorks 등 다양한 OS를 지원 필요
Solution
다양한 Virtual Target 지원
아래 그림과 같이 TRACE32는 Physical JTAG Interface를 통한 기존 Debug 환경과 동일한 개념으로 Virtual Target Interface로 구성되어 있으므로 CADI GTL Intel-USB(JTAG over USB) XCP(JTAG over TCP) FTDI(JTAG over USB) VDI GDB GDI VaST MCD를 지원하고 있습니다.
다양한 Processor 및 SMP/AMP 동시 Debugging 지원
ARMv8 ARMv7 Xtensa TeakLite/II/II/IV PowerPC Intelx86 TriCore PowerPC 등 상용화되어 있는 대부분의 Processor Core들을 지원하고 있습니다.
또한 AMP/SMP 개발환경을 위해 오래 전부터 동시 Debugging환경을 지원하고 있습니다.
다양한 환경에서 Debugging환경 지원
Post-Silicon 단계의 개발 과정과 최종 End User용 제품개발 단계에서 사용하던 TRACER32 Debugging 환경을 Pre-Silicon 단계에서도 동일한 형태로 사용할 수 있으므로 개발 환경의 일관성을 유지 할 수 있습니다.
다양한 Target OS 지원
전 단계 개발과정에서 모두 상용 OS뿐 아니라 In-House OS에 이르기까지 OS Awareness지원을 통해 빠르고 효율적으로 Debugging 및 검증환경을 제공합니다.
Synopsys ZeBu, Cadence PXP, Mentor Veloce Virtural Target Environment Example
TRACE32는 Emulator와 같은 Virtual Target개발 환경도 역시 지원하고 있습니다.
Synopsys ZeBu, Cadence PXP, Menotor Veloce 모두 지원하고 있으며 기존 Physical JTAG을 이용한 디버깅 사용법 그대로 사용할 수 있습니다.
바로가기 >> GTL을 이용한 ZeBu/PXP/Veloce Emulator 연결 Setup
# Example for multi-users in Virtual Target(GTL)
- Emulation Host와 동일 혹은 독립적으로 여러 개의 Trace32 Instance를 구동(for Multi-User)하는 예이며
- Trace32와 Trace32 그리고 MCI-server는 TCP/IP로 연결되는 형태
# Example for Extended FastModel with Emulator from Mentor Cadence and Synopsys
- Pre-Silicon 단계에서 빠른 Emulation Speed를 제공함으로써 Software개발을 용이하게 합니다.
- OS awareness를 기반으로 AMP/SMP 동시 Debugging(Post-Silicon 단계와 같은 개발환경)
Summary
현재 개발환경은 다양한 Processor 그리고 다양한 Debug Interface로 진화를 거듭하고 있습니다. 따라서 이러한 변화에 능동적으로 적용할 수 있는 솔루션을 선택하는 것 역시 매우 중요한 항목 중 하나가 되었습니다. Pre-Silicon 단계에서부터 제품화를 위한 개발까지 동일 솔루션으로 다양한 Platform을 지원하는 것은 현업 개발자나 전사적 차원에서 최적의 개발 효율성을 제공하는 것임을 확신합니다. TRACE32은 앞으로도 고객의 다양한 개발 환경의 안정적 지원을 위해 지속적으로 노력할 것입니다.