嵌入式系统开发 (复习笔记)
此书作者:李宥谋
主要是通过设计的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 SoC IP核 1.2 1.2.1 ASCII GB2312 GB1803 ...
- 嵌入式QT开发复习笔记
文章目录 一.简答题(30分) 1.1 Qt Designer设计一个对话框主要步骤 1.2 列举出信号和插槽有几种用法 1.3 Qt中窗口对象的父子关系如何指定及指定父对象有什么作用及好处 1.4 ...
- 嵌入式系统开发笔记0_0:目录
本系列文章将向大家介绍嵌入式系统开发的各方面知识. 本系列文章所介绍的知识和内容,除电路图设计外,其它均采用开源系统,所以你不会在这个系列文章中看到Keil.IAR等软件. 本系列文章涉及C.C++. ...
- 嵌入式系统开发笔记25:win10防火墙打开特定端口
本系列文章将向大家介绍嵌入式系统开发的各方面知识. 本文将向大家介绍dakaiwin10防火墙特定端口的方法. 1.引言 win10上位机编写程序,启动TCP服务器应用程序,并绑定1000端口:lin ...
- 嵌入式系统开发笔记2:Linux的主流发行版本
本系列文章将向大家介绍嵌入式系统开发的各方面知识. 本文将向大家介绍Linux的主流发行版本. 本文为转载文章,原文网址:Linux各个发行版本对比与简介 首先我们要能够清晰的区分Linux系统内核与 ...
- 嵌入式系统开发期末复习
嵌入式系统开发 嵌入式系统概述 ARM技术及体系结构 ARM7TDMI指令系统 嵌入式系统概述 1.什么是嵌入式系统?有何特点? 嵌入式系统是以应用为中心,以计算机技术为基础,且软.硬件可裁剪的, 适 ...
- 嵌入式系统开发笔记80:应用Qt Designer进行主界面设计
前言 本篇文章讲解PyQt的基本使用方法,我们将应用Qt Designer来设计一个主界面,学习完本篇文章的内容后,你将获得如下技能. (1)在VS Code中启动Qt Designer ...
- 嵌入式系统设计师考试笔记之嵌入式系统基础知识
以下是转帖一位网友的嵌考笔记 嵌入式系统设计师考试笔记之嵌入式系统基础知识 欧浩源(ohy3686@qq.com) 20080818 一.引言 自<嵌入式系统设计师考试复习笔记之存储管理篇> ...
- 《Android系统开发》笔记
<Android系统开发>笔记1:Android系统概述 Android四层架构: 1. Linux Kernel&driver层 a.依赖于Linux 2.6内核,包括安全性,内 ...
- 《嵌入式系统开发之道——菜鸟成长日志与项目经理的私房菜》——02-08项目人力资源(Human Resource)管理...
本节书摘来异步社区<嵌入式系统开发之道--菜鸟成长日志与项目经理的私房菜>一书中的第2章,第2.8节,作者:邱毅凌,更多章节内容可以访问云栖社区"异步社区"公众号查看 ...
最新文章
- 动态更新 AGS Cache
- cocos2d-x JS 获取当前系统时间(解决屏幕双击点击事件)
- 面试数百名NLP工程师发现:90%以上是不合格的
- 中文分词工具jieba分词器的使用
- 计算机转型展望未来大发展,市计算机:披荆斩棘砥砺前行,勠力同心展望未来...
- 团队行为心理学读书笔记(5)执行力背后的行为心理学
- 第六次作业(C语言)
- Linux删除特殊字符文件
- ORA-28001: the password has expired解决方法
- const int *p与int *const p的区别
- Python学习笔记简单数据类型之字符串
- mysql 存储过程案列一个。
- 转载--32个鲜为人知的自学网站
- 王垠:对TAOCP的真正看法
- Excel 快捷键学习笔记
- leetcode-Algorithms-350|两个数组的交集II
- 统一网关过滤器GlobalFilter、DefaultFilter、路由过滤器执行顺序
- [MATLAB]从键盘输入一个带有字母构成的字符串,要求大写变小写,小写变大写输出。
- SQL 为什么动不动就 N 百行以 K 计
- 【Unity】安卓加密编译libmono.so成功失败记录(unity2017已成功编译)