I. Khái niệm
- Serial Wire Viewer tracing (SWV) là một phần của ARM CoreSight Debug Architecture, hoạt động thông qua giao diện Serial Wire Debug (SWD). Nó cho phép vi điều khiển gửi dữ liệu ra ngoài thông qua chân SWO trên MCU
II. Công dụng
- Gửi dữ liệu "trace" từ vi điều khiển lên máy tính, giúp developer xem log, event, giá trị biến, ngắt theo thời gian thực mà không ảnh hưởng đến hiệu năng của chương trình, không bị block
III. Phương thức
- SWV có nhiều kênh dữ liệu để tracing, trong đó phổ biến nhất là ITM (Instrumentation Trace Macrocell)
- Flow data:
[CPU Core] > [ITM] > [TPIU] > SWO Pin > [Debugger] > [IDE]
- Data sẽ được hiển thị ra SWV Console trong IDE (SWV ITM Data Console)
IV. Example on STM32 cubeIDE
2. Người dùng có thể sử dụng trực tiếp function ITM_SendChar(ch) để gửi data qua SWV. Nhưng để thuận tiện người dùng có thể gửi data qua lệnh printf(). Để làm được điều này cần retarget lệnh printf() tới function ITM_SendChar(ch).
0 Nhận xét