此书作者:李宥谋

主要是通过设计的ARM指令集和cpu内部的寄存器在内部的定时器的控制下工作。来完成数据运算处理和中断异常处理,外部数据通信通过连接外设接口处理。

目录

一.系统概述

(1)系统的概述

(2)嵌入式处理器

(3)嵌入式操作系统

(4)系统开发

二.ARM技术与体系结构

1.针对这些问题,RISC结构特点

(2)体系结构

3.工作状态

(3)寄存器与工作模式

三.ARM7的指令集

四.ARM7的汇编语言程序设计

五.微处理器的组成和中断技术

(1)向量中断控制器

1.中断处理过程:

2.中断向量控制器功能:

3.工作过程:

4.向量中断寄存器:

六.外设接口和中断

(0)管脚功能选择寄存器

(1)GPIO

(2)外部中断

(3)定时计数电路

(4)UART串行接口

七.嵌入式操作系统

八.软硬件

(1)硬件系统模块

(2)软件体系结构


一.系统概述

(1)系统的概述

1)定义:嵌入到目标对象的专用计算机系统,具有特定功能或用途的软硬件集合体。

专用性,嵌入性,计算机系统

2)组成:嵌入式处理器,外围设备,嵌入式操作系统和应用软件

3)特点:知识集成,系统内核小,专用性强,系统精简

4)应用:

1.工业控制

2.交通管理

3.信息家电

4.家庭智能管理系统

5.电子商务

6.环境工程与自然

7.机器人

8.机电产品

(2)嵌入式处理器

1)组成:

1.处理器内核,2协处理器,3.ram/rom 4.处理器内部控制电路 5.芯片内部接口电路

2)处理器的性能指标:

1.主频     主频越高,单位时间内执行的指令数量就越多,处理器速度就越快

2.处理器字长

处理器内部数据运算的基本位数,字长标志着精度,字长越长,计算的精度越高。

3.数据通路速度    决定于总线位数,总线频率,数据传输协议。

4.运算速度  衡量有不同的方法

5.高速缓存 突破主存访问速度的瓶颈,处理器内部设计了高速缓存

6.处理器的系统架构   cisc还是risc  流水线还是多数据流结构,内部各部件之间数据传输速度,决定了处理器的性能表现

(3)嵌入式操作系统

1)分类

实时操作系统,非实时操作系统

(4)系统开发

1)过程:需求分析,建立开发环境,体系结构设计,软硬件设计,系统集成和系统优化与测试

二.ARM技术与体系结构

(1)技术

内嵌32位精简指令集RISC的cpu

RISC和CISC时两种不同的cpu架构,区别在于不同的cpu设计理念和方法,早期cpu几乎全是CISC,设计目的是用最少的机器语言指令来完成所需的计算任务,以提高计算机的性能。,指令种类的增加,单条指令功能不断增加,电路的实现越来越复杂,电路的种类越来越多,cpu的速度难以提高。

cisc的问题:

1)有8成的指令,只在2成的运行时间里才用到。

2)cisc结构指令系统复杂性,带来计算机体系结构设计的复杂性。

3)各条指令的功能不均衡,不利于采用流水技术来提高系统性能。

1.针对这些问题,RISC结构特点

1)简化指令集,只保留常用的基本指令

2)设计大量的通用寄存器,减少访存的次数

3)采用装载/保存(load-store)结构,支持流水线技术,使每个周期时间相等。

4)采用简单指令格式,规整的指令字长和简单的寻址方式

5)单机器周期指令,大多指令可以在一个机器周期内完成。

ARM处理器具有RISC结构特点之外,还增加了

1)每条数据处理指令可同时包含算数逻辑单元运算和移位处理功能,加快了数据处理速度。

2)使用地址自增和自减的寻址方式优化程序循环。

3)装载/保存指令中具有数据的批量传输,实现最大数据吞吐量。

4)大多数指令提供条件执行,加快了条件程序代码的执行速度。

(2)体系结构

arm7是三级流水结构,取指,译码,执行

将pc程序计数器定义到R15寄存器,无论处理器处于何种状态,pc总是指向“正在取指”指令的地址。正在执行的指令作为参考点,pc总是指向随后的第三条指令,或者说pc总是指向当前正在执行的指令地址再加上两条指令的地址。

1.哈佛结构

程序中指令和数据分开存储的存储器结构。

冯诺依曼结构,普林斯顿结构,程序指令存储器和数据存储器合并在一起的存储器结构。同一个存储器中的不同物理地址,因此程序和指令的宽度相同。

3.工作状态 

内核包含两种指令系统,ARM和thumb指令集,分别对应一种处理器的状态

两种状态由程序状态字CPSR中T标志位确定,为0时处理器ARM状态,为1时处理器Thumb状态。

ARM状态特点:

处理器执行32位 字对齐 方式ARM指令,长度32位,功能强大

Thumb状态:

