1.基本概念

        嵌入式:以应用为心,以计算机技术为础,软便件可被的专用计算机系统。

        计算机系统的软件基本组成:   系统软件、应用软件。

        计算机系统的硬件基本组成:运算器、控制器、存诸器、输入设备、输出设备

日常生活中遇到的专业术语:

        CPU中央处理器(Center Processing Unit):一种通用的强大处理器。

        GPU图形处理器(Graphics Processing Unit):处理图像的处理器

        FPU浮点型运算单元(Float Processing Unit)

在嵌入式行业里:

        MPU(Mico Processing Unit):微处理器,偏向处理,强调通用

        MCU(Mico Contral Unit):微控制器,偏向控制,强调集成度

        单片机:单片微型计算机

        DSP(Digital Signal Processing):数字信号处理器,高强度数学计算的专用芯片

        SOC(System On Chip):片上系统,SOC是一个设计和集成的概念,把MPU,MCU,

GPU,DSP,modam(调制解调器)规划在一起形成功能完善的蓝图。

     RAM(随机存储器)(Random Access Memory):价格贵,地址总线链接,每一个字节都可以被处理器直接寻址,运行速度较ROM快,掉电数据丢失

     ROM(只读存储器)(Read-only Memory)(块设备):价格便宜,运行速度满,掉电数据不丢失。

本次我们学习ARM使用的开发板是正点原子的IMAX6ULL

CISC:复杂指令集架构(体积大,功耗大,适用于电脑)

SISC:精简指令集架构(体积小,功耗小,适合应用于小型移动设备)

ARM

核心架构版本:ARM1-ARM11,11之后ARM分为A(CortexA-app应用),R(CortexR-realtime实时),M(CortexM-mcu单片机)

指令集版本:v1-v9

ALU算数逻辑单元:位于内核,如int a = 1,int b = 2, int c = a + b ,RAM将数据发送到位于内核的通用寄存器,通过ALU计算得出结果。由于通用寄存器不能被指针地址访问,因此无法通过c语言进行操作,需要用汇编语言对通用寄存器进行操作。而外设寄存器下挂在地址总线,需要通过总线(指针)进行访问。

存储器分类:RAM(内存),ROM(外存),register(寄存器),Cache(高速缓存)其分为数据Cache和指令Cache,其与MMU类似,使用那部分就打开那部分,将不使用的部分关闭,避免地址映射错误,使用Cache可以避免例如for循环中对变量的重复读取和修改,提高了运行效率。

 栈(顶)背靠内核,向下生长,避免向上生长数据越界到内核空间导致系统崩溃。

CPSR(current program status register):当前程序状态寄存器

SPSR(saved program status register):备份程序状态寄存器

寄存器组示意图:

sp(stack point):栈指针寄存器,用来记录栈顶位置。 

lr(link regist):链接寄存器,保存程序跳转前的下一行程序地址,方便程序执行完后返回继续执行。

pc(program conter):程序计数器 ,指向要执行的下一行代码,每执行一行代码会自加一次,向后偏移,当执行函数调用时,pc跳转到要执行的函数地址,在函数执行完后返回lr寄存器保存的跳转前的下一行程序位置继续执行 。

那么问题来了,lr只有一个,当进行函数嵌套的时候,lr多次保存会导致地址覆盖,那函数是怎么精准的返回的呢?

        答案是lr在被覆盖前会将先前的地址放入栈中,虽然lr只能存放一个地址,但是相对栈来说栈的空间无限大且连续,压栈和弹栈的顺序都是固定的,因此通过lr和栈配合下程序可以做到准确返回。

面向应用的ARM最小系统:

存储器的结构层次:

单总线结构和多总线结构

RAM和ROM的分类:

冯诺依曼架构(普林斯顿架构):其核心是共享存储,分时访问。代码和数据公用一个内存空间和总线,取数据和取指令串行交替执行。

哈佛架构:其核心是分离存储,并行访问。指令和数据存储在两个独立的物理内存模块中,并且使用两条独立的总线进行访问。我们所学的ARM就是采用的改进型哈佛架构,即在芯片内部采用哈佛架构,在芯片外部采用冯诺依曼架构。

ARM工作模式:

每种模式的栈是独立的,sp指向的空间不同。        

cpsr(程序状态寄存器):

N:程序执行后最高位的数值(运算符号1负0正)

Z:记录操作结果是否为0。如果结果为0,则 Z = 1。如果结果不为0,则 Z = 0

C:记录无符号数运算的进位或借位。对于加法(ADD, ADC):如果加法产生了进位(结果小于任意一个加数),则 C = 1,否则为0。对于减法(SUB, SBC, CMP):如果减法没有发生借位,则 C = 1;如果发生了借位,则 C = 0。这一点容易混淆,可以理解为:C = 1 表示无符号减法结果有效(被减数 >= 减数),C = 0 则表示下溢(被减数 < 减数)。

