STM32 FSMC外设原理与SRAM内存式访问实战
1. FSMC外设的本质与定位FSMCFlexible Static Memory Controller是STM32F1系列中一个高度集成、功能强大的片上外设其核心价值在于将外部存储器的访问操作“透明化”和“内存化”。它并非一个简单的GPIO模拟时序控制器而是直接挂载在AHB总线上的高性能存储器接口引擎。理解这一点是掌握FSMC应用的逻辑起点。在STM32F103VET6和ZET6等大容量产品中FSMC是芯片资源列表中明确列出的关键外设。它的存在使得MCU能够无缝地将外部SRAM、NOR Flash、PSRAM甚至PC卡等设备映射为自身地址空间的一部分。这种映射不是软件层面的抽象而是硬件层面的物理连接当CPU执行一条对特定地址范围的读/写指令时总线系统会自动将该请求路由至FSMC模块由FSMC依据预设的配置生成符合目标存储器电气特性的精确时序信号并驱动对应的GPIO引脚完成物理层交互。FSMC的命名揭示了其设计哲学。“Flexible”灵活体现在它通过同一套硬件逻辑支持多种存储器协议“Static”静态则严格界定了其能力边界——它仅能管理无需动态刷新的存储器如SRAM、NOR Flash、PSRAM。它不具备控制SDRAM所需的刷新计数器和复杂的行/列地址管理逻辑。这一关键限制直接决定了FSMC在F1系列中的角色定位它是静态存储扩展的终极方案而非通用存储控制器。后续的F429等型号将FSMC升级为FMCFlexible Memory Controller移除了“Static”一词正是为了体现其对SDRAM的支持能力这也反向印证了F1系列FSMC的固有特性。2. FSMC硬件架构深度解析FSMC的硬件框图看似简洁实则蕴含了严谨的系统级设计思想。它由三个核心部分构成通信引脚、存储器控制器和地址映射单元。这三者协同工作共同实现了“内存式访问”的魔法。2.1 通信引脚物理世界的桥梁FSMC的引脚是其与外部世界对话的唯一通道。这些引脚被精心划分为几类每类服务于特定的存储器类型和协议通用地址/数据线A[0:25], D[0:15]这是FSMC的骨干。A[0:25]提供了高达64MB的寻址能力而D[0:15]则支持8位或16位数据总线宽度。这些信号线是NOR Flash、PSRAM和SRAM共用的体现了FSMC设计的复用性。专用控制信号线NE[1:4]Chip Select片选信号。这是FSMC实现多设备管理的核心。NE1-NE4四根独立的片选线允许MCU在同一总线上挂载最多四个独立的存储器设备。FSMC会根据CPU访问的地址范围自动激活对应的NEx引脚。例如访问0x68000000-0x6BFFFFFF区间时FSMC自动拉低NE3从而选中连接在此引脚上的SRAM芯片。这种硬件自动选片机制彻底解放了软件使其无需在每次访问前手动操作GPIO。NOEOutput Enable与 NWEWrite Enable读使能和写使能信号。它们分别对应于SRAM的OE#Output Enable和WE#Write Enable引脚是读写操作的启动开关。NBL[0:1]Byte Lane字节使能信号对应于SRAM的LB#Lower Byte和UB#Upper Byte。在16位数据总线下NBL[0]控制D[0:7]NBL[1]控制D[8:15]实现了对单个字节的精细操作这对于处理非对齐数据或小数据量传输至关重要。同步时钟CLK此引脚专为同步存储器如某些NOR Flash设计用于提供采样时钟。对于异步SRAM而言此引脚无实际作用但其时钟源HCLK的频率却是所有时序参数计算的基准。2.2 存储器控制器时序的精密指挥官存储器控制器是FSMC的“大脑”它由一组可编程寄存器构成负责定义FSMC如何与外部设备进行时序交互。对于SRAM这类异步设备控制器主要依赖三组寄存器BCRxBank Control Register, x1..4控制寄存器定义了存储器的基本工作模式。关键位包括MWID[1:0]数据总线宽度。00表示8位10表示16位。这必须与SRAM芯片的数据位宽及硬件连线严格一致。WREN写使能。置1后FSMC才响应写操作。EXTMOD扩展模式使能。这是区分“标准模式”与“扩展模式”的开关。当EXTMOD0时读/写操作共用同一套时序参数当EXTMOD1时则启用独立的读时序BTRx和写时序BWTRx寄存器为读写时序要求差异较大的设备提供了精细调控能力。BTRxBank Timing Register, x1..4读时序寄存器专为读取操作定制。其核心参数为ADDSET[3:0]地址建立时间。定义了从地址线稳定到发出读使能NOE#信号之间的延迟周期数。DATAST[7:0]数据保持时间。定义了从读使能NOE#信号有效到数据总线D[0:15]上数据稳定并可供CPU采样的延迟周期数。BWTRxBank Write Timing Register, x1..4写时序寄存器专为写入操作定制。其结构与BTRx完全相同同样包含ADDSET和DATAST等位域用于独立配置写操作的时序。这三组寄存器并非孤立存在而是按BankBank1-Bank4组织。每个Bank拥有自己独立的BCRx、BTRx和BWTRx这意味着你可以为连接在NE1上的NOR Flash配置一套时序同时为连接在NE3上的SRAM配置另一套完全不同的时序互不干扰。2.3 地址映射单元虚拟与现实的翻译器地址映射是FSMC最精妙的设计。它将外部存储器的物理地址无缝地“折叠”进STM32的内部地址空间。STM32的整个地址空间被划分为多个区域其中0x60000000-0x9FFFFFFF这一GB空间被专门分配给FSMC。这个GB空间又被细分为四个Bank*Bank10x60000000-0x6FFFFFFF用于NOR Flash、PSRAM和SRAM。*Bank20x70000000-0x7FFFFFFF专用于NOR Flash。*Bank30x80000000-0x8FFFFFFF专用于NOR Flash。*Bank40x90000000-0x9FFFFFFF专用于PC Card。Bank1本身又进一步细分为四个子区域分别对应NE1-NE4*0x60000000-0x63FFFFFF(NE1)*0x64000000-0x67FFFFFF(NE2)*0x68000000-0x6BFFFFFF(NE3)*0x6C000000-0x6FFFFFFF(NE4)这种层级化的地址映射构成了一个清晰的硬件-软件契约。开发者在设计原理图时必须将SRAM的CS#引脚连接到FSMC的某一根NEx引脚上在编写代码时就必须使用该NEx所对应的地址范围内的指针来访问SRAM。例如若SRAM连接在NE3则所有对SRAM的读写操作都必须通过指向0x68000000起始地址的指针来完成。CPU对0x68000000的访问会被总线系统自动识别为Bank1, NE3的请求进而触发FSMC生成相应的时序。3. FSMC与SRAM的时序匹配原理FSMC与SRAM的协同工作本质上是一场精密的“时间舞蹈”。FSMC的寄存器配置必须严格遵循SRAM芯片数据手册中规定的时序参数否则将导致读写错误。理解二者时序参数的映射关系是配置成功的关键。3.1 时序基准HCLK的决定性作用FSMC的所有时序参数均以HCLKAHB总线时钟的周期为单位进行配置。在典型的F103系统中HCLK被配置为72MHz其周期为T_HCLK 1 / 72MHz ≈ 13.89ns。这意味着当我们在BTRx寄存器中将DATAST设置为0x05时实际的硬件延迟为5 1 6个HCLK周期即6 × 13.89ns ≈ 83.3ns。因此HCLK的频率是所有时序计算的绝对基准任何对FSMC的配置都必须首先确认当前的HCLK值。3.2 SRAM读时序分析与FSMC配置以常见的IS61LV25616AL SRAM为例其关键读时序参数如下*TAAAddress Access Time地址有效到数据有效的时间最大值为12ns。*TOEOutput Enable Access TimeOE#信号有效到数据有效的时间最大值为25ns。*TRCRead Cycle Time读周期总时间最小值为55ns。FSMC的模式A读时序图与之对应*ADDSET控制地址建立时间。它应确保在NOE#信号变低之前地址线已稳定超过TAA。因此ADDSET的值应满足(ADDSET 1) × T_HCLK TAA。对于72MHz HCLKTAA12nsADDSET0即1个周期≈13.89ns已足够。*DATAST控制数据保持时间。这是最关键的参数它必须确保FSMC在数据真正稳定后才进行采样。数据在NOE#变低后的TOE时间内才会出现在总线上因此DATAST必须满足(DATAST 1) × T_HCLK TOE。对于TOE25nsDATAST1即2个周期≈27.78ns是安全的选择。* 整个读周期(ADDSET DATAST 2) × T_HCLK应大于TRC。在上述配置下(012)×13.89ns≈41.7ns小于55ns。此时FSMC会自动插入等待状态Wait State延长整个周期以满足TRC要求。这正是FSMC“智能”的体现——它会根据配置的参数和TRC约束自动调整实际的硬件行为。3.3 SRAM写时序分析与FSMC配置SRAM的写时序同样有其硬性约束*TWPWrite Pulse WidthWE#信号的最小有效宽度最小值为55ns。*TPWWrite Data Hold TimeWE#信号无效后数据必须保持稳定的最小时间最小值为40ns。FSMC的写时序配置需满足*ADDSET在BWTRx中控制地址建立时间要求(ADDSET 1) × T_HCLK TAA与读操作相同。*DATAST在BWTRx中控制数据保持时间其含义是WE#信号有效后数据必须保持稳定的最小时间。因此DATAST必须满足(DATAST 1) × T_HCLK TPW。对于TPW40nsDATAST2即3个周期≈41.67ns是安全的。* 整个写周期(ADDSET DATAST 2) × T_HCLK必须大于TWP55ns。在ADDSET0,DATAST2的配置下(022)×13.89ns≈55.56ns恰好满足要求。3.4 模式A与模式E细微差别的工程抉择FSMC为SRAM提供了两种主要的访问模式模式A和模式E。它们的区别主要体现在NOE#信号的时序和读/写时序的独立性上。模式ANOE#信号在地址稳定后经过ADDSET周期才被拉低。读/写时序可以独立配置当EXTMOD1时通过BTRx和BWTRx分别设置。这是最常用、最灵活的模式。模式ENOE#信号在地址线变化的同时就被拉低或几乎同时读/写时序强制共用BTRx寄存器的配置EXTMOD0。在绝大多数SRAM应用中模式A是首选。其NOE#的延迟特性天然地满足了TAA的要求且独立的读写时序配置为优化性能提供了可能。模式E则更多地用于对时序要求极其苛刻或需要与特定旧版设计兼容的场景。在实际工程中若一种模式配置失败切换至另一种模式往往是快速排错的有效手段。4. Bank1与NE引脚的硬件绑定逻辑Bank1是FSMC中功能最丰富、应用最广泛的存储区它统一管理NOR Flash、PSRAM和SRAM。然而在具体项目中我们通常只使用其中一种设备。这种“一区多能”的设计其背后的硬件逻辑是通过NE引脚与Bank的严格绑定来实现的。4.1 Bank与NE的物理对应关系Bank1的四个子区域NE1-NE4与FSMC的四根片选引脚NE1-NE4是一一映射的。这种映射是固定的硬件逻辑无法通过软件更改。当你将一块SRAM芯片的CS#引脚焊接到STM32的FSMC_NE3引脚上时你实际上就完成了两件事1.物理连接建立了MCU与SRAM之间的片选信号通路。2.地址绑定确定了这块SRAM在MCU地址空间中的唯一位置即0x68000000-0x6BFFFFFF。这是一个不可分割的硬件-软件联合体。如果原理图上SRAM接在FSMC_NE3而你的代码却试图通过0x64000000NE2的地址去访问它那么无论FSMC寄存器配置得多么完美访问都将失败因为FSMC_NE2引脚永远不会被拉低SRAM芯片始终处于未选中状态。4.2 开发板的引脚限制与工程权衡野火指南者开发板基于F103ZET6是一个典型的工程实践案例。F103ZET6芯片本身具备完整的FSMC外设但其封装LQFP144并未将所有FSMC引脚都引出。具体来说它缺少了FSMC_NE2和FSMC_NE4等关键引脚。这意味着尽管芯片有能力但开发板的硬件设计将其能力限制在了NE1和NE3上。这种限制迫使开发者做出权衡。对于一个需要扩展外部SRAM的应用唯一的可行路径就是将SRAM连接到FSMC_NE1或FSMC_NE3。这直接决定了你的软件必须使用0x60000000-0x63FFFFFF或0x68000000-0x6BFFFFFF这两个地址范围。这种由硬件物理限制驱动的软件决策是嵌入式开发中“软硬协同”的真实写照。它提醒我们任何高级的软件架构最终都必须扎根于底层硬件的物理现实。5. FSMC初始化的核心寄存器配置详解FSMC的初始化过程就是对前述BCRx、BTRx和BWTRx寄存器进行精确赋值的过程。以下是以F103ZET6控制一块16位宽SRAM连接于NE3为例的完整配置逻辑所有参数均基于72MHz HCLK和IS61LV25616AL的时序要求。5.1 控制寄存器BCR3配置BCR3负责开启Bank3对应NE3并设定基本模式。其关键位域配置如下*MBKENBit 0存储器Bank使能位。必须置1以激活Bank3。*MUXENBit 1地址/数据复用使能位。对于SRAM地址线A[0:18]和数据线D[0:15]是分离的因此此位必须清零0。*MTYP[1:0]Bits 2:3存储器类型。00表示SRAM/ROM01表示PSRAM10表示NOR Flash。此处应配置为00。*MWID[1:0]Bits 4:5数据总线宽度。10表示16位与硬件连线一致。*BURSTENBit 6突发访问使能。SRAM不支持突发模式清零0。*WAITPOLBit 7等待信号极性。SRAM无等待信号此位无关紧要可清零。*WAITENBit 8等待使能。同上清零。*WRENBit 12写使能。置1允许写操作。*WAITCFGBit 13等待时序配置。清零。*EXTMODBit 14扩展模式使能。置1以启用独立的读/写时序BTR3/BWTR3。综合以上BCR3的推荐配置值为0x00001011十六进制。这个值开启了Bank3设为16位SRAM模式并启用了扩展模式。5.2 读时序寄存器BTR3配置BTR3专为读操作优化。其关键位域配置如下*ADDSET[3:0]Bits 0:3地址建立时间。设为0x000周期即ADDSET1 1个HCLK周期13.89ns已远超TAA12ns的要求。*ADDHLD[3:0]Bits 4:7地址保持时间。对于SRAM此参数不敏感可设为0x00。*DATAST[7:0]Bits 8:15数据保持时间。设为0x011周期即DATAST1 2个HCLK周期27.78ns大于TOE25ns。因此BTR3的推荐配置值为0x00000101十六进制。5.3 写时序寄存器BWTR3配置BWTR3专为写操作优化。其关键位域配置与BTR3结构相同但数值不同*ADDSET[3:0]Bits 0:3同样设为0x00。*DATAST[7:0]Bits 8:15设为0x022周期即DATAST1 3个HCLK周期41.67ns大于TPW40ns。因此BWTR3的推荐配置值为0x00000201十六进制。5.4 配置流程与验证完整的初始化流程为1. 使能FSMC外设时钟RCC-AHBENR | RCC_AHBENR_FSMCEN。2. 使能相关GPIO端口时钟如GPIOD,GPIOE,GPIOF,GPIOG。3. 将FSMC功能复用到对应GPIO引脚如GPIOD-AFR[0] 0x0000EEEE。4. 配置GPIO为推挽输出模式GPIOD-MODER ...。5. 按上述计算结果依次向FSMC_BCR3,FSMC_BTR3,FSMC_BWTR3寄存器写入配置值。配置完成后最直接的验证方法是进行一次内存读写测试。例如定义一个指向0x68000000的uint16_t*指针psram_ptr然后执行*psram_ptr 0x1234; // 写入 uint16_t data *psram_ptr; // 读回如果data的值恒为0x1234则表明FSMC已正确初始化时序匹配无误。这是一种简单、高效、且直击本质的验证方式。6. “内存式访问”编程模型的工程实践FSMC最强大的优势在于它将复杂的外设驱动简化为最基础的C语言指针操作。这种“内存式访问”模型是嵌入式系统追求高效率与高抽象的典范。6.1 从寄存器操作到指针操作的范式转变在学习SPI或I2C驱动Flash时我们习惯于调用HAL_SPI_Transmit()函数传入一个命令字节、一个地址数组和一个数据缓冲区。整个过程是显式的、分步骤的、需要关注状态标志的。而FSMC则完全不同。一旦初始化完成你只需声明一个指向SRAM基地址的指针#define SRAM_BASE_ADDR 0x68000000 uint16_t *psram_buffer (uint16_t*)SRAM_BASE_ADDR;此后对psram_buffer[i]的任何读写都等同于对SRAM中第i个16位字的直接访问。编译器会将psram_buffer[i]编译为一条对0x68000000 i*2地址的LDRHLoad Register Halfword或STRHStore Register Halfword指令。CPU执行这条指令时硬件自动完成1. 地址总线输出0x68000000 i*2。2. FSMS检测到该地址属于Bank1, NE3自动拉低FSMC_NE3。3. FSMC根据BTR3/BWTR3的配置生成精确的NOE#或NWE#时序。4. 数据在总线上完成传输。整个过程对程序员完全透明无需任何额外的API调用或状态轮询。这种范式将开发者从繁琐的底层时序细节中解放出来可以将全部精力集中在业务逻辑上。6.2 大型数据结构的无缝部署“内存式访问”的威力在处理大型数据结构时尤为突出。例如一个需要实时处理的1024点FFT算法其输入缓冲区和输出缓冲区可以被直接定义在SRAM中// 在全局变量定义处 #pragma pack(1) typedef struct { float real; float imag; } complex_t; complex_t fft_input[1024] __attribute__((section(.ext_sram))); // 强制放置在外部SRAM段 complex_t fft_output[1024] __attribute__((section(.ext_sram)));通过链接脚本Linker Script将.ext_sram段映射到0x68000000起始的地址空间fft_input和fft_output数组就自然地驻留在外部SRAM中。FFT函数可以像操作内部RAM一样直接对其进行索引和计算代码简洁、性能极致。6.3 实际项目中的经验与陷阱在多个实际项目中我曾反复遇到一个经典陷阱时序参数的过度保守。初学者常因担心不稳定将DATAST设置得过大例如设为0xFF256个周期。这虽然保证了读写的绝对可靠但代价是巨大的性能损失。一次简单的16位读取耗时将从几十纳秒飙升至数微秒。在实时性要求高的场合如高速ADC数据缓存这会导致数据溢出。我的经验是永远从数据手册的最大值MAX出发进行计算并留出1-2个周期的安全裕量。例如TOE25nsHCLK72MHz13.89ns * 2 27.78ns 25nsDATAST1是最佳选择。只有在硬件布线质量较差长走线、阻抗不匹配或环境温度极高时才考虑增加一个周期。性能与可靠的平衡点永远在数据手册的极限边缘。另一个常见问题是地址映射的混淆。在多Bank系统中务必确认原理图、寄存器配置和C代码中使用的地址三者完全一致。我曾在一个项目中因原理图标注错误将SRAM误接在NE2而代码仍用NE3的地址导致系统运行数小时后随机崩溃。最终通过逻辑分析仪抓取FSMC_NE2和FSMC_NE3的波形才定位到这个“幽灵”问题。这再次印证了再完美的软件也无法弥补一个错误的硬件连接。

