【系统架构设计】嵌入式系统设计(1)

【系统架构设计】嵌入式系统设计(1)

  • 嵌入式系统概论
  • 嵌入式系统的组成
    • 硬件
      • 嵌入式处理器
      • 总线
      • 存储器
      • I/O 设备与接口
    • 软件
  • 嵌入式开发平台与调试环境
    • 交叉平台开发环境
    • 交叉编译环境
    • 调试

嵌入式系统概论

嵌入性、专用性、计算机系统是嵌入式系统的三个基本的核心要素。典型的嵌入式系统具有特点如下:

  • 系统专用性强
  • 系统实时性强
  • 软硬件依赖性高
  • 处理器专用
  • 多种技术紧密结合
  • 系统透明性
  • 系统资源受限

嵌入式系统的组成

一般由软件和硬件两部分组成,其中嵌入式处理器、存储器和外部设备构成整个系统的硬件基础,嵌入式系统的软件部分可以分为3个层次:系统软件、应用支撑软件、应用软件。其中,系统软件和支撑软件是基础,应用软件是最能体现整个嵌入式系统的特点和功能的部分。

硬件

如图是一个嵌入式系统的基本硬件架构,其中,微处理器是整个嵌入式系统的核心,负责控制系统的执行;外部设备是嵌入式系统同外界交互的通道,常见的外部设备有Flash存储器、键盘、输入笔、触摸屏、液晶显示器等输入/输出设备;存储器主要用于存放系统的程序代码、数据和系统运行的结果
在这里插入图片描述

嵌入式处理器

嵌入式处理器可分为嵌入式微处理器(Embedded Micro Processing Unit,EMPU)嵌入式微控制器(Embedded Micro Controlling Unit,EMCU)嵌入式数字信号处理器(Embedded Digital Signal Processor,EDSP)嵌入式片上系统(Embedded System On Chip)

  • EMPU具有体积小、功耗低、质量轻、成本低、可靠性高等优点;
  • EMCU相比前者,具有体积更小、功耗和成本更低、可靠性更高的特点,目前,嵌入式微控制器的品种和数量最多,约占嵌入式系统市场份额的 70%;
  • EDSP是一种专门用于信号处理的处理器;
  • 嵌入式片上系统是一种在一块芯片上集成很多功能模块的复杂系统,可以大幅度缩小了系统的体积,降低了系统的复杂度,增强系统的可靠性

总线

总线是连接计算机系统内部各个部件的共享高速通路
在这里插入图片描述

存储器

嵌入式系统的存储器主要包括主存和外存,嵌入式系统的存储器主要分为三种:高速缓存(Cache)、片内主存和片外主存、外存

  • 高速缓存是存放当前使用最多的程序代码和数据的,即主存中部分内容的副本
  • 主存是处理器能够直接访问的存储器,用来存放系统和用户的程序和数据系统上电后,主存中的代码直接运行,主存的主要特点是速度快
  • 外部存储器是不与运算器直接联系的后备存储器,用来存放不常用的或暂不使用的信息,外存一般以非易失性存储器构成,数据能够持久保存,即使掉电,也不消失

在这里插入图片描述

I/O 设备与接口

嵌入式系统中接口电路的设计需要首先考虑的是电平匹配问题,嵌入式系统微处理器所提供与接收信号的电平,必须与所连接的设备的电平相匹配,否则将导致电路损坏或逻辑判定错误。其次,还要考虑驱动能力和干扰问题等因素。

软件

在这里插入图片描述

嵌入式开发平台与调试环境

交叉平台开发环境

嵌入式系统的软件开发方法采用的不是通用的开发方法,而是交叉平台开发方法(Cross Platform Development,CPD),即软件在一个通用的平台上开发,而在另一个嵌入式目标平台上运行。这个用于开发嵌入式软件的通用平台通常叫作宿主机系统,被开发的嵌入式系统称为目标机系统。而当软件执行环境和开发环境一致时的开发过程则称为本地开发(Native Development,ND)

在这里插入图片描述

交叉编译环境

宿主机提供的基本开发工具是交叉编译器、交叉链接器、源代码调试器。作为目标机的嵌入式系统则可能提供一个动态装载器、链接装载器、监视器、一个调试代理等。在目标机和宿主机之间有一组连接,通过这组连接程序代码映像从宿主机下载到目标机,这组连接同时也用来传输宿主机和目标机调试代理之间的信息。

在这里插入图片描述
通常,一个目标文件包含:

  • 关于目标文件的通用信息,如文件尺寸、启动地址、代码段和数据段等。
  • 机器架构特定的二进制指令和数据。
  • 符号表和重定位表。
  • 调试信息。

ps: 以上部分其实很好理解,就是平时的开发和编译过程,下面的调试要注意一下,跟平时调试有点区别,只是有时为图方便也在用。

调试

