Professional Documents
Culture Documents
Bài 7 Công cụ gỡ lỗi Debugger và kiến trúc bus
Bài 7 Công cụ gỡ lỗi Debugger và kiến trúc bus
Debugger
www.lumi.vn
Nội dung
01
Tổng quan về Debugger
02
Hướng dẫn thực hiện quá trình debug
MỤC TIÊU BÀI HỌC
● Hiểu được các thành phần trong công cụ gỡ lỗi Debugger trong phần
mềm STM32CubeIDE.
BUG
● Bug được hiểu là thuật ngữ dùng để chỉ các lỗi kỹ thuật có thể xảy ra trong quá trình thiết kế và
vận hành các chương trình lập trình.
● Bug khiến cho phần mềm, ứng dụng không thực thi được hoặc thực thi sai.
TỔNG QUAN VỀ CÔNG CỤ GỠ LỖI DEBUGGER
❖ BUG
Debug
TỔNG QUAN VỀ CÔNG CỤ GỠ LỖI DEBUGGER
❖ DEBUG
DEBUG
Debug là quá trình tìm kiếm và phát hiện nguyên nhân gây ra lỗi.
Mục đích
Debugger STLINK
STM32 MCU
TỔNG QUAN VỀ CÔNG CỤ GỠ LỖI DEBUGGER
❖ CÁC TÍNH NĂNG DEBUG
Debugger STLINK
STM32 MCU
TỔNG QUAN VỀ CÔNG CỤ GỠ LỖI DEBUGGER
❖ CÁC TÙY CHỌN VỚI CHẾ ĐỘ DEBUG
● In log dữ liệu
HƯỚNG DẪN THỰC HIỆN QUÁ TRÌNH DEBUG
❖ MỞ GIAO DIỆN CÔNG CỤ GỠ LỖI TRONG STM32CubeIDE
Step Over
(thực thi một hàm hoặc một lệnh).
HƯỚNG DẪN THỰC HIỆN QUÁ TRÌNH DEBUG
❖ ĐIỀU KHIỂN THỰC THI CHƯƠNG TRÌNH
Step Over
Step Return (thực thi một hàm hoặc một lệnh).
Thoát ra khỏi hàm mainInit
Step Return
(thoát khỏi một hàm)
HƯỚNG DẪN THỰC HIỆN QUÁ TRÌNH DEBUG
❖ ĐIỀU KHIỂN THỰC THI CHƯƠNG TRÌNH
Step Over
Thực hiện lại từ đầu (thực thi một hàm hoặc một lệnh).
Step Return
(thoát khỏi một hàm)
Step Over
● Chương trình đang chạy như
(thực thi một hàm hoặc một lệnh).
khi nạp code
BREAKPOINT
• Chương trình sẽ dừng lại khi gặp Breakpoint
• Click đúp chuột để đặt Breakpoint
• Có thể đặt nhiều Breakpoint
• Click đúp chuột vào vị trí Breakpoint để
xóa.
• Sử dụng Breakpoint chọn một điểm dừng
HƯỚNG DẪN THỰC HIỆN QUÁ TRÌNH DEBUG
❖ ĐIỀU KHIỂN THỰC THI CHƯƠNG TRÌNH
BREAKPOINT
Mở cửa sổ Live Expressions để theo dõi giá trị các biến trong quá trình Debug
HƯỚNG DẪN THỰC HIỆN QUÁ TRÌNH DEBUG
❖ XEM GIÁ TRỊ CÁC BIẾN
Một số tùy chọn định dạng hiển thị dữ liệu trên của số Live Expressions
HƯỚNG DẪN THỰC HIỆN QUÁ TRÌNH DEBUG
❖ XEM GIÁ TRỊ CÁC BIẾN
Lưu ý: Biến địa phương sẽ chỉ theo dõi được khi còn ở trong hàm của nó. Khi thoát khỏi hàm thì
biến địa phương sẽ được giải phóng, không thấy giá trị của biến trong bảng Live Expressions
HƯỚNG DẪN THỰC HIỆN QUÁ TRÌNH DEBUG
❖ XEM GIÁ TRỊ CÁC THANH GHI
Chức năng này rất quan trọng vì lập trình với vi điều khiển về bản chất là làm việc với
các thanh ghi
HƯỚNG DẪN THỰC HIỆN QUÁ TRÌNH DEBUG
❖ XEM GIÁ TRỊ CÁC THANH GHI
GPIOA, Pin0
Tương ứng với Bit 0
LED GREEN (GPIOA, Pin0) được bật lên tương ứng bởi Bit 0 trên thanh ghi ODR được set lên 1
HƯỚNG DẪN THỰC HIỆN QUÁ TRÌNH DEBUG
❖ XEM GIÁ TRỊ CÁC THANH GHI
GPIOA, Pin0
Tương ứng với Bit 0
Lưu ý:
• Giá trị thanh ghi sẽ được cập nhật mỗi khi dừng lại tại Breakpoint.
• Nhấn vào RD (Force read selected register) để yêu cầu cập nhật giá trị mới nhất
của thanh ghi nếu không đặt Breakpoint.
HƯỚNG DẪN THỰC HIỆN QUÁ TRÌNH DEBUG
❖ XEM GIÁ TRỊ CÁC THANH GHI
Xem các thanh ghi được cập nhật tự động thông qua cửa sổ Live Expressions.
BÀI TẬP THỰC HÀNH
○ Hiểu rõ, kiểm tra thực thi chương trình trên phần cứng
Thanks for Watching!