w10上使用keil5, 發現watch里的變量,有的可以手動改變,進行單步調試,有的不可以,因此不能進行單步調試,如下:
截圖03.png (16.11 KB, 下載次數: 12)
下載附件
2024-7-27 20:08 上傳
截圖01.png (23.22 KB, 下載次數: 16)
下載附件
2024-7-27 20:05 上傳
截圖02.png (17.01 KB, 下載次數: 11)
下載附件
2024-7-27 20:05 上傳
NowT可以改變,s_for_Start1820不能改變,開始不明白是什么原因,
后來無意中發現:只要把main()中的變量,改成extern d的就行,
譬如上1圖中,改為extern uchar s_for_Start1820,
2圖中改為 uchar s_for_Start1820, watch 中就可以改變了,就可以單步調試了,
(1圖是main.c, 2圖是Sever.c 截圖)
更搞不懂的,明明一個變量只在一個文件中出現并使用,也必須在另一個不相干的文件中先定義為 uchar,,
然后在自己所在文件中改成 extern ,
如上面的 NowT, 原本在main 定義為 uchar。現在為了能單步調試,改成extern, 在其他任何一個文件中定義 uchar。
不懂是什么道理,請高手們幫忙解釋一下,謝謝!!
|