V:记录有符号数运算是否发生了溢出。如果操作导致溢出(结果超出了有符号数所能表示的范围),则 V = 1。否则,V = 0

M位(0-4bit):负责记录处理器模式。

SPSR保存的程序状态寄存器):它的唯一目的就是:当异常(或中断)发生时,自动地、硬件地保存当前模式下的 CPSR 状态。

异常向量表:CPU硬件设计中的一个关键机制,它决定了当发生异常或中断时,CPU应该去哪里找到处理这个事件的代码。存放着异常处理程序的入口地址。

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

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

相关文章

Django全栈班v1.01 Python简介与特点 20250910

从零开始的Python编程之旅 “人生苦短&#xff0c;我用Python。”这不仅仅是Python程序员的口头禅&#xff0c;更是对Python强大能力的最好诠释&#xff01;&#xff01;&#xff01; 为什么全世界有超过1500万开发者选择Python&#xff1f; 为什么Python连续多年蝉联最受欢…

【WebApi】什么情况开启如何开启缓存

在 ASP.NET Core WebAPI 中开启缓存是优化性能、减少服务器负载和提升用户体验的非常重要的手段。但并非所有情况都适合开启缓存。 下面我将从 “什么情况下开启” 和 “如何开启” 两个方面为你详细解释。 一、什么情况下应该开启缓存? 总的来说,缓存适用于 “变化不频繁但…

Go语言类型断言全解析

类型断言的基本概念类型断言(Type Assertion)是Go语言中用于检查接口值底层具体类型的机制。它本质上是一种运行时类型检查的操作&#xff0c;允许程序在运行时判断接口变量是否持有特定的类型值&#xff0c;并提取该类型的值。这是Go语言类型系统中的一个重要特性&#xff0c;…

大模型在题目生成中的安全研究:攻击方法与防御机制

大模型在题目生成中的安全研究&#xff1a;攻击方法与防御机制 文章目录大模型在题目生成中的安全研究&#xff1a;攻击方法与防御机制一、引言二、大模型在题目生成中的安全漏洞与攻击方法2.1 大模型在题目生成中的安全漏洞分析2.1.1 训练数据相关漏洞2.1.2 模型架构与特性相关…

跟做springboot尚品甄选项目(二)

登录功能的书写 后端接口的书写 &#xff08;1&#xff09;创建配置文件 粘贴这两个文件&#xff08;E:\project\AllProJect\Shangpin Selection\项目材料素材\资料\资料\03-配置文件&#xff09; 在spzx-manager服务的src/resources目录下创建application.yml、application-…

前后端接口调试提效:Postman + Mock Server 的工作流

前后端接口调试提效&#xff1a;Postman Mock Server 的工作流 &#x1f31f; Hello&#xff0c;我是摘星&#xff01; &#x1f308; 在彩虹般绚烂的技术栈中&#xff0c;我是那个永不停歇的色彩收集者。 &#x1f98b; 每一个优化都是我培育的花朵&#xff0c;每一个特性都是…

大带宽香港云服务器在数据传输速度上有何优势?

为方便站长快速部署网站、优化用户访问体验&#xff0c;当下众多实力强劲的香港数据中心&#xff0c;均推出了大带宽云服务器产品。不过&#xff0c;市面上不少数据中心虽宣称提供 “专属大带宽”&#xff0c;但其线路配置中&#xff0c;国际线路占比高、绕行链路多&#xff0c…

HT862 智能音频功率放大器:为便携音频设备打造高效稳定的音质解决方案

在蓝牙音箱、智能手机、便携式游戏机等设备的设计中&#xff0c;音频功率放大器是决定音质表现、续航能力与使用稳定性的关键部件。一款优质的音频功放&#xff0c;不仅需要输出足够的功率以满足清晰响亮的听觉需求&#xff0c;还需在能效、温控、适配性上达到平衡&#xff0c;…

HarmonyOS-ArkUI Web控件基础铺垫7-HTTP SSL认证图解 及 Charles抓包原理 及您为什么配置对了也抓不到数据

HarmonyOS-ArkUI Web控件基础铺垫6--TCP协议- 流量控制算法与拥塞控制算法 HarmonyOS-ArkUI Web控件基础铺垫5--TCP协议- 动画展示超时重传&#xff0c;滑动窗口&#xff0c;快速重传 HarmonyOS-ArkUI Web控件基础铺垫4--TCP协议- 断联-四次挥手解析 HarmonyOS-ArkUI Web控件…

