硬件基础知识

驱动开发分为:裸机驱动、linux驱动

嵌入式:以计算机技术为基础,软硬结合的、可移植、可剪裁的专用计算机

单片机最小单元:vcc gnd reset 晶振

cpu --- soc :system on chip 片上外设

所有的程序都是在soc(cpu)中运行的

SOC:System on Chip的缩写,指的是系统级芯片,也称为片上系统。它是一种集成电路,集成了多个具有特定功能的电路,如处理器、存储器、传感器等,在一个单一的芯片上实现复杂系统的功能。SOC技术始于20世纪90年代中期,随着半导体工艺技术的发展,设计者能够在单个芯片上集成越来越多的功能,从而实现系统的小型化、性能提升和成本降低

kernel:

X86(桌面):CISC complex instruction set computer 复杂指令集电脑

ARM:低功耗,低体积,低成本:RISC reduces:精简的指令集

外设:GPIO、UART、I2C、WDT、LCD

在soc内部,放的都是这些外设的控制器,受kernel控制

APB:advance peripheral bus:高级外设总线

主要用于连接低带宽的外围设备,如UART、I2C和SPI等

APB总线特点:

  1. 低功耗和低复杂度,适用于不需要高性能总线的外围设备。
  2. 非流水线结构,所有信号仅与时钟上升沿相关,简化了外围设备的设计流程。
  3. 每个传输至少需要两个时钟周期,不支持突发传输(Burst transfer)和流水线操作(Pipeline operation)。
  4. 控制逻辑简单,只有四个主要控制信号:PSEL(外设选择)、PENABLE(使能)、PWRITE(读写控制)、PREADY(准备好信号)。
  5. APB桥是APB总线中唯一的主设备,其他所有设备都是从设备。

AHB:高级高速总线

用于连接高性能模块,如CPU、DMA和DSP等。AHB总线支持突发传输和流水线操作,能够实现高带宽和低延迟的数据传输,适用于需要高性能总线的系统模块。

AHB总线特点:

  1. 高性能和高时钟频率操作。
  2. 支持流水线和突发操作。
  3. 支持多主机操作,但后续版本如AHB-lite和AHB5中不再支持多主机,而是通过添加Multi-layer interconnect组件实现多主机功能。
  4. 支持数据宽度可配置,常见的有32位、64位、128位等。
  5. 包含三种角色:Manager、interconnects和Subordinate,其中Manager负责发起传输,Subordinate负责响应,interconnects负责连接

kernel:

ALU:算术逻辑单元

R0~R15:通用寄存器

计算机的指令集

1.CPU的指令集其实就是对计算机实时控制和计算的指令集和

2.分为复杂指令集和精简指令集

3.RISC:

  CISC:

  PC:程序计数

  LR:链接寄存器,在硬件上实现函数调用

  SP:堆栈指针

cache:高速缓存

I cache:指令缓存,存储最近使用过的指令,以便CPU能够快速访问和执行这些指令

D cache :数据缓存,存储频繁访问的数据,减少处理器访问主内存的次数,提高数据访问速度和整体系统性能

计算机架构

冯诺依曼架构:数据、指令 ran 在一起

  1. 五大部件组成:计算机由运算器、控制器、存储器、输入设备和输出设备五大部件组成。

  2. 存储程序原理:程序和数据存放在同一存储器中,并且没有对两者加以区分,指令和数据一样可以送到运算器进行运算。

  3. 二进制运算:指令和数据均以二进制编码表示,采用二进制运算。

  4. 指令结构:指令由操作码和地址码组成,操作码用来表示操作的类型,地址码用来表示操作数和操作结果的地址。

  5. 顺序执行:指令在存储器中按其执行顺序存放,由指令计数器指明要执行的指令所在的存储单元的地址。一般情况下,每执行完一条指令,指令计数器顺序递增。

  6. 运算器中心:机器以运算器为中心,输入/输出设备与存储器之间的数据传送都通过运算器。

哈佛结构:指令存储和数据存储完全分开,指令和数据各自拥有独立的存储器和总线

  1. 双存储器结构:拥有两个独立的存储器,一个用于存储指令,另一个用于存储数据。
  2. 并行处理能力:由于指令和数据可以被同时访问,哈佛架构支持并行处理,这在需要高速数据访问的应用中非常有用。
  3. 独立的总线:指令总线和数据总线是分开的,允许CPU同时在两个总线上进行操作。
  4. 适合嵌入式系统:哈佛架构常用于嵌入式系统和数字信号处理器(DSP),因为这些系统需要快速且高效的数据处理能力。
  5. 固定的指令长度:哈佛架构通常具有固定长度的指令,这简化了指令的获取和处理过程。
  6. 高效的内存使用:由于数据和指令存储器可以独立优化,哈佛架构能够更有效地使用内存。

MMU:内存管理单元

负责管理虚拟存储器、物理存储器的控制线路,同时也负责将虚拟地址映射为物理地址

