亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        嵌入式系統(tǒng)軟件調(diào)試和固化方法研究

        2020-11-28 13:05:07林海趙昶宇
        科技與創(chuàng)新 2020年10期
        關(guān)鍵詞:調(diào)試環(huán)境產(chǎn)品

        林海,趙昶宇

        嵌入式系統(tǒng)軟件調(diào)試和固化方法研究

        林海1,趙昶宇2

        (1.海軍裝備部駐天津地區(qū)第二軍事代表室,天津 300308;2.天津津航計(jì)算技術(shù)研究所,天津 300308)

        嵌入式軟件調(diào)試和固化已經(jīng)成為軟件開(kāi)發(fā)過(guò)程中不可或缺的一部分,嵌入式軟件調(diào)試環(huán)境為嵌入式軟件的調(diào)試和固化提供了廣闊便利的發(fā)展空間。闡述了嵌入式軟件的常用調(diào)試工具、調(diào)試方法和固化方法,并給出了嵌入式軟件調(diào)試和固化的經(jīng)驗(yàn),對(duì)嵌入式軟件的開(kāi)發(fā)調(diào)試具有指導(dǎo)意義。

        嵌入式系統(tǒng);軟件調(diào)試;調(diào)試工具;軟件固化

        嵌入式軟件的調(diào)試和固化是嵌入式軟件開(kāi)發(fā)過(guò)程中非常重要的組成部分,軟件開(kāi)發(fā)人員在源代碼設(shè)計(jì)完成后,需要在指定的硬件平臺(tái)上進(jìn)行調(diào)試、驗(yàn)證,最終形成目標(biāo)碼后對(duì)軟件產(chǎn)品進(jìn)行固化,軟件設(shè)計(jì)人員對(duì)軟件調(diào)試、固化過(guò)程和經(jīng)驗(yàn)技巧進(jìn)行充分了解,可以在很大程度上提高工作效率,避免出現(xiàn)低層次質(zhì)量錯(cuò)誤。

        1 軟件調(diào)試方法

        由于目前嵌入式軟件調(diào)試平臺(tái)種類很多,按照開(kāi)發(fā)調(diào)試環(huán)境可劃分為具有集成開(kāi)發(fā)調(diào)試環(huán)境的仿真器調(diào)試平臺(tái)、簡(jiǎn)易的監(jiān)控調(diào)試平臺(tái)、黑盒調(diào)試平臺(tái)以及集成交叉開(kāi)發(fā)環(huán)境四大類。

        1.1 仿真環(huán)境

        軟件設(shè)計(jì)人員可以在集成仿真環(huán)境下進(jìn)行源代碼的編譯、鏈接、生成目標(biāo)文件,與目標(biāo)機(jī)建立聯(lián)系后,可動(dòng)態(tài)加載目標(biāo)文件執(zhí)行,靈活設(shè)置斷點(diǎn)、觀測(cè)變量、訪問(wèn)內(nèi)存、寄存器、跟蹤打印調(diào)試信息。近年來(lái)發(fā)布的主流處理器都支持仿真器調(diào)試,如TI的C3X系列、C5X系列、C6X系列,AD公司的TS201、0MAP、ARM系列等處理器都有完善的集成仿真調(diào)試環(huán)境。

        1.2 監(jiān)控環(huán)境

        對(duì)于386EX芯片,利用系統(tǒng)提供的編譯程序進(jìn)行編譯連接生成目標(biāo)文件,在386EX提供了監(jiān)控調(diào)試環(huán)境下,主機(jī)和目標(biāo)板通過(guò)RS-232串口建立通訊關(guān)系,軟件開(kāi)發(fā)人員可以進(jìn)行目標(biāo)文件的在線加載,在源程序中插樁加入斷點(diǎn)的方式進(jìn)行調(diào)試,可以在進(jìn)入斷點(diǎn)后,觀測(cè)寄存器和程序執(zhí)行狀態(tài)。

        1.3 黑盒環(huán)境

        對(duì)于早期開(kāi)發(fā)的8051、80196系列的芯片,部分產(chǎn)品只能在黑盒環(huán)境下進(jìn)行軟件調(diào)試,軟件設(shè)計(jì)人員可以在源程序中進(jìn)行插樁,加入相關(guān)的調(diào)試信息,通過(guò)監(jiān)測(cè)口進(jìn)行調(diào)試。

        1.4 交叉調(diào)試

        對(duì)于X86、PPC、ARM、MIPS系列的處理器芯片,軟件開(kāi)發(fā)人員可以在Tornado/WorkBench集成開(kāi)發(fā)環(huán)境下進(jìn)行軟件調(diào)試。一般在宿主機(jī)上進(jìn)行程序的編制和編譯,調(diào)試、測(cè)試和執(zhí)行則需要將編譯好的目標(biāo)文件下載和鏈接到運(yùn)行著嵌入式實(shí)時(shí)操作系統(tǒng)的目標(biāo)機(jī)上,宿主機(jī)和目標(biāo)機(jī)之間通過(guò)串口或者以太網(wǎng)接口進(jìn)行通信。軟件開(kāi)發(fā)人員可以借助Tornado/WorkBench自帶的調(diào)試器配合目標(biāo)機(jī)共同完成對(duì)被調(diào)試程序執(zhí)行狀態(tài)的實(shí)時(shí)跟蹤,從而快速有效地對(duì)程序錯(cuò)誤進(jìn)行定位、糾正,提高調(diào)試效率。

        在Tornado/WorkBench集成開(kāi)發(fā)環(huán)境下,常用的調(diào)試和測(cè)試工具有:①內(nèi)存分析工具。用于處理動(dòng)態(tài)內(nèi)存分配中存在的缺陷。當(dāng)動(dòng)態(tài)內(nèi)存被錯(cuò)誤分配后,通常難以再現(xiàn),可能導(dǎo)致失效難以跟蹤,使用內(nèi)存分析工具可以避免這類缺陷進(jìn)入功能測(cè)試階段。但該工具可能會(huì)對(duì)代碼的性能造成很大影響,從而嚴(yán)重影響實(shí)時(shí)操作。②性能分析工具。該工具會(huì)提供有關(guān)的數(shù)據(jù),說(shuō)明執(zhí)行時(shí)間是如何消耗的,是何時(shí)消耗的,以及每個(gè)例程所用的時(shí)間。性能分析工具不僅能指出哪些例程花費(fèi)時(shí)間,而且與調(diào)試工具聯(lián)合使用可以引導(dǎo)開(kāi)發(fā)人員查看需要優(yōu)化的特定函數(shù),性能分析工具還可以引導(dǎo)開(kāi)發(fā)人員發(fā)現(xiàn)在系統(tǒng)調(diào)用中存在的錯(cuò)誤以及程序結(jié)構(gòu)上的缺陷。③GUI測(cè)試工具。GUI測(cè)試工具可以作為腳本工具在開(kāi)發(fā)環(huán)境中運(yùn)行測(cè)試用例,其功能包括回放操作記錄、抓取屏幕顯示供以后分析和比較、設(shè)置和管理測(cè)試程序。很多嵌入式設(shè)備沒(méi)有GUI,但常??梢詫?duì)嵌入式設(shè)備進(jìn)行插樁來(lái)運(yùn)行GUI測(cè)試腳本。該工具可以節(jié)省功能測(cè)試和回歸測(cè)試的時(shí)間。 ④覆蓋分析工具。一般在代碼的調(diào)試和測(cè)試時(shí)可以使用代碼覆蓋工具跟蹤哪些代碼被執(zhí)行過(guò),分析過(guò)程可以通過(guò)插樁來(lái)完成。覆蓋分析工具提供有關(guān)功能覆蓋、分支覆蓋和條件覆蓋信息。對(duì)于嵌入式軟件來(lái)說(shuō),代碼覆蓋分析工具可能侵入代碼執(zhí)行過(guò)程,影響實(shí)時(shí)代碼運(yùn)行。

        2 軟件固化方法

        按照軟件產(chǎn)品“先編程后焊接”和“先焊接后編程”兩種生產(chǎn)順序,嵌入式軟件的固化方法分為兩種:采用編程器(如ALL-11)離線編程的方法進(jìn)行軟件固化,采用在線編程(仿真環(huán)境、監(jiān)控軟件、交叉調(diào)試)的方法進(jìn)行軟件固化。

        2.1 編程器

        對(duì)于不具備在線固化條件的表貼芯片,需在芯片焊接到板卡之前,由設(shè)計(jì)人員從產(chǎn)品庫(kù)中提取目標(biāo)碼文件進(jìn)行固化,采用編程器(如ALL-11)進(jìn)行離線燒寫(xiě)固化。先編程后焊接采用的編程器具有支持芯片廠家、覆蓋面較廣、人機(jī)交互界面友好、功能完善(提供了文件上傳和下載、芯片擦除、編程、校驗(yàn)、數(shù)據(jù)比較)、固化可靠性強(qiáng)等優(yōu)點(diǎn),操作人員可利用編程器在離線模式下安全可靠地固化軟件。由于在對(duì)產(chǎn)品進(jìn)行開(kāi)蓋和換芯片處理后才能采用編程工具進(jìn)行離線編程,因此“先編程后焊接”的方法不利于產(chǎn)品的后期維護(hù),一般在生產(chǎn)階段使用。

        2.2 仿真環(huán)境

        對(duì)于支持集成仿真調(diào)試環(huán)境和在線編程的產(chǎn)品,操作人員首先將JTAG/MPSD專用插頭接到目標(biāo)板的專用插座上,在主機(jī)和目標(biāo)機(jī)建立通訊后,在仿真器的集成調(diào)試環(huán)境下,操作人員可以利用部分芯片的集成開(kāi)發(fā)環(huán)境提供的編程工具或軟件人員編寫(xiě)的專用固化程序進(jìn)行軟件目標(biāo)碼的在線固化。在對(duì)產(chǎn)品進(jìn)行開(kāi)蓋后才能在仿真器的集成調(diào)試環(huán)境下進(jìn)行在線編程,因此“仿真環(huán)境”編程的方法不利于產(chǎn)品的后期維護(hù),一般在產(chǎn)品調(diào)試階段使用。

        2.3 監(jiān)控軟件

        產(chǎn)品監(jiān)控軟件是為產(chǎn)品研制的專用在線燒寫(xiě)軟件,操作人員根據(jù)產(chǎn)品的具體特點(diǎn),采用編程器/仿真環(huán)境固化的方法將產(chǎn)品監(jiān)控軟件的目標(biāo)碼燒寫(xiě)到芯片內(nèi)部的指定空間,確保產(chǎn)品上電后處理器首先運(yùn)行的是監(jiān)控軟件。

        利用產(chǎn)品的專用接口電纜在產(chǎn)品和主機(jī)監(jiān)控軟件之間建立通訊關(guān)系,一般通過(guò)串口、1553B接口、USB接口、以太網(wǎng)等接口交互命令信息和數(shù)據(jù)信息,在產(chǎn)品不開(kāi)蓋的條件下,實(shí)現(xiàn)產(chǎn)品軟件的在線更新和監(jiān)控軟件的自更新功能。自主開(kāi)發(fā)的主機(jī)監(jiān)控軟件可在產(chǎn)品不開(kāi)蓋條件下進(jìn)行軟件在線固化,很大程度上提高了產(chǎn)品的可維護(hù)性,一般在產(chǎn)品的維護(hù)階段使用。

        2.4 交叉鏈接環(huán)境

        對(duì)于運(yùn)行在嵌入式操作系統(tǒng)VxWorks中的軟件,由于嵌入式操作系統(tǒng)安裝在CF卡/CFast卡/SATA硬盤(pán)中,固化該類軟件產(chǎn)品時(shí)只需軟件開(kāi)發(fā)人員在Tornado/WorkBench下編譯完的軟件的*.o或者*.out文件拷貝到CF卡/CFast卡/SATA硬盤(pán)中即可。當(dāng)VxWorks操作系統(tǒng)啟動(dòng)后,系統(tǒng)自動(dòng)加載并執(zhí)行*.o或者*.out文件,即可運(yùn)行該嵌入式軟件。

        3 軟件調(diào)試和固化經(jīng)驗(yàn)

        3.1 軟件調(diào)試經(jīng)驗(yàn)

        3.1.1 仿真環(huán)境

        在仿真器配套提供的集成仿真環(huán)境下,調(diào)試過(guò)程需要注意以下事項(xiàng):建議在加載程序運(yùn)行前,先將CPU進(jìn)行軟復(fù)位,以確保CPU在初始態(tài);在軟件加載完成運(yùn)行后,不要在Watch Window窗口頻繁刷新相關(guān)變量的值,否則會(huì)導(dǎo)致程序中斷異常,建議在程序進(jìn)入斷點(diǎn)后再觀察變量和寄存器的值;頻繁調(diào)用“printf語(yǔ)句”將會(huì)導(dǎo)致中斷丟失。

        3.1.2 監(jiān)控環(huán)境

        不同軟件產(chǎn)品的RAM地址分配不盡相同,軟件設(shè)計(jì)人員必須了解監(jiān)控軟件占用的RAM地址空間。在軟件產(chǎn)品的CMD文件進(jìn)行地址空間分配時(shí)進(jìn)行充分考慮,否則會(huì)引起地址沖突,導(dǎo)致不可預(yù)知的運(yùn)行結(jié)果。

        3.1.3 黑盒環(huán)境

        黑盒環(huán)境下通常采用軟件源代碼插樁的方式調(diào)試軟件,通過(guò)在源代碼中增加“調(diào)試代碼”來(lái)監(jiān)控軟件的執(zhí)行狀態(tài)。

        3.1.3.1 分析產(chǎn)品硬件系統(tǒng),確認(rèn)調(diào)試接口

        可利用硬件產(chǎn)品的備用RS-422/RS-232串口作為調(diào)試接口和測(cè)試設(shè)備自帶的串口接口連接,測(cè)試設(shè)備端用“串口調(diào)試助手”接收調(diào)試信息;若硬件產(chǎn)品沒(méi)有備用RS-422/RS-232串口,可依據(jù)產(chǎn)品的實(shí)際接口配置,將產(chǎn)品的RS-422串口、開(kāi)關(guān)量輸出接口或DA輸出接口作為調(diào)試接口和專用測(cè)試設(shè)備的相關(guān)接口連接,并在測(cè)試設(shè)備軟件中編寫(xiě)“接收調(diào)試”的代碼。

        3.1.3.2 在產(chǎn)品軟件源代碼中進(jìn)行插樁調(diào)試

        不建議在源碼編寫(xiě)完成、目標(biāo)碼固化后直接進(jìn)行軟件調(diào)試,應(yīng)按照先簡(jiǎn)后繁的順序分別進(jìn)行調(diào)試;在源代碼中進(jìn)行插樁,應(yīng)針對(duì)每個(gè)條件分支輸出不同的監(jiān)控信息。

        3.1.4 交叉鏈接環(huán)境

        3.1.4.1 任務(wù)監(jiān)控

        在VxWorks操作系統(tǒng)中使用taskIdListGet()函數(shù)可以獲得當(dāng)前操作系統(tǒng)中運(yùn)行的所有任務(wù),TaskStatusString獲取任務(wù)狀態(tài)名稱,在發(fā)現(xiàn)任務(wù)出錯(cuò)時(shí)通過(guò)回調(diào)函數(shù)通知用戶出錯(cuò)任務(wù)情況。

        3.1.4.2 任務(wù)堆棧溢出

        在VxWorks操作系統(tǒng)中通過(guò)taskInit()函數(shù)指定堆棧的內(nèi)存地址到一塊只讀頁(yè)的下方,然后運(yùn)行taskActivate()函數(shù),若有堆棧溢出,會(huì)出現(xiàn)MMU異常報(bào)錯(cuò)。此外還可通過(guò)checkStack()命令來(lái)檢查任務(wù)的堆棧情況。

        3.1.4.3 異常任務(wù)定位

        在VxWorks操作系統(tǒng)任務(wù)執(zhí)行過(guò)程中出現(xiàn)異常時(shí),可通過(guò)執(zhí)行函數(shù)tt()顯示指定任務(wù)的函數(shù)調(diào)用關(guān)系,根據(jù)函數(shù)調(diào)用關(guān)系確定當(dāng)前異常任務(wù)所處的位置,并查找異常原因。

        3.2 軟件固化經(jīng)驗(yàn)

        在仿真環(huán)境下,建議軟件人員在產(chǎn)品固化流程執(zhí)行完成后,不要使固化程序的代碼執(zhí)行處于未知的狀態(tài),應(yīng)加入空循環(huán)語(yǔ)句,斷開(kāi)仿真器連接,固化程序繼續(xù)執(zhí)行的情況下不會(huì)導(dǎo)致程序跑飛,出現(xiàn)不可預(yù)知的結(jié)果;在仿真器集成環(huán)境和監(jiān)控軟件進(jìn)行軟件固化時(shí),應(yīng)確保固化過(guò)程中不對(duì)產(chǎn)品進(jìn)行斷電操作,確保軟件固化成功。

        [1]李志丹.嵌入式軟件調(diào)試方法研究[J].計(jì)算機(jī)與數(shù)字工程,2012,40(7):157-159.

        [2]溫平川,何先剛,殷茜.嵌入式軟件調(diào)試器的設(shè)計(jì)與實(shí)現(xiàn)[J].西南師范大學(xué)學(xué)報(bào)(自然科學(xué)版),2003,28(2):209-213.

        2095-6835(2020)10-0029-02

        TP311.5

        A

        10.15913/j.cnki.kjycx.2020.10.011

        林海(1976—),男,本科,海軍裝備部駐天津地區(qū)第二軍事代表室工程師,主要從事裝備質(zhì)量監(jiān)督與檢驗(yàn)驗(yàn)收方面的工作。

        〔編輯:嚴(yán)麗琴〕

        猜你喜歡
        調(diào)試環(huán)境產(chǎn)品
        長(zhǎng)期鍛煉創(chuàng)造體內(nèi)抑癌環(huán)境
        一種用于自主學(xué)習(xí)的虛擬仿真環(huán)境
        孕期遠(yuǎn)離容易致畸的環(huán)境
        環(huán)境
        基于航拍無(wú)人機(jī)的設(shè)計(jì)與調(diào)試
        電子制作(2018年12期)2018-08-01 00:47:44
        FOCAS功能在機(jī)床調(diào)試中的開(kāi)發(fā)與應(yīng)用
        無(wú)線通信中頻線路窄帶臨界調(diào)試法及其應(yīng)用
        電子制作(2017年19期)2017-02-02 07:08:38
        調(diào)壓柜的調(diào)試與試運(yùn)行探討
        2015產(chǎn)品LOOKBOOK直擊
        Coco薇(2015年1期)2015-08-13 02:23:50
        新產(chǎn)品
        玩具(2009年10期)2009-11-04 02:33:14
        青青草免费激情自拍视频| 97久久精品无码一区二区天美| 亚洲熟伦熟女新五十路熟妇| 国产成人美女AV| 亚洲最黄视频一区二区| 美妇炮灰被狂躁爽到高潮h| 国产超碰人人做人人爽av大片 | 中文字幕亚洲视频三区| 在线观看一级黄片天堂| 另类老妇奶性生bbwbbw| 久久精品国产热| 日本一区二区三区在线观看视频| 国产午夜视频在线观看免费| 国产av永久无码天堂影院| 国产亚洲欧美在线| 一区二区三区四区日韩亚洲| 人妻免费一区二区三区免费| 一本无码av中文出轨人妻| 国产乱淫视频| 小草手机视频在线观看| 国产一区二区三区av天堂| 国产麻豆精品一区| 久久中国国产Av秘 入口| 一区二区三区高清视频在线| 丰满熟妇乱又伦精品| 亚洲av伊人久久综合密臀性色| 探花国产精品三级在线播放| 高清中文字幕一区二区三区| 色综合久久久久综合99| 亚洲男人天堂2019| 黑人一区二区三区啪啪网站| 亚洲视频高清一区二区| 日本黄页网站免费观看| 欧美日韩中文亚洲另类春色| 日本淫片一区二区三区| 中文字幕中文有码在线| 在线视频精品免费| 丰满少妇又爽又紧又丰满动态视频| 久久人妻av无码中文专区| 麻豆亚洲av永久无码精品久久| 亚洲国产高清美女在线观看|