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

lv11 嵌入式开发 计算机硬件基础 1

目录

1 导学

1.1回顾及导学

1.2 嵌入式系统分层

1.3 linux底层开发

2 ARM体系结构与接口技术课程导学

3 计算机基础

3.1 计算机的进制

3.2 计算机组成

3.3 总线

4 多级存储结构与地址空间

4.1 多级存储概念

4.2 地址空间

5 CPU工作原理

6 练习


1 导学

1.1回顾及导学

先学习C语言,包括C高级、shell脚本,数据结构等。

再学习IO、进程、线程、进程间通信、网络编程、数据库等都是linux为我们写好的接口函数,称为应用层开发。

其中用到IO用到read、write、fork、socket等等,底层这些函数底层是对接硬件,向上提供接口,称为系统移植、驱动开发。

1.2 嵌入式系统分层

应用开发     即使用系统提供的接口(API),做上层应用程序的开发

底层开发     即做操作系统本身的开发

1.3 linux底层开发

linux层次结构

Linux子系统 

  • 1.进程管理:管理进程的创建、调度、销毁等    
  • 2.内存管理:管理内存的申请、释放、映射等    
  • 3.文件系统:管理和访问磁盘中的文件    
  • 4.设备管理:硬件设备及驱动的管理    
  • 5.网络协议:通过网络协议栈(TCP、IP...)进行通信

2 ARM体系结构与接口技术课程导学

学习方法

课程内容改变:CPU 接口 硬件

思维方式改变:程序如何执行 接口如何配置 硬件如何控制

学习方式改变:先宏观再微观 重理解轻记忆 善于总结归纳

3 计算机基础

3.1 计算机的进制

逻辑1和0    

在计算机中数据的存储、运算、传输都是以高低电平的方式    

所以数字电路中用高、低电平来表示逻辑1和0

3.2 计算机组成

输入设备    

把其他信号转换成计算机能识别和处理的信号并送入计算机中     如键盘、鼠标、摄像头等  

输出设备    

把运算结果以人或其他设备所能接受的形式送出计算机外     如显示器、音响、打印机等  

存储器    

存储器是用来存储程序和数据的部件,是实现"存储程序控制"的基础     如内存、硬盘等

运算器    

CPU中负责进行算数运算和逻辑运算的部件,其核心是算术逻辑单元ALU  (运算器都是各种各样的运算电路)

控制器    

控制器是CPU的指挥中心,其控制着整个CPU执行程序的逻辑过程

注:运算器和控制器共同组成了CPU

3.3 总线

总线

是计算机中各个部件之间传送信息的公共通信干线, 在物理上就是一束导线按照其传递信息的类型可以分为数据总线、地址总线、控制总线(总线意义:上面计算机的五个组成部分是独立的,需要数据传递,总线是通信桥梁。)

DMA总线

DMA(Direct Memory Access)即直接存储器访问,使用DMA总线可以不通过CPU直接在存储器之间进行数据传递

注:DMA与普通总线的区别是可以不通过CPU,其他都需要过CPU。DMA可以释放CPU使用率。

4 多级存储结构与地址空间

4.1 多级存储概念

为什么要用这么多种存储器?使用三级存储结构是为了兼顾速度、容量、价格

Cache    

速度最快、价格最贵、容量最小、断电数据丢失、cpu可直接访问     存储当前正在执行的程序中的活跃部分,以便快速地向CPU提供指令和数据(高速缓存,速度最快,容量最小,价格最高)

主存储器

速度、价格、容量介于Cache与辅存之间、断电数据丢失、cpu可直接访问     存储当前正在执行的程序和数据(内存,速度快,可以按字节访问,容量小,断电丢失)

辅助存储器    

速度最慢、价格最低、容量最大、断电数据不丢失、cpu不可直接访问     存储暂时不运行的程序和数据,需要时再传送到主存(硬盘,读写按块,每次如512个字节,单变量都是1个字节,所以慢)

工作原理

CPU可以直接读写Cache和主存储器

计算机打开程序会把硬盘搬到内存。如果一部分代码会经常被读写,经常需要读写的代码会搬到Cache

4.2 地址空间

概念:一个处理器能够访问(读写)的存储空间是有限的,我们称这个空间为它的地址空间(寻址空间),一般来说N位地址总线的处理器的地址空间是2的N次方

如买了一个内存4G,实际可能用到的只有3G多一点。因为读的空间不是无限大的,地址是有限,与地址空间有关。CPU必须先发送一个地址,然后才能拿到地址中的内容,那总有无法访问的地址。

5 CPU工作原理