相关新闻

基于微信小程序的铁路订票管理系统毕业设计

基于微信小程序的铁路订票管理系统毕业设计

博主介绍:✌ 专注于Java,python,✌关注✌私信我✌具体的问题,我会尽力帮助你。一、研究目的本研究旨在设计并实现一个基于微信小程序的铁路订票管理系统,以满足现代铁路旅客在移动端进行购票的需求。具体研究目的如下:提高铁路订票…

2026/7/5 0:05:49 阅读更多 →
基于微信小程序的高校实习信息发布网站毕业设计源码

基于微信小程序的高校实习信息发布网站毕业设计源码

博主介绍:✌ 专注于Java,python,✌关注✌私信我✌具体的问题,我会尽力帮助你。一、研究目的本研究旨在构建一个基于微信小程序的高校实习信息发布网站,以实现以下研究目的: 首先,本研究旨在提高高校实习信息发布的效率…

2026/5/17 4:58:28 阅读更多 →
2025实战版:提示工程架构师优化Agentic AI上下文工程情境感知的端到端方案

2025实战版:提示工程架构师优化Agentic AI上下文工程情境感知的端到端方案

2025实战版:提示工程架构师优化Agentic AI上下文工程情境感知的端到端方案 关键词:提示工程架构师、Agentic AI、上下文工程、情境感知、端到端方案 摘要:本文深入探讨了在2025年的技术背景下,提示工程架构师如何优化Agentic AI的上下文工程和情境感知,提供了一套完整的…

