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