【PCI】PCIe EP标准配置空间(十)

news2024/12/29 7:54:07

本文参考PCIe协议 5.0:https://download.csdn.net/download/zz2633105/89204842

PCIe配置空间

EP标准配置空间

在这里插入图片描述

Vendor ID Register (Offset 00h)

PCIe设备厂商ID,比如Intel的Vendor ID通常是0x8086。需要注意的是,厂商的ID不是厂商随意定的,而是由厂商花钱申请的,已申请PCIe厂商ID可以通过网址查询。

Device ID Register (Offset 02h)

PCIe设备ID,需要厂商自定义,通常用来区分不同种类的设备。在系统中,一般通过厂商ID(Vendor ID)和设备ID(Device ID)来加载驱动,较复杂的设备还可能借助子系统ID(Subsystem ID)和子系统厂商ID(Subsystme Vendor ID)。

Command Register (Offset 04h)

该寄存器为PCI设备的命令寄存器,在初始化时,其值为0,此时这个PCIe设备除了能够接受配置请求总线事务之外,不能接收任何存储器或I/O请求。系统软件需要合理设置该寄存器之后,才能访问该设备的存储器或者I/O空间。在linux系统中,设备驱动程序调用pci_enable_device函数,使能该寄存器的I/O和Memory Space位之后,才能访问该设备的存储器或者I/O地址空间。

在这里插入图片描述

bit功能
0I/O Space Bit,该Bit表示PCIe设备是否响应I/O请求,为1时响应,为0时不响应。如果PCIe设备支持I/O地址空间,系统软件会将该Bit置1,复位值为0。
1Memory Space Bit,该Bit表示PCIe设备是否响应内存请求(Memory Read/Write),为1时响应,为0时不响应。如果PCIe设备支持内存空间,系统软件会将Bit置1,复位值为0。
2Bus Master Bit,对于EP,该Bit表示PCIe设备是否可以主动发起I/O和内存请求,为1时表示可以,为0时表示不可以,复位时为0。
对于Bridge,该Bit除了表示自身是否可以主动发起I/O和内存请求外,还可以控制Bridge是否转发下行端口的I/O和存储器请求到上行端口。若该Bit为0,则拒绝转发下行端口的I/O和内存请求,并对Non-Posted请求给予回复UR(Unsupported Requests),Posted请求丢弃。
3Special Cycle Enable,该BIt为PCI设备特有的。对于PCIe设备,该Bit无意义,必须硬连接到0 b。
4Memory Write and Invalidate,该BIt为PCI设备特有的。对于PCIe设备,该Bit无意义,必须硬连接到0 b。
5VGA Palette Snoop,该BIt为PCI设备特有的。对于PCIe设备,该Bit无意义,必须硬连接到0 b。
6Parity Error Response,复位值为0,当PCIe报文传输过程中出现奇偶校验错误时,该Bit为0,则只会将Status寄存器的Detected Parity Error bit置1,该Bit为1,则即将Status寄存器的Detected Parity Error bit置1,又将Status寄存器的Master Data Parity Error bit置1。
7IDSEL Stepping/Wait Cycle Control,该BIt为PCI设备特有的。对于PCIe设备,该Bit无意义,必须硬连接到0 b。
8SERR# Enable,复位值为0。该Bit为1时,当PCIe设备出现错误,则允许发送Messages报文上报错误,具体的错误类型上报还需要看PCI Express Capability 的Device Control Register 寄存器。
9Fast Back-to-Back Transactions Enable,该BIt为PCI设备特有的。对于PCIe设备,该Bit无意义,必须硬连接到0 b。
10Interrupt Disable,控制PCIe生成INTx中断的能力。置位为1时,禁止PCIe产生INTx中断。需要注意的是,PCIe设备取消了INTx中断线,改成Message方式上报INTx中断。对于Bridge,该BIt只会影响自身产生中断,不会影响中断转发。

Status Register (Offset 06h)

