999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

編譯器優化造成上注代碼部分功能失效分析

2018-11-14 10:43:52山東航天電子技術研究所都曉輝曹振興
電子世界 2018年20期
關鍵詞:單片機程序優化

山東航天電子技術研究所 都曉輝 曹振興

本文介紹了一種以80C32E為核心,具備上注功能的單片機系統,軟件在編譯生成上注代碼后,上注代碼在EEPROM運行異常情況,通過對上注代碼運行異常進行分析研究,最終找出由于編譯器優化造成部分功能失效的原因,并進行了總結。

1.概況

某單片機程序采用固化程序加上注代碼的執行模式,若軟件發現問題可通過上注代碼對部分代碼功能進行更改,本案例說明由于在對上注代碼的制作過程中編譯器優化造成上注代碼執行部分功能失效的問題。硬件框圖見圖1;

圖1 硬件框圖

80C32系統的硬件結構如圖1所示,包括單片機80C32、ROM、RAM、EEPROM1、EEPROM2和總線接口。ROM、RAM、EEPROM1、EEPROM2和總線接口均與單片機80C32互連。80C32系統上電后運行ROM中的固化程序,根據需要,可通過總線接口向80C32系統發送上注程序,并將上注程序寫入EEPROM1、EEPROM2和RAM中,當系統接收到執行上注程序的指令后,執行EEPROM中的上注程序。

2.故障現象

某軟件在按照部門的統一要求將上注代碼做成完全上注模式后確認測試時發現在運行上注程序時,發現部門程序功能失效,運行結果和預期不一致。

注:完全上注模式,將在固化程序中出現的軟件功能在上注代碼中全部實現。在上注代碼制作過程中將主程序中MAIN函數中出現的函數、變量、標志等定位到與固化程序相同的地址上,所出現的函數只保留函數皮(函數中無內容),程序切換到上注執行模式后將跳至上注代碼模塊。

3.故障原因

上注代碼中選用主程序中的相應功能代碼,注入到上注程序區。為了進一步分析問題將上注代碼上注后將EEPROM中的數據讀出,與上注的代碼進行比對,通過比對發現兩者一致,排除代碼上注的過程中某環節出現問題將上注代碼改寫的情況。進而對固化程序和上注代碼的C和編譯生成的匯編代碼進行檢查比對如下。

表1 上注代碼C程序及對應匯編

表2 固化程序中C代碼及對應匯編

通過比對發現固化程序比上注程序在退出函數后將DPTR的值進行了重新賦值(恢復到標志位的地址)而上注代碼部分則無。(粗斜體部分)

在固化程序中對JMJDataPack()、XJDataPack()、GPSDataPack()三模塊進行查看發現在函數內多次對DPTR的值進行改寫,退出后對DPTR的值進重新賦值,而在上注程序運行的過程中調用固化程序相應的模塊,結果跳出相應的模塊后,DPTR的值未重新賦值,將對應的錯誤的地址值進行改寫,未能實現正確的標志位改變功能,致使出現相對應的功能實現不了,在此過程中編譯器編譯出了問題。

分析和試驗發現編譯器在編譯固化程序時由于JMJDataPack()、XJDataPack()、GPSDataPack()函數中多次將DPTR的值進行改寫,因此在退出上述函數后編譯器將標志位的地址重新賦值給DPTR,再對該地址的值進行修改,而編譯器在編譯上注程序時由于上述函數使用的是空函數(上注程序中函數對應的地址與固化程序一一對應,無函數內容),沒有對DPTR進行更改,配置環境在8級優化的情況下編譯器在編譯的過程中將優化處理(“窺孔”優化,不必要的從存儲器裝入對象及裝入常數的操作)不對DPTR 的值進行重新賦值,造成上述現象的發生。在“Options選項/C51標簽頁/Code Optimization欄/Leve框”內選取優化級別。OPTIMIZE命令設置優化級別和優化重點,共有9個優化級別,高優化級別中包含了前面所有的底優化級別。

現在的程序編譯過程中均采用8級優化,由于高優化級別中包含了前面所有的底優化級別,因此編譯器在對上注代碼模塊編譯時將重復的DPTR賦值操作去掉,造成上述現象的發生。

