硬件(驱动开发)

一、OSC基本架构(片上系统)

OSC(On-chip System Control,片上系统控制)基本架构通常涉及片上系统中的各个组件如何进行协调与控制,以实现高效的处理、通信和管理。OSC架构在现代微处理器和系统单芯片(SoC)设计中起着关键作用,特别是在集成多种功能和外设的情况下。

OSC基本架构的主要组成部分

  1. 处理器核心(CPU): 处理器是系统的核心,负责执行指令和处理数据。现代架构可能包括多个处理器核心。

  2. 系统总线: 系统总线用于在处理器与其他各个组件之间传输数据。常见的总线包括AMBA(如AHB、AXI),PCI Express等。

  3. 内存控制器: 内存控制器用于管理对系统内存(如RAM)的访问,包括读写操作和数据缓存。

  4. 外设控制器: 外设控制器用于管理与各种外部设备(如GPIO、UART、SPI、I2C等)的通信,使得处理器可以与外部世界进行交互。

  5. 时钟和复位管理单元: 时钟管理单元负责为各组件提供时钟信号,以确保系统的同步运行。复位管理单元用于管理系统的复位状态,以确保在启动时各个组件处于适当状态。

  6. 中断控制器: 中断控制器处理来自外设或内部事件的中断请求,控制器负责确定哪个中断被处理,并将控制权转移到相应的中断处理程序。

  7. 电源管理单元(PMU): 电源管理单元负责调节电源的分配,实时监控电力消耗,并在不同工作状态下优化能效。

二、CPU

CPU(Central Processing Unit Core)是计算机系统中的一个基本组成部分,负责执行计算机指令并处理数据。随着技术的进步,CPU内核在性能和效率上也不断发展。以下是对CPU内核的基本介绍,包括其结构、功能、类型和演变。

CPU的基本结构

  1. 算术逻辑单元(ALU):

    • 负责执行所有的算术(如加法、减法)和逻辑(如与、或)运算。
  2. 控制单元(CU):

    • 控制指令的解码和执行过程,协调内核内部的其他组件和外部设备的工作。
  3. 寄存器:

    • 内核中用于快速存取数据的小型存储单元,包括通用寄存器、指令寄存器和程序计数器等。
  4. 缓存(Cache):

    • 包括L1、L2和有时的L3缓存,缓存用于存储经常使用的数据,以提高数据访问速度。
  5. 总线接口:

    • 连接内核与主内存、外设之间的通信通道。这是数据和指令流入和流出的渠道。

CPU的功能

  • 指令执行: 根据提供的指令集架构(ISA)执行各种操作,包括加载、存储、算术运算、逻辑运算等。
  • 数据处理: 处理计算和逻辑决策,完成应用程序和操作系统的任务。
  • 控制与管理: 通过控制单元协调各个组件的操作,确保指令按照正确的顺序执行。

CPU的类型

  1. 单核CPU:

    • 只有一个内核,适合无需高并发处理的简单任务。
  2. 多核CPU:

    • 包含多个内核,可以同时执行多个任务,提高了并行处理能力。多核CPU可以是对称多处理(SMP)或非对称多处理(AMP)。
  3. 超线程(Hyper-Threading):

    • 一种技术,允许单个CPU内核同时处理多个线程,增加了CPU的逻辑核心数,提升了并行性能。
  4. 异构多核(Heterogeneous Multicore):

    • 包含不同类型的内核(如性能核心和能效核心),根据负载采用不同的处理方法,以优化性能和能效。例如,ARM的big.LITTLE架构。

三、ARM

1.ARM有37个通用寄存器;cortex有40个;

2.

(1)SP (Stack Pointer): SP(栈指针)指向当前栈顶的位置。它用于管理函数调用和局部变量的存储。在 ARM 中,这个寄存器随着函数调用和返回而变化,确保栈的正确使用。

(2)LR (Link Register): LR(链接寄存器)用于存储函数返回地址。当一个函数被调用时,程序的下一个指令地址会被存储在 LR 中,方便在函数执行完后跳回到调用位置。

(3)PC (Program Counter): PC(程序计数器)包含当前正在执行指令的地址。在 ARM 中,PC 的值会在每个指令执行后自动更新,以指向下一条指令。可以直接控制 PC 以进行跳转或分支。