处理器执行16位 半字对齐 Thumb指令,为ARM的子集。

如果要加快程序的执行速度,采用ARM指令,如果要节省存储器资源,采用thumb指令编程。

(3)寄存器与工作模式

处理器的7种模式:

1.用户模式

2.快速中断模式

3.外部中断模式

4.管理模式

5.数据访问中止模式

6.系统模式

7.未定义指令模式

三.ARM7的指令集

(1)指令集

(2)指令的寻址方式

四.ARM7的汇编语言程序设计

(1)程序结构格式

(2)符号和伪指令

(3)程序设计过程

五.微处理器的组成和中断技术

(1)向量中断控制器

1.中断处理过程:

1)中断请求

2)中断响应

3)断点保护

4)中断处理

5)中断返回

概念和编程配置过程和方法

2.中断向量控制器功能:

1.类型选择

2.中断屏蔽

3.优先级控制

4.中断向量 (中断程序入口地址)

中断采用中断控制器VIC来统一管理,vic为每一个中断分配中断通道号,通道号是每一种中断源的唯一标识,中断到来时,通过通道号确定中断源。

VIC通道: 4:定时器0  5:定时器1

6:UART0   7:UART1

通过VIC到达ARM核只有fiq和irq两种中断,并上传向量中的地址VICVectAddr[31:0]

IRQ中断根据中断服务程序入口地址的定位方式,划分为“向量irq中断”和“非向量irq中断”

程序状态寄存器CPSR中I、F位分别来控制IRQ模式和FIQ模式的使能,为0表示中断使能,1表示中断禁止

3.工作过程:

32个中断源进入中断状态寄存器,通过中断使能或使能清零寄存器控制,使能的中断由中断选择寄存器选择FIQ(对应位为1)/或IRQ(对应为0),FIQ中断级别最高,能迅速处理,其他中断进入IRQ中段寄存器,由高到低分为16个向量中断插槽和一个非向量中断,插槽对应slot0——slot15,最终通过优先级控制选择电路产生IRQ中断请求信号,并选择优先级最高插槽的32位向量地址,完成IRQ向处理器的中断请求。

4.向量中断寄存器:

控制、参数设置和状态寄存器三种

编程中用到的寄存器:

VICIntSelect: 中断选择寄存器,32个中断请求的每个中断分配为FIQ或IRQ

VICVectCntl0~15:向量控制0~15寄存器

VICVectAddr0~15:向量地址0~15寄存器

VICIntEnable:控制32个中断请求的使能

六.外设接口和中断

(0)管脚功能选择寄存器

PINSEL0 (0~15) 32位控制16个引脚,

PINSEL1(16~31)16个引脚  控制p0的32个引脚

PINSEL2(16~31) p1的后16个引脚

(1)GPIO

通用输入输出端口,用于二进制数据的输入和输出

配置过程:

通过两位选择位选择1个引脚上的4个功能之一,如果是GPIO功能,则在进行选择IOxDIR(对应位写1表示输出,0表示输入功能)寄存器对应位,控制管脚的输入输出方向,GPIO输入时,通过IOxPIN(读出引脚的当前状态)寄存器读入,输出通过IOxSET(向某位写1对应引脚输出高电平)或IOxCLR(向某位写1对应引脚输出低电平)寄存器控制输出,实现对应GPIO管脚的控制。

(2)外部中断

EXTINT:中断标志寄存器,EINT[3:0]分别标识对应4个中断输入;

按位写1表示清零对应位。

EXTMODE:中断方式寄存器[3:0]选择对应引脚触发信号方式时(0)电平还是(1)边沿。

用读-修改-写方式来操作寄存器。

EXTPOLAR:中断极性寄存器   [3:0]对应选择EINT0~3触发信号的极性。(1)上升沿或高电平

(0)下降沿、低电平

(3)定时计数电路

功能:定时、计数和捕获

寄存器:IR

TCR :使能和复位

PR:预分频

MCR:4个匹配通道匹配时的功能(中断(0)、复位(1)、停止(2))

MR0~3:4个通道的匹配目标值

(4)UART串行接口

1的逻辑电平在-3V~-15V之间

0的逻辑电平在+3V~+15V之间

实际常用+-12V 或+-15V

七.嵌入式操作系统

(1)uc/os-2操作系统

八.软硬件

(1)硬件系统模块

(1)最小系统结构:

电源电路、时钟电路、复位电路

通用硬件系统会在此基础上加上  输入输出设备、存储器系统和调试测试接口

嵌入式软件分类:

应用软件,系统软件,支撑软件

(2)软件体系结构

1.硬件抽象层

以板级支持包的形式实现。,初始化底层硬件,为操作系统提供底层硬件信息。

2.操作系统层

3.协议层

4.应用层

