freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

嵌入式軟件開(kāi)發(fā)流程-在線(xiàn)瀏覽

2025-01-10 03:20本頁(yè)面
  

【正文】 容說(shuō)明 INDIVIDUAL 修訂人 20200622 初稿 1 Introduction 簡(jiǎn)介 一個(gè)成熟穩(wěn)定的組織或者團(tuán)隊(duì),能夠減少風(fēng)險(xiǎn),經(jīng)常地成功地達(dá)成目標(biāo)。 缺點(diǎn):特性受制于芯片廠(chǎng)商。 現(xiàn)在較為高檔的微處理器都帶有 JTAG接口,包括 ARM ARM StrongARM、 DSP等,通過(guò) JTAG 接口可以方便地對(duì)目標(biāo)系統(tǒng)進(jìn)行測(cè)試,同時(shí),還可以實(shí)現(xiàn) Flash 編程,這是非常受歡迎的。對(duì)于芯片的輸入管腳,可通過(guò)與之相連的邊界掃描寄存器單元把信號(hào)(數(shù)據(jù))加載到該管腳中去;對(duì)于芯片的輸出 管腳,可以通過(guò)與之相連的邊界掃描寄存器單元 “捕獲 ”( CAPTURE)該管腳的輸出信號(hào)。 當(dāng)芯片處于調(diào)試狀態(tài)時(shí)候,這些邊界掃描寄存器可以將芯片和外圍的輸入輸出隔離開(kāi)來(lái)。 JTAG標(biāo)準(zhǔn)所采用的主要技術(shù)為邊界掃描技術(shù),它的基本思想就是在靠近芯片的輸入輸出管腳上增加一個(gè)移位寄存器單元。 JTAG 是 1985 年指定的檢測(cè) PCB 和 IC芯片的一個(gè)標(biāo)準(zhǔn)。一個(gè)比較好的解決辦法是讓 CPU 直接在其內(nèi)部實(shí)現(xiàn)調(diào)試功能,并通過(guò)在開(kāi)發(fā)板上引出的調(diào)試端口發(fā)送調(diào)試命令和接收調(diào)試信息,完成調(diào)試過(guò)程。 圖 ICE 調(diào) 試方式 采用 InCircuitDebugger( ICD)方式進(jìn)行交叉調(diào)試時(shí)需要使用在線(xiàn)調(diào)試器。 缺點(diǎn):價(jià)格昂貴。嵌入式系統(tǒng)應(yīng)用的一個(gè)顯著特點(diǎn)是與現(xiàn)實(shí)世 界中的硬件直接相關(guān),并存在各種異變和事先未知的變化,從而給微處理器的指令執(zhí)行帶來(lái)各種不確定因素,這種不確定性在目前情況下只有通過(guò)在線(xiàn)仿真器才有可能發(fā)現(xiàn)。 在線(xiàn)仿真器提供了非常豐富的調(diào)試功能。仿真器與目標(biāo)板可以通過(guò)仿真頭連接,與宿主機(jī)可以通過(guò)串口、并口、網(wǎng)線(xiàn)或 USB 口等連接方式。 圖 ROMEmulator 調(diào)試方式 采用 InCircuitEmulator( ICE)方式進(jìn)行交叉 調(diào)試時(shí)需要使用在線(xiàn)仿真器,它是目前最為有效的嵌入式系統(tǒng)的調(diào)試手段。 缺點(diǎn): ROM仿真器本身比較昂貴,功能相對(duì)來(lái)講又比較單一,只適應(yīng)于某些特定場(chǎng)合。 在使用這種調(diào)試方式時(shí),被調(diào)試程序首先下載到 ROM 仿真器中,因此等效于下載到目標(biāo)機(jī)的 ROM 芯片上,然后在 ROM 仿真器中完成對(duì)目標(biāo)程序的調(diào)試。 其原理圖如圖 所示。 優(yōu)點(diǎn): ROM 監(jiān)視器功能強(qiáng)大,能夠完成設(shè)置斷點(diǎn)、單步執(zhí)行、查看寄存器、修改內(nèi)存空間等各項(xiàng)調(diào)試功能。 ROM監(jiān)視器可以是一段運(yùn)行在目標(biāo)機(jī) ROM上的可執(zhí)行程序,也可以 是一個(gè)專(zhuān)門(mén)的硬件調(diào)試設(shè)備,它負(fù)責(zé)監(jiān)控目標(biāo)機(jī)上被調(diào)試程序的運(yùn)行情況,能夠與宿主機(jī)端的調(diào)試器一同完成對(duì)應(yīng)用程序的調(diào)試。目前嵌入式系統(tǒng)開(kāi)發(fā)中最常用到的硬件調(diào)試器是 ROMMonitor、ROMEmulator、 InCircuitEmulator 和 InCircuitDebugger。 相對(duì)于軟件調(diào)試而言,使用硬件調(diào)試器可以獲得更強(qiáng)大的調(diào)試功能和更優(yōu)秀的調(diào)試性能。而且,它必須改變目標(biāo)操作系統(tǒng),因此,也就多了一個(gè)不用于正式發(fā)布的調(diào)試版。這個(gè)方案的實(shí)質(zhì)是用軟件接管目標(biāo)機(jī)的全部異常處理及部分中斷處理,并在其中插入調(diào)試端口通信模塊,與主機(jī)的調(diào)試器進(jìn)行交互。 ? 宿主機(jī)上的 gdb 向用戶(hù)顯示被調(diào)試程序產(chǎn)生了哪一類(lèi)異常。這時(shí),GdbServer 將請(qǐng)求轉(zhuǎn)化為程序的地址空間或目標(biāo)平臺(tái)的某些寄存器的訪(fǎng)問(wèn),這對(duì)于沒(méi)有虛擬存儲(chǔ)器的簡(jiǎn)單的嵌入式操作系統(tǒng)而言,是十分容易的。 ? 在宿主機(jī)上運(yùn)行調(diào)試 器 gdb,這時(shí), gdb 就會(huì)自動(dòng)尋找遠(yuǎn)端的通信進(jìn)程,也就是 GdbServer 的所在進(jìn)程。 ? 首先,建立調(diào)試器(本地 gdb)與目標(biāo)操作系統(tǒng)的通信連接,可通過(guò)串口、網(wǎng)卡、并口等多種方式。它們的調(diào)試原 理圖如圖 所示。該方式的典型調(diào)試器有g(shù)db 調(diào)試器。 軟件調(diào)試主要是通過(guò)插入調(diào)試樁的方式來(lái)進(jìn)行的。 下面分別就軟件調(diào)試樁方式和硬件片上調(diào)試兩種方式進(jìn)行詳細(xì)介紹。 ? 目標(biāo)機(jī)可能是某種形式的系統(tǒng)仿真器,通過(guò)在宿主機(jī)上運(yùn)行目標(biāo)機(jī)的仿真軟件,整個(gè)調(diào)試過(guò)程可以在一臺(tái)計(jì)算機(jī)上運(yùn)行。 ? 在目標(biāo)機(jī)上一般會(huì)具備某種形式的調(diào)試代理,它負(fù)責(zé)與調(diào)試器共同配合完成對(duì)目標(biāo)機(jī)上運(yùn)行著的進(jìn)程的調(diào)試。 ? 調(diào)試器和被調(diào)試進(jìn)程運(yùn)行在不同的 機(jī)器上,調(diào)試器運(yùn)行在 PC 機(jī)(宿主機(jī)),而被調(diào)試的進(jìn)程則運(yùn)行在各種專(zhuān)業(yè)調(diào)試板上(目標(biāo)板)。 嵌入式系統(tǒng)的交叉調(diào)試有多種方法,主要可分為軟件方式和硬件方式兩種。在常見(jiàn)軟件開(kāi)發(fā)中,調(diào)試器與被調(diào)試的程序往往運(yùn)行在同一臺(tái)計(jì)算機(jī)上,調(diào)試器是一個(gè)單獨(dú)運(yùn)行著的進(jìn) 程,它通過(guò)操作系統(tǒng)提供的調(diào)試接口來(lái)控制被調(diào)試的進(jìn)程。 由于編譯的過(guò)程包括編譯、鏈接等幾個(gè)階段,因此,嵌入式的交叉編譯也包括交叉編譯、交叉鏈接等過(guò)程,通常 ARM 的交叉編譯器為 armelfgcc、 armlinuxgcc 等,交叉鏈接器為 armelfld、 armlinuxld等,交叉編譯過(guò)程如圖 所示。 這里一般將進(jìn)行交叉編譯的主機(jī)稱(chēng)為宿主機(jī),也就是普通的通用 PC,而將程序?qū)嶋H的運(yùn)行環(huán)境稱(chēng)為目標(biāo)機(jī),也就是嵌入式 系統(tǒng)環(huán)境。嵌入式系統(tǒng)交叉編譯環(huán)境如圖 所示。因此,不同的 CPU 需要有相應(yīng)的編譯器,而交叉編譯就如同翻譯一樣,把相同的程序代碼翻譯成不同 CPU 的對(duì)應(yīng)可執(zhí)行二進(jìn)制文件。所謂交叉編譯就是在一個(gè)平臺(tái)上生成可以在另一個(gè)平臺(tái)上執(zhí)行的代碼。 圖 嵌入式開(kāi)發(fā)不同階段的常用軟件 嵌入式系統(tǒng)的軟 件開(kāi)發(fā)與通常軟件開(kāi)發(fā)的區(qū)別主要在于軟件實(shí)現(xiàn)部分,其中又可以分為編譯和調(diào)試兩部分,下面分別對(duì)這兩部分進(jìn)行講解。在這里,大多數(shù)軟件都有比較高的使用費(fèi)用,但也可以大大加快產(chǎn)品的開(kāi)發(fā)進(jìn)度,用戶(hù)可以根據(jù)需求自行選擇。同時(shí),不同的嵌入式操作系統(tǒng)往往會(huì)有配套的開(kāi)發(fā)工具,比如 Vxworks 有集成開(kāi)發(fā)環(huán)境 Tornado, WindowsCE 的集成開(kāi)發(fā)環(huán)境WindowsCE Platform 等。 由于在嵌入式軟件開(kāi)發(fā)的工具非常多,為 了更好地幫助讀者選擇開(kāi)發(fā)工具,下面首先對(duì)嵌入式軟件開(kāi)發(fā)過(guò)程中所使用的工具做一簡(jiǎn)單歸納。 嵌入式軟件開(kāi)發(fā)概述 嵌入式軟件開(kāi)發(fā)總體流程為圖 “軟件設(shè)計(jì)實(shí)現(xiàn) ”部分所示,它同通用計(jì)算機(jī)軟件開(kāi)發(fā)一樣,分為需求分析、軟件概要設(shè)計(jì)、軟件詳細(xì)設(shè)計(jì)、軟件實(shí)現(xiàn)和軟件測(cè)試。比如, 對(duì)開(kāi)發(fā)成本和進(jìn)度限制較大的產(chǎn)品可以選擇嵌入式 Linux,對(duì)實(shí)時(shí)性要求非常高的產(chǎn)品可以選擇 Vxworks 等。這里的開(kāi)發(fā)環(huán)境包括嵌入式操作系統(tǒng)的選擇以及開(kāi)發(fā)工具的選擇等。往往通過(guò)硬件實(shí)現(xiàn)會(huì)增加產(chǎn)品的成品,但能大大提高產(chǎn)品的性能和可靠性。 圖 嵌入式系統(tǒng)開(kāi)發(fā)流程圖 在系統(tǒng)總體開(kāi)發(fā)中,由于嵌入式系統(tǒng)與硬件依賴(lài)非常緊密,往往某些需求只能通過(guò)特定的硬件才能實(shí)現(xiàn),因此需要進(jìn)行處理器選型,以更好地滿(mǎn)足產(chǎn)品的需求。嵌入式軟件開(kāi)發(fā)流程 一、 嵌入式軟件開(kāi)發(fā)流程 嵌入式系統(tǒng)開(kāi)發(fā)概述 由嵌入式系統(tǒng)本身的特性所影響,嵌入式系統(tǒng)開(kāi)發(fā)與通用系統(tǒng)的開(kāi)發(fā)有很大的區(qū)別。嵌入式系統(tǒng)的開(kāi)發(fā)主要分為 系統(tǒng)總體開(kāi)發(fā)、嵌入式硬件開(kāi)發(fā)和嵌入式軟件開(kāi)發(fā) 3 大部分,其總體流程圖如圖 所示。另外,對(duì)于有些硬件和軟件都可以實(shí)現(xiàn)的功能,就需要在成本和性能上做出抉擇。 再次,開(kāi)發(fā)環(huán)境的選擇對(duì)于嵌入式系統(tǒng)的開(kāi)發(fā)也有很大的影響。本書(shū)在 進(jìn)行了比較,讀者可以以此為依據(jù)進(jìn)行相關(guān)的選擇。 由于本書(shū)主要討論嵌入式軟件的應(yīng)用開(kāi)發(fā),因此對(duì)硬件開(kāi)發(fā)不做詳細(xì)講解,而主要討論嵌入式軟件開(kāi)發(fā)的流程。其中嵌入式軟件需求分析與硬件的需求分析合二為一,故沒(méi)有分開(kāi)畫(huà)出。 嵌入式軟件的開(kāi)發(fā)工具根據(jù)不同的開(kāi)發(fā)過(guò)程而劃分,比如在需求分析階段,可以選擇IBM 的 Rational Rose 等軟件,而在程序開(kāi)發(fā)階段可以采用 CodeWarrior(下面要介紹的 ADS的一個(gè)工具)等,在調(diào)試階段所用的 MultiICE 等。此外,不 同的處理器可能還有對(duì)應(yīng)的開(kāi)發(fā)工具,比如 ARM 的常用集成開(kāi)發(fā)工具 ADS、 IAR 和 RealView 等。圖 是嵌入式開(kāi)發(fā)的不同階段的常用軟件。 1.交叉編譯 嵌入式軟件開(kāi)發(fā)所采用的編譯為交叉編譯。在第 3 章中已經(jīng)提到,編譯的最主要的工作就在將程序轉(zhuǎn)化成運(yùn)行該程序的 CPU 所能識(shí)別的機(jī)器代碼,由于不同的體系結(jié)構(gòu)有不同的指令系統(tǒng)。要注意的是,編譯器本身也是程序 ,也要在與之對(duì)應(yīng)的某一個(gè) CPU 平臺(tái)上運(yùn)行。 圖 交叉編譯環(huán)境 小知識(shí) 與交叉編譯相對(duì)應(yīng),平時(shí)常用的編譯稱(chēng)為本地編譯。由于一般通用計(jì)算機(jī)擁有非常豐富的系統(tǒng)資源、使用方便的集成開(kāi)發(fā)環(huán)境和調(diào)試工具等,而嵌入式系統(tǒng)的系統(tǒng)資源非常緊缺,無(wú)法在其上運(yùn)行相關(guān)的編譯工具,因此,嵌入式系統(tǒng)的開(kāi)發(fā)需要借助宿主機(jī)(通用計(jì)算機(jī))來(lái)編譯出目標(biāo)機(jī)的可執(zhí)行代碼。 圖 嵌入式交叉編譯過(guò)程 2.交叉調(diào)試 嵌入式軟件經(jīng)過(guò)編譯和鏈接后即進(jìn)入調(diào)試階段,調(diào)試是軟件開(kāi)發(fā)過(guò)程中必不可少的一個(gè)環(huán)節(jié),嵌入式軟件開(kāi)發(fā)過(guò)程中的交叉調(diào)試與通用軟件開(kāi)發(fā)過(guò)程中的調(diào)試方式有很大的差別。而在嵌入式軟件開(kāi)發(fā)中,調(diào)試時(shí)采用的是在宿主機(jī)和目標(biāo)機(jī)之間進(jìn)行的交叉調(diào)試,調(diào)試器仍然運(yùn)行在宿主機(jī)的通用操作系統(tǒng)之上,但被調(diào)試的進(jìn)程卻是運(yùn)行在基于特定硬件平臺(tái)的嵌入式操作系統(tǒng)中,調(diào)試器和被調(diào)試進(jìn)程通過(guò)串口或者網(wǎng)絡(luò)進(jìn)行通信,調(diào)試器可以控制、訪(fǎng)問(wèn)被調(diào)試進(jìn)程,讀取被調(diào)試進(jìn)程的當(dāng)前狀態(tài),并能夠改變被調(diào)試進(jìn)程的運(yùn)行狀態(tài)。它們一般都具有如下一些典型特點(diǎn)。 ? 調(diào)試器通過(guò)某種通信方式(串口、并口、網(wǎng)絡(luò)、 JTAG 等)控制被調(diào)試進(jìn)程。這種調(diào)試代理可能是某些支持調(diào)試功能的硬件設(shè)備,也可能是某些專(zhuān)門(mén)的調(diào)試軟件(如 gdbserver)。此時(shí)物理 上雖然只有一臺(tái)計(jì)算機(jī),但邏輯上仍然存在著宿主機(jī)和目標(biāo)機(jī)的區(qū)別。 ( 1)軟件方式。調(diào)試樁方式進(jìn)行調(diào)試是通過(guò)目標(biāo)操作系統(tǒng)和調(diào)試器內(nèi)分別加入某些功能模塊,二者互通信息來(lái)進(jìn)行調(diào)試。 gdb 的交叉調(diào)試器分為 GdbServer 和 GdbClient,其中的 GdbServer 就作為調(diào)試樁在安裝在目標(biāo)板上, GdbClient就是駐于本地的 gdb 調(diào)試器。 圖 gdb 遠(yuǎn)程調(diào)試原理圖 gdb 調(diào)試的工作流程。 ? 然后,在目標(biāo)機(jī)上開(kāi)啟 GdbServer 進(jìn)程,并監(jiān)聽(tīng)對(duì)應(yīng)端口。 ? 在宿主機(jī)上的 gdb通過(guò) GdbServer請(qǐng)求對(duì)目標(biāo)機(jī)上的程序發(fā)出控制命令。 ? GdbServer 把目標(biāo)操作系統(tǒng)的所有異常處理轉(zhuǎn)向通信模塊,并告知宿主機(jī)上gdb 當(dāng)前有異常。 這樣就完 成了調(diào)試的整個(gè)過(guò)程。但是它只能在目標(biāo)機(jī)系統(tǒng)初始化完畢、調(diào)試通信端口初始化完成后才能起作用,因此,一般只能用于調(diào)試運(yùn)行于目標(biāo)操作系統(tǒng)之上的應(yīng)用程序,而不宜用來(lái)調(diào)試目標(biāo)操作系統(tǒng)的內(nèi)核代碼及啟動(dòng)代碼。 ( 2)硬件調(diào)試。硬件調(diào)試器的基本原理是 通過(guò)仿真硬件的執(zhí)
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1