自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 常见ARM伪指令功能对照表

2026-02-04 19:41:40 105

原创 SPI总线四种不同的工作模式

SPI通信的四种工作模式由时钟极性(CPOL)和相位(CPHA)决定。CPOL决定空闲时钟状态:0为低电平,1为高电平;CPHA决定采样时刻:0在第一个时钟沿采样,1在第二个时钟沿采样。四种模式组合为:模式0(CPOL=0,CPHA=0)、模式1(0,1)、模式2(1,0)和模式3(1,1)。不同模式适用于不同设备的时序要求。

2026-02-01 19:40:22 651

原创 高速缓冲器Cache

高速缓冲存储器(Cache)的核心作用是解决CPU运算速度与内存读写速度不匹配的问题,通过存储CPU近期大概率会重复访问或连续访问的指令和数据,让CPU可以直接从速度更快的Cache中读取数据,大幅减少等待内存响应的时间,提升计算机整体运行效率。它遵循局部性原理,分为时间局部性(刚访问过的数据大概率会被再次访问)和空间局部性(访问某数据时,其相邻数据大概率也会被访问),按层级通常分为L1、L2、L3三级缓存,越靠近CPU的缓存速度越快、容量越小。

2026-01-23 17:53:34 85

原创 通俗易懂:ARM指令的寻址方式(三)

ARM指令采用条件执行机制,通过CPSR标志位判断是否执行。立即数0xF132无法直接使用,因ARM指令中立即数仅占12位(8位常数+4位移位值)。12位数据通过循环右移扩展为32位,如MOV R0,#0xF200的机器码E3A00CF2所示。ARM指令格式包含16位寄存器操作和12位立即数/寄存器操作数。硬件译码机制将机器码转换为具体操作,如3A对应MOV指令。

2026-01-23 17:45:59 359 1

原创 通俗易懂:ARM指令的寻址方式(二)

摘要:ARM架构将字节(8bit)作为最小可寻址单位而非比特位,主要基于硬件实现效率与实际使用需求的平衡。字节编址能降低地址总线复杂度,提高数据处理效率,同时保持对各类数据类型的兼容性。虽然支持半字/字访问,但其地址仍基于字节对齐。如STR R0,[R1]指令实际通过字节地址访问连续4个字节单元,印证了字节编址的核心地位。这一设计是处理器架构在成本、效率与灵活性之间的最优选择。(149字)

2026-01-22 16:21:33 110

原创 通俗易懂:ARM指令的寻址方式(一)

本文系统介绍了ARM处理器的多种寻址方式及其特点。首先阐述了ARM处理器的工作机制,强调其采用寄存器间接寻址方式,通过load/store指令实现寄存器与内存的数据交换。随后详细解析了七种主要寻址方式:立即寻址(操作数直接包含在指令中)、寄存器寻址(直接使用寄存器值)、寄存器间接寻址(寄存器值作为内存地址)、基址加偏移寻址(含前变址、自动变址和后变址三种变体)、多寄存器及块拷贝寻址(批量数据传输)、堆栈寻址(满/空、递增/递减四种组合)以及相对寻址(用于程序跳转)。文章特别指出ARM架构以字节为最小寻址单位

2026-01-22 16:06:49 962

原创 扩展:网络的本质

专线信号先接入企业机房的核心路由器(或防火墙),而非家用路由器,设备会通过运营商分配的固定IP、子网掩码、网关等参数进行配置,无需家庭网络的PPPoE拨号;企业向运营商(电信、联通、移动等)申请专线宽带(如光纤专线、SD-WAN专线),区别于家庭宽带,专线具备固定公网IP、上下行带宽对称、SLA服务等级保障的特点;2. 用网线将光猫的网口与路由器的 WAN口 相连,路由器通过PPPoE拨号(输入宽带账号和密码)或自动获取IP的方式,与运营商的网络建立连接,获取公网IP地址。二、家里的网络是怎么来的?

2026-01-19 21:11:32 589

原创 ARM系列(一)ARM指令:LDR:存储器到寄存器的数据发送指令

(带回写,执行后 R1 = R1 + 4)、 LDR R0, [R1], #4 (后变址,先取值再让 R1 = R1 + 4)。LDR 负责内存 → 寄存器的数据传输,而 STR 指令(存储指令)负责寄存器 → 内存的数据传输,二者配合实现 ARM 处理器与内存之间的数据交互。LDR 是 ARM 架构中加载指令,核心功能是从内存中读取数据并写入寄存器,是数据传输类指令的核心,分为立即数寻址和寄存器寻址两种常用格式。含义:计算内存地址 = R1 的值 + R2 的值,将对应内存数据加载到 R0 中。

2026-01-19 20:38:22 624

原创 服务器与网址的联系及DNS域名解析

网址与服务器的关系及DNS解析过程 网址(URL)是访问服务器的地址标识,包含协议、域名等信息,需通过DNS解析转换为服务器IP地址。服务器作为硬件载体,监听请求并返回对应资源,支持多域名绑定或负载均衡。DNS解析采用递归与迭代查询:先检查本地缓存,未命中则由本地DNS服务器依次查询根DNS、顶级DNS和权威DNS,最终获取IP地址并缓存。解析完成后,浏览器通过IP向服务器发起请求,完成访问。整个过程实现域名到IP的高效转换,确保用户准确访问目标服务器。

2026-01-18 13:02:14 703

原创 公共IP地址和私有IP地址的区别

