|
支持芯片架構(gòu)
Keil:最初主要支持 8051 內(nèi)核等傳統(tǒng)單片機(jī)架構(gòu),像 Intel 8051 及其兼容芯片,例如 Atmel 公司的 AT89S51、AT89C52 等 ,可以對(duì)這類(lèi)芯片進(jìn)行程序的編輯、編譯、調(diào)試等操作。
ARM Keil:專(zhuān)門(mén)面向 ARM 架構(gòu)的微處理器和微控制器,涵蓋了 Cortex-M、Cortex-R、Cortex-A 等系列 。例如基于 Cortex-M3 內(nèi)核的 STM32F103 系列、基于 Cortex-A72 內(nèi)核的一些高端應(yīng)用處理器,能夠滿足從低功耗、低成本的嵌入式設(shè)備到高性能的移動(dòng)設(shè)備和服務(wù)器應(yīng)用的開(kāi)發(fā)需求。
編譯器特性
Keil:針對(duì) 8051 等傳統(tǒng)架構(gòu)的編譯器,優(yōu)化目標(biāo)是在有限的資源(如有限的內(nèi)存、較低的處理速度)條件下,生成高效的代碼。編譯器會(huì)根據(jù) 8051 的指令集特性,進(jìn)行指令優(yōu)化,例如合理利用累加器等寄存器資源 。
ARM Keil:ARM Keil 的編譯器是針對(duì) ARM 處理器的指令集和體系結(jié)構(gòu)進(jìn)行優(yōu)化的,能夠生成高度優(yōu)化的代碼,充分發(fā)揮 ARM 處理器的性能優(yōu)勢(shì)。比如利用 ARM 的 Thumb 指令集實(shí)現(xiàn)代碼密度優(yōu)化,以及針對(duì) ARM 多核處理器的特性進(jìn)行多線程、并行計(jì)算相關(guān)的優(yōu)化 。
開(kāi)發(fā)環(huán)境功能
Keil:提供了基本的代碼編輯、編譯、調(diào)試功能,對(duì)于 8051 等簡(jiǎn)單架構(gòu)芯片的開(kāi)發(fā)足夠使用。調(diào)試工具相對(duì)簡(jiǎn)單,主要滿足對(duì)簡(jiǎn)單程序的單步調(diào)試、斷點(diǎn)設(shè)置、寄存器查看等基本調(diào)試需求。
ARM Keil:除了具備 Keil 的基本功能外,還針對(duì) ARM 芯片復(fù)雜的特性,增加了更多高級(jí)功能。比如支持更復(fù)雜的調(diào)試接口,如 JTAG、SWD 等;具備更強(qiáng)大的性能分析工具,能夠?qū)Τ绦蜻\(yùn)行時(shí)的資源占用(如 CPU 使用率、內(nèi)存占用)進(jìn)行詳細(xì)分析,方便開(kāi)發(fā)者優(yōu)化代碼性能 。
庫(kù)函數(shù)與中間件支持
Keil:對(duì)于 8051 等傳統(tǒng)單片機(jī),有相應(yīng)的標(biāo)準(zhǔn)庫(kù)函數(shù),主要用于實(shí)現(xiàn)基本的輸入輸出操作、定時(shí)器控制等功能。但相比 ARM Keil,其庫(kù)函數(shù)的豐富程度和功能復(fù)雜性要低一些。
ARM Keil:擁有豐富的針對(duì) ARM 芯片的庫(kù)函數(shù)和中間件。比如 CMSIS(Cortex 微控制器軟件接口標(biāo)準(zhǔn))庫(kù),為 ARM Cortex-M 系列芯片提供了統(tǒng)一的軟件接口,方便開(kāi)發(fā)者快速上手;還支持各種操作系統(tǒng)(如 FreeRTOS、uC/OS-II 等)和通信協(xié)議棧(如 LwIP 用于網(wǎng)絡(luò)通信 )的集成,極大地提高了開(kāi)發(fā)復(fù)雜應(yīng)用的效率。 |
|