初稿前置Cortex-M3权威指南本书大面积地使用了如下的排版字体约定:·普通汇编代码MOVRO,R1;把寄存器R1中的数据移至RO·以模式化语法表示的汇编代码一一编程时必须使用真实的寄存器名字MRs <reg>,<special_reg>;·C程序代码for(i=0;i<3;i++)(funcl();)·伪代码if(a>b)(..·数值:1.4hC,0x123都表示16进制数2.#3表示数字3(e.g,IRQ#3就是指3号中断)3.#immed12表示一个12位的立即数4.寄存器位。通常是表示一个位段的数值,例如bit[15:12]表示位序号从15往下数到12,这一段的数值。·寄存器访问类型1.R表示只读2.W表示只写3.RW表示可读可写(前3条好像地球人都知道)4.R/Wc表示可读,但是写访问将使之清0-6-
Cortex‐M3 权威指南 初稿 前置 本书大面积地使用了如下的排版字体约定: • 普通汇编代码 MOV R0, R1 ; 把寄存器R1中的数据移至R0 • 以模式化语法表示的汇编代码——编程时必须使用真实的寄存器名字 MRS <reg>, <special_reg> ; • C 程序代码 for (i=0;i<3;i++) { func1(); } • 伪代码 if (a > b) { . • 数值: 1. 4'hC , 0x123 都表示16进制数 2. #3表示数字3 (e.g., IRQ #3 就是指3号中断) 3. #immed_12表示一个12位的立即数 4. 寄存器位。通常是表示一个位段的数值,例如 bit[15:12] 表示位序号从15往下数到12,这一段的数值。 • 寄存器访问类型 1. R 表示只读 2. W表示只写 3. RW 表示可读可写(前3条好像地球人都知道) 4. R/Wc 表示可读,但是写访问将使之清 0 ‐ 6 ‐
初稿前置Cortex-M3权威指南其它参考资料Cortex-M3TechnicalReferenceManual(TRM)(Cortex-M3技术参考手册)1.请从www.arm.com/documentation/ARMProcessorCores/index.html下载2.ARMv7-MArchitectureApplicationLevelReferenceManual(ARMv7-M应用级架构参考手册请从www.arm.com/products/CPUs/ARMCortex-M3v7.html下载3.CoreSightTechnologySystemDesignGuide(CoreSight技术系统设计指导)请从www.arm.com/documentation/TraceDebug/index.html下载4.AMBASpecification(AMBA规格书)请从www.arm.com/products/solutions/AMBASpec.html下载5.AAPCSProcedureCallStandardfortheARMArchitecture(AAPCSARM架构过程调用标准请从www.arm.com/pdfs/aapcs.pdf下载6.RVCT3.0CompilerandLibraryGuide(RVCT3.0编译器及库向导)请从www.arm.com/pdfs/DUI0205Grvctcompilerandlibraries_guide.pdf下载7.ARMApplicationNote179:Cortex-M3EmbeddedSofiwareDevelopment(ARM应用笔记179:Cortex-M3嵌入式软件开发请从www.arm.com/documentation/ApplicationNotes/index.html下载-1
Cortex‐M3 权威指南 初稿 前置 其它参考资料 1. Cortex-M3 Technical Reference Manual (TRM) (Cortex-M3技术参考手册) 请从www.arm.com/documentation/ARMProcessor_Cores/index.html下载 2. ARMv7-M Architecture Application Level Reference Manual(ARMv7-M应用级架构参考 手册) 请从www.arm.com/products/CPUs/ARM_Cortex-M3_v7.html下载 3.CoreSight Technology System Design Guide(CoreSight技术系统设计指导) 请从www.arm.com/documentation/Trace_Debug/index.html下载 4. AMBA Specification (AMBA规格书) 请从www.arm.com/products/solutions/AMBA_Spec.html下载 5. AAPCS Procedure Call Standard for the ARM Architecture(AAPCS ARM架构过程调用 标准) 请从www.arm.com/pdfs/aapcs.pdf下载 6. RVCT 3.0 Compiler and Library Guide(RVCT 3.0编译器及库向导) 请从www.arm.com/pdfs/DUI0205G_rvct_compiler_and_libraries_guide.pdf下载 7. ARM Application Note 179: Cortex-M3 Embedded Software Development(ARM应用笔记 179:Cortex-M3嵌入式软件开发) 请从www.arm.com/documentation/Application_Notes/index.html下载 ‐ 7 ‐
初稿前置Cortex-M3权威指南-16 -
Cortex‐M3 权威指南 初稿 前置 ‐ 16 ‐
初稿第1章Cortex-M3权威指南第1章介绍ARMCortex-M3处理器初探ARM的各种架构版本?指令集的开发Thumb-2指令集架构(ISA)Cortex-M3的舞台本书组织深入研究用的读物ARMCortex-M3处理器初探单片机市场的规模可以用“巨无霸”来形容,预计到2010时每年能有20G片的出货量。世界各地的器件供应商纷纷亮出自已的得意之作,他们提供的器件和架构也是各具特色。业界内部可谓是百花齐放,热闹非凡,好戏不断。各行各业对单片机能力的要求也一直“得寸进尺”,而且还又要马儿跑,又要马儿不吃草一一处理器必须在不怎么增加主频和功耗的条件下于更多的活儿。另一方面,处理器之间的互连也在加深,看这一串串熟悉的字眼:串口,USB,以太网,无线数传....处理器如欲支持这些数据通道,就必须在片上塞进更多的外设。软件方面的情况也如出一辙:应用程序的功能一直在花样翻新,性能需求也是变本加厉:更高的运算速度,更硬的实时能力,更多的功能模块,更炫的图形界面,所有这些要求单片机都得照单全收。在这个大环境下,ARMCortex-M3处理器,作为Cortex系列的处女作,为了让32位处理器入主作庄单片机市场,轰轰烈烈地诞生了!由于采用了最新的设计技术它的门数更低,性能却更强。许多曾经只能求助于高级32位处理器或DSP的软件设计,都能在CM3上跑得很快很欢。相信用不了多久,CM3就一定能在32位嵌入式处理器市场中脱颖而出,像当年8051推动整个业界那样,再次放飞设计师的梦想,实现多年的夙愿!CM3的招牌功夫包括:·性能强劲。在相同的主频下能做处理更多的任务,全力支持劲爆的程序设计。:功耗低。延长了电池的寿命一一这简直就是便携式设备的命门(如无线网络应用)。·实时性好。采用了很前卫甚至革命性的设计理念,使它能极速地响应中断,而且响应中断所需的周期数是确定的。·代码密度得到很大改善。一方面力挺大型应用程序,另一方面为低成本设计而省吃俭用。·使用更方便。现在从8位/16位处理器转到32位处理器之风刮得越来越猛,更简单的编程模型和更透彻的调试系统,为与时俱进的人们大大减负。:低成本的整体解决方案。让32位系统比和8位/16位的还便宜,低端的Cortex-M3单片机甚至还卖不到1美元。·遍地开花的优秀开发工具。免费的,便宜的,全能的,要什么有什么。基于Cortex-M3内核的处理器已渐成气候,以处处满溢的先进特性力压群芳。而且架构17
Cortex‐M3 权威指南 初稿 第 1 章 第1章 介绍 ● ARM Cortex‐M3处理器初探 ● ARM的各种架构版本 ●指令集的开发 ● Thumb‐2指令集架构(ISA) ● Cortex‐M3的舞台 ●本书组织 ●深入研究用的读物 ARM Cortex-M3 处理器初探 单片机市场的规模可以用“巨无霸”来形容,预计到2010时每年能有20G片的出货量。 世界各地的器件供应商纷纷亮出自己的得意之作,他们提供的器件和架构也是各具特色。业 界内部可谓是百花齐放,热闹非凡,好戏不断。各行各业对单片机能力的要求也一直“得寸 进尺”,而且还又要马儿跑,又要马儿不吃草——处理器必须在不怎么增加主频和功耗的条 件下干更多的活儿。另一方面,处理器之间的互连也在加深,看这一串串熟悉的字眼:串口, USB,以太网,无线数传.处理器如欲支持这些数据通道,就必须在片上塞进更多的外设。 软件方面的情况也如出一辙:应用程序的功能一直在花样翻新,性能需求也是变本加厉:更 高的运算速度,更硬的实时能力,更多的功能模块,更炫的图形界面,.所有这些要求单 片机都得照单全收。在这个大环境下,ARM Cortex‐M3处理器,作为Cortex系列的处女作, 为了让32位处理器入主作庄单片机市场,轰轰烈烈地诞生了!由于采用了最新的设计技术, 它的门数更低,性能却更强。许多曾经只能求助于高级32位处理器或DSP的软件设计,都能 在CM3上跑得很快很欢。相信用不了多久,CM3就一定能在32位嵌入式处理器市场中脱颖而 出,像当年8051推动整个业界那样,再次放飞设计师的梦想,实现多年的夙愿! CM3的招牌功夫包括: •性能强劲。在相同的主频下能做处理更多的任务,全力支持劲爆的程序设计。 • 功耗低。延长了电池的寿命——这简直就是便携式设备的命门(如无线网络应用)。 • 实时性好。采用了很前卫甚至革命性的设计理念,使它能极速地响应中断,而且响应 中断所需的周期数是确定的。 • 代码密度得到很大改善。一方面力挺大型应用程序,另一方面为低成本设计而省吃俭 用。 • 使用更方便。现在从8位/16位处理器转到32位处理器之风刮得越来越猛,更简单的编 程模型和更透彻的调试系统,为与时俱进的人们大大减负。 • 低成本的整体解决方案。让32位系统比和8位/16位的还便宜,低端的Cortex‐M3单片 机甚至还卖不到1美元。 • 遍地开花的优秀开发工具。免费的,便宜的,全能的,要什么有什么。 基于Cortex‐M3内核的处理器已渐成气候,以处处满溢的先进特性力压群芳。而且架构 17
初稿Cortex-M3权威指南第1章师们还在不停地求索降低成本的出路,同时很多组织也在尝试着实现"器件聚合”(deviceaggregation),使一个单一的小强芯片可以抵得上以前3、4块传统的单片机。降低成本还有一招,就是使基础代码在所有系统中都可以重用,至少要方便移植。CM3的内核架构非常精工细作,使它与C语言成为了一个梦幻绝配。优质的C程序代码三下五除二就可以移植并重用,使升级和移植一下子从拦路虎变成了纸老虎。值得一提的是,CM3并不是第一个被拿去做万金油型处理器的内核。那廉颇虽老却依然骁勇的ARM7/ARM9处理器,在通用嵌入式处理器市场中德高望重,至今拥有无数铁杆粉丝。半导体业界的群英们,像NXP(philips)、TI、Atmel、OKI、ST等,都以ARM为内核,做出了各自身怀绝技的32位MCU。ARM7作为最受欢迎的32位嵌入式处理器,被载入亮焊焊的儿页史册一一每年超过10亿片出货量,为各行各业的嵌入式设备中都找得到它们的身影。CM3作为ARM7的后继者,大刀阔斧地改革了设计架构。从而显著地简化了编程和调试的复杂度,处理能力也更加强大。除此之外,CM3还突破性地引入了很多时尚的甚至薪新的技术,专门满足单片机应用程序的需求。比如,服务于“使命-关键”应用的不可屏蔽中断,极度敏捷并且拥有确定性的嵌套向量中断系统,原子性质的位操作,还有一个可选的内存保护单元。这些令人惊艳和振奋的新特性,让老的ARM玩家们再次找到“初恋”时烈焰进发的感觉,也使萍水相逢就有激爽触电般的体验!相信读者一旦有机会用到了它,就会为它的秀外慧中而赞叹,爱不释手!Cortex-M3处理器内核vs.基于Cortex-M3的MCUCortex-M3处理器内核是单片机的中央处理单元(CPU)。完整的基于CM3的MCU还需要很多其它组件。在芯片制造商得到CM3处理器内核的使用授权后,它们就可以把CM3内核用在自己的硅片设计中,添加存储器,外设,/O以及其它功能块。不同厂家设计出的单片机会有不同的配置,包括存储器容量、类型、外设等都各具特色。本书主讲处理器内核本身。如果想要了解某个具体型号的处理器,还需查阅相关厂家提供的文档。OOOOOOOOOOOCortex-M3芯片C口由ARM设计调试系统UCortex-M3内核D内部总线D口D由芯片制造商外设存储器CO设计开发时钟和复位1/0UUOUUUUUUUUUUUUUUOUOARM及ARM架构的背景一一路走来让我们回顿一下ARM的进化史,你会知道为什么会有品种如此之多的ARM处理器和ARM架构。ARM在1990年成立,当初的名字是AdvancedRISCMachinesLtd.”,当时它是三家公司的18
Cortex‐M3 权威指南 初稿 第 1 章 师们还在不停地求索降低成本的出路,同时很多组织也在尝试着实现“器件聚合”(device aggregation),使一个单一的小强芯片可以抵得上以前3、4块传统的单片机。 降低成本还有一招,就是使基础代码在所有系统中都可以重用,至少要方便移植。CM3 的内核架构非常精工细作,使它与C语言成为了一个梦幻绝配。优质的C程序代码三下五除 二就可以移植并重用,使升级和移植一下子从拦路虎变成了纸老虎。 值得一提的是,CM3并不是第一个被拿去做万金油型处理器的内核。那廉颇虽老却依然 骁勇的ARM7/ARM9处理器,在通用嵌入式处理器市场中德高望重,至今拥有无数铁杆粉丝。 半导体业界的群英们,像NXP(philips)、TI、Atmel、OKI、ST等,都以ARM为内核,做出了 各自身怀绝技的32位MCU。ARM7作为最受欢迎的32位嵌入式处理器,被载入了亮煌煌的几 页史册——每年超过10亿片出货量,为各行各业的嵌入式设备中都找得到它们的身影。 CM3作为ARM7的后继者,大刀阔斧地改革了设计架构。从而显著地简化了编程和调试 的复杂度,处理能力也更加强大。除此之外,CM3还突破性地引入了很多时尚的甚至崭新的 技术,专门满足单片机应用程序的需求。比如,服务于“使命‐关键”应用的不可屏蔽中断, 极度敏捷并且拥有确定性的嵌套向量中断系统,原子性质的位操作,还有一个可选的内存保 护单元。这些令人惊艳和振奋的新特性,让老的ARM玩家们再次找到“初恋”时烈焰迸发的 感觉,也使萍水相逢就有激爽触电般的体验!相信读者一旦有机会用到了它,就会为它的秀 外慧中而赞叹,爱不释手! Cortex-M3 处理器内核 vs. 基于Cortex-M3的MCU Cortex‐M3处理器内核是单片机的中央处理单元(CPU)。完整的基于CM3的MCU还需要 很多其它组件。在芯片制造商得到CM3处理器内核的使用授权后,它们就可以把CM3内核用 在自己的硅片设计中,添加存储器,外设,I/O以及其它功能块。不同厂家设计出的单片机 会有不同的配置,包括存储器容量、类型、外设等都各具特色。本书主讲处理器内核本身。 如果想要了解某个具体型号的处理器,还需查阅相关厂家提供的文档。 ARM及ARM架构的背景 一路走来 让我们回顿一下ARM的进化史,你会知道为什么会有品种如此之多的ARM处理器和ARM 架构。 ARM在1990年成立,当初的名字是“Advanced RISC Machines Ltd.,”,当时它是三家公司的 18