当前位置: 首页 > news >正文

硬件基础知识

驱动开发分为:裸机驱动、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个通用寄存器

程序状态寄存器

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 2024 屡发屡中的论文方向:时空预测!
  • Spring 事务与 MySQL 事务:深度解析与实战指南
  • 【mysql面试题】mysql复习之常见面试题(二)
  • 手把手教你实现大模型RAG系列教程- 01大模型应用技术介绍
  • 股指期权交易详细基础介绍
  • Mac 搭建仓颉语言开发环境(Cangjie SDK)
  • 【homebrew安装】踩坑爬坑教程
  • sql中拼接操作
  • 计算机三级网络技术总结(五)
  • 昂科烧录器支持Senasic琻捷电子的蓝牙低功耗芯片SNP746
  • Linux 中的 Screen 命令详解
  • 基于yolov8的红外小目标无人机飞鸟检测系统python源码+onnx模型+评估指标曲线+精美GUI界面
  • 【从计算机的发展角度理解编程语言】C、CPP、Java、Python,是偶然还是应时代的产物?
  • 面试真题:谈一谈Mysql的分库分表
  • Mysql梳理6——order by排序
  • 【译】JS基础算法脚本:字符串结尾
  • [译]前端离线指南(上)
  • “寒冬”下的金三银四跳槽季来了,帮你客观分析一下局面
  • 【跃迁之路】【641天】程序员高效学习方法论探索系列(实验阶段398-2018.11.14)...
  • CentOS 7 防火墙操作
  • Git学习与使用心得(1)—— 初始化
  • hadoop入门学习教程--DKHadoop完整安装步骤
  • iOS高仿微信项目、阴影圆角渐变色效果、卡片动画、波浪动画、路由框架等源码...
  • isset在php5.6-和php7.0+的一些差异
  • js继承的实现方法
  • Just for fun——迅速写完快速排序
  • niucms就是以城市为分割单位,在上面 小区/乡村/同城论坛+58+团购
  • node和express搭建代理服务器(源码)
  • Transformer-XL: Unleashing the Potential of Attention Models
  • Vue2 SSR 的优化之旅
  • 编写符合Python风格的对象
  • 基于Android乐音识别(2)
  • 开源SQL-on-Hadoop系统一览
  • 三分钟教你同步 Visual Studio Code 设置
  • 深入浏览器事件循环的本质
  • 使用阿里云发布分布式网站,开发时候应该注意什么?
  • 微信小程序设置上一页数据
  • 学习笔记DL002:AI、机器学习、表示学习、深度学习,第一次大衰退
  • 学习笔记TF060:图像语音结合,看图说话
  • 走向全栈之MongoDB的使用
  • hi-nginx-1.3.4编译安装
  • ​​​【收录 Hello 算法】10.4 哈希优化策略
  • ​html.parser --- 简单的 HTML 和 XHTML 解析器​
  • #android不同版本废弃api,新api。
  • #周末课堂# 【Linux + JVM + Mysql高级性能优化班】(火热报名中~~~)
  • (33)STM32——485实验笔记
  • (4)(4.6) Triducer
  • (8)STL算法之替换
  • (Redis使用系列) Springboot 实现Redis消息的订阅与分布 四
  • (Redis使用系列) Springboot 使用redis实现接口Api限流 十
  • (编程语言界的丐帮 C#).NET MD5 HASH 哈希 加密 与JAVA 互通
  • (第三期)书生大模型实战营——InternVL(冷笑话大师)部署微调实践
  • (生成器)yield与(迭代器)generator
  • (十三)Java springcloud B2B2C o2o多用户商城 springcloud架构 - SSO单点登录之OAuth2.0 根据token获取用户信息(4)...
  • (收藏)Git和Repo扫盲——如何取得Android源代码