A. keil涓璋冭瘯鐨勬椂鍊欎負浠涔堜笉鑳借劇疆鏂鐐逛簡錛燂紵 鍙屽嚮鏃犳晥錛丗鏃犳晥
濡傛灉浣犻紶鏍囩偣涓鐨勪唬鐮佽緙栬瘧鍣ㄤ紭鍖栨帀,榪欐牱鐨勪唬鐮佸湪紜浠朵腑涓嶅瓨鍦(琚浼樺寲鎺変簡),鎵浠ユ墦涓嶄笂鏂鐐圭殑.
鍙﹀栧傛灉鏄鏂鐐逛釜鏁拌秴榪囩‖浠墮檺鍒,涓鑸浼氬脊鍑轟竴涓鎻愮ず鏂鐐逛釜鏁拌繃澶氱殑鎻愮ず鐨.鎵浠ヤ綘瑕佹墦鏂鐐圭殑浠g爜琚浼樺寲鐨勫彲鑳芥ф瘮杈冨ぇ.
B. 用Release版測試程序調試Dll,怎麼不能設置斷點了
1.使用release程序和debug版本的dll或者debug程序和release版本的dll這種組合,本身不是一種明智的選擇,因為這樣組合會出現莫名其妙的錯誤。
2.release設置的斷點可能是無效的斷點,需要修改工程的屬性,使release下可以使用斷點,我想系統重新安裝,可能導致以前的設置無效,所以建議重新設置一下編譯環境。
3.CVPACK : fatal error CK1007: invalid Types table in mole obj\i386\objidl_i.obj
LINK : warning LNK4027: CVPACK error
這個錯誤可能是由於你的dll沒有編譯成功。
4.調試release程序可以使用輸出日誌的形式來測試。
C. 鍦╧eil杞浠朵腑璋冭瘯紼嬪簭鏃訛紝鏃犳硶璁劇疆鏂鐐癸紝蹇呴』鍒囨崲鍒版眹緙栬璦紿楀彛鎵嶈兘璁劇疆鏂鐐癸紝鎬庝箞鍔烇紵
棣栧厛瑕佽寸殑錛孠eil鏄闈炲父涓嶉敊鐨勬ā鎷熷拰璋冭瘯宸ュ叿銆
鍏舵¤佽寸殑灝辨槸鎴戜釜浜虹悊瑙g殑緇忛獙錛
1銆乲eil鏄妯℃嫙MCU鐨勫唴閮ㄧ壒鎬у拰澶栭儴璁懼囷紙I/O鍙c佷腑鏂銆佷覆琛屻佸畾鏃剁瓑錛夌壒鎬э紝鍏舵ā鎷熸槸涓縐嶁滆嚜鍐呭悜澶栤濈殑鐪熷疄妯℃嫙錛屾崲鍙ヨ瘽璇達紝鍙浠ュ張浠繪剰涓涓鍐呴儴鏁版嵁澶勭悊緇撴灉鍘繪寚瀵糏/O鍙e伐浣滐紝浣嗚繖縐岻/O宸ヤ綔鐨勬柟鍚戞槸鈥滆緭鍑哄瀷鈥濈殑錛堝箍涔夛級錛岃屽逛簬MCU瑕佸幓鑾峰彇澶栭儴鐘舵佺殑宸ヤ綔錛堟垜鎶婂畠縐頒綔涓衡滆緭鍏ュ瀷鈥濈殑錛夛紝鍒欏湪Keil涓璋冭瘯鏃犳硶鑳藉弽鏄犵湡瀹炴儏鍐碉紝蹇呴』瑕侀厤鍚堢浉搴旂‖浠舵墠鑳芥e父璋冭瘯錛屽洜涓哄綋浠呯敤Keil杞浠訛紙涓嶇敤浠諱綍鍏朵粬紜浠訛級鍦ㄧ數鑴戜笂鈥滆蔣鈥濊皟璇曞伐紼嬫椂錛岃誨彇澶栭儴I/O鍙o紝璇昏繃鏉ョ殑鏁版嵁閮芥槸1錛屼絾榪欏彲鑳藉苟涓嶆剰鍛崇潃浣犵殑杞浠舵湁闂棰樸
2銆佹湁浜嗙湡瀹炩滆緭鍑哄瀷鈥濈殑璋冭瘯錛岃屾棤娉曗滆緭鍑哄瀷鈥濈殑璋冭瘯錛屼綘鏄涓嶆槸瑙夊緱鍙鏈変竴鍗婄殑鍔熻兘鍛錛熷叾瀹炰笉鏄榪欐牱鐨勩傚綋鎴戜滑瑕佸幓璋冭瘯鈥滆緭鍑哄瀷鈥濇椂錛屾垜鐨勫仛娉曟槸鐢ㄨ蔣浠跺幓鍒朵綔涓涓鍜屽栭儴紜浠剁壒鎬т竴鏍風殑杞浠舵ā鍧楋紙涓鑸榪欎釜妯″潡鍋氳搗鏉ユ槸姣旇緝璐瑰姏鐨勶級錛屼篃灝辨槸璇寸敤鎴戝仛鐨勫彟涓涓鐙絝嬬殑杞浠舵ā鍧楀幓浜х敓鎴栭夊彇MCU闇奼傜殑杈撳叆鏁版嵁錛岃繖鏍峰氨鑳介獙璇佹煇浜涜繃紼嬫槸鍚﹀湪鎵ц屼腑鎸夌収鑷宸辯殑鎰忚瘑鎿嶄綔銆
鎴戞浘緇忓氨鍙鏈塳eil鍋氳繃DS18B20鐨勨滄悳緔ROM鈥濈殑綆楁硶瀹炵幇鍜屾暣涓榪囩▼錛堝洜涓哄傛灉鐩存帴鐑ц繘MCU紼嬪簭鐨勮瘽錛屽傛灉涓嶅嚭姝g『緇撴灉錛屽叾瀹炴牴鏈灝卞彂鐜頒笉浜嗛敊璇瀛樺湪錛夛紝鎴戝仛浜嗕竴涓澶栭儴DS18B20鐨勭‖浠朵豢鐪熻蔣浠舵ā鍧楋紙鐢卞緢澶氫釜鍑芥暟緇勬垚錛夛紝鍚庢潵灝辨槸鍦↘eil鐨勪竴浜涒滆蔣鈥濆崟姝ヨ皟璇曚腑鍙戠幇浜嗘垜鎵鏈夌畻娉曚腑鐨勫嚭鐜扮殑闂棰橈紝鏈鍚庢垜鎵嶆妸澶氫釜DS18B20榪炴帴鍦ㄤ竴涓狹CU鐨処/O鍙d笂錛屽叏閮ㄦg『鐨勮幏鍙栦簡鍦ㄧ嚎鐨勮兘姝e父宸ヤ綔鐨凞S18B20鐨64浣嶅湴鍧銆
鏈鍚庢垜鎯寵寸殑灝辨槸錛屼粎鍦╧eil涓嬪幓浠跨湡澶栭儴紜浠剁壒鎬у仛闇瑕佺殑杞浠舵ā鍧楁瘮杈冧細蹇界暐鏌愪簺鏂歸潰鑰屽嚭閿欑殑錛堜竴鑸鑰岃█錛夛紝鎵浠ヨ佸紑鍙慿eil宸ョ▼璇濓紝鎴戦潪甯告帹鑽愮敤鐩稿簲鐨勪豢鐪熷櫒錛堣繖涓鍙鏄紜浠跺摝錛夊幓璋冭瘯浣犵殑欏圭洰銆
PS錛氬彲鎯滄垜涓鐩撮兘鏄娌℃湁紜浠朵豢鐪熷櫒鐨勬潯浠朵笅寮鍙戝伐浣滅殑錛屾湁鐨勬椂鍊欎細鐩稿綋鑰楁椂銆
D. keil5 為什麼好多指令不能打斷點
在一定級別的優化之後,有些源程序代碼行根本就沒有對應的編譯內容了,自然也就沒辦法打斷點。
優化級別調高以後,調試的策略也要對應變化,以匯編代碼段為准。