该寄存器绝大多数位都是只读位,保存PCIe设备状态。

在这里插入图片描述

bit功能
0Immediate Readiness,可选位,当该Bit为1时,表示该function可以随时响应有效的配置请求。比如对某个function执行FLR(function层面复位)操作,正常情况下,主机应至少等待100ms才能发出配置请求访问这个function,但该Bit置1的话,主机便可立即访问该function。
3Interrupt Status,复位值为0,只读Bit,当该Bit为1时,表示有一个INTx传统中断在设备内部挂起。驱动程序很少使用该Bit判断是否有中断未处理,大多数是采用BAR空间中自定义Bit来确定某个中断是否pending。
4Capabilities List,只读Bit,为1时表示Capability Pointer寄存器中值有效,对于PCIe设备,必需实现PCI Express Capability,因此,该BIt需要硬连线置1。
566 MHz Capable,该BIt为PCI设备特有的。对于PCIe设备,该Bit无意义,必须硬连接到0 b。
7Fast Back-to-Back Transactions Capable,该BIt为PCI设备特有的。对于PCIe设备,该Bit无意义,必须硬连接到0 b。
8Master Data Parity Error,复位值为0,如果 Comand 寄存器的 Parity Error Response 为 0,那么该位在任何情况下都是 0。
若该Bit为1,则:
对于EP,表示接收到Poisoned Completion TLP或者发送了Poisoned Request TLP。
对于Bridge,表示从下游(Downstream)收到Poisoned Completion TLP或者向上游(Upstream)发送了Poisoned Request TLP。
10:9DEVSEL Timing,为PCI设备特有的。对于PCIe设备,该字段无意义,必须硬连线到00 b。
11Signaled Target Abort,复位值为0,设备收到 Posted 或者 Non-Posted 请求后,如果对该请求产生一个 Completer Abort Error,则将该Bit置为 1。如果收到的是 Non-Posted 请求,则设备需要向请求端回复一个带 Completion Abort Completion Status 的 Completion。
12Received Target Abort,该Bit写1清除,复位值为0,置1时,表示设备收到带有 Completer Abort Completion Status 的 Completion。
13Received Master Abort,该Bit写1清除,复位值为0,置1时,表示设备收到带有 Unsupported Request Completion Status 的 Completion。
14Signaled System Error,该Bit写1清除,复位值为0,在 Command 寄存器的 SERR# Enable 位设置为 1 的前提下,如果设备发送过 ERR_FATAL 或者 ERR_NONFATAL 消息,那么会将该位置为 1。
15Detected Parity Error, 该位的设置不受 Command 寄存器的 Parity Error Response 位的影响。
对于EP,设备收到 Poisoned TLP 时会将该位置 1。
对于Bridge,当它从上游(Primary )侧收到 Poisoned TLP 时,会将该位置 1。

Revision ID Register (Offset 08h)

修订ID寄存器存放硬件修订标识符,值由厂商自定义。一般系统会使用设备ID、厂商ID、修订ID来决定加载哪个驱动程序。厂商必须确保所选择的值不会导致使用不兼容的设备驱动程序。

Class Code Register (Offset 09h)

设备分类信息寄存器, 只读,表示PCIe设备属于哪一种类别,如网卡,存储卡,显卡等,是需要重点关注的一个寄存器。

在这里插入图片描述

