嵌入式(Embedded System)笔记 —— Cortex-M3 Introduction and Basics(上)

  随着课内的学习,我想把每节课所学记录下来,以作查阅、以饲读者。由于我所上的是英文班课程,因此我将把关键术语的英文给出,甚至有些内容直接使用英文。

  本次所介绍内容是关于Cortex-M3的基础内容。

------------------------------------------------------------------------------------------------------------------------------------------------

1、什么是嵌入式系统(Embedded System)

  完全嵌入受控器件内部,为特定应用而设计的专用计算机系统,而平时咱们所用的个人计算机则属于通用计算机系统。

  它只能实现一件或少量几件功能,同时还有很多限制,例如:电力较低,内存较小等。

2、微处理器(microprocessor,μP)和微控制器(microcontroller,μC)的区别

  这个问题比较复杂,我只做简单解释,这里推荐百度知道上一个人的回答,比较详细准确地讲解了这两者的区别。

  微处理器仅仅是一个单芯片CPU;而微控制器则是一块集成电路,上面集成了CPU与很多外围设备,例如:Memory、IO、Bus、Interrupt。

  微处理器就是我们个人计算机中所说的CPU,而微控制器便是我们平时所说的“单片机”,所有智能设备上面都有单片机的存在。

3、嵌入式系统、通用计算机系统与微处理器、微控制器的关系

  从上面的定义很容易看出,嵌入式系统必然包含微控制器,微控制器是嵌入式系统的核心;而通用计算机系统则必然包含微处理器,作为其CPU存在。

4、冯·诺依曼架构与哈佛架构

  计算机的体系结构是指:其内部CPU、Memory、IO、Bus之类都是如何设计的。

  而这两种架构,则是对计算机体系结构的一种分类——针对存储器所作的分类。

    冯·诺依曼架构(又名普林斯顿结构):指令和数据存在一个存储器中。这种架构的中央处理器(CPU)或者微控制器有8086、ARM7、MIPS等。

    哈佛架构:有两个存储器,指令存储器专门存指令, 数据存储器专门存数据。这种架构执行效率很高,非常方便流水线(Pipeline)的实现,目前使用这种架构的中央处理器或者微控制器有51单片机以及ARM9、ARM10、ARM11等。

5、什么是Cortex-M3

  这是ARM公司所开发的一种计算机架构。ARM公司设计、维护这种架构,向其它公司出售版权(IPL,Intellectual Property Licensing),例如苹果。到2009年为之,ARM处理器已经占有了嵌入式32位RISC处理器大约90%的市场。而当ARM处理器开发至版本ARM7时,分为了三个方向:

Application Cortex-A 用于高性能计算
Read-Time Cortex-R 用于实时处理,例如数字信号处理
Microcontroller Cortex-M 用于嵌入式微处理器

  而我这门课所学的Cortex-M3也就是ARM架构的嵌入式版本之一,不知道这样说,够不够清楚?

6、体系架构简介

  图暂时还没有搞到,先仅给出文字说明。

  核心是CPU,加上一个处理Interrupt的模块和一个处理Debug的模块。而外围,Interrupt使用前者处理,Debug则通过外围一个Debug模块与一个Debug接口配合核心的Debug模块协同工作。另外,CPU和Memory有两条总线(Bus),一个是Data Bus,另一个则是Inst Bus(Inst是Instruction的缩写,即指令)。Memory分为三部分:Code Memory、Memory System and Peripherals、Private Peripherals;而Bus则被一个Memory Protection Unit所监控,防止CPU访问没有权限的内存空间。

  这架构听起来很乱,或许以后加上图会清晰些,但真正理解还是要在学完Cortex-M3之后才可以。

7、Cortex-M3概述