(4)CPSR (Current Program Status Register): CPSR(当前程序状态寄存器)保存有关处理器的当前状态,包括条件标志(如 Z、C、N、V)、处理器模式以及中断使能状态等。它反映了当前的执行状态。

(5)SPSR (Saved Program Status Register): SPSR(保存程序状态寄存器)用于保存 CPSR 的值,特别是在异常发生时。它允许在处理完中断或异常后恢复到之前的程序执行状态。因此,SPSR 是为了上下文切换提供支持。

3.异常向量表

四、ram和rom

1.ram

2.rom

nor   flash:可寻址,支持随机存取,因此它的每个存储单元都可以单独寻址

nand   flash:不支持随机存取,它是块级(block-level)存储,数据的读取和写入是通过块而不是单个字节进行的,这意味着在进行写入时需要擦除整个块。

3.主存储器:可由CPU直接访问,用来存放当前正在执行的程序和数据;

辅助存储器:设置在主机外部,CPU不能直接访问,用来存放暂时不需要参与执行的数据;

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

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

相关文章

华为HarmonyOS地图服务 3 - 如何开启和展示“我的位置”?

一. 场景介绍 本章节将向您介绍如何开启和展示“我的位置”功能,“我的位置”指的是进入地图后点击“我的位置”显示当前位置点的功能。效果如下: 二. 接口说明 “我的位置”功能主要由MapComponentController的方法实现,更多接口及使用方法…

rocky Linux 9.4系统配置zabbix监控MySQL主从复制状态与配置钉钉告警

MySQL主从复制原理: 1. 主从复制的基本概念 主服务器(Master):负责处理所有的写操作(INSERT、UPDATE、DELETE),并将这些操作记录到二进制日志(binary log)中。 从服务器…

计算机网络(月考一知识点)