【qt】通过TCP传输json,json里包含图像

主要是使用协议头 发送方connect(m_pDetectWorker, &DetectionWorker::sig_detectImg, this, [](const QJsonObject &json){// 转换为JSON数据QJsonDocument doc(json);QByteArray jsonData doc.toJson(QJsonDocument::Compact);// 构建增强协议头struct EnhancedHead…

四,基础开发工具(下)

4.5自动构建make/Makefile4.5.1基本使用1示例2进一步解释3实践4最佳实践4.6练习&#xff1a;进度条4.6.1倒计时4.6.2进度条version14.6.2进度条version24.7版本控制器Git4.7.1git操作1操作一次&#xff0c;以后不愁2经典"三件套"3常用4版本回退4.7.2小结4.5自动构建m…

C++基本数据类型的范围

文章目录不同位数的系统下各个类型所占字节数如何存储的我发现我能搜到的相关文章都只讲了这些数据类型的范围是这样的&#xff0c;不说实际的存储情况&#xff0c;当你了解了类型实际是如何存储的&#xff0c;再去记忆这些范围就简单了&#xff0c;所以就有了这篇文章不同位数…

基于社交媒体数据的公众情绪指数构建与重大事件影响分析

一、引言在信息爆炸的时代&#xff0c;社交媒体&#xff08;如微博、Twitter&#xff09;已成为公众表达情绪、讨论热点事件的主要平台。通过分析社交媒体数据&#xff0c;可以构建公众情绪指数&#xff0c;并进一步研究其与股市波动、政策发布等重大事件的关联性。本文将介绍如…

OpenLayers数据源集成 -- 章节七:高德地图集成详解

前言在前面的文章中&#xff0c;我们学习了OpenLayers的瓦片调试&#xff08;VectorTileDebug&#xff09;技术。本文将深入探讨OpenLayers中高德地图的集成方法&#xff0c;这是WebGIS开发中接入商业地图服务的重要技术。高德地图作为国内领先的地图服务提供商&#xff0c;提供…

海外代理IP平台Top3评测:LoongProxy、神龙动态IP、IPIPGO哪家更适合你?

在当今互联网环境中&#xff0c;代理IP服务已成为许多企业和个人用户的刚需。无论是数据采集、市场调研还是账号管理&#xff0c;优质的代理IP都能大幅提升工作效率。本文将针对LoongProxy、神龙海外动态IP和IPIPGO这三家主流代理IP服务商进行横向评测&#xff0c;帮助你根据自…

对浏览器事件机制的理解

浏览器事件是什么&#xff1a; 事件是用户操作网页时发生的交互动作&#xff0c;比如 click/move&#xff0c; 事件除了用户触发的动作外&#xff0c;还可以是文档加载&#xff0c;窗口滚动和大小调整。事件被封装成一个 event 对象&#xff0c;包含了该事件发生时的所有相关信…

XCVP1902-2MSEVSVA6865 AMD 赛灵思 XilinxVersal Premium FPGA

XCVP1902-2MSEVSVA6865 是 AMD 赛灵思&#xff08;Xilinx&#xff09;Versal Premium FPGA 系列中的高端自适应系统级芯片&#xff08;Adaptive SoC&#xff09;变体&#xff0c;面向需要极高逻辑密度、海量 I/O 与超高速收发能力的数据中心互联、原型验证与高性能网络加速等应…

kotlin - 2个Fragment实现左右显示,左边列表,右边详情,平板横、竖屏切换(一)

kotlin - 2个Fragment实现左右显示&#xff0c;左边列表&#xff0c;右边详情&#xff0c;平板横、竖屏切换(要使用平板测试)平板横屏&#xff1a;左右fragment实现分屏效果&#xff0c;平板竖屏&#xff1a;只显示左边的fragment&#xff0c;点击才显示右边fragment屏幕旋转&a…

推荐系统中的AB测试:从设计到分析全流程

推荐系统中的AB测试:从设计到分析全流程 关键词:推荐系统、AB测试、实验设计、数据分析、效果评估、统计显著性、用户体验 摘要:本文将深入探讨推荐系统中AB测试的全流程,从实验设计到结果分析。我们将用通俗易懂的方式解释AB测试的核心概念,展示如何科学地评估推荐算法改…

【go语言 | 第1篇】Go环境安装+go语言特性

文章目录go开发环境1. 下载安装包2. 配置环境变量3. GOPROXYgo语言特性1. go的优势2. go适合做什么3. go缺点编写一个go程序注&#xff1a;在VSCode中补全go代码go开发环境 我这里是windows操作系统的环境安装&#xff0c;其他系统可以查看菜鸟教程&#xff1a;Go 语言环境安装…