嵌入式系统开发 (复习笔记)相关推荐

  1. 计算机三级嵌入式系统开发 知识点笔记

    目录为搜索词,详情看每一节后图片 思维导图已上传,点击这里下载 嵌入式系统开发 全部章节图片 第一章 嵌入式系统概论 1.1 SoC IP核 1.2 1.2.1 ASCII GB2312 GB1803 ...

  2. 嵌入式QT开发复习笔记

    文章目录 一.简答题(30分) 1.1 Qt Designer设计一个对话框主要步骤 1.2 列举出信号和插槽有几种用法 1.3 Qt中窗口对象的父子关系如何指定及指定父对象有什么作用及好处 1.4 ...

  3. 嵌入式系统开发笔记0_0:目录

    本系列文章将向大家介绍嵌入式系统开发的各方面知识. 本系列文章所介绍的知识和内容,除电路图设计外,其它均采用开源系统,所以你不会在这个系列文章中看到Keil.IAR等软件. 本系列文章涉及C.C++. ...

  4. 嵌入式系统开发笔记25:win10防火墙打开特定端口

    本系列文章将向大家介绍嵌入式系统开发的各方面知识. 本文将向大家介绍dakaiwin10防火墙特定端口的方法. 1.引言 win10上位机编写程序,启动TCP服务器应用程序,并绑定1000端口:lin ...

  5. 嵌入式系统开发笔记2:Linux的主流发行版本

    本系列文章将向大家介绍嵌入式系统开发的各方面知识. 本文将向大家介绍Linux的主流发行版本. 本文为转载文章,原文网址:Linux各个发行版本对比与简介 首先我们要能够清晰的区分Linux系统内核与 ...

  6. 嵌入式系统开发期末复习

    嵌入式系统开发 嵌入式系统概述 ARM技术及体系结构 ARM7TDMI指令系统 嵌入式系统概述 1.什么是嵌入式系统?有何特点? 嵌入式系统是以应用为中心,以计算机技术为基础,且软.硬件可裁剪的, 适 ...

  7. 嵌入式系统开发笔记80:应用Qt Designer进行主界面设计

    前言   本篇文章讲解PyQt的基本使用方法,我们将应用Qt Designer来设计一个主界面,学习完本篇文章的内容后,你将获得如下技能.   (1)在VS Code中启动Qt Designer    ...

  8. 嵌入式系统设计师考试笔记之嵌入式系统基础知识

    以下是转帖一位网友的嵌考笔记 嵌入式系统设计师考试笔记之嵌入式系统基础知识 欧浩源(ohy3686@qq.com) 20080818 一.引言 自<嵌入式系统设计师考试复习笔记之存储管理篇> ...

  9. 《Android系统开发》笔记

    <Android系统开发>笔记1:Android系统概述 Android四层架构: 1. Linux Kernel&driver层 a.依赖于Linux 2.6内核,包括安全性,内 ...

  10. 《嵌入式系统开发之道——菜鸟成长日志与项目经理的私房菜》——02-08项目人力资源(Human Resource)管理...

    本节书摘来异步社区<嵌入式系统开发之道--菜鸟成长日志与项目经理的私房菜>一书中的第2章,第2.8节,作者:邱毅凌,更多章节内容可以访问云栖社区"异步社区"公众号查看 ...

最新文章

  1. 动态更新 AGS Cache
  2. cocos2d-x JS 获取当前系统时间(解决屏幕双击点击事件)
  3. 面试数百名NLP工程师发现:90%以上是不合格的
  4. 中文分词工具jieba分词器的使用
  5. 计算机转型展望未来大发展,市计算机:披荆斩棘砥砺前行,勠力同心展望未来...
  6. 团队行为心理学读书笔记(5)执行力背后的行为心理学
  7. 第六次作业(C语言)
  8. Linux删除特殊字符文件
  9. ORA-28001: the password has expired解决方法
  10. const int *p与int *const p的区别
  11. Python学习笔记简单数据类型之字符串
  12. mysql 存储过程案列一个。
  13. 转载--32个鲜为人知的自学网站
  14. 王垠:对TAOCP的真正看法
  15. Excel 快捷键学习笔记
  16. leetcode-Algorithms-350|两个数组的交集II
  17. 统一网关过滤器GlobalFilter、DefaultFilter、路由过滤器执行顺序
  18. [MATLAB]从键盘输入一个带有字母构成的字符串,要求大写变小写,小写变大写输出。
  19. SQL 为什么动不动就 N 百行以 K 计
  20. 【Unity】安卓加密编译libmono.so成功失败记录(unity2017已成功编译)

热门文章

  1. Java常见面试题(2)
  2. 大三了#我的两年编程生活
  3. 自学游戏建模,有什么适合新手学习的3D建模软件?
  4. 02 数据定义语言DDL
  5. Windows中cl命令编译运行C++
  6. Spring-工作原理
  7. ElasticSearch painless脚本实现自定义打分排序
  8. 《深度学习》学习笔记
  9. Linux 查看Redis 的版本
  10. 遥测、遥信、遥控、遥调的简要说明