Arduino:
การใช้งานโปรแกรมดีบักเกอร์
วิธีการ:
ด้วย Arduino IDE, คุณสามารถใช้ Serial prints เพื่อเดบักได้ แต่ก็เหมือนกับการใช้ไฟฉายสำรวจถ้ำ สำหรับการเดบักจริง, คุณอาจอยากจะยกระดับเกมของคุณด้วยอะไรสักอย่างเช่น Atmel-ICE debugger ซึ่งรวมเข้ากับสภาพแวดล้อม Arduino ต่อไปนี้เป็นรสชาติของการเดบักแบบปลอมๆ โดยใช้ Serial:
void setup() {
Serial.begin(9600);
}
void loop() {
int sensorValue = analogRead(A0);
Serial.print("ค่าเซนเซอร์: ");
Serial.println(sensorValue);
// จินตนาการว่าคุณกำลังคาดหวัง 512 ที่นี่ แต่ได้ 0
// เวลาในการตรวจสอบการเชื่อมต่อเซนเซอร์
delay(1000); // รอเป็นเวลาหนึ่งวินาทีก่อนที่จะอ่านอีกครั้ง
}
เรียกใช้นี้ด้วย Serial Monitor เปิดอยู่ และคุณจะเห็นสิ่งที่เซ็นเซอร์ของคุณผลิตออกมาในเวลาจริง
ดำดิ่งลึก
ก่อนที่จะมีเดบักเกอร์ เป็นโลกของการใช้คำสั่งพิมพ์ - คุณสามารถเดาได้เพียงว่าอะไรกำลังเกิดขึ้นโดยการพิมพ์ทุกอย่างออกมา เดบักด้วยคำสั่งพิมพ์ยังคงเป็นที่นิยม โดยเฉพาะในสภาพแวดล้อมที่ง่ายกว่าหรือในฮาร์ดแวร์ที่มีข้อจำกัดเช่น Arduino
ทางเลือกเพื่อการใช้เอมิเลเตอร์ในวงจรเช่น Atmel-ICE รวมถึงเครื่องมือเดบักซอฟต์แวร์เช่น avr-gdb
คุณสามารถจับคู่มันกับ avarice
เพื่อสร้างสะพานระหว่าง GDB กับฮาร์ดแวร์ของคุณซึ่งเป็นสิ่งที่สำหรับการเดบักขั้นสูงโดยตรงบนชิป
โดยใช้เดบักเกอร์, คุณสามารถตั้งจุดหยุด (breakpoints) เพื่อหยุดการดำเนินการที่จุดหลักๆ คุณสามารถเดินรหัสของคุณทีละบรรทัด, ตรวจสอบหน่วยความจำ, รีจีสเตอร์, และตัวแปร สิ่งนี้ช่วยให้คุณชี้แจงปัญหาแทนที่จะกระทำโดยคาดการณ์ เมื่อใช้เดบักเกอร์ ตรวจสอบให้แน่ใจว่าสภาพแวดล้อมของคุณตั้งค่าอย่างถูกต้อง - รุ่นที่ไม่ตรงกันหรือเครื่องมือที่ตั้งค่าไม่ถูกต้องอาจทำให้เกิดความผิดหวัง
ดูเพิ่มเติม
พร้อมที่จะดำดิ่งลึกขึ้น? สำรวจสิ่งเหล่านี้:
- คู่มือการเดบัก Arduino ที่ Arduino Debugging
- คู่มืออ้างอิง AVR Libc สำหรับการตั้งค่า avr-gdb: หน้าหลัก AVR Libc