32-bit microprocessor 32-bit data path, 32-bit registers, 32-bit memory interfaces
Harvard architecture separate instruction bus and data bus, which allows instructions and data accesses to take place at the same time
4GB Memory space  
Registers Registers (R0 to R15) and special registers
Two operation modes thread mode and handler mode
Two access levels privileged level and user level
Interrupts and Exceptions a built-in Nested Vectored Interrupt Controller, supporting 11 system exceptions plus 240 external IRQs
MPU(Memory Protection Unit) an optional Memory Protection Unit allows access rules to be set up for privileged access and user program access
The Instruction Set Thumb-2 instruction set allows 32-bit instructions and 16-bit instructions to be used together; no ARM instructions allowed
Fixed internal debugging components provide debugging operation supports and features such as breakpoints, single step

8、Cortex-M3优点

Greater performance efficiency allowing more work to be done without increasing the frequency or power requirements
Low power consumption enabling longer battery life
Enhanced determinism guaranteeing that critical tasks and interrupts are serviced in a known number of cycles
Improved code density ensuring that code fits in even the smallest memory
Ease of use providing easier programmability and debugging
Lower-cost solutions reducing 32-bit-based system costs at less than US$1 for the first time
Wide choice of development tools from low-cost or free compilers to full-featured development suites

9、Cortex-M3 Processors和Cortex-M3-Based MCUs的区别

  

  前者是ARM公司开发的,可以简单看成两个模块:Cortex-M3 Core、Debug System。

  而把前者通过Internal Bus与外围设备(Peripherals、Memory、Clock and Reset、I/O)相连,就组成了一个MCU(微控制器),这个集成电路是个Cortex-M3 Chip,是别的公司使用ARM架构开发的Cortex-M3-Based MCU。

10、指令集简介

  ARM架构经过多年的发展,有三个指令集,分别是ARM instructions、Thumb instructions和Thumb-2 instructions。其中ARM set用于高性能计算,都是32位的指令;Thumb set则都是16位指令,性能较差,但更密级(节省空间);而Thumb-2 set则是32位指令,具有同ARM set般的高性能。

  而Cortex-M3则包含所有的Thumb指令和部分的Thumb-2指令,因此指令便有16位和32位两种。

11、操作模式——两种工作阶段(processor mode)和两种权限级别(access level)简介

  

  这里只对几个术语做出解释。

  Cortex-M3中有两种工作阶段:Thread和Handler。前者是正常运行代码的阶段,而后者则是中断。

  Cortex-M3中有两种权限级别(privilege level):Privilege和User。前者是默认的,相当用root,拥有所有权限;后者则对一些特殊内存空间没有读写权。

  图中Exception是异常的意思,表示各种中断(Interrupt);Control Register则是一个寄存器,专门用来修改权限级别的。

时间: 2024-10-10 11:07:52

嵌入式(Embedded System)笔记 —— Cortex-M3 Introduction and Basics(上)的相关文章

嵌入式OS入门笔记-以RTX为案例:十.Keil的RTX调试支持

嵌入式OS入门笔记-以RTX为案例:十.Keil的RTX调试支持 调试(debug)是软件开发的一个重要环节,对于嵌入式开发而言这个环节其实比较依赖一些硬件资源(硬件debugger)的支持.传统的嵌入式系统的调试比较依赖断点(breakpoint)和单步调试(single step through).而 ARM cortex-M 系列的芯片其实有很强的CoreSight片上调试支持,实际上就是一个小的调试硬件,作为ARM的标准,内嵌在ARM的芯片里.在ARM自家的调试器ULINK-pro等的帮

嵌入式开发学习笔记 ( java - c/c++ :从入门到入门 )

发现放到Blog之后排版全乱套了.. 已经把PDF上传到资源页了  http://download.csdn.net/detail/lyy289065406/8934637 那边排版好看一点...看官们随意吧 >...< · 目 录 导 航 1. 引言 1.1. 编写目的 1.2. 阅读范围 1.3. 声明 1.4. 缩写词/名词解释 1.5. 参考资料 2. 嵌入式开发学习笔记 2.1. 开发环境/测试环境 2.2. 开坑:提要 2.3. 入坑:JNI 2.3.1. navicate 接口定