按顺序发送指令计数器地址到内存中 

取指 

译码

执行 

指令计数器PC

指令寄存器IR

指令译码器

一条指令的执行分为三个阶段    

  • 1.取址:CPU将PC寄存器中的地址发送给内存,内存将其地址中对应的指令返回     到CPU中的指令寄存器(IR)    
  • 2.译码:译码器对IR中的指令进行识别,将指令(机器码)解析成具体的运算    
  • 3.执行:控制器控制运算器中对应的运算单元进行运算,运算结果写入寄存器  每执行一条指令后PC的值会自动增加指向下一条指令

6 练习

1.简述为什么地址总线为32bit的处理器的地址空间为4G?


32位处理器的地址总线可以用来寻址 2^32 个不同的内存地址,也就是 4,294,967,296 个地址。通常情况下,每个地址对应一个字节的内存空间。因此,32位地址总线可以寻址的内存空间大小为 4,294,967,296 字节,即4GB。


2.简述CPU执行指令的过程


CPU将PC寄存器中的地址发送给内存,内存将其地址中对应的指令返回,到CPU中的指令寄存器(IR)   
译码器对IR中的指令进行识别,将指令(机器码)解析成具体的运算
控制器控制运算器中对应的运算单元进行运算,运算结果写入寄存器  每执行一条指令后PC的值会自动增加指向下一条指令,以此往下类推。

相关文章:

lv11 嵌入式开发 计算机硬件基础 1

目录 1 导学 1.1回顾及导学 1.2 嵌入式系统分层 1.3 linux底层开发 2 ARM体系结构与接口技术课程导学 3 计算机基础 3.1 计算机的进制 3.2 计算机组成 3.3 总线 4 多级存储结构与地址空间 4.1 多级存储概念 4.2 地址空间 5 CPU工作原理 6 练习 1 导学 1.1回顾及导…...

【Linux】vim

文章目录 一、vim是什么?二 、命令模式三、插入模式四、底行模式五、vim配置 一、vim是什么? Vim是一个强大的文本编辑器,它是Vi的增强版,支持多种语法高亮、插件扩展、多模式操作等功能。Vim有三种基本的工作模式:命…...

cstring函数

string 1.char str[]类型 fgets(s,10000,stdin) cin.getline(cin,10000) strlen(str) sizeof 求静态数组长度 2.string类型 getline(cin,a) cin.getline(cin,10000) str.lenth() str.size() cin 遇到空格就停止 3.gets 函数 char str[20]; gets(str); 4.puts 函…...

【owt】p2p client mfc 工程梳理

1年前构建的,已经搞不清楚了。所以梳理下,争取能用较新的webrtc版本做测试。最早肯定用这个测试跑通过 【owt】p2p Signaling Server 运行、与OWT-P2P-MFC 交互过程及信令分析官方的mfc客户端 估计是构造了多个不同的webrc版本的客户端...

pandas教程:Hierarchical Indexing 分层索引、排序和统计

文章目录 Chapter 8 Data Wrangling: Join, Combine, and Reshape(数据加工:加入, 结合, 变型)8.1 Hierarchical Indexing(分层索引)1 Reordering and Sorting Levels(重排序和层级排序)2 Summa…...

Redis 扩展 RedisBloom 插件,解决缓存击穿、穿透

文章目录 一、概述二、编译准备2.1 升级 make2.2 安装 Python3 三、编译 RedisBloom四、测试 RedisBloom五、应用场景5.1 缓存击穿5.2 缓存穿透5.3 原理总结 六、存在的问题 如果您对Redis的了解不够深入请关注本栏目,本栏目包括Redis安装,Redis配置文件…...

VBA技术资料MF80:选择文件及文件夹

我给VBA的定义:VBA是个人小型自动化处理的有效工具。利用好了,可以大大提高自己的工作效率,而且可以提高数据的准确度。我的教程一共九套,分为初级、中级、高级三大部分。是对VBA的系统讲解,从简单的入门,到…...

网络层:控制平面

路由选择算法 路由选择算法就是为了在端到端的数据传输中,选择路径上路由器的最好的路径。通常,一条好的路径指具有最低开销的路径。最低开销路径是指源和目的地之间具有最低开销的一条路。 根据集中式还是分散式来划分 集中式路由选择算法&#xff1a…...

Ubuntu 系统内核 kernel panic

Ubuntu 系统内核 kernel panic 不能进入系统:报错end kernel panic -not syncing: attemped to kill init! exit code 0x00000100 系统启动的时候,按下‘e’键进入grub编辑界面,编辑grub菜单,选择“kernel /vmlinuz-XXXXro root…...