4.解決措施

針對該問題有目前三種解決方法:

當前固化程序和上注代碼KEILC在環境配置時選用的8級優化,將上注代碼環境配置優化級別選為2級,即不對代碼進行“窺孔”優化。

更改上注代碼如下:

將fgYKManage = FALSE; fgGBManage = FALSE;分別放到XJDataPack()和GPSDataPack()函數內。

5.總結

在使用相應的工具進行編程時,尤其是對具有代碼優化功能的編譯軟件的環境配置應特別注意,其某些優化功能可能會造成對某些代碼的功能出錯,在用之前一定要對相應的優化內容和規則有深刻了解。在代碼完成后還要加強代碼的各項確認測試工作,認真核對每一項功能是否有偏差,仔細認真的比對每一項指標。

猜你喜歡
單片機程序優化
超限高層建筑結構設計與優化思考
房地產導刊(2022年5期)2022-06-01 06:20:14
民用建筑防煙排煙設計優化探討
關于優化消防安全告知承諾的一些思考
一道優化題的幾何解法
基于單片機的SPWM控制逆變器的設計與實現
電子制作(2019年13期)2020-01-14 03:15:28
基于單片機的層次漸變暖燈的研究
電子制作(2019年15期)2019-08-27 01:12:10
基于單片機的便捷式LCF測量儀
電子制作(2019年9期)2019-05-30 09:42:02
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
主站蜘蛛池模板: 青青青国产精品国产精品美女| 国产精品手机在线观看你懂的| 在线观看网站国产| 五月婷婷激情四射| 欧美日韩国产系列在线观看| 一级福利视频| 国产精品区网红主播在线观看| 国产精品人成在线播放| 2022国产无码在线| 日韩专区欧美| 美女扒开下面流白浆在线试听 | a级毛片毛片免费观看久潮| 亚洲欧美人成电影在线观看| 国产中文一区二区苍井空| 国产网友愉拍精品视频| 日韩无码黄色| 国产一区二区福利| 精品久久久久久久久久久| 国产精品漂亮美女在线观看| 国产国产人在线成免费视频狼人色| 亚洲三级片在线看| 久久综合结合久久狠狠狠97色| 久久国产高清视频| 欧美第一页在线| 国产大全韩国亚洲一区二区三区| 亚洲成人免费在线| 中文一区二区视频| 尤物亚洲最大AV无码网站| 99精品热视频这里只有精品7| 日韩在线欧美在线| 国产乱子伦视频三区| 国产人在线成免费视频| 久久国产亚洲欧美日韩精品| 欧美不卡在线视频| Jizz国产色系免费| 国产福利小视频在线播放观看| 欧美日韩精品在线播放| 国产第八页| 免费国产无遮挡又黄又爽| a级毛片一区二区免费视频| 欧美另类一区| 伊伊人成亚洲综合人网7777| 91www在线观看| 亚洲欧美在线综合图区| 在线观看亚洲国产| 午夜丁香婷婷| 久久综合九色综合97婷婷| 久久成人国产精品免费软件| 日本高清有码人妻| 久久久久九九精品影院| 欧美色99| 久久国产高清视频| av性天堂网| 国产大全韩国亚洲一区二区三区| 在线观看国产精品一区| 又爽又大又黄a级毛片在线视频| 国产精品免费p区| 亚洲午夜久久久精品电影院| 99热这里只有成人精品国产| 看你懂的巨臀中文字幕一区二区 | 亚洲精品亚洲人成在线| 亚洲精品人成网线在线| 毛片在线看网站| 一级毛片免费播放视频| 亚洲精品片911| 亚洲经典在线中文字幕| 高清无码手机在线观看| 久久免费精品琪琪| 波多野结衣一区二区三视频| 无码aⅴ精品一区二区三区| 国产香蕉一区二区在线网站| 久久久成年黄色视频| 久久久久青草线综合超碰| 国产精品v欧美| 日韩国产高清无码| 最近最新中文字幕在线第一页| 色哟哟国产精品一区二区| 天天视频在线91频| 色综合天天视频在线观看| 日韩大片免费观看视频播放| 国产综合无码一区二区色蜜蜜| 伊人色在线视频|