Embedded System.

Soc ( System on Chip) Soc is an integrated circuit (IC) that integrates all components of a computer or otherelectronic system into a single chip. It may contain digital, analog, mixed-signal, and often radio-frequency functions—all on a single chips

嵌入式驱动学习笔记

驱动学习笔记 输入子系统概念介绍 嵌入式驱动学习笔记,布布扣,bubuko.com

嵌入式OS入门笔记-以RTX为案例:八.RTX的进程间通讯(二)

嵌入式OS入门笔记-以RTX为案例:八.RTX的进程间通讯(二) RTX的进程间通讯主要依赖于四种机制,分别是事件(Event),互斥锁(Mutex),旗语或信号量(Semaphore),和邮箱(Mailbox).前三种机制侧重进程间的同步,邮箱则侧重进程间的数据通讯.这次讲一下信号量和邮箱. 1.信号量(Semaphore) 1.简介 信号量其实是一个很抽象的操作系统原语,它最早由荷兰计算机科学家Dijkstra提 出,用于解决多项资源的分配问题.实际上信号量的适用范围非常广,可以很好地解决很

嵌入式OS入门笔记-以RTX为案例:九.关于优先度-翻转,继承和天花板

嵌入式OS入门笔记-以RTX为案例:九.关于优先度-翻转,继承和天花板 当调度涉及优先度的时候,会出现不少问题,本文关于优先度调度的主要问题和一些应付的策略.主要有以下几个概念:优先度翻转(priority inversion),优先度继承(priority inheritance)策略和优先度天花板(priority ceiling)策略. 1.优先度翻转(priority inversion) 大部分的RTOS都支持给不同进程分配优先度,一定程度上能够让调度和时间管理灵活性更大.但是当涉及到

嵌入式Linux学习笔记之LED驱动

最近在学习嵌入式Linux驱动开发,大致了解了驱动的基本开发流程,本文主要针对字符设备驱动开发做一个简要介绍,也当作是对这几天工作的一个小小总结. 计算机系统是由软硬件相互协调共同完成工作的,作为专用计算机系统的嵌入式系统也不例外,既要有CPU.SDRAM.FLASH.IO等硬件,同时也少不了操作系统和应用软件等软件的支持,而作为应用程序与硬件的桥梁--驱动程序,是整个嵌入式系统开发过程中的关键环节.驱动开发涉及底层,而了解底层作用机制对于整个系统的开发意义重大. Linux内核中有60%以上是

嵌入式Linux学习笔记(基于S5PV210 TQ210)

基于S5PV210.TQ210平台. 本文更多的是教会大家如何学习! 包括如下内容: 1.前言 2.开发环境搭建 3.制作交叉编译器 4.裸机编程 4.1.汇编学习 4.2.S5PV210启动流程 4.3.点亮一个LED 4.4.串口 4.5.实现printf 4.6.时钟配置 4.7.重定位 4.8.DDR 4.9.NAND读写 4.11.LCD操作 5.移植u-boot(基于u-boot-2014.4版本) 5.1.概述 5.2.u-boot配置过程分析 5.3.u-boot编译过程分析 5

ARM cortex M3寄存器及指令集

1.cortex M3拥有通用寄存器R0-R15及一些特殊寄存器: R0‐R7 也被称为低组寄存器.所有指令都能访问它们.它们的字长全是 32 位,复位后的初始值是不可预料的. R8‐R12 也被称为高组寄存器.这是因为只有很少的 16 位 Thumb 指令能访问它们, 32位的指令则不受限制.它们也是 32 位字长,且复位后的初始值是不可预料的 . R13 是堆栈指针.在 CM3 处理器内核中共有两个堆栈指针,于是也就支持两个堆栈.当引用 R13(或写作 SP)时,你引用到的是当前正在使用的那