公共IP与私有IP的区别 公共IP由ISP分配,全球唯一,可直接访问;私有IP用于局域网,可重复使用。主要区别:1)分配主体不同,公共IP由ICANN统一分配,私有IP由管理员自定;2)访问范围不同,公共IP可全网访问,私有IP仅限局域网;3)地址范围不同,私有IP有固定预留网段;4)使用场景不同,公共IP用于服务器等,私有IP用于家庭设备。家庭路由器同时具备两种IP,WAN口用公共IP连接外网,LAN口用私有IP管理内网设备。家用手机、电脑等均使用私有IP,通过路由器NAT转换上网。

2026-01-18 12:34:25 409

原创 TCP和IP的区别

TCP和IP是TCP/IP协议簇中的两个核心协议,主要区别在于:IP是网络层协议,负责数据包的路由选择和寻址传输,但不保证可靠性;TCP是传输层协议,提供面向连接的可靠传输服务,通过三次握手、确认应答、重传机制等确保数据有序无误送达。IP是无连接的独立数据包传输,TCP则需要先建立连接再通信。两者分层不同,功能互补,共同实现网络通信。

2026-01-17 17:07:02 319 1

原创 IP地址和MAC地址,以及设备之间是如何通信的

IP地址和MAC地址是网络通信中的两个关键标识符。IP地址(IPv4和IPv6)用于网络层寻址,实现跨网段的数据传输,其中IPv4地址空间有限,IPv6则提供更大空间和更多功能。MAC地址是设备的物理地址,固化在网卡中,用于局域网内的设备识别。两者协同工作:IP地址定位设备在网络中的位置,而MAC地址确保数据在传输过程中准确到达每个节点。例如,本地通信通过ARP协议获取MAC地址,跨网络通信则依靠IP地址和路由器逐跳转发,每一步都需使用MAC地址。

2026-01-17 16:32:49 844

原创 C51常见的错误(一)

这可能是因为 tem 变量在其他地方已经被定义过了,而这里又在全局作用域下尝试对其进行某种类似重新定义的操作(虽然本意可能是赋值)。如果 tem 是全局变量,考虑在合适的初始化函数(如 main 函数开始部分)中进行赋值操作,而不是在全局作用域下直接赋值。在C语言中,对于全局变量的初始化,有一定的规则限制,不能随意使用函数调用的返回值直接进行初始化。(如果是在函数内部作为局部变量赋值,通常不会有这样的问题,但这里是在全局作用域下)。检查 tem 变量在其他地方的定义情况,确保没有重复定义。

2026-01-12 16:33:50 615 2

原创 函数知识点及其应用

前面的博客介绍的所有程序都是由一个主函数main()组成的,程序的所有操作都是在main()函数中完成。在设计C语言程序时,程序除了包含一个主函数main()外,还可以有若干其他函数。举一个例子:用调用函数的方式计算整数的阶乘。【程序代码】long fac(int n) //fac()是自定义函数,用于计算n的阶乘int main()int i;long f=1;for(i=1;i<=n;i++)f=f*i;return(f);//返回函数值main() //主函数int n;

2024-02-07 20:39:56 1310 1

原创 数组(包含字符串)知识架构及其应用例题

包含数组的所有知识点,以及应用例题。(数值数组和字符数组)

2024-01-27 15:28:31 1426 1

原创 循环结构知识点解析及其应用实例

求n!,即求n的阶乘,n由键盘输入。【编程思路】求阶乘实际上是求累乘,即求1*2*3*4···*n。累乘与累加除运算类型不同外,其执行过程相同。【运行代码】

2024-01-19 15:54:06 1874 2

原创 实现分支结构的语句的知识点架构及例题

",如果a>b,max取a的值,否则max取b的值。在简单的if语句中,当if子句在语法上是一个语句时,两边的花括号“{}”可以不写,但如果包含多个语句,必须要用花括号“{}”括起来组成复合语句。(3)如果if子句或else子句只有一条语句,“{}”可以省略,如上面的例子,但是包含多个语句时,必须要用“{}”括起来组成复合语句。执行流程:计算表达式的值,若值为0(即“真”),则执行指定语句,否则直接执行if语句的下一条语句(计算表达式的值,若表达式的值为非0(即“真”),则选择执行语句1,否则执行语句2。

2024-01-16 14:00:35 1295 2

原创 C语言中标识符和关键字的区别

通常也称为保留字。应注意的是,用户定义的标识符不应与关键字相同(会导致编译错误)。C99标准则规定了37个关键字,关键字是由C语言规定的具有特殊意义的字符串被设计用来描述程序不同的组件,如变量、函数、控制结构等。可以简单理解为:关键字是预先定义好的单词,而标识符是用来区分不同数据结构的自定义字符串。标识符是用来识别程序中的变量名、符号常量名、函数名、数组名、类型名、文件名的有效字符序列,Mr.Chen(小数点错误),No.1$z38(".,$"错误),5F38(

2024-01-14 15:09:07 1481 2

原创 初识C语言

在main()函数中通常还需要调用其他函数,这些被调用的函数可以是用户自己定义的函数,也可以是系统提供的库函数。C程序的语句分为声明语句和执行语句两大部分,此处声明语句的作用是定义变量,为变量分配合适的存储单元。本例中只包含一个函数,函数名为main(),这是主函数。主函数是特殊函数,不可以随便取名,它的名字是唯一的。在C语言中没有专用的输入输出语句,输入或输出的操作都是通过函数实现的。这两行语句分别定义了3个变量,称这两行语句为声明语句,接下来的语句则是对这些变量内容的操作,称这几行语句为执行语句。

2024-01-13 16:43:41 691 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除