【系统架构师】-第16章-嵌入式系统架构设计理论与实践

1、嵌入式系统发展

第一阶段:单片微型计算机 (SCM) 阶段,即单片机时代,五操作系统

第二阶段:微控制器 (MUC) 阶段,有简单操作系统

第三阶段:片上系统 (SoC),兼容各种微处理器

第四阶段:以Internet为基础的嵌入式系统,嵌入式网络化

第五阶段:在智能化、云技术推动下的嵌入式系统

2、嵌入式硬件体系结构

嵌入式微处理器(控制器 MCU)

存储器 (RAM/ROM)、

内(外)总线逻辑

定时/计数器 (Time)、 看门狗电路、

I/O接口(串口、网络、 USB、JTAG )

 外 部 设 备 (UART、LED等)

1、嵌入式微处理器

● 微处理器 (Micro Processor Unit,MPU)

由通用计算机中的CPU演变而来

相当于大脑,主要有:Am186/88、386EX、SC-400、PowerPC、68000、MIPS、ARM

● 微控制器 (Micro Control Unit,MCU)

又称单片机,以一种MPU为核心

● 信号处理器 (Digital Signal Processor,DSP)

● 图形处理器 (Graphics Processing Unit,GPU)

● 片上系统 (System on Chip,SoC)

定义出整个应用系统,标准的V H D L等语言描述

2、存储器

1、RAM(Random Access Memory, 随机存取存储器)

操作系统和应用程序的所有正在运行的数据和程序都会放置其中,并且随时可以对存放在里面的数据进行修改和存取。

由持续的电力提供,一旦系统断电,存放在里面的所有数据和程序都会自动清空掉,并且再也无法恢复

分类:

DRAM(Dynamic RAM, 动态随机存取存储器)

SRAM(Static RAM, 静态随机存取存储器)

VRAM(Video RAM, 视频内存)

SDRAM(Synchronous DRAM, 同步动态随机存取存储器):与 C P U实现外频Clock同步的内存模式

2、ROM(Read Only Memory, 只读存储器)

其中的代码与数据将永久保存,并且不能够进行修改。一般应用于 P C系统的程序码、主
机板上的BIOS

分类:

MASK ROM (掩模型只读存储器):原始样本,用于复制

PROM(Programmable ROM, 可编程只读存储器):仅一次写入

EPROM(Erasable Programmable, 可擦可编程只读存储器)

Flash Memory (快闪存储器):直接在主机板上修改内容而不需要将IC拔下的内存,当电源关掉后储存在里面的资料并不会流失掉,在写入资料时必须先将原本的资料清除掉,然后才能再写入新的资料

3、内(外)总线逻辑

1、总线分类1:

数据总线:用于在C P U与R A M之间来回传送需要处理或者需要存储的数据;

地址总线:用于指定在R A M之中存储的数据的地址;

控制总线:将微处理器控制单元的信号传送到周边设备。

扩展总线和局部总线则是根据系统需要而添加

2、总线分类2:

片内总线: CPU芯片内部总线,用于连接芯片内部各个元件(如ALU 寄存器、指令
部 件 )

系统总线:计算机内部总线,它。 是连接计算机系统的主要组件。 如用于连接CPU 主存
和I/O接口的总结。系统总线又称板级总线或内部总线。

局部总线:计算机内部总线,通常是指在少数组件之间交换数据的总线,如CPU到北桥
的总线,内存到北桥的总线,局部总线的协议一般由设备制造商定义。在体系结构较简
单的计算机系统中,局部总线和系统总线为同一条总线。

通信总线:嵌入式系统主机外部总线,用于连接外部输入输出设备或者其他不同的计算
机系统。通信总线又称外部总线或外设总线。

4、看门狗电路

嵌入式系统必须具备的一种系统恢复能力,系统发生软件问题和程序跑飞后使系统重启

工作时自动计数(定时任务),程序流程定期将其复位。

3、嵌入式软件架构

BSP(板级支持包):

是介于主板硬件和操作系统中驱动层之间的一层

引导加载程序BootLoader和设备驱动程序

  1. 硬件相关性,BSP需为操作系统提供操作和控制具体硬件的方法
  2. 操作系统相关性,不同的操作系统具有各自的软件层次结构,因此不同操作系统具有特定的硬件接口形式

1、层次化模式架构:抽象不同层级

2、递归模式架构:不断的拆解

2.1)自顶向下:自顶向下的工作流从系统层级开始并标识结构对象

2.2)自底向上:自底向上专注于域的构造,首先确定域中的关键类和关系。要求开发者以往有丰富的开发经验