Base Class Code
Base Class CodeDescription
0x00Unclassified device
0x01Mass storage controller
0x02Network controller
0x03Display controller
0x04Multimedia device
0x05Memory Controller
0x06Bridge Device
0x07Simple communications controllers
0x08Base system peripherals
0x09Inupt devices
0x0ADocking Stations
0x0BProcessorts
0x0CSerial bus controllers
0x0DWireless controller
0x0EIntelligent controller
0x0FSatellite communications controller
0x10Encryption controller
0x11Signal processing controller
0x12Processing accelerators
0x13Non-Essential Instrumentation
0x40Coprocessor
0xFFUnassigned class
Sub Class Code & Programming Interface
Unclassified device(0x00)
Sub Class CodeDescription
0x00Non-VGA unclassified device
0x01VGA compatible unclassified device
0x05Image coprocessor
Mass storage controller(0x01)
Sub Class CodeDescriptionProgramming Interface & Description
0x00SCSI storage controllerN/A
0x01IDE interface0x00 ISA Compatibility mode-only controller
0x05 PCI native mode-only controller
0x0a ISA Compatibility mode controller, supports both channels switched to PCI native mode
0x0f PCI native mode controller, supports both channels switched to ISA compatibility mode
0x80 ISA Compatibility mode-only controller, supports bus mastering
0x85 PCI native mode-only controller, supports bus mastering
0x8a ISA Compatibility mode controller, supports both channels switched to PCI native mode, supports bus mastering
0x8f PCI native mode controller, supports both channels switched to ISA compatibility mode, supports bus mastering
0x02Floppy disk controllerN/A
0x03IPI bus controllerN/A
0x04RAID bus controllerN/A
0x05ATA controller0x20 ADMA single stepping
0x30 ADMA continuous operation
0x06SATA controller0x00 Vendor specific
0x01 AHCI 1.0
0x02 Serial Storage Bus
0x07Serial Attached SCSI controller0x01 Serial Storage Bus
0x08Non-Volatile memory controller0x01 NVMHCI
0x02 NVM Express
0x09Universal Flash Storage controller0x00 Vendor specific
0x01 UFSHCI
0x80Mass storage controllerN/A
Network controller(0x02)
Sub Class CodeDescriptionProgramming Interface & Description
0x00Ethernet controllerN/A
0x01Token ring network controllerN/A
0x02FDDI network controllerN/A
0x03ATM network controllerN/A
0x04ISDN controllerN/A
0x05WorldFip controllerN/A
0x06PICMG controllerN/A
0x07Infiniband controllerN/A
0x08Fabric controllerN/A
0x80Network controllerN/A
Display controller(0x03)
Sub Class CodeDescriptionProgramming Interface & Description
0x00VGA compatible controller0x00 VGA controller
0x001 8514 controller
0x01XGA compatible controllerN/A
0x023D controllerN/A
0x80Display controllerN/A
Multimedia controller(0x04)
Sub Class CodeDescriptionProgramming Interface & Description
0x00Multimedia video controllerN/A
0x01Multimedia audio controllerN/A
0x02Computer telephony deviceN/A
0x03Audio deviceN/A
0x80Multimedia controllerN/A
Memory controller(0x05)
Sub Class CodeDescriptionProgramming Interface & Description
0x00RAM memoryN/A
0x01FLASH memoryN/A
0x02CXL0x00 CXL Memory Device - vendor specific
0x10 CXL Memory Device (CXL 2.x)
0x80Memory controllerN/A
Bridge(0x06)
Sub Class CodeDescriptionProgramming Interface & Description
0x00Host bridgeN/A
0x01ISA bridgeN/A
0x02EISA bridgeN/A
0x03MicroChannel bridgeN/A
0x04PCI bridge0x00 Normal decode
0x01 Subtractive decode
0x05PCMCIA bridgeN/A
0x06NuBus bridgeN/A
0x07CardBus bridgeN/A
0x08RACEway bridge0x00 Transparent mode
0x01 Endpoint mode
0x09Semi-transparent PCI-to-PCI bridge0x40 Primary bus towards host CPU
0x80 Secondary bus towards host CPU
0x0aInfiniBand to PCI host bridgeN/A
0x80BridgeN/A
Communication controller(0x07)
Sub Class CodeDescriptionProgramming Interface & Description
0x00Serial controller0x00 8250
0x01 16450
0x02 16550
0x03 16650
0x04 16750
0x05 16850
0x06 16950
0x01Parallel controller0x00 SPP
0x01 BiDir
0x02 ECP
0x03 IEEE1284
0xfe IEEE1284 Target
0x02Multiport serial controllerN/A
0x03Modem0x00 Generic
0x01 Hayes/16450
0x02 Hayes/16550
0x03 Hayes/16650
0x04 Hayes/16750
0x04GPIB controllerN/A
0x05Smard Card controllerN/A
0x80Communication controllerN/A
Generic system peripheral(0x08)
Sub Class CodeDescriptionProgramming Interface & Description
0x00PIC0x00 8259
0x01 ISA PIC
0x02 EISA PIC
0x10 IO-APIC
0x20 IO(X)-APIC
0x01DMA controller0x00 8237
0x01 ISA DMA
0x02 EISA DMA
0x02Timer0x00 8254
0x01 ISA Timer
0x02 EISA Timers
0x03 HPET
0x03RTC0x00 Generic
0x01 ISA RTC
0x04PCI Hot-plug controllerN/A
0x05SD Host controllerN/A
0x06IOMMUN/A
0x80System peripheral
0x99Timing Card0x01 TAP Timing Card
Input device controller(0x09)
Sub Class CodeDescriptionProgramming Interface & Description
0x00Keyboard controllerN/A
0x01Digitizer PenN/A
0x02Mouse controllerN/A
0x03Scanner controllerN/A
0x04Gameport controller0x00 Generic
0x10 Extended
0x80Input device controllerN/A
Docking station(0x0a)
Sub Class CodeDescriptionProgramming Interface & Description
0x00Generic Docking StationN/A
0x80Docking StationN/A
Processor(0x0b)
Sub Class CodeDescriptionProgramming Interface & Description
0x00386N/A
0x01486N/A
0x02PentiumN/A
0x10AlphaN/A
0x20Power PCN/A
0x30MIPSN/A
0x40Co-processorN/A
Serial bus controller(0x0c)
Sub Class CodeDescriptionProgramming Interface & Description
0x00FireWire (IEEE 1394)0x00 Generic
0x10 OHCI
0x01ACCESS BusN/A
0x02SSAN/A
0x03USB controller0x00 UHCI
0x10 OHCI
0x20 EHCI
0x30 XHCI
0x40 USB4 Host Interface
0x80 Unspecified
0xfe USB Device
0x04Fibre ChannelN/A
0x05SMBusN/A
0x06InfiniBandN/A
0x07IPMI Interface0x00 SMIC
0x01 KCS
0x02 BT (Block Transfer)
0x08SERCOS interfaceN/A
0x09CANBUSN/A
0x80Serial bus controllerN/A
Wireless controller(0x0d)
Sub Class CodeDescriptionProgramming Interface & Description
0x00IRDA controllerN/A
0x01Consumer IR controllerN/A
0x10RF controllerN/A
0x11BluetoothN/A
0x12BroadbandN/A
0x20802.1a controllerN/A
0x21802.1b controllerN/A
0x80Wireless controllerN/A
Intelligent controller(0x0e)
Sub Class CodeDescriptionProgramming Interface & Description
0x00I2ON/A
Satellite communications controller(0x0f)
Sub Class CodeDescriptionProgramming Interface & Description
0x01Satellite TV controllerN/A
0x02Satellite audio communication controllerN/A
0x03Satellite voice communication controllerN/A
0x04Satellite data communication controllerN/A
Encryption controller(0x10)
Sub Class CodeDescriptionProgramming Interface & Description
0x00Network and computing encryption deviceN/A
0x10Entertainment encryption deviceN/A
0x80Encryption controllerN/A
Signal processing controller(0x11)
Sub Class CodeDescriptionProgramming Interface & Description
0x00DPIO moduleN/A
0x01Performance countersN/A
0x10Communication synchronizerN/A
0x20Signal processing managementN/A
0x80Signal processing controllerN/A
Processing accelerators(0x12)
Sub Class CodeDescriptionProgramming Interface & Description
0x00Processing acceleratorsN/A
0x01SNIA Smart Data Accelerator Interface (SDXI) controllerN/A
Non-Essential Instrumentation(0x13)