文章目录 计算机网络背诵默写版计算机网络知识点(月考1版) 计算机网络背诵默写版 为我自己留个印记,本来荧光笔画的是没记住的,但是后面用紫色的,结果扫描的时候就看不见了。 计算机网络知识点(月考1版&a…

静态链表:实现、操作与性能优势【算法 16】

静态链表:实现、操作与性能优势 在算法和数据结构的探索中,链表作为一种基础且灵活的数据结构,广泛应用于各种场景。然而,在算法竞赛或需要高效内存管理的环境中,传统的动态链表可能会因为内存分配和释放的开销而影响性…

【H2O2|全栈】关于CSS(5)如何制作一个搜索网页的首页?

目录 CSS基础知识 前言 准备工作 简单网页的组成部分 案例 浏览器的窗口大小 划分主要部分 固定定位 头部导航(左侧) 头部导航(右侧) LOGO ​编辑搜索框 热搜标题 热搜内容 文字简介 资源 预告和回顾 后话 CSS…

Tomcat中BIO和NIO的区别(Tomcat)

BIO Tomcat中BIO的模型和理论很简单,例图如下 1.Acceptor线程死循环阻塞接收客户端的打过来的socket请求 2.接收到请求之后打包成一个SocketProcessor(Runnable),扔到线程池中读取/写入数据 参数配置 1.Acceptor默认线程是1&#…

网络丢包定位记录(二)

网卡驱动丢包 查看:ifconfig eth1/eth0 等接口 1.RX errors: 表示总的收包的错误数量,还包括too-long-frames错误,Ring Buffer 溢出错误,crc 校验错误,帧同步错误,fifo overruns 以及 missed pkg 等等。 …

Cursor免费 GPT-4 IDE 工具的保姆级使用教程

Cursor免费 GPT-4 IDE 工具的保姆级使用教程 简介 Cursor 是一款基于人工智能技术的代码生成工具。 它利用先进的自然语言处理和深度学习算法,可根据用户的输入或需求,自动生成高质量代码。 不管是初学者,还是资深开发者,Curs…

uniapp 微信小程序 订阅消息功能实现

该网址 https://api.weixin.qq.com 上线后不可访问,调用该网址操作需在后端( 重要! 重要! 重要!) 1.首先拿到的三个码 //微信公众平台 //https://mp.weixin.qq.com const wxappid "管理-开发管理-A…

Java语言程序设计基础篇_编程练习题***18.32 (游戏:骑士的旅途)

目录 题目:***18.32 (游戏:骑士的旅途) 习题思路 代码示例 输出结果 题目:***18.32 (游戏:骑士的旅途) 骑士的旅途是一个古老的谜题,它的目的是使骑从棋盘上的任意一个正方 形开始移动,经过其他的每个正方形一次,如…

Web_php_include 攻防世界

<?php show_source(__FILE__); echo $_GET[hello]; $page$_GET[page]; while (strstr($page, "php://")) { 以是否检测到php://为判断执行循环$pagestr_replace("php://", "", $page);//传入空值&#xff0c;替换 } include($page); ?&g…

单样本Cellchat(V2)细胞通讯分析学习和整理

细胞通讯分析是一种研究不同细胞类型之间如何通过信号分子&#xff08;如配体和受体&#xff09;进行相互交流和调控的分析方法。它在揭示细胞间相互作用的机制&#xff0c;理解组织和器官如何协调运作方面具有重要意义。 细胞通讯分析的主要内容如下&#xff1a; 配体-受体相…

连续数组问题

目录 一题目&#xff1a; 二思路&#xff1a; 三代码&#xff1a; 一题目&#xff1a; leetcode链接&#xff1a;. - 力扣&#xff08;LeetCode&#xff09; 二思路&#xff1a; 思路&#xff1a;前缀和&#xff08;第二种&#xff09;化0为-1hash&#xff1a; 这样可以把…

【深入学习Redis丨第六篇】Redis哨兵模式与操作详解

〇、前言 哨兵是一个分布式系统&#xff0c;你可以在一个架构中运行多个哨兵进程&#xff0c;这些进程使用流言协议来接收关于Master主服务器是否下线的信息&#xff0c;并使用投票协议来决定是否执行自动故障迁移&#xff0c;以及选择哪个Slave作为新的Master。 文章目录 〇、…

五种数据库特性对比(Redis/Mysql/SQLite/ES/MongoDB)

做后端开发的程序员基本都要学会数据库的相关知识。 1、关系型数据 今天就着这段时间了解大模型的事需要牵扯到是我们接触最多的、也是入门后端必学的关系型数据库。在关系型数据库中&#xff0c;数据以表的形式进行组织和存储&#xff0c;每个表就像一个 Excel 表格&#xf…

如何写一个自动化Linux脚本去进行等保测试--引言

#我的师兄喜欢给我的休闲实习生活加活&#xff0c;说是让我在实习期间写一个自动化脚本去进行等保测试。呵呵哒。 怎么办呢&#xff0c;师兄的指令得完成&#xff0c;师兄说让我使用Python完成任务。 设想如下&#xff1a; 1、将Linux指令嵌入到python脚本中 2、调试跑通 …

基于微信小程序的宠物寄养平台的设计与实现+ssm(lw+演示+源码+运行)

摘 要 随着科技和网络的进步&#xff0c;微信小程序技术与网络、生活贴和的更加紧密。需要依靠客户端的单机系统逐渐被淘汰&#xff0c;利用互联网可以处理大量数据的新型系统如雨后春笋般迅速发展起来。这类系统和信息化时代的同步发展对传统的办公管理方式造成了很大的压力。…

Linux入门学习:Git

文章目录 1. 创建仓库2. 仓库克隆3. 上传文件4. 相关问题4.1 git进程阻塞4.2 git log4.3 上传的三个步骤在做什么4.4 配置邮箱/用户名 本文介绍如何在Linux操作系统下简单使用git&#xff0c;对自己的代码进行云端保存。 1. 创建仓库 &#x1f539;这里演示gitee的仓库创建。…

华为全联接大会HUAWEI Connect 2024印象(一):OpenEuler

因为和华为有课程合作&#xff0c;此次应邀参加了华为全联接大会 &#xff08;HUAWEI Connect 2024&#xff09;&#xff0c;分几次分享一下自己的见闻。 HUAWEI Connect 2024的规模很大&#xff0c;不过主要面向的应该是企业市场&#xff0c;我比较关注的嵌入式系统的内容很少…

MTK zephyr平台:USB升级、枚举流程

一、USB升级流程 通过代码及log分析,当前平台升级过程在PL阶段进行 USB download相关代码 mtk/modules/hal/boot/preloader/platform/flashc/ mtk/modules/hal/boot/preloader/platform/board_name/flash/ mtk/modules/hal/boot/preloader/platform/board_name/src/drive…