自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 飞腾平台UEFI和龙芯平台UEFI的区别

飞腾平台和龙芯平台的UEFI固件在架构、启动流程、硬件支持、操作系统兼容性等方面存在显著差异。飞腾基于ARM架构,龙芯基于MIPS架构,因此它们的UEFI实现需要针对各自的架构进行优化和定制。

2025-03-11 17:04:55 290

原创 ACS和SMMU

ACS 主要负责 I/O 设备访问控制 和 权限管理。SMMU 主要负责 内存地址转换 和 内存访问保护。它们相辅相成,在 I/O 虚拟化和内存安全中起到了重要作用,确保设备和内存的访问是安全且合规的。二、开启SMMU的情况下,关闭Acs是不生效的情况在开启 SMMU(System Memory Management Unit)的情况下,关闭 ACS(Access Control Services)不生效的原因涉及到两者在 I/O 虚拟化和内存访问控制中的不同角色与工作方式。

2025-02-27 15:30:42 674

原创 Linux的UEFI和X86的UEFI的区别

Linux的UEFI和X86的UEFI并不是指不同类型的UEFI本身,而是两者的使用环境和体系架构有所不同。下面我们来解释他们直接的区别:1、架构差异①、X86 UEFI:X86是指32位的Intel架构(也包括基于Intel的其他32位处理器)和兼容的处理器架构。X86架构使用的UEFI版本主要是为了32位硬件设计的,早期的操作系统和固件都基于此架构。在X86系统中,UEFI固件运行时会使用32位的代码模式,虽然现代的UEFI固件大多支持X86-64架构。②、Linux的UEFI:

2025-01-16 17:09:38 382

原创 UEFI和BIOS的区别

UEFI(统一可扩展固件接口,Unified Extensible Firmearw Interface)和传统的BIOS(基本输入输出系统,Basic Input/Output System)是计算机启动过程中使用的两种固件接口,他们在许多方面存在显著的区别。BIOS:传统的BIOS仅支持16位模式,并且在硬件支持方面有一定的局限性,尤其是在较新的硬件上。UEFI提供了更快的启动、更好的硬件支持、增强的安全性和更多的功能,是现代计算机的标准启动接口。BIOS:BIOS相对较为简单,缺乏一些现代安全特性。

2025-01-16 13:51:04 855

原创 【UEFI】PCIE枚举流程

在枚举过程中,UEFI固件还会建立系统资源表,其中包含了多有已识别设备的资源信息,如内存地址、I/O端口、DMA(Direct Memory Access)通道等。②、固件通过读取每个PCIE插槽的配置空间来识别设备类型、设备地址和其他必要的参数。在整个过程中,UEFI固件需要协调硬件、设备、驱动程序和操作系统之间的交互,以确保PCIe设备能够正确初始化并顺利交由操作系统控制。①、PCI配置空间:每个PCIe设备都有一个配置空间,存储着设备的基本信息,如厂商ID、设备ID、设备类型、状态寄存器等。

2025-01-09 15:13:06 468

原创 CPU大小端

CPU字节序:不同CPU架构采用不同的字节序,常见的如x86、x86_64使用小端序,而一些老式的架构(如PowerPC)使用大端序。在计算机系统中,字节序(Byte Order)是指多字节数据(如整数、浮点数等)在内存中存储的顺序。②、ARM:ARM架构可以配置为大端序和小端序(即支持Bi-endian),但大多数ARM系统使用小端序。在大端序中,最重要的字节(即最高字节0x12)被存储在最低的内存地址0x00。在小端序中,最重要的字节(即最高字节0x12)被存储在最高的内存地址0x03。

2025-01-08 16:54:23 374

原创 UART简介

④、停止位(Stop Bit):数据传输完成后,会有一个或多个停止位(通常为1位或2位),用于指示数据帧的结束,并为接收方准备好接收下一个数据帧。③、数据校验:虽然可以通过奇偶校验位进行简单的错误检测,但UART本身没有内置的强大错误纠正机制,因此在噪声环境下需要额外的保护措施。UART的数据传输是基于串行通信的方式,数据以比特(bit)为单位顺序传输,每次传输一个比特。①、传输距离:由于UART传输的是串行信号,多以它适用于短距离通信,长距离传输可能会受到信号衰减和噪声干扰。

2025-01-03 16:33:07 502

原创 SPI简介

它是同步的,也就是说数据传输依赖于时钟信号,确保发送方和接收方的数据同步。6.4、点对点通信:SPI通常用于一个主设备与一个从设备之间的通信,但也可以扩展到多从设备模式。4.3、SCK(Serial Clock):由主设备提供生成的时钟信号,控制数据位的时序。2.3、SCK(Serial Clock):由主设备提供的时钟信号,决定数据传输的时序。5.3、数据接收:在传输过程中,主设备和从设备交换数据,每个时钟周期发送一位数据。7.2、从设备(Slave):响应主设备的请求,按照主设备的时钟和命令传输数据。

2024-12-20 16:22:47 1276

原创 IIC简介

关于IIC总线简介。

2024-12-19 10:44:28 364

原创 【LINUX】GCC

Linux系统下的GCC编译器实际上是GNU编译工具链中的一款软件,可以用它来调用其他不同的工具进行诸如预处理、编译、汇编和链接这样的工作。GCC不仅功能强大、性能优越,其执行效率比一般的编译器相比要高20%~30%,而且由于其是GNU项目之一,是开源的软件,我们可以直接从网上免费的下载安装它。根据不同的编译器,会生成不同平台的汇编文件,使用GCC的话,生成就是X86格式的汇编文件,如果使用的是ARM平台的交叉编译器,那么将会生成ARM格式的汇编文件。这一步会解析所有的符号引用,将其替换为实际的地址。

2024-12-16 15:49:09 1751

原创 【LINUX】SHELL命令

Shell是一类软件的“统称”,这类软件是一种解释器,所谓的shell命令就是交由这类软件解释的。Shell(贝壳)正如其名字那样,保护着(或者说隔离着)操作系统,让应用程序可以更加轻易地达到某种特定的目的。1、改file1名字为file2。2、将file1移动到dir/去。1、复制file1为file2。1、比较file1和file2。1、将所有文件压缩为.bz2。2、复制dir1为dir2。3、将所有文件压缩为.gz。1、取apple别名为a。1、删除文件file。2、解压.bz2文件。

2024-12-13 11:22:39 996

原创 内存溢出和内存泄漏的简单理解

内存溢出和内存泄漏的简单理解

2022-10-24 17:36:43 504 1

原创 一个典型的C程序分区包含以下几类:

一个典型的C程序分区包含以下几类

2022-10-24 17:23:19 119

空空如也

空空如也

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

TA关注的人

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