首页 > 其他分享 >计算机三级--嵌入式

计算机三级--嵌入式

时间:2024-03-21 21:25:13浏览次数:23  
标签:操作系统 -- CPU 嵌入式 硬件 OS ARM 三级

计算机三级--嵌入式

考前两天开始学习记录,根据考试大纲总结的,我将展示大学生速成的威风。

文章参考链接:

计算机三级嵌入式一个月备考----知识点_计算机三级嵌入式要准备多久-CSDN博客

如何理解图像深度:8bit、16bit、24bit、32bit; 16.7M色彩_图片位深度-CSDN博客

嵌入式三级知识点、错题总结_mmu即存储管理单元,是许多高性能处理器所必须的重要部件之一。arm的mmu (memory m-CSDN博客

计算机嵌入式三级备战(总结版)-云社区-华为云 (huaweicloud.com)

【计算机三级嵌入式】考前学习笔记(二)——基本寻址方式、ARM指令集与伪指令介绍_armv7寻址方式-CSDN博客

一、嵌入式系统

嵌入式系统的特点:
专用型、隐蔽型、资源受限、高可靠性、软件固化、实时性

嵌入式系统CPU的特点:
支持实时处理、低功耗、结构可扩展性、集成了测试电路
(CPU范围很广,4,8,32,64位都属于嵌入式系统CPU的范围)

影响CPU性能的主要因素:
主频、指令系统、高速缓冲存储器容量和结构、逻辑结构
CPU的时钟频率已经超过10GHZ(不是工作频率)

嵌入式系统硬件
硬件主体是 中央处理器和存储器
软件主体是 操作系统和应用软件
软硬件的复杂程度可分为低端系统、中端系统、高端系统

嵌入式最小硬件系统组成:
(1) 时钟电路
(2) 电源电路
(3) 存储器
(4) 复位电路
(5) 调试测试接口

高速组件采用的标准是AHB低速组件采用的标准是APB

中央处理器主要由运算器、控制器、寄存器和高速缓冲区组成(高速缓冲区(Cache)增加少量的成本,就能提高性能,CPU使用最频繁的少量代码和数据放在高速缓冲区)

系统所使用的存储器的存储特性可分为RAM(随机存取存储器)和ROM(只读存储器)
存储器的物理位置可分为 片内存储器、片外存储器、外部存储器

储存结构可分为冯·诺依曼结构和哈佛结构 (ARM不都是哈佛结构)

体系结构可分为CISC(复杂指令集结构)和RISC(精简指令集结构) (ARM都是RISC)
字长可分为:8位、16位、32位、64位
不同内核系列可分为:51、ARM等

二、ARM处理器

ARM处理器在ARM11后可分为A系列、R系列、M系列
Cortex-A—面向性能密集型系统的应用处理器内核
Cortex-R—面向实时应用的高性能内核
Cortex-M—面向各类嵌入式应用的微控制器内核

ARM处理器有三种工作状态分为:
ARM状态、Thumb及Thumb-2状态(R、M系列支持)、调试状态
ARM状态工作在32位指令状态、Thumb工作在16位指令状态

MPU是ARM处理器的内存保护单位
MMU是ARM处理器的内存管理单位

ARM处理器的工作模式
1、用户模式(Usr):用于正常执行程序;

2、快速中断模式(FIQ):用于高速数据传输;

3、外部中断模式(IRQ):用于通常的中断处理;

4、管理模式(svc):操作系统使用的保护模式;

5、数据访问终止模式(abt):当数据或指令预取终止时进入该模式,可用于虚拟存储以及存储保护;

6、系统模式(sys):运行具有特权的操作系统任务;

7、未定义指令中止模式(und):当未定义的指令执行时进入该模式,可用于支持硬件。

ARM处理器的中断异常
中断异常图

三、AMBA总线协议

AMBA是由ARM公司研发推出的一种高级微控制器总线架构(Advanced Microcontroller Bus Architecture)。

按照AMBA规范,以ARM内核为基础的嵌入式处理芯片采用系统总线与外围总线的层次结构构建片上系统

AMBA包含了四种不同的总线标准(AHB、ASB、APB、AXI)
其中低速总线 APB是连接外围总线高速总线 AHB是连接系统总线

连接AMBA的系统总线外围总线的是桥接器

AMBA有四个版本(ARM7和ARM9用的不是一个AHBA标准)

四、实时系统(RTOS)

RTOS的三个主要实时指标:响应时间、吞吐量、生存时间

RTOS响应时间的具体指标:中断延迟时间、任务切换时间

RTOS的属性:时间约束性、可预测性、可靠性(确定性)

响应时间实时系统分成三类:
强实时系统:响应时间再毫秒级或微秒级
普通实时系统:响应时间一般在几秒
弱实时系统:响应时间一般在数十秒

实时系统的属性包括可靠性、可预测性、时间约束性

任务执行时间超过截止时间后系统的收益变为负,称为硬实时操作系统
任务执行时间超过截止时间后系统的收益下降,但仍为正,这个叫软实时操作系统

五、操作系统的分类

常见分类:
手机:Android、IOS
电脑:UNIX、LINUX、MacOS、Windows、UNIX

按内核分类
微内核操作系统:Symbian、VxWorks、uC/OS-II、QNX、IOS微内核(各功能切换之间开销较大)
单(宏)内核 :Andriod OS WinCE Linux Mac OS DOS

1、uC/OS-II

uC/OS-II是抢占式,微内核的操作系统

可管理64个任务,其中8个任务是系统提供的,56个是用户自己编写的

μC/OS-II的任务的5种状态
休眠态(Dormant)、就绪态(Ready)、运行态(Running)、挂起态(Pending)或等待态(Waiting)、被中断态(Interrupted)

μC/OS-II的软件结构:应用软件层、API层、内核层、设备驱动层

uC/OS-II 的事件控制块有4种实现函数:
OSSemCreate()、 OSMutexCreate() 、
cOSMboxCreate() 、OSQCreate()

μC/OS-II系统内核提供的基本功能
任务管理、任务间通信与同步、任务调度、时间管理、内存管理

移植μC/OS-II工作需要改:
OS_CPU.H、OS_CPU_A.S、OS_CPU_C.C

2、VxWorks

VxWorks是硬实时,微内核操作系统

移植VxWorks操作系统有4种操作类型:
宿主机移植、体系结构移植、目标板移植、升级以前Tornado集成开发环境版本的BSP到最新版本

VxWorks不开源

3、Linux

Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个基于POSIX多用户、多任务、支持多线程和多CPU的操作系统。

它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。

Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

Linux的运行效率低于Unix

嵌入式Linux系统主要是由用户进程、OS服务组件、Linux内核组成

嵌入式Linux进程间通信机制
信号、管道、消息队列、信号量、共享内存套接字

Linux内核由5个子系统组成:
进程调度(SCHED)、内存管理(MM)、虚拟文件系统(VFS)、
网络接口(NET)、进程间通信(IPC)

4、IOS

IOS的前身是UNIX-BSD

IOS系统结构的四个层次:
核心操作系统
核心服务层
媒体层
触摸框架层

六、图像、音频、视频类

图像

图像获取步骤:
扫描、分色、取样、量化

图像的数据量 = 图像水平分辨率 * 图像垂直分辨率 * 像素深度/ 8

GIF图像文件格式颜色数目较少,文件特别小,适合互联网传输
JPEG图像文件格式是静止图像数据压缩编码的国际标准,它在相机和互联网中被广泛使用

像素深度

图片深度

从图片深度来看,图片可以分为8位, 16位, 24位, 32位等。

像素值

说的直白一些,图片可以看成是一个2维数组组成的矩形结构。每个格子里存放的是图片在此坐标处的像素的取值,即这一点的颜色值。

像素值范围
  • 8位

image-20240321203221478

总共显示256种颜色
取值范围:0~255

  • 16位

image-20240321203306766

总共显示65536种颜色
取值范围:0~65535

  • 24位

image-20240321203327071

总共显示16777216种颜色
取值范围:0~16777215

  • 32位

32位:Alpha透明度 + 24位

image-20240321203406626

image-20240321203415358

音频

音频处理步骤:
取样、量化、编码

视频

有四种压缩编码 MPEG-1、MPEG-2、MPEG-3、MPEG-4
MP3音乐格式采用过MPEG-1
目前数字有线电视所传输的数字视频采用的压缩编码是 MPEG-2
MPEG-3会导致画面轻微扭曲

HDMI(高清晰度多媒体接口 )
HDMI是一种数字化音频/视频接口,适合影像传输
HDMI最高数据传输速度为10.2Gbps

量化概念:
量化是把每个样本的模拟量转换成数字量来表示
量化过程往往也称为A/D转换(模数转换)
音频信号量化后的样本一般用8位、12位或16位的二进制整数表示(称为“量化精度”)
量化精度越高,声音的保真度越好,量化精度越低,声音的保真度越差

七、编码

1、GB2312

GB2312的所有字符在GB18030全部存在且编码相同
GB2312采用双字节进行存储和传输汉字
GB2313大约有6000多个汉字 以及一些图片符号(包括俄文 日本假字 拉丁文 汉语拼音 希腊文等)

2、GB18030

GB18030采用双字节或四字节存储和传输汉字
GB18030与UCS/Unicode均包含中日韩统一汉字(CJK)约7万多个
GB18030中的汉字与UCS/Unicode中的汉字编码不相同

3、UTF-8

Unicode/UTF-8采用三个字节存储和传输汉字
UTF-8和UTF-16是实现UCS/Unicode的两种不同的编码方案

4、UTF-16

Unicode/UTF-8采用三个字节存储和传输汉字
Unicode/UTF-16采用双字节存储和传输汉字
UTF-16 是双字节可变长编码
UTF-8和UTF-16是实现UCS/Unicode的两种不同的编码方案

八、引导加载程序

引导加载程序,英文简写是 Boot。

1、板机支持包(BSP)

BSP是介于主板硬件和操作系统中驱动层程序之间的一层,一般认为它属于操作系统一部分,主要是实现对操作系统的支持,为上层的 驱动程序提供访问硬件设备寄存器的函数包,使之能够更好的运行于硬件主板。

BSP主要功能为屏蔽硬件,提供操作系统及硬件驱动,具体功能包括:
单板硬件初始化,主要是CPU的初始化,为整个软件系统提供底层硬件支持
为操作系统提供设备 驱动程序和系统 中断服务程序
定制操作系统的功能,为软件系统提供一个实时多任务的运行环境
初始化操作系统,为操作系统的正常运行做好准备。

U–Boot是被认为功能全面 具有灵活性 以及应用广泛的开放源码板级支持包。
U-Boot是一种通用的引导加载程序,对PowerPC系列处理器支持最为丰富,对Linux操作系统的支持最为完善。

2、硬件抽象层(HAL)

硬件抽象层是位于操作系统 内核与硬件电路之间的接口层,其目的在于将硬件抽象化。它隐藏了特定平台的硬件接口细节,为操作系统提供虚拟硬件平台,使其具有硬件无关性,可在多种平台上进行移植。

HAL的作用 提供标准库 提供标准接口 在main()函数之前就完成了初始化

九、ARM指令集

分支指令

在这里插入图片描述

BL指令常用于函数调用,需要返回到调用处继续执行。
BLX指令常用于切换状态并函数调用,就是加起来嘛,很好理解

加载、存储指令

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

本题D只是跳转,如果子程序调用是要返回的~

ARM汇编器所支持的伪指令

在这里插入图片描述

其他知识点:【计算机三级嵌入式】考前学习笔记(二)——基本寻址方式、ARM指令集与伪指令介绍_armv7寻址方式-CSDN博客

十、小知识点

1、交流变直流(AC-DC) 直流到直流(DC-DC) 低压差稳压器(LD0)
2、GPIO口输入具有缓冲作用 GPIO输出具有锁存作用
3、RTC中的时钟分频系数受时钟源控制,无法通过编程控制
4、基于Cortex-M0的专家处理器为SC100 基于Cortex-M3的专家处理器为SC300
5、IP是中文知识产权的英文缩写
6、对于内存容量而言,1KB=1024B;而对于外存(如磁盘、U盘等)容量而言,1KB=1000B
7、DSP的特殊指令SIMD表示单指令多数据
8、NOR flash 和 NAND flash 是市场上主要的闪存技术、NOR以字节读取 NAND以行(页)读取 NAND具有很长的使用寿命、存储卡和U盘均使用的是NAND
9、触摸屏分为电阻屏和电容屏(电阻屏便宜,单点触摸、不支持滑动操作。电容屏支持多点触摸、滑动操作)
10、字符的形状有两种描述方法 点阵法 轮廓法
11、编译器GCC(参数-c,-g)、调试器GDB(参数file,kill,run,watch)
12、ADS1.2中的一个工程文件至少有一个生成目标,生成来源可为Debug Release DebugRel
13、
RS-232 无法消除共模干扰,传输距离是15m,负逻辑信号传输
RS-485 有很强的抗共模干扰,传输距离约为1200m,差分信号传输(通过RS-485可构成主从式多机通信系统,主机可采用轮询方式与个从机建立通信连接)
14、JTAG支持在线编程、有5根信号线、和系统总线(APB)相连、JTAG调试不占用IO口或存储器、51单片机不支持JTAG调试
15、集成电路根据规模可分为:
小规模、中规模、大规模、超大规模、极大规模
嵌入式处理芯片一般是超大规模和极大规模
集成电路的工作速度取决于组成逻辑门电路的晶体管的尺寸、集体管尺寸越小,其极限工作频率越高,门电路的开关速度越快
集成电路的集成度每过18-24月翻一翻这就是有名的摩尔定律

标签:操作系统,--,CPU,嵌入式,硬件,OS,ARM,三级
From: https://www.cnblogs.com/hnu-hua/p/18088260

相关文章

  • 两数相加详细解说
    Definitionforsingly-linkedlist.publicclassListNode{intval;ListNodenext;ListNode(){}ListNode(intval){this.val=val;}ListNode(intval,ListNodenext){this.val=val;this.next=next;}}*/classSolution{publicListNodead......
  • C++反射
    反射教程让程序看到自己的数据,并且能够对数据进行操作类型萃取对类型做萃取,有一组混合类型,将特定类型获取出来核心思路:使用模板来匹配查找例子:指针类型萃取解除一层指针,三级变二级,二级变一级template<typenameT>structremove_pointer{};template<typenameT>stru......
  • C语言中的printf和sprintf的用法及区别
    sprintf函数是C语言中用于格式化输出到字符串的函数。它的原型如下:intsprintf(char*buffer,constchar*format,[argument]…);str:指向存储输出结果的字符数组的指针。format:格式化字符串,包含要输出的文本和格式说明符。[argument]:可变参数列表,用于提供要插入格式化......
  • 8、MySql数据库连接
    fromflaskimportFlaskfromflask_sqlalchemyimportSQLAlchemyfromsqlalchemyimporttextapp=Flask(__name__)#主机IP地址HOSTNAME="127.0.0.1"#MySql的监听端口号,默认3306PORT=3306#用户名,密码,自己设置的USERNAME="root"PASSWORD="root&......
  • C. Anji's Binary Tree
    网站:https://codeforces.com/problemset/problem/1900/C这里比较容易搞混的就是各个节点的关系,不要用2*n来表示左孩子!!以及记得添加快读快写ios::sync_with_stdio(false);cin.tie(nullptr);加在intmain()里即可这里还有一个priority_queue的小技巧:结构体内部定义运算符,好像和......
  • C语言常用格式字符
    %d或%i  有符号十进制整数%u  无符号十进制整数%ld  有符号长整型%c  字符%s  字符的字符串%f  十进制浮点数//------------------------分隔符------------------------%o  有符号八进制%x  无符号十六进制整数//--------------------......
  • 非常不正经的鞅与停时定理理解
    鞅与停时计数题的小技巧,也许以后会更详细学一学,目前参考价值不高。直接看题目。例题:一共有\(n\timesm\)张卡,\(n\)种,每种各\(m\)个。手中维持有\(m\)张,知道初始的时候每一种牌有\(a_i\)个,每次随机一张扔掉,并且在牌堆中随机抽一张,然后把扔掉的牌插入牌堆。问多少次之......
  • 中位数贪心
    中位数贪心题目1题目链接462.最小操作次数使数组元素相等II-力扣(LeetCode)题目大意给你一个长度为n的整数数组nums,返回使所有数组元素相等需要的最小操作数。在一次操作中,你可以使数组中的一个元素加1或者减1。示例输入:nums=[1,2,3]输出:2解释:只需要两次操......
  • ArrayList的扩容机制以及ArrayList与LinkedList的区别
    ArrayList的扩容机制假设采用无参构造器来实列化ArrayList对象ArrayListarrayList=newArrayList();此时,arrayList的初始容量为零,当第一次调用add方法时,会触发扩容机制,容量扩容为10。此后,在调用add方法时,如果容量不足,则容量会扩容为当前容量的1.5倍。capcity=capacity......
  • 2024-03-21
    2024-03-21GrassCownoisseurG上周没写完的题分析过思路了,直接放码#include<iostream>#include<cstring>#include<algorithm>#include<vector>#include<queue>usingnamespacestd;constintN=100100,M=2*N;intn,m;inthd[N],edg[N],nxt[N],......