N/A

Coprocessor(0x40)

N/A

Unassigned class(0xff)

N/A

Cache Line Size Register (Offset 0Ch)

cache缓存大小,是为了PCI设备设计的。对于PCIe设备,该寄存器的值无意义。

Latency Timer Register (Offset 0Dh)

为了PCI bridge设备设计的,对于PCIe设备,该寄存器的值无意义。

Header Type Register (Offset 0Eh)

PCIe设备头类型寄存器, 表示该设备是PCIe EP设备还是PCIe bridge设备。 PCIe 配置空间是type0类型还是type1类型,就是由该寄存器定义。该寄存器只读,由8位组成。

  • 第 7 Bit 为1表示当前PCI设备为多功能设备,为0表示为单功能设备(对于单PF多VF的设备,需要填写为0)。
  • 第 6-0 Bit 表示当前配置空间类型,为0表示普通PCIe设备配置空间,为1表示PCIe bridge设备配置空间,为2表示Cardbus桥片配置空间。

BIST Register (Offset 0Fh)

Built In Self Test(内部自检测试),用于BIST的控制和状态检查,调用BIST功能的function不能影响PCIe link状态。
在这里插入图片描述

BitDescription
3:0Completion Code,表示自检的完成状态,0000b表示自检测ok,非0000b表示自检测失败。
6Start BIST,用于软件启用function自检测功能,当 BIST Capable 为1时,系统软件可以通过对该BIt写1激活function自检。function应保证在2s内完成自检,并清除该Bit,将自检结果显示在Completion Code字段。若function在2s内未清除该Bit,则软件可以认为设备出现故障,进行故障处理操作。
7BIST Capable,为1时,表示支持BIST功能(内部自检测试)。