通用系统与嵌入式系统的软件调试过程存在着明显的差异。对于通用系统,调试工具与被调试的程序位于同一台计算机上,调试工具通过操作系统的调试接口来控制被调试的程序。但是在嵌入式系统中,由于资源的限制,不能直接在其上开发应用程序,调试过程通常也以交叉方式进行的。在实际开发实践中,经常采用的调试方法有直接测试法、调试监控法、在线仿真法、片上调试法、模拟器法等。

  • 直接调试法:将目标代码下载到目标机上,让其执行,通过观察指示灯来判断程序的运行状态;
  • 调试监控法也叫插桩法。目标机和宿主机一般通过串行口、并行口或以太网相连接,采用这种方法还需要在宿主机的调试器内和目标机的操作系统上分别启动一个功能模块,然后通过这两个功能模块的相互通信来实现对应用程序的调试。在目标机上添加的模块叫作桩,也叫调试服务器或调试监控器,主要有两个作用:其一,监视和控制被调试的程序;其二,跟宿主机上调试程序通信,接收控制指令,返回结果等。在进行调试的时候,宿主机上的调试器通过连接线路向调试监控器发送各种请求,实现目标机内存读/写和寄存器访问、程序下载、单步跟踪和设置断点等操作
  • 在线仿真法:是一种用于替代目标机上 CPU 的设备。
  • 片上调试法:是 CPU 芯片内部的一种用于支持调试的功能模块。这种芯片的外面有跟调试相关的引脚,这些引脚在调试的时候被引出,形成一个与外部相连的调试接口,这种 CPU 具有调试模式和执行模式两种不同的运行模式。当满足了特定的触发条件时,CPU 进入调试模式,在调试模式下,CPU 不再从内存中读取指令,而是通过其调试端口读取指令,通过调试端口还可以控制 CPU 进入和退出调试模式
  • 模拟器法:是运行于宿主机上的一个纯软件工具,它通过模拟目标机的指令系统或目标机操作系统的系统调用来达到在宿主机上运行和调试嵌入式应用程序的目的

ps: 简单讲,直接调试法就看目标机硬件响应;调试监控法宿主机和目标机分别开客户端通信控制操作;在线仿真法就是做一个目标机的模拟系统来调试;片上调试法就是目标机有调试和运行模式;模拟器法就是常用的目标机上开模拟器使用。

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

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

相关文章

【话题讨论】VS Code:倍增编程动力,实现效率飞跃

目录 引言 一、详情介绍 功能特点 使用场景 提高工作效率 二、效率对比 2.1 高度可定制性与丰富的插件生态 2.2 智能的代码补全与导航 2.3 内置的调试器与版本控制集成 2.4 轻量级与跨平台 2.5 选择合适工具的重要性 2.6 实际案例或数据展示 三、未来趋势 3.1 编…

能见度监测站—实时监测道路能见度情况

型号:TH-NJD10】能见度监测站是一种专门用于自动观测和存储气象观测数据的设备,它通过高科技手段实时监测大气能见度的变化,为多个领域提供重要的数据支持。主要基于光在大气中的衰减规律。传感器系统中的发射器发出光线,照射到空…

shell编程--正则表达式

正则表达式 正则表达式都被置于两个正斜杠之间;如/l[oO]ve/ 示例 匹配数字的脚本,用户输入创建账号的数量 语法: [[ ^[0-9]$ ]] 表示必须输入数字 #!/bin/bashwhile : do read -p "输入数字:" numif [[ $num ~ ^[…

产品需求过程管理重要性

产品需求过程管理重要性 背景 以下都是真实事项经历回顾,在产品开发过程中,产品经理与研发团队之间的沟通至关重要。然而,沟通不畅或信息缺失常常导致需求无法准确传达,最终影响产品的成功。以下是一些常见的问题: 1.需…

Jmeter执行多机联合负载

1、注意事项,负载机必须要安装jre,控制机则必须安装jdk。要配置同网段ip,双向关闭防火墙。 每个负载机要平均承担线程数。 具体执行事项查看上面截图所示,控制机和负载机配置。 2、先给负载机设置ip地址,保持与控制…

C++项目详细分析_WebServer

前言 项目地址 项目介绍 源码详细分析 项目路径如下: 1.webserver.cpp 头文件和构造函数 #include "webserver.h"WebServer::WebServer() {// http_conn类对象users new http_conn[MAX_FD];// root文件夹路径char server_path[200];getcwd(server…

prometheus基于文件的服务发现

之间讲到,prometheus监控的对象就来自于他的配置文件里面的targets,如果要新增被监控对象,就继续往targets里面加。 但这个缺点是,每次修改完后都得重启prometheus。有没有什么办法,能在不重启的情况下增加target呢&a…

【Qt】 QComboBox | QSpinBox