【flink】RowData copy/clone方式

说明:一般用户常用的是GenericRowData。flink内部则多使用BinaryRowData。 方法一、循环解决(不推荐): 代码较为复杂需要根据RowType获取到内部fields的logicalType,再使用RowData.createFieldGetter方法创建fieldGetters。 public static …...

网页图标工具

工具地址...

掌动智能:功能测试及拨测主要功能

在企业中对于功能测试及拨测而言,用户只需提供应用包和产品文档,由资深测试专家设计并执行测试,覆盖核心场景,包含特定业务流程以及行业通用特殊场景,支持需求定制。 执行过程严格监控,依据应用功能和业务需…...

第11章 Java集合(二)

目录 内容说明 章节内容 一、Set接口 二、HashSet集合 三、LinkedHashSet集合 四、TreeSet集合...

Transformer和ELMo模型、word2vec、独热编码(one-hot编码)之间的关系

下面简要概述了Transformer和ELMo模型、word2vec、独热编码(one-hot编码)之间的关系: 独热编码(One-hot Encoding)是一种最基本的词表示方法,将词表示为高维稀疏向量。它与ELMo、word2vec和Transformer的关…...

您与1秒钟测量两千个尺寸之间仅差一台智能测径仪!

随着产线的发展,自动化程度越来越高,生产速度越来越快,人们对产品的品质要求越来越高,对检测也提出了更高的要求。传统的检测与测量手段已经很难满足测量效率要求,业内迫切需要一种新型高效率的测量设备。 产线多种多样…...

k8s之service五种负载均衡byte的区别

1,什么是Service? 1.1 Service的概念​ 在k8s中,service 是一个固定接入层,客户端可以通过访问 service 的 ip 和端口访问到 service 关联的后端pod,这个 service 工作依赖于在 kubernetes 集群之上部署的一个附件&a…...

Unity项目转微信小游戏保姆教程,繁杂问题解决,及微信小游戏平台简单性能测试

前言 借着某人需求,做了一波简单的技术调研:将Unity项目转换为微信小游戏。 本文主要内容:Unity转换小游戏的步骤,遇到问题的解决方法,以及简单的性能测试对比 微信小游戏的限制 微信小游戏对程序包体大小有严格限制…...

json字符串转为开闭区间

1.需求背景 1.1 前端页面展示 1.2 前后端约定交互json 按照页面每一行的从左到右 * 示例 [{"leftSymbol":">","leftNum":100,"relation":"无","rightSymbol":null,"rightNum":0}, {"left…...

STM32 IIC 实验

1. 可以选择I2C1,也可以选择I2C2,或者同时选择,同时运行 配置时钟信号 为节约空间,选择这两个,然后选择GENERATE CODE 二、HAL_I2C_Mem_Write I2C_HandleTypeDef *hi2c:I2C设备句柄 uint16_t DevAddress&am…...

第六章 包图组织模型|系统建模语言SysML实用指南学习

仅供个人学习记录 概述 包是容器的一个例子。包中的模型元素称为可封装元素,这些元素可以是包、用例和活动。由于包本身也是可封装元素,因此可以支持包层级。 每个有名称的模型元素也必须是命名空间的一份子,命名空间使得每个元素均能够通过…...

超短脉冲激光自聚焦效应

前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应,这是一种非线性光学现象,主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场,对材料产生非线性响应,可能…...

RocketMQ延迟消息机制

两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数,对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后&#xf…...

Unity3D中Gfx.WaitForPresent优化方案

前言 在Unity中,Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染(即CPU被阻塞),这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案: 对惹,这里有一个游戏开发交流小组&…...

Appium+python自动化(十六)- ADB命令

简介 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试…...

Debian系统简介

目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版&#xff…...

如何在看板中体现优先级变化

在看板中有效体现优先级变化的关键措施包括:采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中,设置任务排序规则尤其重要,因为它让看板视觉上直观地体…...

可靠性+灵活性:电力载波技术在楼宇自控中的核心价值

可靠性灵活性:电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中,电力载波技术(PLC)凭借其独特的优势,正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据,无需额外布…...

(二)TensorRT-LLM | 模型导出(v0.20.0rc3)

0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述,后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作,其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...

如何将联系人从 iPhone 转移到 Android

从 iPhone 换到 Android 手机时,你可能需要保留重要的数据,例如通讯录。好在,将通讯录从 iPhone 转移到 Android 手机非常简单,你可以从本文中学习 6 种可靠的方法,确保随时保持连接,不错过任何信息。 第 1…...

安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲

文章目录 前言第一部分:体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分:体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...