Base Address Registers (Offset 10h - 24h)

BAR地址寄存器负责PCIe设备内部空间的映射。

PCIe EP配置空间头部有6个BAR(Base Address Registers)寄存器, 决定PCIe设备空间映射到系统空间具体位置的寄存器, BAR记录了设备所需要的地址空间的类型(memory space或者I/O space),基址以及其他属性。 BAR的格式如下:
在这里插入图片描述

Bit描述
0表示这个BAR是I/O空间还是mem空间,1表示I/O空间,0表示mem空间。
2:1表示这个BAR是32bit还是64bit,00b表示32Bit,10b表示64Bit,当BAR为64Bit时,其高32Bit在下一个BAR中填写,比如BAR0和BAR1组成一个64Bit BAR寄存器。注意,由于PCIe Bridge的non prefetchable memory limit/base(offset 0x20h)位宽限制,PCIe EP设备不可预取BAR只能使用32 Bit,即使该字段值为10b,host也只会分配32 Bit的地址空间下来。
31表示mem空间可预取,0表示不可预取。注意,如果BAR支持可预取,请确保BAR空间没有副作用(读无副作用、内部值不会意外改变)。

type0(PCIe EP设备)有6个32bit的BAR寄存器,type1(PCIe Bridge设备)有2个32bit的BAR寄存器。每一个BAR地址对应一个地址空间。

在BAR寄存器有些bit是只读的,是PCI设备在出厂前就固定好的bit,写全1进去,如果值保持不变,就说明这些bit是厂家固化好的,这些固化好的bit提供了这块内部空间的一些信息。

举个例子:

上电时,系统软件首先会读取PCIe设备的BAR0,得到数据:
在这里插入图片描述
然后系统软件往该BAR0写入全1,得到:
在这里插入图片描述
低12bit没变,表明该设备空间大小是4KB(2的12次方),BAR地址的低4位表明了该存储空间的一些属性。然后系统软件根据这些信息,在系统内存空间找到这样一块地方来映射这4KB的空间,把分配的基地址写入到BAR寄存器。

