ARM Development Studio開(kāi)發(fā)工具
ARM的行業(yè)參考C / C ++編譯工具針對(duì)基于ARM架構(gòu)的設(shè)備的效率進(jìn)行了優(yōu)化。 使用ARM Compiler提高性能,創(chuàng)建更小的代碼。
- 適用于各種嵌入式工作場(chǎng)景
- 裸機(jī)和嵌入式(RT)OS應(yīng)用程序的代碼優(yōu)化
- 一流的代碼密度
- 與生態(tài)系統(tǒng)合作伙伴的兼容
- 最大化發(fā)揮ARM的設(shè)計(jì)的潛力
憑借出色的性能,ARM Compiler可以開(kāi)發(fā)高效產(chǎn)品,利用ARM Cortex處理器和架構(gòu)的所有功能,從ARMv6-M到ARMv8-A 64位ARM。 這種通用編譯器可優(yōu)化裸機(jī)和嵌入式(RT)OS應(yīng)用程序的代碼。
ARM Compiler可在ARM Development Studio中使用,包括專用的微控制器專家工具包Keil MDK。 作為開(kāi)發(fā)工作室金牌和銀牌版本的一部分,Keil MDK Professional中包含適用于Cortex-M設(shè)備的安全認(rèn)證編譯器。 最后,為了與前幾代產(chǎn)品最終兼容,Development Studio許可證還支持以前版本的ARM編譯工具,例如ARM Compiler 5和RVCT。
- 實(shí)時(shí)場(chǎng)景的表現(xiàn)
ARM Compiler針對(duì)各種嵌入式工作負(fù)載以及單一基準(zhǔn)測(cè)試進(jìn)行了優(yōu)化。 這是我們對(duì)編譯器的持續(xù)投資的結(jié)果。
- 自動(dòng)捕獲目標(biāo)
使用戶能夠自動(dòng)直接在目標(biāo)上捕獲數(shù)據(jù),以便集成到現(xiàn)有的構(gòu)建系統(tǒng)中。 識(shí)別性能下降或出現(xiàn)圖形異常時(shí),在引入后立即解決這些問(wèn)題。
- 滿足安全需求
對(duì)于功能安全 應(yīng)用,可通過(guò)附加的ARM Compiler安全包簡(jiǎn)化TüV SüD認(rèn)證過(guò)程。
- 生成更快的代碼
通過(guò)結(jié)合微體系結(jié)構(gòu)特定的指令調(diào)度,整個(gè)程序優(yōu)化策略和精細(xì)調(diào)整的庫(kù),ARM Compiler 6顯著加快了各種工作負(fù)載的執(zhí)行時(shí)間。 在一些大型工業(yè)和汽車案例中,與前幾代相比,性能提升超過(guò)30%。 這是針對(duì)復(fù)雜,逼真的嵌入式代碼進(jìn)行持續(xù)優(yōu)化投資的結(jié)果。
- 創(chuàng)建更小的代碼
嵌入式開(kāi)發(fā)人員總是在性能和代碼大小之間尋求適當(dāng)?shù)钠胶狻?通過(guò)一系列強(qiáng)大的優(yōu)化技術(shù),Arm Compiler可提供小巧高效的代碼,尤其適用于Cortex-M設(shè)備。
- 構(gòu)建安全關(guān)鍵代碼
由安全專家TüV南德意志集團(tuán)評(píng)估和認(rèn)證的編譯器分支機(jī)構(gòu),資格證書(shū)文件和長(zhǎng)期維護(hù)合同,Arm Compiler的安全包簡(jiǎn)化并加速了實(shí)現(xiàn)功能安全認(rèn)證的過(guò)程。
- Functional safety Arm 編譯器
Arm Compiler C / C ++工具鏈的全面安全包,可加速安全關(guān)鍵代碼的構(gòu)建并簡(jiǎn)化TüV SüD的認(rèn)證過(guò)程.
Debug
Arm Debugger
一個(gè)適用于現(xiàn)代復(fù)雜SoC的調(diào)試器Arm Debugger可幫助您在整個(gè)開(kāi)發(fā)過(guò)程中找到軟件漏洞的根源。 從設(shè)備啟動(dòng)到應(yīng)用程序調(diào)試,它可用于在虛擬平臺(tái)和硬件上開(kāi)發(fā)代碼,以幫助您在競(jìng)爭(zhēng)對(duì)手之前將產(chǎn)品推向市場(chǎng)。
支持前沿的設(shè)備,以及您自己的設(shè)備
Arm Development Studio附帶預(yù)加載的調(diào)試配置和許多常用設(shè)備的示例。 但是,如果您正在設(shè)計(jì)自己的SoC或正在為不太流行的ASIC開(kāi)發(fā)軟件,Arm Debugger和DSTREAM調(diào)試探針可以幫助創(chuàng)建新的設(shè)備配置,不僅描述其處理器內(nèi)核,還描述其他調(diào)試塊,如交叉觸發(fā)器, 跟蹤宏單元和跟蹤漏斗。
更輕松的多核調(diào)試
Arm Debugger在設(shè)計(jì)時(shí)考慮了復(fù)雜的SoC開(kāi)發(fā),因此多核調(diào)試與在單個(gè)內(nèi)核上快速測(cè)試執(zhí)行一樣直觀。 支持對(duì)稱(SMP)和非對(duì)稱(AMP)多處理,以及包括異構(gòu)(big.LITTLE技術(shù))系統(tǒng)的復(fù)雜操作模式。
Arm Debugger在基于Eclipse的Arm Development Studio中可用,它為高級(jí)用戶提供了一個(gè)Python腳本界面,可以按照他們想要的方式配置SoC上的每個(gè)Arm CoreSight組件,同時(shí)保持調(diào)試器界面對(duì)每個(gè)人都簡(jiǎn)單直觀。
更快更容易的調(diào)試
命令行和腳本調(diào)試命令視圖為您提供了一種熟悉的命令行調(diào)試方法。對(duì)于純粹從命令行驅(qū)動(dòng)Arm Debugger的項(xiàng)目,您可以完全在Eclipse環(huán)境之外工作。我們知道這仍然是一種流行的調(diào)試方式,因此請(qǐng)?zhí)峁┮粋€(gè)Development Studio命令提示符,以便您快速訪問(wèn)。
- 跟蹤數(shù)據(jù)
在調(diào)試代碼時(shí),系統(tǒng)視圖是查看數(shù)據(jù)更改的簡(jiǎn)便方法。
- 輕松搜索功能
快速訪問(wèn)搜索框可幫助您查找特定視圖或功能,從而節(jié)省時(shí)間
- 上下文幫助
F1提供了集成的上下文幫助,可幫助您解決復(fù)雜的調(diào)試問(wèn)題。
- 復(fù)制會(huì)話
通過(guò)歷史記錄視圖從調(diào)試會(huì)話中導(dǎo)出一組完整的步驟。
- C表達(dá)無(wú)處不在
在寄存器,內(nèi)存地址,斷點(diǎn)和表達(dá)式視圖的內(nèi)容中編寫類似C的表達(dá)式。
可以使用MDK兼容命令閃存,包括支持基于CMSIS軟件包中包含的信息的閃存設(shè)備。
- 內(nèi)存填充和導(dǎo)出
通過(guò)開(kāi)始和結(jié)束地址或表達(dá)式將字節(jié)寫入內(nèi)存或?qū)С鰞?nèi)存內(nèi)容
在整個(gè)產(chǎn)品生命周期中調(diào)試應(yīng)用
Arm Debugger是一個(gè)理想的工具,可以在整個(gè)團(tuán)隊(duì)中實(shí)現(xiàn)標(biāo)準(zhǔn)化。從芯片開(kāi)發(fā)到應(yīng)用程序開(kāi)發(fā),您的團(tuán)隊(duì)可以從增強(qiáng)的協(xié)作和統(tǒng)一的用戶體驗(yàn)中受益。
Development Studio IDE提供平臺(tái)配置編輯器(PCE)等實(shí)用程序,它使用JTAG自動(dòng)檢測(cè)您的平臺(tái)。雖然現(xiàn)代SoC通常需要一些額外的手動(dòng)配置,但初始掃描通常會(huì)發(fā)現(xiàn)幾個(gè)調(diào)試和跟蹤元素,為您提供了一個(gè)良好的開(kāi)端。
對(duì)于交叉觸發(fā)器,跟蹤生成器,接收器和結(jié)構(gòu),以及您自己的自定義IP,我們提供了一個(gè)稱為Debug and Trace Services Layer(DTSL)的抽象層,它允許您使用簡(jiǎn)單的Jython腳本描述這些元素。
但是,如果您使用的是現(xiàn)成的部件,則很可能在Development Studio中已經(jīng)預(yù)先構(gòu)建了調(diào)試配置。這使得大多數(shù)調(diào)試都是連接到目標(biāo)板的情況。
識(shí)別目標(biāo)操作系統(tǒng)
Arm Debugger集成了對(duì)流行的實(shí)時(shí)操作系統(tǒng)(RTOS)以及Linux和Android的深入可見(jiàn)性。 在目標(biāo)板上,您可以輕松地可視化所有任務(wù)/線程及其調(diào)用框架,設(shè)置任務(wù)/特定于線程的斷點(diǎn),以及在單步執(zhí)行代碼時(shí)查看內(nèi)核資源(如郵箱和信號(hào)量)。 在調(diào)試Linux內(nèi)核時(shí),您還可以查看和加載動(dòng)態(tài)加載模塊的符號(hào),以及設(shè)置掛起的斷點(diǎn)。 支持的操作系統(tǒng)包括:
Linux & Android
FreeRTOS?
Keil? CMSIS-RTOS RTX
NXP Semiconductors MQX?
Micrium? μCOS (II and III)
Express Logic ThreadX?
Segger embOS?
Quadros RTXC?
Mentor Graphics? Nucleus?
SYSGO PikeOS? Hypervisor
Wind River VxWorks?
eForce μC3? Standard
內(nèi)存可視化
使用地址修飾符,您可以訪問(wèn)特定類型的內(nèi)存,例如,如果鍵入S:0x0,調(diào)試器將在TrustZone安全模式下讀取地址0x0處的內(nèi)存。這些前綴可用于加載符號(hào),設(shè)置斷點(diǎn),查看/修改內(nèi)存內(nèi)容并報(bào)告當(dāng)前停止?fàn)顟B(tài)。
MMU查看和地址轉(zhuǎn)換
利用MMU視圖自動(dòng)完成頁(yè)表行走,將虛擬轉(zhuǎn)換為物理內(nèi)存地址并顯示內(nèi)存映射的概述。
定制外設(shè)寄存器
目標(biāo)配置編輯器能夠?yàn)橐晥D添加自定義外設(shè)寄存器,從而可以針對(duì)目標(biāo)特定外設(shè)和寄存器進(jìn)行定制。導(dǎo)出自定義配置
以CMSIS-SVD兼容格式導(dǎo)出已配置目標(biāo)的設(shè)置,以便在Keil MDK中進(jìn)一步工作。
斷點(diǎn)和觀察點(diǎn)
完全控制Arm Debugger通過(guò)對(duì)硬件,軟件和條件斷點(diǎn)的最大控制,Arm Debugger可幫助您消除復(fù)雜的錯(cuò)誤。
可以將條件斷點(diǎn)設(shè)置為在類似C的表達(dá)式求值為true時(shí)停止執(zhí)行,在斷點(diǎn)觸發(fā)或運(yùn)行調(diào)試器腳本之前允許多次命中,而線程和虛擬機(jī)特定的斷點(diǎn)可用于在從特定的特定位置命中時(shí)停止處理器 線。
您可以設(shè)置的斷點(diǎn)的類型和數(shù)量取決于內(nèi)存區(qū)域,處理器中的硬件支持,調(diào)試接口和運(yùn)行狀態(tài)。
同樣,您也可以設(shè)置監(jiān)視數(shù)據(jù)訪問(wèn)的地址或值的觀察點(diǎn),而不是從特定地址執(zhí)行的指令。
跟蹤點(diǎn)
開(kāi)發(fā)工作室中的跟蹤功能非常強(qiáng)大,當(dāng)您反復(fù)停止和啟動(dòng)核心時(shí),提供一種非侵入性的方法來(lái)挑選難以發(fā)現(xiàn)的錯(cuò)誤。為了應(yīng)對(duì)現(xiàn)代系統(tǒng)的復(fù)雜跟蹤拓?fù)洌珼evelopment Studio允許您設(shè)置和配置跟蹤啟動(dòng),停止和觸發(fā)點(diǎn)。
在Arm Debugger中,可以從Arm組裝編輯器,C / C ++編輯器,反匯編視圖,功能視圖,內(nèi)存視圖或跟蹤視圖中設(shè)置跟蹤點(diǎn)。
協(xié)作調(diào)試和跟蹤
斷點(diǎn),跟蹤點(diǎn)和觀察點(diǎn)都可以導(dǎo)出,以便在不同的Development Studio工作區(qū)中使用,從而幫助您以團(tuán)隊(duì)形式調(diào)試代碼。
Keil μVision Debugger
具有流式跟蹤的微控制器調(diào)試器
使用流式跟蹤調(diào)試微控制器
μVision調(diào)試器為Keil MDK軟件工具套件提供調(diào)試功能,是一個(gè)用于測(cè)試,驗(yàn)證和優(yōu)化應(yīng)用程序代碼的單一環(huán)境。
除響應(yīng)式運(yùn)行控制調(diào)試外,它還支持使用數(shù)據(jù)跟蹤和非侵入式指令跟蹤,從而提供調(diào)試和系統(tǒng)優(yōu)化。 除了支持許多第三方調(diào)試適配器,當(dāng)它與ULINK探針配對(duì)時(shí),它還提供流指令跟蹤,功率測(cè)量功能和數(shù)據(jù)跟蹤。
組件查看器和事件記錄器
僅使用內(nèi)存讀取和寫入,組件查看器和事件記錄器提供有關(guān)變量,結(jié)構(gòu)或其他對(duì)象中的軟件組件的信息。 它們還顯示軟件組件的執(zhí)行狀態(tài)和事件信息。 Keil MDK-Middleware和幾個(gè)實(shí)時(shí)操作系統(tǒng)包含事件注釋 - 事件記錄器允許您快速分析和理解這些軟件塊的操作。
事件統(tǒng)計(jì)
顯示代碼執(zhí)行的統(tǒng)計(jì)數(shù)據(jù)。 與任何調(diào)試適配器一起使用時(shí),它會(huì)記錄執(zhí)行時(shí)間和已注釋代碼段的調(diào)用次數(shù)。 與ULINKplus調(diào)試適配器配合使用時(shí),開(kāi)發(fā)人員可以在注釋代碼中分析能源使用情況,這在改善電池驅(qū)動(dòng)設(shè)備的功率配置時(shí)尤其有用。
數(shù)據(jù)和事件跟蹤
分析所有基于Cortex-M3 / M4 / M7 / M23 / M33的設(shè)備上的數(shù)據(jù)和事件跟蹤信息。 在系統(tǒng)運(yùn)行時(shí),您可以跟蹤中斷和異常。 它還支持通過(guò)Instrumented Trace Macrocell(ITM)傳輸?shù)膒rintf樣式的調(diào)試消息。
指令跟蹤
當(dāng)使用μVision?Debugger和ULINKpro調(diào)試探針時(shí),您可以直接將指令跟蹤流傳輸?shù)絇C,從而可以調(diào)試歷史序列,執(zhí)行分析,性能優(yōu)化以及安全關(guān)鍵應(yīng)用程序所需的代碼覆蓋率分析。 嵌入式跟蹤宏單元(ETM)使其成為可能,嵌入式跟蹤宏單元(ETM)集成在許多基于Cortex-M3 / M4 / M7 / M33的設(shè)備中。Debug Probes
一系列調(diào)試探針支持JTAG和串行線調(diào)試連接,無(wú)論是用于深度嵌入式系統(tǒng)中的高速串行跟蹤還是更簡(jiǎn)單的微控制器調(diào)試。Analyze
Streamline Performance Analyzer
整個(gè)系統(tǒng)的完整性能視圖。 這種簡(jiǎn)單易懂的可視化有助于分析在CPU,GPU或NPU上花費(fèi)的所有時(shí)間。
裸板系統(tǒng)支持
Streamline支持裸機(jī)系統(tǒng),可與各種RTOS一起用于從最小的Cortex-M到最大的基于Cortex-A的系統(tǒng)的各種性能分析。 通過(guò)編譯系統(tǒng)特有的生成代理代碼,簡(jiǎn)化裸金屬的工作。 此代碼從系統(tǒng)收集相關(guān)的性能數(shù)據(jù),以便傳輸和導(dǎo)入Streamline。 完成后,用戶可以像使用Linux一樣生成分析和可視化。修復(fù)裸機(jī)系統(tǒng)中的性能瓶頸
Streamline可以使用硬件計(jì)數(shù)器和一系列其他性能指標(biāo)來(lái)分析整個(gè)系統(tǒng),以識(shí)別瓶頸。 簡(jiǎn)化裸金屬系統(tǒng)提供相同級(jí)別的性能分析,但專門針對(duì)基于Linux的操作系統(tǒng)不存在的基于Cortex-R和Cortex-M的設(shè)備。
基于CPU的采樣器
對(duì)程序計(jì)數(shù)器進(jìn)行采樣,以顯示CPU在系統(tǒng)中花費(fèi)時(shí)間的位置,從系統(tǒng)級(jí)到逐行應(yīng)用程序源代碼
重點(diǎn)分析
過(guò)濾掉與分析無(wú)關(guān)的信息,專注于某個(gè)瓶頸,或檢查特定應(yīng)用程序或線程的性能。指令跟蹤
簡(jiǎn)化裸裸板系統(tǒng)直接從您的系統(tǒng)導(dǎo)入指令跟蹤,顯示您的應(yīng)用程序的確切位置,并填充所有標(biāo)準(zhǔn)的Streamline視圖。 此功能可顯示準(zhǔn)確的調(diào)用路徑以及CPU花費(fèi)時(shí)間的確切位置。 通過(guò)編譯系統(tǒng)特有的生成代理代碼,簡(jiǎn)化裸板系哦他能夠的工作。 此代碼收集用于從系統(tǒng)傳輸?shù)絊treamline的性能數(shù)據(jù)。
用于多種跟蹤機(jī)制
我們知道有很多不同的系統(tǒng),每個(gè)系統(tǒng)都有不同的跟蹤功能,因此Streamline for Bare-metal系統(tǒng)可以通過(guò)STM ITM和ETM從生產(chǎn)設(shè)備中提取數(shù)據(jù)。 在沒(méi)有跟蹤機(jī)制的情況下,該工具將數(shù)據(jù)放入內(nèi)存中,允許用戶決定如何將其傳輸?shù)絇C。
Graphics
Mali Graphics Debugger Professional
通過(guò)查找和修復(fù)缺陷和性能問(wèn)題來(lái)調(diào)試和優(yōu)化圖形內(nèi)容。
- OpenGL ES,Vulkan和OpenCL的高級(jí)API跟蹤
- 多供應(yīng)商GPU支持
- 自動(dòng)捕獲目標(biāo)
- 腳本支持客戶分析目標(biāo)
- 完整的跟蹤重播
- Graphics development tools
調(diào)試和優(yōu)化圖形內(nèi)容
查找并修復(fù)圖形缺陷和性能問(wèn)題,以減少解決方案的上市時(shí)間。
標(biāo)準(zhǔn)的Mali Graphics Debugger允許開(kāi)發(fā)人員在他們的應(yīng)用程序中跟蹤OpenGL ES,Vulkan和OpenCL API調(diào)用,并逐幀了解對(duì)應(yīng)用程序的影響,以識(shí)別可能的問(wèn)題。 調(diào)試器支持基于Android和Linux Arm的目標(biāo)平臺(tái)。 在Arm Developer Studio中提供的專業(yè)版中,下面的附加功能可以實(shí)現(xiàn)針對(duì)芯片,操作系統(tǒng)和嵌入式產(chǎn)品發(fā)布的更全面的調(diào)試和分析。
幀硬件counter
在評(píng)估圖形時(shí),您希望盡快識(shí)別哪個(gè)幀導(dǎo)致問(wèn)題。 如果您運(yùn)行的是具有最新驅(qū)動(dòng)程序的基于Mali的設(shè)備,則Mali Graphics Debugger將按Frame顯示硬件計(jì)數(shù)器。 這顯示了生成每個(gè)幀所需的資源以及哪個(gè)幀最昂貴。
虛擬原型
內(nèi)部函數(shù)提供針對(duì)未能很好地映射到高級(jí)語(yǔ)言的公用代碼序列或指令的支持。
- ETSI內(nèi)部函數(shù)提供用在若干示例算法中的電信基元
- TI C55內(nèi)部函數(shù)支持為利用特定于TI的擴(kuò)展而編寫的算法
- Cortex-M4內(nèi)部函數(shù)用于面向板載DSP
- 其他內(nèi)部函數(shù)允許訪問(wèn)從C語(yǔ)言不易訪問(wèn)的所有ARM硬件指令,降低了以匯編語(yǔ)言編寫代碼的需要
盡可能在早期處理器上模擬內(nèi)部函數(shù)。
Fast Models
快速且功能準(zhǔn)確的運(yùn)行的Arm IP視圖模型無(wú)需物理目標(biāo)即可啟用軟件開(kāi)發(fā)在硅可用性之前的早期軟件開(kāi)發(fā)通過(guò)虛擬連接到模型進(jìn)行源級(jí)調(diào)試腳本接口支持自動(dòng)化和持續(xù)集成流程標(biāo)準(zhǔn)接口支持與第三方IP模型的集成所有Development Studio版本都支持模型調(diào)試
Cycle Models
Arm IP的100%周期精確模型基于編譯的RTL的模型,導(dǎo)致完整的循環(huán)精度使用準(zhǔn)確的信息優(yōu)化性能開(kāi)發(fā)需要確定性的裸機(jī)軟件和低級(jí)固件模型檢測(cè)可實(shí)現(xiàn)系統(tǒng)級(jí)可見(jiàn)性和調(diào)試所有Development Studio版本都支持模型調(diào)試
FVP
準(zhǔn)確,可立即運(yùn)行的模型
即用型,預(yù)配置,快速且功能準(zhǔn)確的仿真平臺(tái)
完整的系統(tǒng)仿真,包括處理器,存儲(chǔ)器和外設(shè)
完全可調(diào)試和自動(dòng)化
支持裸機(jī)和OS級(jí)開(kāi)發(fā),包括Linux示例
包含在每個(gè)Development Studio Edition中
-
嵌入式系統(tǒng)
+關(guān)注
關(guān)注
41文章
3587瀏覽量
129433 -
安卓
+關(guān)注
關(guān)注
5文章
2126瀏覽量
57144 -
米爾科技
+關(guān)注
關(guān)注
5文章
227瀏覽量
20957
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論