【系统架构设计】嵌入式系统设计(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.mzph.cn/bicheng/53118.shtml

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

相关文章

0基础轻松玩转.NET Web API 8.0【CICD】项目实战

1.背景 最近在学习CI/CD,为了加快熟悉CI/CD,我实操了下基于.Net 8.0的CI/CD项目实战。Ci/CD就是自动化作业,实现项目自动编译、发布、执行等,也有用于拉取推送数据的场景。本文主要介绍了在win 11下搭建CI/CD,实现自动…

UEFI——PCD的简单使用

一、PCD的定义及概念 在UEFI固件接口中,PCD(Platform Configuration Database)是一个用于存储和访问平台特定配置信息的机制。PCD允许UEFI驱动程序和应用程序在运行时获取和设置平台相关的参数,而无需硬编码这些值。PCD变量可以被…

加速电商物流效率:推荐几款实用的快递批量查询工具

做电商必不可少的快递批量查询平台分享:固乔快递查询助手使用全攻略 在电商行业日益竞争的今天,高效管理物流信息成为了商家们不可或缺的一环。面对每天成百上千的订单和快递单号,如何快速、准确地查询并跟踪物流状态,成为了电商…

stun和trun

在 WebRTC 中,STUN(Session Traversal Utilities for NAT)和 TURN(Traversal Using Relays around NAT)是用于NAT穿透的两种不同的技术,它们解决的问题不同,因此在某些情况下需要同时使用。 ST…

产品需求过程管理重要性

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

C++基础【字符串】(Ac-Wing)

字符串加空格 #include <iostream> #include <cstring> #include <algorithm>using namespace std;int main() {string s;getline (cin, s);for (int i 0; i < s.size(); i )cout << s[i] << " "; }字符串插入 #include<bits/…

使用HTTP代理注意的点

“在网络世界中&#xff0c;HTTP代理扮演着桥梁的角色&#xff0c;帮助用户匿名访问网站、加速网页加载、绕过地区限制等。然而&#xff0c;不当或不安全地使用HTTP代理也可能带来一系列问题。以下是在使用HTTP代理时需要注意的几个关键点。” 一、选择可靠的代理服务商 首先&…

鹰眼应急实时三维重建装备,高质量交付中!

在《2024年地方应急管理科技信息化任务书》的指导和应急管理万亿国债支撑下&#xff0c;全国各地正积极推进应急管理现代化建设&#xff0c;全力提升“数据汇聚服务能力、监测预警能力、指挥调度能力、支撑保障能力”四项应急管理能力。 制定标准化流程规范&#xff0c;保障交…

[Leetcode 47][Medium]-全排列 II-回溯(全排列问题)

目录 一、题目描述 二、整体思路 三、代码 一、题目描述 原题地址 二、整体思路 和上一道Leetcode46相比&#xff0c;有变化的地方是要排除重复组合的情况。那么在组合问题中去除重复组合的方法是先对数组进行排序,然后在回溯函数中判断当前元素与上一个元素是否相同,若相同…

系统架构师考试学习笔记第三篇——架构设计高级知识(11)软件可靠性基础知识

本章知识点&#xff1a; 第11课时主要学习软件可靠性基本概念、建模、管理、设计、测试和评价等内容。本课时内容侧重于概念知识,根据以往全国计算机技术与软件专业技术资格(水平)考试的出题规律,考查的知识点多来源于教材,扩展内容较少。根据考试大纲,本课时知识点会涉及单项选…

赞奇科技与华为云共襄828 B2B企业节,激活数字内容“云”创作

8月28日&#xff0c;在2024中国国际大数据产业博览会上&#xff0c;第三届828 B2B企业节正式开幕&#xff0c;旨在融通数智供需&#xff0c;加速企业智改数转&#xff0c;助推中国数智产业实力再升级。 828 B2B企业节是全国首个基于数字化赋能的企业节&#xff0c;由华为联合上…

SprinBoot+Vue学生选课微信小程序的设计与实现

目录 1 项目介绍2 项目截图3 核心代码3.1 Controller3.2 Service3.3 Dao3.4 application.yml3.5 SpringbootApplication3.5 Vue3.6 uniapp代码 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍&#xff1a;CSDN认证博客专家&#xff0c;CSDN平…

C++使用日志库经验总结

1、log4cpp日志源文件路径设置 在 Visual Studio 中&#xff0c;C 项目的日志格式可以通过设置项目的属性来调整。如果你想要使用完整路径来显示诊断消息&#xff0c;可以在项目属性中的“C/C”选项卡下的“高级”属性页中找到“使用完整路径”&#xff08;/FC&#xff09;选项…

探索数字化生态平台的特色功能,开启未来新征程

在数字化浪潮席卷全球的今天&#xff0c;数字化生态平台正以惊人的速度崛起&#xff0c;成为推动经济发展与社会进步的强大引擎。那么&#xff0c;这些平台究竟有哪些独特的特色功能呢&#xff1f;让我们一同深入探索。 首先&#xff0c;我们要明确数字化生态平台的定义。它是利…

ParallelsDesktop19可在任何Mac上运行Windows软件

ParallelsDesktop19是一款Mac虚拟机软件&#xff0c;可在任何Mac上运行Windows&#xff0c;体验不同操作系统之间的无缝集成&#xff0c;并具有创新设计和增强功能&#xff0c;如无密码登录与TouchID、支持macOSSonoma14和增强打印选项。此外&#xff0c;它还支持运行更多Windo…

第二证券:大洗牌!头部券商营收、净利集体下滑

前十券商营收团体下滑&#xff0c;银河证券跌幅最小 新股IPO数量锐减129家至44家&#xff0c;国内证券市场股票基金交易量日均规划 同比下降 6.83%……关于证券公司而言&#xff0c;本年上半年可谓多重要素叠加冲击&#xff0c;成果下滑难以避免。于大多数证券公司而言&#x…

01、echart的基本使用

一 为什么使用echarts 丰富的可视化类型&#xff08;柱状图、散点图、雷达图…&#xff09; 多种数据格式无需转换直接使用 千万数据的前端展现移动端优化 多渲染方案&#xff0c;跨平台 动态数据 绚丽的特效 二echarts快速上手 方式一&#xff1a; 从gi thup中下载ech…

redroid搭建云手机学习笔记(一)

参考链接 通过Redroid搭建自己的云手机 docker安装 docker官网目前打不开了&#xff0c;通过官网安装的方式无法实现&#xff0c;这里需要借助镜像网站来实现docker的安装 参考链接&#xff1a;https://developer.aliyun.com/mirror/docker-ce # step 1: 安装必要的一些系统…

强化学习实操入门随笔

碎碎念&#xff1a;经过思考&#xff0c;打通底层逻辑&#xff0c;我认为未来ai的功能是在沟通领域代替人&#xff0c;未来人-人模式&#xff08;媒介是死的语言&#xff0c;比如看古人留下的文字、聊天的暂时不在&#xff09;会变成人-ai替身-人模式&#xff08;符合本人想法的…

selenium(一)基于java、元素定位

Selenium自动化 Selenium是一个用于Web应用程序的自动化测试工具。它直接运行在浏览器中&#xff0c;可以模拟用户在浏览器上面的行为操作。 chrome下载 https://www.google.com/chrome/ 下载的结果是 “ChromeSetup.exe”&#xff0c;双击该文件&#xff0c;安装程序会自…