使用Keil C調試某系統時(shí)積累的一些經(jīng)驗
1、由于Keil C對中文支持不太好,因而會(huì )出現顯示的光標與光標實(shí)際所在不一致的現象,這會(huì )對修改中文注釋造成影響。在Windows2000下面,我們可以把字體設置為Courier,這樣就可以顯示正常。
2、當使用有片外內存的MCU(如W77E58,它有1K片外內存)的時(shí)候,肯定要設置標志位,并且編譯方式要選擇大模式,否則會(huì )出錯。
3、當使用Keil C跟蹤程序運行狀態(tài)的時(shí)候,要把引起Warning的語(yǔ)句屏蔽,否則有可能跟蹤語(yǔ)句的時(shí)候會(huì )出錯。
4、在調用數組的時(shí)候,Keil C是首先把數組Load進(jìn)內存。如果要在C中使用長(cháng)數組的時(shí)候,我們可以使用code關(guān)鍵字,這樣就實(shí)現了匯編的DB的功能,Keil C是不會(huì )把標志code的數組Load入內存的,它會(huì )直接讀取Rom。
5、當編程涉及到有關(guān)通信,時(shí)序是很重要的。拉高管腳的執行速度遠遠比檢查管腳電平的要快。
6、在等待管腳電平變化的時(shí)候,我們需要設置好超時(shí)處理,否則程序就會(huì )因為一個(gè)沒(méi)有預計的錯誤而死鎖。
7、能用C語(yǔ)言實(shí)現的地方,盡量不要用匯編,尤其在算法的實(shí)現,用匯編是晦澀難懂。
8、程序的幾個(gè)參數數組所占篇幅很大,其中液晶背景數組最長(cháng),有四千個(gè)Byte,因而把那些初始化數組都放在另外一個(gè)C文件,在主文件使用使用關(guān)鍵字extern定義,這樣就不會(huì )對主文件的編寫(xiě)造成干擾。
9、所有函數之間的相關(guān)性越低越有利于以后功能的擴展。
10、6.20版在編譯帶code關(guān)鍵字的數組時(shí),編譯通過(guò)但是單片機運行結果是錯誤的,改用6.14版后正常。
評論