系统启动时通过BAR地址把PCIe设备空间映射到存储器空间,CPU要访问该PCIe设备空间,只需访问对应的存储器空间。CPU发出一个物理地址,RC检查该地址,如果发现该内存空间地址是某个PCIe设备空间的映射,就会触发其产生TLP,去访问对应的PCIe设备,读取或者写入PCIe设备。

Cardbus CIS Pointer Register (Offset 28h)

为了PCI bridge设备设计的,对于PCIe设备,该寄存器的值无意义。

Subsystem Vendor ID Register/Subsystem ID Register (Offset 2Ch/2Eh)

PCIe设备的子系统厂商和子系统ID。比如inter提供了一个PCIe总线接口的IP核,并且IP核固化了设备ID和厂商ID为inter,但其他厂商使用这个IP生产了设备,所以可以通过子系统厂商和子系统ID来区分不同设备。

Expansion ROM Base Address Register (Offset 30h)

扩展ROM映射基地址寄存器。分配给ROM使用,用于PCIe设备在处理器还没有运行操作系统之前,完成基本的初始化设置。比如显卡、键盘、硬盘等设备,在处理器初始化过程中将运行这段ROM程序,初始化这些PCIe设备。这个寄存器记载这段ROM程序的基地址(类似BAR寄存器)。
在这里插入图片描述

Bit描述
0Expansion ROM Enable,使能位,表示这个设备是否支持ExROM,1表示支持,0表示不支持。
3:1Expansion ROM Validation Status,表示硬件验证ExROM内容的状态。例如,厂商制造了PCIe设备卖给客户,客户可以自行更换有效可信的ExROM程序,如果非法,则通过该字段告知host主机,让host主机忽略执行ExROM程序。
000b:验证不支持
001b:验证进行中
010b:验证通过,内容有效,但未执行信任测试
011b:验证通过,内容有效且可信
100b:验证失败,内容无效
101b:验证失败,内容有效但不可信(例如,过时、过期或已撤销的证书)
110b:警告通过,具有特定实现警告,内容有效,但未执行信任测试
111b:警告通过,具有特定实现警告,内容有效且可信。
7:4Expansion ROM Validation Details,ExROM验证详细信息,包含与Expansion ROM验证相关的可选的、特定于实现的详细信息。
1. 如果function不支持验证,则此字段为RsvdP(保留位)。
2. 此字段是可选的。当支持验证但未实现此字段时,此字段必须硬连到0000b。此字段中的任何未使用位都可以硬连到0b。
3. 如果验证正在进行中(Expansion ROM验证状态为001b),此字段的非零值表示验证进度的特定于实现的指示(例如,50%完成)。值0000b表示未提供验证进度信息。
4. 如果验证已完成(Expansion ROM验证状态为010b到111b),此字段中的非零值表示附加的特定于实现的信息。值0000b表示未提供信息。
5. 如果功能支持验证并具有用于Expansion ROM的增强分配能力(EA条目),则此字段为HwInit(硬件初始化)。 否则,此字段为只读位。
6. 此字段仅通过冷复位重置,并不受其他复位的影响。
7. 一旦验证过程完成,此字段的值不能更改。
8. 建议系统软件在报告验证状态(例如,错误日志)时包含此字段的值。

Capabilities Pointer (Offset 34h)

PCIe capbility的地址偏移, capbility用于表示PCIe设备支持的能力。该寄存器存放Capabilities 结构链表的头指针。在一个PCIe 设备中,可能含有多个Capability 结构,这些寄存器组成一个链表:
在这里插入图片描述
注意,PCIe设备必须要实现PCI Power Management Capability和PCI Express Capability,所以该字段必然不会为0。

Interrupt Line Register (Offset 3Ch)

表示当前PCIe设备使用的中断向量号,注意,这是由系统软件配置下来的,PCIe硬件不使用该寄存器。