嵌入式操作系统(EOS)

1)硬件层、抽象层、操作系统层、中间件层和应用层

2)主要特点:微型化、代码质量高、专业化、实时性强、可裁减和可配置

3)分类:

实时:VxWorks、Nucleus。高精度计时系统、多级中断机制、实时调度机制

非实时:移动电话、机顶盒、电子书、Android、IOS、WinCE

VRTX:实时多任务操作系统

LynxOS:分布式嵌入式实时操作系统

4、嵌入式架构设计方法

1、ABSD

基于架构的软件设计。由业务、质量和功能需求的组合驱动软件架构设计

自顶向下,递归细化的软件开发方法

2、ADD (Attribute-Driven Design 属性驱动)

开发过程:

需要经历评审、选择驱动因子、选择系统元素、选择设计概念、实体化元素和定义接口、草拟视图和分析评价等七个阶段

低功耗设计

1、软硬件协同设计

2、编译优化

3、减少系统的持续运行时间,算法优化

4、用中断代替查询

5、进行电源的有效管理

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/746341.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

常见滤波方式的区别的优势

一. 限幅滤波法 给定一个最大偏差X&#xff0c;如果本次值与上次差值小于X&#xff0c;则本次有效&#xff0c;否则无效&#xff0c;使用上次值代替。 #incldue <stdio.h>#define X 2 int lastvalue; //限幅滤波法 int filter(void) {int nowValue ;nowValue getValue…

软件测试 —— 测试用例设计报告

写出测试网站的测试用例&#xff0c;测试网站具体内容可看团购网站系统需求说明书1.2.doc 一、流程1&#xff1a;注册→登录 图1&#xff1a;注册->登录流程图 1、 使用场景设计法设计测试用例 1&#xff09; 找出基本流和备选流 基本流注册用户-成功登录系统备选流1注册…

Jenkins cron定时构建触发器

from&#xff1a; https://www.jenkins.io/doc/book/pipeline/syntax/#cron-syntax 以下内容为根据Jenkins官方文档cron表达式部分翻译过来&#xff0c;使用机翻加个人理解补充内容&#xff0c;包括举例。 目录 介绍举例&#xff1a;设置方法方法一&#xff1a;方法二&#xf…

3.2_1 虚拟内存的基本概念

3.2_1 虚拟内存的基本概念 虚拟存储技术也是存储空间扩充的一种技术&#xff0c;它比交换、覆盖技术要更先进一些。 &#xff08;一&#xff09;传统存储管理方式的特征、缺点 对于这种传统的存储管理方案&#xff0c;很多暂时用不到的数据也会长期占用内存&#xff0c;导致内存…

R 语言patchwork包拼图间隙

在R语言中&#xff0c;patchwork包是一个非常强大的工具&#xff0c;允许你轻松地将多个图表拼接在一起。如果你希望调整拼图间的间隙&#xff08;即图表之间的空白区域&#xff09;&#xff0c;可以通过使用plot_layout()函数来实现&#xff0c;其中可以指定guides参数和spaci…

【数据结构和算法初阶(C语言)】栈的概念和实现(后进先出---后来者居上的神奇线性结构带来的惊喜体验)

目录 1.栈 1.1栈的概念及结构 2.栈的实现 3.栈结构对数据的处理方式 3.1对栈进行初始化 3.2 从栈顶添加元素 3.3 打印栈元素 3.4移除栈顶元素 3.5获取栈顶元素 3.6获取栈中的有效个数 3.7 判断链表是否为空 3.9 销毁栈空间 4.结语及整个源码 1.栈 1.1栈的概念及结构 栈&am…

Codeforces Round 933 (Div. 3)

比赛地址传送门 A. Rudolf and the Ticket 题目大意&#xff1a; 给定两个数组和一个 k&#xff0c;要求从两个数组中各选一个数求和不大于 k&#xff0c;有多少种方案 思路&#xff1a; 维护一个数组 f[i] 代表小于等于 i 的数字的数量&#xff0c;遍历另一个数组&#xff0…

遇到:java.lang.reflect.InaccessibleObjectException: Unable to make错误应该如何解决

遇到 "java.lang.reflect.InaccessibleObjectException: Unable to make" 错误是因为你的代码尝试访问了一个不可访问的对象或方法。这通常会发生在使用反射机制时&#xff0c;尝试访问私有或受限制的成员时。要解决这个问题&#xff0c;你可以考虑以下几个步骤&…

高压辊磨机(辊压机)在矿物加工领域应用广泛 目前本土企业处于向高端转型阶段

