Re: 關於debug的心法
|
||||
---|---|---|---|---|
資深會員
|
土法練鋼 :
在你認為有問題的地方 , 加個判斷式 , 如答案不正確 就亮個 LED 並進入 死迴圈
發表於: 2009/5/14 1:26
|
|||
|
Re: 關於debug的心法
|
||||
---|---|---|---|---|
新會員
|
瞭解了,非常謝謝三位大大地指導~小弟趕快再去研究一下~
發表於: 2009/5/12 21:47
|
|||
|
Re: 關於debug的心法
|
||||
---|---|---|---|---|
資深會員
|
參照:
呵,我是採用16f886+組語 程式也不小,中斷也用了幾個,唯一和你不同的事一開始我就先向代理商借了一個ICE2000的開發模組,因為我受不了ICD2的龜速和限制,加上公司的開發時間短的可憐...,一個好的工具加上一些除錯的技巧可以讓事情變的簡單許多哦... 若用debug單步執行,系統就一直很正常....我想你的問題有可能出在中斷,因為ICD2用單步時好像不會產生中斷,要free run才會產中斷... 祝你好運了
發表於: 2009/5/11 8:44
|
|||
|
Re: 關於debug的心法
|
||||
---|---|---|---|---|
資深會員
|
一、call 太多 stack overflow ,你可在一開始就做 call
強迫stack 減少,再來驗證。 如果你的程式會 發生 stack overflow ,那減少一個或兩個三個 會讓問題更容易發生,也更容易找出問題點。 二、你的問題應該是 page 切錯了。當程式跳不出來時,看list file + stack 及 register 的內容,應該就能找出是那切錯了。 可能 call 另一個 pager 的程式 ,goto 另一個pager 查表,register 被更改 大概會出錯就是這四種 。
發表於: 2009/5/11 2:34
|
|||
|
關於debug的心法
|
||||
---|---|---|---|---|
新會員
|
我是用16F883+組語開發的,因為功能很多,所以用了很多中斷,而且程式也很龐大。
最近實際測試時,發現跑了3、40次,就會當機一次,說久不久,說常當也沒有,用debug去看,當機有2種狀況: 1.程式一直在幾個return跳來跳去,就是跳不出來 2.程式跳到program memory沒程式的區段,停在那邊 但用debug模式去抓問題,又不容易找到,所以我想應該是某個地方有問題,可能是page或bank的問題,也可能是程式call太多次的問題,但真的很難抓,若用debug單步執行,系統就一直很正常,根本就找不到錯誤,再加上中斷的程式,ICD2真的很難找到是哪裡錯了。 所以想問一下各位大大,有沒有方法可以找到問題,小弟在此先感謝了~
發表於: 2009/5/9 17:18
|
|||
|