下面兩段,是我從disassembly listing 看到的情形,
錯誤的:
301: GSMReset_Cnt = __GSMResetNoCSQ_Cnt_; //Move Timer to GSM reset count.\
0CD46 0101 MOVLB 0x1
0CD48 0EB4 MOVLW 0xb4
0CD4A 6F71 MOVWF 0x71, BANKED
302: GsmReset_Out=1;
303: Delay10KTCYx(200);
0CD4C 0EC8 MOVLW 0xc8
0CD4E 6EE6 MOVWF 0xfe6, ACCESS
0CD50 EC46 CALL 0xea8c, 0
正確的:
301: GSMReset_Cnt = __GSMResetNoCSQ_Cnt_; //Move Timer to GSM reset count.
0CD46 0101 MOVLB 0x1
0CD48 0EB4 MOVLW 0xb4
0CD4A 6F71 MOVWF 0x71, BANKED
302: GsmReset_Out=1;
0CD4C 8482 BSF 0xf82, 0x2, ACCESS
303: Delay10KTCYx(200);
0CD4E 0EC8 MOVLW 0xc8
0CD50 6EE6 MOVWF 0xfe6, ACCESS
0CD52 EC47 CALL 0xea8e, 0
問題出在,錯誤時,第302行程式未被compiler
302: GsmReset_Out=1;
303:
而我在錯誤時,發現問題出現在,是因為前一行的注解尾端不小心多打了一個字元 " \"
此時 下一行即不會被compiler,若我在 GsmReset_Out=1; 上方插入一行空白,也會compiler正常。
有誰知道註解尾端多加一個"\" 跟compiler 有什麼關係呢?
挫屎了~