高压辊磨机&#xff08;辊压机&#xff09;在矿物加工领域应用广泛 目前本土企业处于向高端转型阶段 高压辊磨机又称为辊压机、挤压磨&#xff0c;是基于料层粉碎原理设计的一种干式辊磨设备。高压辊磨机结构形式多样&#xff0c;但原理基本相似&#xff0c;主要由机架、高压工…

浅谈C++绑定器bind1st、bind2nd和函数对象function

今天我们先来谈谈C 标准库里面的绑定器bind1st&#xff0c;bind2nd 和函数对象function C 绑定器和函数对象 一、绑定器二、函数对象 一、绑定器 虽然在C11标准中这两个绑定函数已经被弃用&#xff0c;但仍然值得我们深入思考其底层原理。从字面上理解&#xff0c;“绑定” 这…

【3】文件读写

Python 读取文件的三种常见方法 使用open()函数打开文件&#xff0c;并使用read()方法读取文件的内容。例如&#xff1a; file open("filename.txt", "r") content file.read() file.close()使用with语句打开文件&#xff0c;并使用readlines()方法读取…

Explain

Explain EXPLAIN是MySQL提供的一种用于分析SQL查询执行计划的工具&#xff0c;通过它我们可以深入了解数据库如何执行一条SQL语句&#xff0c;以及优化器在选择索引、访问表和排序数据等方面的决策。 我整理了一份思维导图方便更好查看各个参数的意义&#xff0c;红色表示比较…

RabbitMq踩坑记录

1、连接报错&#xff1a;Broker not available; cannot force queue declarations during start: java.io.IOException 2.1、原因&#xff1a;端口不对 2.2、解决方案&#xff1a; 检查你的连接配置&#xff0c;很可能是你的yml里面的端口配置的是15672&#xff0c;更改为5672即…

css超出部分显示省略号

目录 前言 一、CSS单行实现 二、CSS多行实现&#xff08;CSS3出的&#xff0c;兼容性需要注意&#xff09; 三、微信小程序超过2行出现省略号实现 四、JavaScript脚本实现 前言 CSS文本溢出就显示省略号&#xff0c;就是在样式中指定了盒子的宽度与高度,有可能出现某些内…

LLM - 大语言模型(LLM) 概述

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://blog.csdn.net/caroline_wendy/article/details/136617643 大语言模型(LLM, Large Language Model)的发展和应用是一个非常广泛的领域&#xff0c;涉及从早期的统计模型到现代基于深度学…

【AI+CAD】(二)LLM和VLM生成结构化数据结构(PPT/CAD/DXF)

当前LLM和VLM在PPT生成任务上已经小有成效,如ChatPPT。 @TOC 1. PPT-LLM LLM根据用户的instruction生成规范的绘制ppt的API语句:即使是最强的GPT-4 + CoT也只能达到20-30%的内容准确度。 LLM输入:User_instruction(当前+过去)、PPT_content、PPT_reader_API。其中 PPT_rea…

Pandas教程16:DataFrame列标题批量重命名+空df数据判断+列名顺序重排

---------------pandas数据分析集合--------------- Python教程71&#xff1a;学习Pandas中一维数组Series Python教程74&#xff1a;Pandas中DataFrame数据创建方法及缺失值与重复值处理 Pandas数据化分析&#xff0c;DataFrame行列索引数据的选取&#xff0c;增加&#xff0c…

Latex 超长矩阵如何处理显示问题

问题 矩阵内容太多&#xff0c;不能完全显示。下面是我的处理方法。 双栏论文中矩阵跨栏显示 使用 \begin{figure*}给公式包起来&#xff0c;跨双栏 \begin{figure*}[t]\begin{equation}T_{PRY} \left[% \setlength\arraycolsep{2.5pt}\begin{array}{cccc}A & B …

面试经典150题——随机链表的复制

​前两天断更了两天有点事情&#x1f917; 1. 题目描述 2. 题目分析与解析 2.1 思路一 开始还是没什么思路&#xff0c;没思路那就先把题目解决不管方法的好坏。如果不考虑复杂度&#xff0c;该怎么解决&#xff1f; 可以有这样的一种思路&#xff1a; 首先复制链表的所有节…

【python绘图】turle 绘图基本案例

文章目录 0. 基础知识1. 蟒蛇绘制2. 正方形绘制3. 六边形绘制4. 叠边形绘制5. 风轮绘制 0. 基础知识 资料来自中国mooc北京理工大学python课程 1. 蟒蛇绘制 import turtle turtle.setup(650, 350, 200, 200) turtle.penup() turtle.fd(-250) turtle.pendown() turtle.pen…