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

  本次所介绍内容是关于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则是一个寄存器,专门用来修改权限级别的。

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

  1. ARM 架构、ARM7、ARM9、STM32、Cortex M3 M4 、51、AVR 之间有什么区别和联系?(转载自知乎)

    ARM架构:  由英国ARM公司设计的一系列32位的RISC微处理器架构总称,现有ARMv1~ARMv8种类. ARM7:       一类采用ARMv3或ARMv4架构的,使用冯诺依曼结构的内核. ...

  2. ARM Cortex M3(V7-M架构)硬件启动程序 一

    Cortex-m3启动代码分析笔记 启动代码文件名是STM32F10X.S,它的作用先总结下,然后再分析. 启动代码作用一般是: 1)堆和栈的初始化: 2)中断向量表定义: 3)地址重映射及中断向量表 ...

  3. STM32学习之路入门篇之指令集及cortex——m3的存储系统

    STM32学习之路入门篇之指令集及cortex——m3的存储系统 一.汇编语言基础 一).汇编语言:基本语法 1.汇编指令最典型的书写模式: 标号 操作码        操作数1, 操作数2,... ...

  4. Implementation of Serial Wire JTAG flash programming in ARM Cortex M3 Processors

    Implementation of Serial Wire JTAG flash programming in ARM Cortex M3 Processors The goal of the pro ...

  5. 【ARM-Linux开发】ARM7 ARM9 ARM Cortex M3 M4 有什么区别

    ARM7 ARM9 ARM Cortex M3 M4 区别 arm7 arm9 可以类比386和奔腾, 不同代,arm9相比arm7指令集和性能都有所增强,arm7和arm9都有带mmu和无mmu的版 ...

  6. 【freertos】002-posix模拟器设计与cortex m3异常处理

    目录 前言 posix 标准接口层设计 模拟器的系统心跳 模拟器的task底层实质 模拟器的任务切换原理 cortex M3/M4异常处理 双堆栈指针 双操作模式 栈帧 EXC_RETURN 前言 如 ...

  7. Embedded System.

    Soc ( System on Chip) Soc is an integrated circuit (IC) that integrates all components of a computer ...

  8. ARM Cortex M3系列GPIO口介绍(工作方式探讨)

    一.Cortex M3的GPIO口特性    在介绍GPIO口功能前,有必要先说明一下M3的结构框图,这样能够更好理解总线结构和GPIO所处的位置. Cortex M3结构框图     从图中可以看出 ...

  9. 嵌入式OS入门笔记-以RTX为案例:六.RTX的任务调度

    嵌入式OS入门笔记-以RTX为案例:六.RTX的任务调度 上一篇笔记介绍了一些绕开排程器(或调度程序,scheduler)来进行时间管理的一些小方法.这一篇详细介绍RTX的任务调度原理. RTX主要有 ...

随机推荐

  1. sql:表中数据全部删除之后,重新插入时,从1开始增加

    数据库中设置了自增列,有时候需要清楚数据库从新录入数据.最常见的做法就是使用sql语句"delete 表明名"或是直接选中数据,然后删除数据.但是再次插入数据的时候,你就会发现自增 ...

  2. navicat for mysql注册码:NAVN-LNXG-XHHX-5NOO

    名.组织可以为空或任意填写. 摘自: navicat for mysql10.0.0.0注册码中“名”.“组织”...._百度知道

  3. Android(java)学习笔记62:android.intent.action.MAIN 与 android.intent.category.LAUNCHER 理解

    1. 先看看网路上的说法: android.intent.action.MAIN 决定应用程序最先启动的 Activity android.intent.category.LAUNCHER 决定应用程 ...

  4. Codeforces 758B Blown Garland

    题目链接:http://codeforces.com/contest/758/problem/B 题意:一个原先为4色环的链子少了部分,要你找出死的最少的一种可能,各输出四种颜色的死了多少. 分析:就 ...

  5. 整数N分解,搭积木,离散数学中的母函数,ZOJ(1163)

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1163 解题报告: 将整数N分解为:两个及以上的不重复的整数,最流 ...

  6. vuejs动态组件和v-once指令

    场景,点击某个按钮,两个子组件交替显示 <div id='root'> <child-one v-if='type==="child-one"'></ ...

  7. 2018.9.3 CEP课程总结

    什么是CEP课程? 职业生涯规划课程 蓝桥介绍 立人达人 全人教育 人文 重视人 尊重人 关心人 爱护人 人才 人格 简历的制作 找工作的流程? 1.简历的准备------>投发简历(自己投.老 ...

  8. RandomUserAgentMiddleware练习

    # 请求头添加随机user-agent class RandomUserAgentMiddleware(object): def __init__(self, agents): self.agent ...

  9. 项目部署到自己的IIS上

    一般我们只能在本机上才可以开到我们的项目,这个是不需要连网的 如果想让我们的项目在网站中打开,别人也可以看到,就需要把我们的项目部署到服务器上了,输入IP就可以看到我们的项目 发布项目 然后发布网站 ...

  10. C#使用ref和out传递数组

    C#使用ref和out传递数组 一.使用ref参数传递数组 数组类型的ref参数必须由调用方明确赋值.因此,接受方不需要明确赋值.接受方数组类型的ref参数能够修改调用方数组类型的结果.可以将接受方的 ...