2013年11月3日 星期日

[Keil] 解決Keil使用JLink Debug,無法取得變數值(<not in scope>)

圖一
今天使用JLink Debug時,在main function發生如上圖的狀況,Keil Debug無法正常顯示變數的值,不管是data還是data1都一樣。最後發現了,只要是在main function運作的變數,雖然不知道原因是甚麼,不過可以使用以下的方式解決方法:

1. 設定Complier Mode成Level 0
[Options for Target]->[C/C++]->Optimization[Level0 (-O0)]

2. 不要直接main function取值,把它導到另一個function底下

如下圖二,即可取得變數的值。

圖二
3.若再不行,那把儲存的變數改成陣列
uint8_t data[2] = {0x00};
data[0] = 0x21;

沒有留言:

張貼留言