MMU的主要功能包括:

  1. 地址转换:将虚拟地址转换为物理地址,使得操作系统可以为每个进程提供独立的虚拟地址空间。

  2. 内存访问授权:提供硬件机制的内存访问授权,确保内存访问的安全性和可靠性。

  3. 缓存管理:一些高级的MMU还支持缓存管理功能,如TLB(Translation Lookaside Buffer,转换旁路缓冲),以提高内存访问速度

NXP:恩智浦

STM:意法半导体

Atmel:

典型的SOC处理器

8051

DSP

MIPS

PPC

ARM

RISC V

CPU:中央处理单元.负责执行算术和逻辑运算、控制数据流以及管理计算机系统中的其他硬件和软件。

MCU:微控制器单元。集成了处理器核心、存储器和各种输入输出接口的单芯片微型计算机系统

MPU:微处理单元。集成了中央处理器(CPU)、内存、外设控制器和总线接口等功能,为电子设备提供强大的计算能力和数据处理能力。

GPU:图像处理单元(显卡)。GPU拥有数百或数千个内核,专为并行处理大量计算而设计,这使得GPU在处理图形渲染、数据分析、深度学习和机器学习等任务时表现出色。

内存

RAM:random access memory

ROM:只读存储器

计算机组成原理部分

硬件( Hardware
    计算机的实体部分,可以实现计算机最基本的操作行为。
软件( Software
    使计算机实现各种功能的程序集合。包括系统软件、应用软件两大类。

计算机系统 = 硬件系统 + 软件系统

计算机系统的硬件组成

输入设备:

   输入设备的任务是把人们编好的 程序和原始数据 送到计算机中去,并且将它们 转换 成计算机内部所能识别和接受的 信息方式 。常用的有键盘鼠标、扫描仪等。

输出设备:

  输出设备的任务是将计算机的处理 结果 以人或其他设备所能接受的形式送出计算机。常用的有
显示器、打印机、绘图仪等。
存储器:
存储器是用来存放 程序和数据 的部件,它是 一个记忆装置,也是计算机能够实现“存储程序
控制”的基础
 

运算器:

运算器是对信息进行处理和运算的部件,经常进行的运算是算术运算和逻辑运算,因此运算器
的核心是算术逻辑运算部件 ALU
运算器中有若干个寄存器(如累加寄存器、暂存器等)。

控制器 :

控制器是整个计算机的指挥中心。
控制器中主要包括时序控制信号形成部件和一些专用的寄存器

ARM 简介

ARM系列处理器工作模式
arm有37个寄存器
1个pc
1个cpsr
个spsr
3个通用寄存器

程序状态寄存器

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

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

相关文章

学习贵在善假于物

以前我们学习,主要依赖于书本,老师。当然,还有必不可少的练习(实践)。 后来,搜索引擎的出现,打开了另一扇门,获取知识变得越来越方便快捷。 如今,人工智能的飞跃发展&a…

【Android安全】Ubuntu 16.04安装GDB和GEF

1. 安装GDB sudo apt install gdb-multiarch 2. 安装GEF(GDB Enhanced Features) 官网地址:https://github.com/hugsy/gef 2.1 安装2021.10版本 但是在Ubuntu 16.04上,bash -c "$(curl -fsSL https://gef.blah.cat/sh)"等命令不好使&…

Pandas语句

数据加载与保存 读取数据 pd.read_csv(‘filename.csv’):读取 CSV 文件。 pd.read_excel(‘filename.xlsx’):读取 Excel 文件。 pd.read_sql(query, connection_object):从 SQL 数据库中读取数据。 pd.read_json(‘filename.json’)&#x…

蓝桥杯2024省C

P10898 [蓝桥杯 2024 省 C] 拼正方形 题目描述 小蓝正在玩拼图游戏,他有 7385137888721个 22的方块和 10470245 个 11 的方块,他需要从中挑出一些来拼出一个正方形,比如用 3 个 22 和 4 个 11 的方块可以拼出一个 44 的正方形,用…

深度学习自编码器 - 收缩自编码器(CAE)篇

序言 在深度学习的浪潮中,收缩自编码器( Compressive Autoencoder, CAE \text{Compressive Autoencoder, CAE} Compressive Autoencoder, CAE)作为自编码器的一种高级形式,正逐步崭露头角。收缩自编码器在保留自编码器核心功能—…

【贪心算法】贪心算法一

贪心算法一 1.柠檬水找零2.将数组和减半的最少操作次数3.最大数4.摆动序列 点赞👍👍收藏🌟🌟关注💖💖 你的支持是对我最大的鼓励,我们一起努力吧!😃😃 1.柠檬水找零 题目…

【安当产品应用案例100集】017-助力软件服务商高效集成多因素认证

一、企业案例背景 在本案例中,某企业作为一家软件技术服务商,为包括银行、政府机构在内的多个行业提供定制化的软件服务。由于各个行业的安全需求各异,例如银行和政府机构倾向于使用UKEY进行身份验证,而其他企业则可能偏好使用数…

创建Django 项目

创建一个新的 Django 项目: django-admin startproject myproject cd myproject 在 Django 项目中创建一个新的应用: python manage.py startapp myapp设置数据库 编辑 myproject/settings.py 文件中的数据库设置: DATABASES {default:…

OJ在线评测系统 前端开发设计优化通用菜单组件二 调试用户自动登录

通用的菜单组件开发二 接下来要完善 权限功能 就是只有登录后才能进入题目查看界面 用户只能看到我们有权限的菜单 我们要在路由文件里面去操作 原理是控制路由设置隐藏 只要用户没有权限 就过滤掉隐藏 全局权限管理 实现想清楚有那些权限 /*** 权限定义*/ const ACCES…

UAC2.0 麦克风——同时支持 16bit,24bit 和 32bit

UAC2.0 麦克风系列文章 UAC2.0 麦克风——单声道 USB 麦克风(16bit) UAC2.0 麦克风——类特殊请求 UAC2.0 麦克风——音量控制 UAC2.0 麦克风——多采样率支持 UAC2.0 麦克风——24/32bit 支持 UAC2.0 麦克风——麦克风数据传输 UAC2.0 麦克风——同时支持 16bit,24bit 和 …

2017年国赛高教杯数学建模A题CT系统参数标定及成像解题全过程文档及程序

2017年国赛高教杯数学建模 A题 CT系统参数标定及成像 CT(Computed Tomography)可以在不破坏样品的情况下,利用样品对射线能量的吸收特性对生物组织和工程材料的样品进行断层成像,由此获取样品内部的结构信息。一种典型的二维CT系统如图1所示&#xff0c…

瑞芯微RK3588开发板Linux系统添加自启动命令的方法,深圳触觉智能Arm嵌入式鸿蒙硬件方案商

本文适用于触觉智能所有Linux系统的开发板、主板添加自启动命令的方法,本次使用了触觉智能的EVB3588开发板演示,搭载了瑞芯微RK3588旗舰芯片。 该开发板为核心板加底板设计,为工业场景设计研发的模块化产品,10年以上稳定供货,帮助…

U盘显示未被格式化:深度解析与数据恢复指南

一、现象解析:U盘显示未被格式化之谜 在日常使用U盘的过程中,不少用户可能会遭遇一个令人头疼的问题——插入U盘后,系统提示“U盘未被格式化”,要求用户进行格式化操作以继续访问。这一突如其来的提示不仅打断了正常的工作流程&a…

Java 数据类型转换详解:隐式转换(自动转换)与强制转换(手动转换)

目录 前言 取值范围从小到大的关系: 隐式转换(自动转换) 📜示例 1:基本类型隐式转换 📜示例 2:算术运算中的类型提升 📜示例 3:byte、short 和 char 的自动转换 隐…

如何上传tauri项目到csdn gitcode

如何上传tauri项目到csdn gitcode 首先保证项目目录有.gitignore,避免不必要的文件上传分享。 gitignore文件 # Logs logs *.log npm-debug.log* yarn-debug.log* yarn-error.log* pnpm-debug.log* lerna-debug.log*node_modules dist dist-ssr *.local# Editor …

代码随想录:打家劫舍||

打家劫舍|| 循环数组用拼接数组处理&#xff0c;并多起点dp&#xff0c;取所有结果的最大值。 class Solution { public:int rob(vector<int>& nums) {int dp[500] ;int nnums.size(); if(n1)return nums[0];nums.insert(nums.end(),nums.begin(),nums.end());//数…

【计算机基础题目】二叉树的前序中序后续遍历之间相互转换 详细例子

创作日志&#xff1a; 笔试题目&#xff0c;掌握了技巧之后这道题就是 so easy~ 一、 1、已知二叉树的 前序和中序&#xff0c;可以求出后序 2、已知二叉树的 中序和后序&#xff0c;可以求出前序 3、已知二叉树的 前序和后序&#xff0c;无法求出唯一的中序 二、求法 求法是…

基于SSM的宿舍管理系统的设计与实现 (含源码+sql+视频导入教程+文档+PPT)

&#x1f449;文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1 、功能描述 基于SSM的宿舍管理系统9拥有两种角色&#xff1a;管理员和用户 管理员&#xff1a;宿舍管理、学生管理、水电费管理、报修管理、访客管理、各种信息统计报表 用户&#xff1a;个人信息管…

POI操作EXCEL增加下拉框

文章目录 POI操作EXCEL增加下拉框 POI操作EXCEL增加下拉框 有时候通过excel将数据批量导入到系统&#xff0c;而业务操作人员对于一些列不想手动输入&#xff0c;而是采用下拉框的方式来进行选择 采用隐藏sheet页的方式来进行操作 String sheetName "supplier_hidden_s…

傅里叶变换的基本性质和有关定理

一、傅里叶变换的基本性质 1.1 线性性质 若 则 其中:a,b是常数 函数线性组合的傅里叶变换等于歌函数傅里叶变换的相应组合。 1.2 对称性 若 则 关于傅里叶变换的对称性还有 虚、实、奇、偶函数的傅里叶变换性质: 1.3 迭次傅里叶变换 对f(x,y)连续两次做二维傅里叶变换…