【正文】
filter logic) ? MultiTrace Trace Port Analyzer (TPA) ? 更深層次的追蹤 ? Trace Debug Tools ? 通過 JTAG/MultiICE配置 ETM 跟蹤 ? 從 ETM/MultiTrace接收跟蹤信息 ? 使用源代碼鏡像文件得到 ETM跟蹤的數(shù)據(jù) 5 ARM core ETM … RAM ROM … TAP controller Trace Trigger / Filter 9,13,21 wire Trace Port 5 wire JTAG port Serial/Ether 并口 l 主機(jī)運(yùn)行 Trace Debug 工具 (Addon for ADS) ARM Powered Products Lexmark Z52 Color Jetprinter Samsung ML5100A JVC Pixstar GCX1 HP Jornado 820 Psion Revo Plus HP CapShare Sony MZR90 MiniDisc Nokia 8810 Nokia Mediamaster Nintendo Gameboy Advance Ericsson R380 Alba Bush Inter TV 3Com 10/100 PCI NIC Iomega HipZip Diamond Multimedia Rio 600 。s previous generation of software development tools, current software is RealView Development Suite. 使用 MultiICE 調(diào)試 5線 JTAG ? 被調(diào)試的系統(tǒng)可以是最終系統(tǒng) ! ? 也可以使用第三方開發(fā)調(diào)試工具。 ? 2022的 12月份 ? 支持的主機(jī)系統(tǒng) ? IBM patible PCs with Windows 95, 98, 2022, ME or NT4 ? Sun workstations with Solaris , or ? HP workstations with HPUX , 11 ? Red Hat Linux amp。 4) 晶片內(nèi)部外設(shè)接口電路的選擇 我們稱之為晶片內(nèi)部外設(shè)接口電路,如 USB接口、 LCD控制器、鍵盤接口、 RTC、 ADC和 DAC、 DSP輔助運(yùn)算器等,設(shè)計(jì)者應(yīng)分析系統(tǒng)的需求,盡可能采用晶片內(nèi)部接口電路完成所需的功能,這樣既可簡(jiǎn)化系統(tǒng)的設(shè)計(jì),同時(shí)提高系統(tǒng)的可靠性。 選擇 ARM 處理器的準(zhǔn)則 3) 晶片內(nèi)部存儲(chǔ)器的容量 大多數(shù)的 ARM微處理器晶片內(nèi)部存儲(chǔ)器的容量都不太大。 ARM7系列微處理器的典型處理速度為 ,常見的 ARM7晶片系統(tǒng)主時(shí)鐘為 20MHz133MHz。 而 ARM7TDMI則沒有 MMU,不支持 Windows CE和標(biāo)準(zhǔn) Linux,但目前有uCLinux等不需要 MMU支持的操作系統(tǒng)可執(zhí)行于 ARM7TDMI硬件平臺(tái)上。 32 Mbyte . ? BL 子程序 ? 保存返回地址到 LR ? 返回時(shí)從 LR 恢復(fù) PC ? 對(duì)于 nonleaf 函數(shù) , LR 必須壓棧保存 STMFD sp!,{regs,lr} : BL func2 : LDMFD sp!,{regs,pc} func1 func2 : : BL func1 : : : : : : : MOV pc, lr 協(xié)處理器 ? 多達(dá) 16個(gè)可定義協(xié)處理器 ,用唯一的 ID來標(biāo)示 ? 擴(kuò)充 ARM指令集 ? 通常用作 ARM “internal functions” (例如: cp15通常 用作 ARM cache 控制器 ) ? 通常系統(tǒng)設(shè)計(jì)的時(shí)候最好用內(nèi)存映射外設(shè) ? 容易實(shí)現(xiàn) Handshaking signals ARM core Coprocessor X Coprocessor Y Databus F D E F D E F D E Thumb指令集 ? Thumb 是一個(gè) 16bits 指令集 ? 優(yōu)化代碼密度 (~65% of ARM ) ? 提高窄內(nèi)存操作性能 ? 是 ARM指令集的一個(gè)功能子集 ? ARM / Thumb 轉(zhuǎn)換使用 BX 指令 0 15 31 0 ADDS r2,r2,1 ADD r2,1 32bits ARM 指令 16bits Thumb 指令 對(duì)于有編譯器產(chǎn)生的絕大多數(shù)指令 : ? 條件執(zhí)行不可用 ? 源和目的寄存器相同 ? 只有低端寄存器可用 ? 常量大小受限制 ? 內(nèi)嵌的桶形移位不可用 ARM / Thumb 性能分析 0 5000 10000 15000 20220 25000 30000 30000 Dhrystone / sec 20MHz ARM Thumb 32 bit 16 bit 16 bit with 32 bit stack 存儲(chǔ)器寬度 (zero wait