2026/5/17 4:58:26 阅读更多 →

最新新闻

AI 压测数据回放:让模型读报告之前先校准口径

AI 压测数据回放:让模型读报告之前先校准口径

AI 压测数据回放:让模型读报告之前先校准口径 一、压测报告不能直接丢给模型 AI 可以帮助分析压测结果,但前提是输入数据口径清楚。很多压测报告里混着预热阶段、限流阶段、错误重试、下游故障和业务噪声。如果直接让模型总结,很容易得到一段…

2026/7/5 1:22:14 阅读更多 →
AI工具链选型:GitHub Copilot与Cursor、Codeium企业开发场景实测对比

AI工具链选型:GitHub Copilot与Cursor、Codeium企业开发场景实测对比

AI工具链选型:GitHub Copilot与Cursor、Codeium企业开发场景实测对比 一、评测体系设计与方法论 AI编码助手已成为开发效率的关键杠杆。本次评测聚焦三项主流工具的实际表现。从四个维度建立可复现的量化评测框架。 %%{init: {theme: base}}%% radartitle AI编码助手…

2026/7/5 1:20:14 阅读更多 →
PyTorch 数据加载瓶颈:GPU 空等时先看 DataLoader

PyTorch 数据加载瓶颈:GPU 空等时先看 DataLoader

