[問題] keil code於main()之前偷跑
各位大大好,是這樣的,
我目前一個「測試watchdog」且「紀錄於外部記憶體」的程式
由於watchdog會測到reset,因此我用外部記憶體紀錄,現在跑到哪一步驟
但keil在編譯、download過程中,似乎會偷偷去執行某一部份程式碼
每次ctrl+f5編譯完進入debug模式時,外部記憶體已然動過了
很明顯是被我寫的程式給動過,且動到一半就跳出,跳到main()去的樣
run to main()選項有沒有勾選,都會有這樣的情形發生
細節:外部記憶體主要兩區:password與step
password正確就代表測試程式執行中,step代表測試到第幾步
password不正確,就會輸入password且把step歸1
每次ctrl+f5編譯完,password已經紀錄了,
但step跑到5、6步,紀錄的結果也是充滿錯誤。
此時讓程式由main()開始跑就一定得不到正確結果。
當然手動把pass跟step歸零、讓程式從main()跑到尾會是正確的
這樣會導致我寫的程式執行錯誤
請問有沒有方法可以解決呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.32.216.166
→
01/05 18:02, , 1F
01/05 18:02, 1F
→
01/05 18:04, , 2F
01/05 18:04, 2F
→
01/05 18:06, , 3F
01/05 18:06, 3F
→
01/05 18:07, , 4F
01/05 18:07, 4F
→
01/05 18:09, , 5F
01/05 18:09, 5F
→
01/05 18:09, , 6F
01/05 18:09, 6F
感謝k大的賜教,不過似乎不是這樣的問題,startup.a51我沒有去動過
也沒有初始化數值。
一進入debug模式時,還沒讓他跑,
程式的前半段已經不知在何時跑過,但程式的後半段沒有跑
deubg的指標是指向程式的最前端main()的部份
由於我寫的程式有關於reset的設計,他如果跑到一半,斷掉從頭跑
那我程式從頭開始執行,會跳到後半段開始跑,而不會整個從頭跑,因而出錯
我的問題是:「為什麼ctrl+f5進入debug模式,還沒讓程式開始跑時,
程式的前半段已經被偷偷執行過了呢?」
希望這樣講得比較有條理,希望能得到解答!
※ 編輯: ihady 來自: 114.32.216.166 (01/06 16:13)
推
01/06 18:27, , 7F
01/06 18:27, 7F
→
01/06 18:28, , 8F
01/06 18:28, 8F
→
01/06 18:29, , 9F
01/06 18:29, 9F
→
01/06 18:35, , 10F
01/06 18:35, 10F
→
01/06 18:35, , 11F
01/06 18:35, 11F
→
01/06 18:36, , 12F
01/06 18:36, 12F
推
01/08 01:58, , 13F
01/08 01:58, 13F
→
01/08 01:59, , 14F
01/08 01:59, 14F
→
01/08 02:00, , 15F
01/08 02:00, 15F
→
01/08 02:02, , 16F
01/08 02:02, 16F
→
01/08 02:02, , 17F
01/08 02:02, 17F
ASM 近期熱門文章
PTT數位生活區 即時熱門文章