文章目录 QComboBox —— 下拉框QComboBox 属性核心方法核心信号QComboBox 使用 QSpinBox —— 微调框QSpinBox 属性核心信号QSpinBox 使用 QComboBox —— 下拉框 QComboBox 属性 QComboBox —— 表示下拉框 currentText ——当前选中的文本 currentindex ——当前选中的条…

【硬件知识】从零开始认识GPU

【硬件知识】从零开始认识GPU 一、GPU的发展史简介二、GPU主要构成三、GPU与AI的关系 一、GPU的发展史简介 GPU(图形处理器)的发展史是一段充满创新与变革的历程,它不仅改变了计算机图形显示的方式,还推动了高性能计算、人工智能…

盘点大模型中转 API 平台,并比较费用

1. 大模型中转 API 平台集合 1.1 DevAGI DevAGI开放平台 Open AI 价格 1.2 Deepbricks 官网价格 1.3 AiHubMix AiHubMix 官网 使用教程 价格: 1.4 WildCard 开卡订阅 WildCard官网 价格 有3.5% 的充值手续费,API 价格与 Open AI 一样 2. 价…

机器学习:opencv--图像边缘检测

目录 前言 一、图像边缘检测 1.边缘检测 2.边缘检测的方法 二、Sobel算子 1.Sobel算子 2.计算 3.代码实现 4.代码步骤解析 1.导入图片 2.处理x轴和y轴的边缘并相加 三、Scharr算子 1.Scharr算子 2.计算 3.代码实现 四、Laplacian算子 1.Lapla…

PHP 项目流水线部署与错误问题解决

在现代软件开发中,持续集成(CI)和持续部署(CD)已成为确保代码质量和加快发布速度的关键实践。本文将介绍如何构建一个 PHP 项目的流水线部署,涵盖从代码提交到生产环境的自动化流程。 #### 1. 什么是流水线…

高效能低延迟:EasyCVR平台WebRTC支持H.265在远程监控中的优势

TSINGSEE青犀视频EasyCVR视频汇聚平台在WebRTC方面确实支持H.265编码,尽管标准的WebRTC API在大多数浏览器中默认并不支持H.265(也称为HEVC,高效视频编码)编码。EasyCVR平台通过一系列创新的技术手段,实现了在WebRTC协…

深入Redis:细谈持久化

Redis的数据是保存在内存中的,内存里面的数据是不持久的,要想做到持久化,必须要把在内存中的数据储存到硬盘上。 Redis速度非常快,数据只有在内存中才有这样的速度,但是为了持久,数据还是要想办法保存到硬…

WordPress 资源展示型下载类主题 CeoMax-Pro_v7.6 开心版

WordPress 资源展示型下载类主题 CeoMax-Pro_v7.6 开心版; CeoMax-Pro是一款极致美观强大的WordPress付费资源下载主题,它能满足您所有付费资源下载的业务需求! 你的想法与业务不能被主题所限制!CeoMax-Pro强大的功能&#xff0…

Unity(2022.3.41LTS) - UI详细介绍- Button(按钮)TMP

目录 零.简介 一、基本功能与重要性 二、属性和设置详解 三、使用方法深入探讨 四、优化和注意事项 零.简介 在 Unity 中,按钮(Button)是用户界面中非常重要的交互元素之一。以下是对 Unity 中按钮的更详细介绍: 一、基本功…

使用session实现单用户多端登录限制

基本流程: 首先获得当前浏览器访问服务器的session,然后根据用户的信息(如id等)在redis中查找,如果找到,并且和查找对应的session不同,则可以判断已经有其他设备登录过了,这个时候就…

基于生成对抗模型GAN蒸馏的方法FAKD及其在EdgesSRGAN中的应用

文章目录 FAKD系列论文paper1: FAKD:用于高效图像超分辨率的特征亲和知识蒸馏(2020)ABSTRACT1. INTRODUCTION2. PROPOSED METHOD2.1. Feature Affinity-based Distillation (FAKD) 2.2. Overall Loss Function3. EXPERIMENTAL RESULTS3.1. Ex…

【读书笔记-《30天自制操作系统》-14】Day15

本篇内容开始讲解多任务。本篇内容结构很简单,先讲解任务切换的原理,再讲解任务切换的代码实践。但是涉及到的知识不少,理解上也有些难度。 1. 任务切换与多任务原理 1.1 多任务与任务切换 所谓多任务,指的是操作系统同时运行多…

【python因果推断库2】使用 PyMC 模型进行差分-in-差分(Difference in Differences, DID)分析

目录 使用 PyMC 模型进行差分-in-差分(Difference in Differences, DID)分析 导入数据 分析 使用 PyMC 模型建模银行业数据集 导入数据 分析 1 - 经典 22 差分-in-差分 (DiD) 分析 2 - 具有多个干预前后观测值的差分-in-差分 (DiD) 分析 使用 PyMC…