Interrupt Pin Register (Offset 3Dh)

传统中断引脚只读寄存器,如果PCIe设备不支持传统中断,该寄存器值必须为0x00h。0x01~0x04值对应INTA、INTB、INTC和INTD中断,对于单function的PCIe设备,只能使用INTA,对于多function的PCIe设备,需要依次按序使用中断引脚号。

Min_Gnt Register/Max_Lat Register (Offset 3Eh/3Fh)

为了PCI设备设计的。对于PCIe设备,该寄存器的值无意义。

下一篇将讲解PCIe Bridge标准配置空间。

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

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

相关文章

人人可拥有刘强东同款数字人分身!

每个人都可以拥有东哥同款数字人分身直播间进行直播带货,怎样克隆自己的数字人形象? 青否数字人克隆源码的克隆效果媲美真人: 仅需将真人录制的2-6分钟视频上传至克隆端后台,系统便会自动启动自动克隆。3-5小时后,即可…

Python从0到100(十五):函数的高级应用

前言: 零基础学Python:Python从0到100最新最全教程。 想做这件事情很久了,这次我更新了自己所写过的所有博客,汇集成了Python从0到100,共一百节课,帮助大家一个月时间里从零基础到学习Python基础语法、Pyth…

地图图源#ESRI ArcGIS XYZ Tiles系列(TMS)

目录 1、前言 2、地图图源网址 2.1、Satellite 卫星图源 2.2、Terrain 地形图源 2.3、Street 路网/标注图源 2.4、Specifity 特色设计图源 3、专业推荐”穿搭“ 4、图源配置下载及使用 图源名称图层类别特别注意谷歌 Google①地形 ②影像 ③矢量及标注 ④特色图源国内大…

迭代加深搜索(图的路径查找)

目录 概念 优点 缺点 如何剪枝(八数码) 剪枝策略: 深度优先搜索(DFS)和广度优先搜索(BFS) 深度优先搜索(DFS) 广度优先搜索(BFS) 比较 应…

Facebook账号运营要用什么IP?

众所周知,Facebook封号大多数情况都是因为IP的原因。Facebook对于用户账号有严格的IP要求和限制,以维护平台的稳定性和安全性。在这种背景下,海外IP代理成为了一种有效的解决方案,帮助用户避免检测,更加快捷安全地进行…

基于51单片机的电子秤LCD1602液晶显示( proteus仿真+程序+设计报告+讲解视频)

基于51单片机电子秤LCD显示 1. 主要功能:2. 讲解视频:3. 仿真设计4. 程序代码5. 设计报告6. 设计资料内容清单&&下载链接 基于51单片机电子秤LCD显示( proteus仿真程序设计报告讲解视频) 仿真图proteus8.9及以上 程序编译器&#xf…

OceanBase开发者大会2023届视频及PPT汇总

数据库技术趋势 我眼中的数据库技术 阳振坤OceanBase 首席科学家 观看视频 下载 PDF 未来,中国需要什么样的数据库? 周傲英华东师范大学副校长,CCF 会士 观看视频 下载 PDF 云原生技术趋势解读 Keith ChanCNCF 云原生计算基金会中国区总监 …

Linux嵌入式驱动开发-阻塞IO与非阻塞IO

文章目录 阻塞与非阻塞访问简介阻塞访问的实现等待队列等待队列头等待队列项从等待队列头添加/移除等待队列项等待唤醒等待事件API 非阻塞访问的实现轮询poll 函数原型可以返回的资源状态 阻塞与非阻塞访问简介 **IO:**Input/Output,也就是输入/输出&am…

【无标题】vscode 配置c++ c编译环境

不用图形化也可以直接把launcher.json c_c_properties.json task.json复制到项目里 首先打开 vscode创建项目 ctrlshiftp 打开c/c edit configuration UI 配置生成c_cpp_properties.json文件 这里选择gcc为 c运行环境 只需要改配置名称跟编译器路径两处其他默认 选g为c环境 可…