PyTorch 数据加载瓶颈:GPU 空等时先看 DataLoader 一、训练慢不一定是模型慢 PyTorch 训练时,很多人看到速度慢就先改模型、调 batch size、换显卡。但如果 GPU 利用率忽高忽低,可能瓶颈根本不在模型,而在数据加载。图片解码、文本…

2026/7/5 1:20:14 阅读更多 →
群晖DSM 7.2.2视频管理终极解决方案:免费恢复Video Station完整功能

群晖DSM 7.2.2视频管理终极解决方案:免费恢复Video Station完整功能

群晖DSM 7.2.2视频管理终极解决方案:免费恢复Video Station完整功能 【免费下载链接】Video_Station_for_DSM_722 Script to install Video Station in DSM 7.2.2 and DSM 7.3 项目地址: https://gitcode.com/gh_mirrors/vi/Video_Station_for_DSM_722 你是否…

2026/7/5 1:20:14 阅读更多 →
云原生可观测性:构建全链路监控体系

云原生可观测性:构建全链路监控体系

引言在微服务架构和容器化部署成为主流的当下,系统的复杂性呈指数级增长。一个请求可能跨越数十个服务实例,传统的日志查看和单点监控已无法满足故障排查的需求。云原生可观测性(Observability)应运而生,它通过Metrics…

2026/7/5 1:18:13 阅读更多 →
工训赛智能小车 PCB 自制指南:从 BTN7971B 四路驱动到主控布局的 5 个要点

工训赛智能小车 PCB 自制指南:从 BTN7971B 四路驱动到主控布局的 5 个要点

工训赛智能小车PCB设计实战:从四路驱动到主控布局的进阶指南在工程训练综合能力竞赛的智能物流搬运赛项中,一辆性能卓越的小车往往始于精良的PCB设计。当现成模块难以满足定制化需求时,自主设计PCB不仅能显著降低成本,更能实现整车…

2026/7/5 1:18:13 阅读更多 →

日新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