Electoday 4.0

ไมโครคอนโทรลเลอร์ => ARM Processors => Topic started by: TaoTao on May 13, 2017, 11:19:53 am

Title: ใน KEIL ตัวแปร Local ใน Function ไม่แสดงค่าใน Watch1/2 อ่ะครับ
Post by: TaoTao on May 13, 2017, 11:19:53 am
อืม เป็นจุดที่ยังมึนอยู่ครับ

ตัวแปรต่างๆ ถ้าวาง นอกฟังก์ชัน
เป็น  Global มันจะแสดงผลตอน ดีบัก

แต่ถ้า Create ไว้ใน Function
ดีบัก มันไม่แสดงค่า ครับ

ซึ่ง ผมเบรกพ้อยขณะอยู่ใน ฟังชั่นนั้นๆ แล้ว
ก็ไม่แสดงค่าออกมา @_@!
มันเพราะอะไรหรือครับ
ยังไม่เข้าใจจุดนี้ของ KEIL


Title: Re: ใน KEIL ตัวแปร Local ใน Function ไม่แสดงค่าใน Watch1/2 อ่ะครับ
Post by: dec on May 14, 2017, 02:17:46 pm
ตัวแปรไม่มีการใช้งานรึเปล่าครับ

ปกติผมใช้ IAR พวก local variable ถึงแม้ว่าจะปิด optimizer ไปแล้ว แต่ถ้าตัวแปรมีการเซ็ตค่าเฉยๆ แต่ถ้าไม่มีการใช้งานเลย มันก็จะไม่โชว์ค่าอะไรเลย ต้องเขียนให้มันมีการใช้งานใน function นั้นๆ ก่อนถึงจะ watch ได้ แล้วก็พอมันใช้งานเสร็จมันก็จะกลับไปเป็นไม่โชว์ค่าอะไรเลยเหมือนเดิม เวลา watch เลยต้อง watch ระหว่าง code ที่ตัวแปรยังมีการใช้งานอยู่
Title: Re: ใน KEIL ตัวแปร Local ใน Function ไม่แสดงค่าใน Watch1/2 อ่ะครับ
Post by: JimmyGrape on May 17, 2017, 11:48:50 am
ต้องเปิดหน้าต่าง Call Stack + Locals ขึ้นมาครับถึงจะมองเห็นตัวแปร local.
ลองดู app. note. ตัวนี้ครับอธิบายละเอียดดี เรื่อง Call Stack + Locals อยู่หน้า 10 ครับ
http://www.keil.com/appnotes/docs/apnt_253.asp

Title: Re: ใน KEIL ตัวแปร Local ใน Function ไม่แสดงค่าใน Watch1/2 อ่ะครับ
Post by: TaoTao on May 24, 2017, 11:56:11 am
โอ้ ขอบคุณทั้งสองคน มากมายครับ
Local Var มันมารวมอยู่ที่ Call Stack นี่เอง
 ;D