Docker容器化部署(企业版)

大家好,webfunny前端监控埋点系统,已经正式发布了webfunny的官方镜像: Webfunny镜像目录:https://hub.docker.com/r/webfunny/webfunny_monitor_cluster/tags 部署前提是你的服务器已经安装了Docker环境,没有安装doc…

pygame 烟花效果

# 初始化 pygame.init() screen_width 800 screen_height 600 screen pygame.display.set_mode((screen_width, screen_height)) pygame.display.set_caption(烟花效果) # 焰火发射 particles [] # 焰火粒子 def firework(x, y): num_particles 100 # 每次发射的…

Springboot+Vue项目-基于Java+MySQL的影城管理系统(附源码+演示视频+LW)

大家好!我是程序猿老A,感谢您阅读本文,欢迎一键三连哦。 💞当前专栏:Java毕业设计 精彩专栏推荐👇🏻👇🏻👇🏻 🎀 Python毕业设计 &…

【Python-面向对象】

Python-面向对象 ■ 事物和类■ 成员方法定义和使用■ self■ 构造方法__init__()■ 魔术方法■ __str__字符串方法■ __lt__小于、大于符号比较■ __le__小于等于、大于等于符号比较■ __eq__符号比较■ 综合演示 ■ 封装■ 私有成员和方法 ■ 继承■ 单…

STM32之HAL开发——ILI9341液晶控制器

ILI9341液晶控制器简介 本液晶屏内部包含有一个液晶控制芯片ILI9341,它的内部结构非常复杂,如下图。该芯片最主核心部分是位于中间的GRAM(Graphics RAM),它就是显存。GRAM中每个存储单元都对应着液晶面板的一个像素点。它 右侧的各种模块共同…

Ubuntu20.04 ISAAC SIM仿真下载使用流程

机器:华硕天选X2024 显卡:4060Ti ubuntu20.04 安装显卡驱动版本:525.85.05 参考: What Is Isaac Sim? — Omniverse IsaacSim latest documentationIsaac sim Cache 2023.2.3 did not work_isaac cache stopped-CSDN博客 Is…

聚观早报 | TCL召开电视新品发布会;OceanBase 4.3发布

聚观早报每日整理最值得关注的行业重点事件,帮助大家及时了解最新行业动态,每日读报,就读聚观365资讯简报。 整理丨Cutie 4月22日消息 TCL召开电视新品发布会 OceanBase 4.3发布 科大讯飞推出耳背式助听器 F1联想中国大奖赛开赛 蔚来展…

力扣——并查集算法系列

【LeetCode 684. 冗余连接】 思路: 首先因为这是一个无向图,所以不需要考虑谁是树根。 那么我们一条条边加入到图里去,直到出现了环为止,那么这条边就是冲突的边,需要删除掉。 那么怎么判断是否出现了环呢&#xff…

36. 【Android教程】侧滑菜单:DrawerLayout

侧滑菜单是用来在页面上增加一个抽屉式菜单栏的控件,它一般位于左侧,用户可以通过侧滑拉出或者关闭。通常你可以放置一些菜单项或者上下文相关的设置在里面,帮助你节省屏幕空间同时可以很方便的随时打开。侧滑菜单其实就是下面这货&#xff1…

python 对图片进行操作

Pillow是一个强大的图像处理库,它提供了许多用于打开、操作和保存图像的功能。 Image模块: Image模块提供了用于打开、创建、编辑和保存图像的基本功能。可以使用Image.open()函数来打开图像文件,或者使用Image.new()函数来创建新的图像,还可…

【Java框架】Spring框架(六)——Spring中的Bean的作用域

目录 Bean的作用域1.singleton(默认)代码示例 2.prototype代码示例 3.request代码示例 4.session代码示例 5.application代码示例 websocket Bean的作用域 Spring支持6个作用域:singleton、prototype、request、session、application、websocket 1.singleton(默认…