Zynq强制烧写Flash:绕过启动模式限制的PL辅助方案详解
1. 项目概述为什么需要“强制烧写”在Zynq-7000或UltraScale MPSoC的开发流程里把程序固化到板载的QSPI Flash或NAND Flash里是产品最终交付前的标准操作。常规的固化流程大家都很熟悉在Vivado或Vitis里生成BOOT.bin然后通过SDK/XSCT的program_flash命令或者直接用JTAG配合flash命令把镜像写进去。这个流程有个前提——你的Zynq芯片得处于能从Flash启动的模式通常是MIO[5:0]001010或001100对应的QSPI模式。但实际调试中我们经常会遇到一个尴尬的局面板子可能因为硬件设计、模式引脚配置错误或者干脆就是为了图省事一直挂在JTAG模式上没切到Flash启动模式。这时候你想烧写Flash工具链就会报错提示找不到Flash设备或者无法建立连接。“不切换启动模式强制烧写”这个需求就是针对这种场景的。它的核心价值在于提升调试效率避免不必要的硬件操作。想象一下你正在实验室调试一块核心板启动模式跳线帽被其他板子借走了或者板子已经集成到机箱里抠跳线帽非常麻烦。又或者你只是想在JTAG调试过程中临时更新一下Flash里的内容而不想重启、拔插、切换模式。这时候如果能在JTAG模式下直接“强行”把程序写进Flash无疑会省去大量时间让开发流程更流畅。这个操作的本质是绕过Xilinx工具链对启动模式的常规检查直接通过JTAG接口对Flash存储器进行底层编程。它依赖的是JTAG链对PS处理系统和PL可编程逻辑的完全控制能力。当你通过JTAG连接芯片时你实际上拥有了最高的权限可以配置PS端的MIO、初始化Flash控制器、然后像操作普通存储器一样对挂在PS端的Flash芯片进行擦除和写入。这听起来有点“硬来”的感觉但只要你清楚芯片的地址映射和Flash的操作时序这在技术上是完全可行的而且非常稳定。接下来我会拆解这个操作的完整思路、具体步骤以及我踩过的那些坑。无论你是用的是Zynq-7000还是更高级的MPSoC原理都是相通的。我会以最常见的Zynq-7020和Micron的QSPI Flash型号如N25Q128A为例但方法可以举一反三适配其他型号。2. 核心思路与方案选型绕过启动模式检查的几种路径要实现强制烧写核心矛盾在于在JTAG模式下PS的启动ROM不会去初始化Flash控制器因此Flash设备对PS是不可见的。我们的目标就是手动完成这个初始化过程让Flash变得可访问。主要有三种实现路径各有优劣。2.1 路径一纯PS端JTAG脚本控制这是最直接、依赖最少的方法。完全通过XSCTXilinx Software Command-Line Tool或SDK的TCL脚本环境利用JTAG连接执行一系列命令来配置PS然后烧写Flash。工作原理通过JTAG连接芯片停止ARM Cortex-A9核心的运行。通过JTAG直接配置PS的MIO引脚将其模拟设置为QSPI启动模式下的状态特别是时钟、片选、数据线。直接对PS内部的QSPI Flash控制器寄存器进行编程使其初始化并进入正常工作模式。将Flash芯片映射到PS的地址空间通常是0xQSPI_LINEAR_BASE如0xFC00_0000。使用通用的Flash编程算法或直接通过控制器向该地址空间写入数据完成烧录。优点无需额外硬件或PL工程只需要标准的JTAG调试器和XSCT环境最简洁。通用性强理论上适用于任何Zynq板卡只要JTAG连接正常。缺点步骤繁琐寄存器操作复杂需要非常熟悉PS的寄存器手册UG585手动配置几十个寄存器极易出错。稳定性依赖脚本不同板卡、Flash型号的细微差异如上拉电阻、时钟频率都需要调整脚本调试成本高。速度可能较慢通过JTAG间接操作寄存器再读写Flash速度不如PL方案。实操心得早期我尝试过这条路为此写了几百行的TCL脚本。最大的坑在于Flash控制器的“DACR”设备地址控制寄存器和“LQSPI_CR”线性QSPI控制寄存器的配置顺序一旦弄反Flash就会进入一种“死”状态必须完全断电重启才能恢复。对于偶尔操作来说性价比不高。2.2 路径二利用PL设计辅助推荐方案这是我最推荐也是实践中最稳定、最高效的方案。其核心思想是在PL部分设计一个简单的Flash控制器或复用已有的AXI Quad SPI IP核通过JTAG加载一个临时的PL比特流然后通过这个PL侧的控制器去读写Flash。工作原理在Vivado中为你的板卡创建一个最简工程主要包含Zynq Processing System IP和AXI Quad SPI IP。正确配置AXI Quad SPI IP使其与板载Flash的型号、速度模式匹配并连接到PS的AXI总线。生成比特流文件.bit。通过JTAG连接板卡在XSCT中 a. 下载这个.bit文件到PL配置PL。 b. 此时AXI Quad SPI IP已经工作Flash通过PL被挂载到了PS的地址空间。 c. 在XSCT中你可以直接使用dow命令将编程算法和镜像数据加载到PS的OCM或DDR中然后运行一个小的烧写程序通常由program_flash命令内部完成或者直接通过内存读写命令操作AXI Quad SPI映射的地址来烧写Flash。优点稳定可靠利用了经过充分验证的AXI Quad SPI IP核省去了手动配置PS寄存器的麻烦兼容性最好。速度快通过AXI总线操作Flash速度接近Flash的理论极限。一劳永逸为你的板卡做好一个通用的“强制烧写比特流”后以后可以反复使用。缺点需要提前准备比特流必须为你的具体板卡和Flash型号生成一个匹配的.bit文件。依赖PL资源需要占用少量的PL逻辑和引脚资源但对于绝大多数Zynq芯片来说这微不足道。2.3 路径三使用第三方开源工具如OpenOCD这是一种更底层、更通用的方法。OpenOCD可以绕过Xilinx的工具链直接通过JTAG接口发送命令控制ARM核心和总线从而操作Flash控制器。优点跨平台不依赖Vivado/Vitis可以在Linux环境下独立运行。灵活性极高可以编写自定义的Flash驱动脚本。缺点配置极其复杂需要编写或修改OpenOCD的板级配置文件.cfg定义Flash芯片的详细参数和编程算法。社区支持有限针对特定Zynq板卡和Flash的成熟配置文件较少需要自己摸索调试。不适合快速解决问题学习曲线陡峭。综合来看路径二PL辅助方案在易用性、稳定性和效率上取得了最佳平衡是我们接下来重点详解的方案。它完美地解决了“启动模式不对”的问题因为PL的配置完全由JTAG控制与PS的启动模式无关。3. 实操准备创建通用的“强制烧写”比特流这个步骤是整个方案的基础。你需要为你的目标硬件创建一个一次性的Vivado工程。3.1 硬件平台确认与IP核配置首先明确你的板卡信息芯片型号例如XC7Z020-CLG400Zynq-7020。Flash型号与连接方式这是最关键的一步。查看原理图确认Flash芯片的具体型号如Winbond W25Q256JV、封装如SOIC-8、以及它是连接在PS的MIO上还是通过PL转接。绝大多数开发板都是直接接在PS的MIO上。同时记录Flash的时钟频率通常为50MHz或100MHz。打开Vivado创建一个新的RTL工程选择对应的芯片型号。创建Block Design添加一个Zynq Processing System IP核。配置Zynq PS双击打开配置界面。在“Peripheral I/O Pins”选项卡中找到“Quad SPI Flash”。确保它被启用。即使你最终不用PS来驱动它这个启用操作会确保相关的MIO引脚被正确分配和约束。根据原理图在“MIO Configuration”中查看QSPI相关的MIO引脚号例如MIO[1:0]是数据线MIO5是时钟MIO6是片选。这里主要是为了确认不需要改动因为我们将用PL的IP来驱动。其他PS配置如DDR型号、时钟请根据你的板卡实际情况设置但对此处功能非必需可以先用默认值。添加并配置AXI Quad SPI IP在Diagram中添加“AXI Quad SPI”IP核。双击配置Mode: 选择“Standard Mode”。如果你的Flash支持并使用了Dual或Quad模式以提高速度也可以选择“Dual”或“Quad”但Standard模式兼容性最好。Frequency Ratio: 这个值决定了SPI时钟s_axi_aclk和SCK的关系。例如如果AXI总线时钟100MHz你想要SCK为50MHz则比率设为2。初始调试建议设大一点如8或16降低时钟频率以保证稳定性。Transaction Width: 选择“8 Bits”针对标准SPI指令。FIFO Depth: 默认16即可。在“IP Configuration”下取消勾选C_SCK_RATIO的“Calculate”选项然后手动输入一个值如上面的频率比率值这样配置更明确。将这个IP的ext_spi_clk和s_axi_aclk都连接到Zynq PS的FCLK_CLK0通常为50M或100M。将IP的SPI接口导出为外部端口Make External端口名例如qspi_flash。连接与自动化使用Run Connection Automation将AXI Quad SPI的AXI4-Lite接口连接到Zynq PS的M_AXI_GP0接口。将Zynq PS的FCLK_RESET0_N连接到AXI Quad SPI和系统复位逻辑。创建顶层HDL与引脚约束右键Block Design创建HDL Wrapper。打开生成的顶层.v文件找到导出的qspi_flash端口。根据你的原理图为这些端口分配正确的FPGA引脚。qspi_flash_io[3:0]- 对应Flash的IO0, IO1, IO2, IO3(数据线)qspi_flash_sck- 对应Flash的CLKqspi_flash_ss- 对应Flash的CS#在XDC约束文件中添加引脚位置和电平标准约束例如set_property PACKAGE_PIN T19 [get_ports {qspi_flash_io[0]}] set_property IOSTANDARD LVCMOS33 [get_ports {qspi_flash_io[0]}] # ... 为所有qspi_flash端口添加类似约束关键点这里的引脚约束必须与你原理图上Flash芯片实际连接的FPGA引脚完全一致。这步错了后续一切免谈。3.2 生成与归档比特流综合、实现、生成比特流在Vivado中运行标准的流程。导出硬件生成.xsa文件Vivado 2019.1及以后或.hdf文件旧版本。这一步包含了硬件描述信息。归档文件将以下三个文件保存好它们构成了你的“强制烧写工具包”强制烧写.bitPL配置文件。强制烧写.xsa或.hdf硬件描述文件。强制烧写.xdc引脚约束文件用于追溯和修改。注意事项强烈建议为这个“工具包”建立一个独立的版本管理。如果未来硬件改版Flash型号或连接引脚变化你需要同步更新这个比特流。4. 强制烧写全流程解析与XSCT脚本详解有了比特流我们就可以在XSCTVitis或Vivado自带的命令行工具中执行强制烧写了。下面是一个完整的、可复用的TCL脚本示例并附上逐行详解。假设我们要烧写的文件是BOOT.bin它位于D:\project\bootimage目录下。# 强制烧写Flash脚本 (force_program_flash.tcl) # 使用前请修改以下变量 set BIT_FILE D:/path/to/your/强制烧写.bit set XSA_FILE D:/path/to/your/强制烧写.xsa set FLASH_IMAGE D:/project/bootimage/BOOT.bin set TARGET_IP localhost:3121 ;# 根据你的JTAG服务器端口修改 # 连接到硬件服务器 connect -url $TARGET_IP # 获取目标设备通常第一个就是Zynq targets -set -filter {name ~ *ARM*#0} # 1. 下载并配置PL比特流关键步骤 puts Step 1: Downloading PL configuration bitstream... fpga -file $BIT_FILE puts PL configured successfully via JTAG. # 2. 下载并运行Flash编程算法从.xsa中提取 puts Step 2: Loading Flash programming algorithm... # 注意program_flash命令需要硬件描述来定位Flash program_flash -f $FLASH_IMAGE -offset 0 -flash_type qspi_single -verify # -flash_type 根据你的Flash连接模式选择qspi_single, qspi_dual, qspi_quad等 # -offset 0 表示从Flash的0地址开始烧写 puts Flash programming completed! disconnect脚本关键点解析与避坑指南fpga -file命令这是强制烧写的灵魂。它通过JTAG直接将.bit文件配置到PL中完全独立于PS的启动模式。执行后你的AXI Quad SPI IP就开始工作了Flash控制器已经就绪。program_flash命令的奥秘这个命令看起来和正常烧写一样但它此时能成功执行依赖的是上一步配置好的PL。命令执行时它会从提供的.xsa文件中解析出Flash控制器的信息虽然我们用的是PL的IP但.xsa里包含了系统地址映射。将一个微小的“Flash编程算法”ELF文件下载到PS的OCMOn-Chip Memory中并运行。这个算法程序通过我们刚刚配置好的AXI Quad SPI IP与Flash芯片通信执行擦除、编程、校验等操作。-flash_type参数这是最容易出错的地方之一。你必须根据实际硬件连接和AXI Quad SPI IP的配置模式来选择。如果你的Flash只用了SI/SO两根线标准SPIIP配置为Standard Mode则选qspi_single。如果用了两根数据线IO0, IO1IP配置为Dual Mode则选qspi_dual。如果用了四根数据线IO0, IO1, IO2, IO3IP配置为Quad Mode则选qspi_quad。选错会导致烧写失败或数据错误。如果不确定先用qspi_single尝试这是最兼容的模式。-verify参数强烈建议加上。烧写完成后它会回读Flash内容并与原始镜像比较确保数据无误。Flash烧写偶尔会因电源波动等原因出现位错误校验能给你最后的保障。如何执行这个脚本打开Vitis或Vivado的XSCT命令行窗口通常在Xilinx Design Tools - XSCT Console或者直接运行xsct.bat。然后执行source force_program_flash.tcl如果一切顺利你将看到PL配置成功和Flash烧写进度的输出。5. 常见问题排查与实战技巧实录即使按照上述步骤操作你也可能会遇到各种问题。下面是我在多次实践中总结的“排错清单”和技巧。5.1 问题一program_flash失败提示“Cannot find Flash device”或“Flash programming algorithm failed to initialize”这是最典型的错误意味着工具无法与Flash建立通信。排查步骤确认比特流正确加载在执行program_flash前先用fpga -state命令检查PL是否已成功配置。状态应为PROGRAMMED。检查-flash_type参数这是首要怀疑对象。用示波器或逻辑分析仪抓取Flash的CS#和CLK引脚。如果program_flash命令执行期间完全没有片选或时钟信号产生那一定是通信模式不匹配。尝试更换-flash_type如从qspi_quad换成qspi_single。检查引脚约束用硬件工具示波器测量Flash的引脚。确认在PL配置后FPGA对应的引脚是否有信号输出如果没有说明你的.xdc约束文件可能错了Flash引脚没有真正被PL的IP驱动。回头仔细核对原理图和约束文件。检查Flash供电和硬件连接确保Flash芯片的VCC、地线连接良好。用万用表测量电压是否正常通常是3.3V或1.8V。降低时钟频率回到Vivado将AXI Quad SPI IP的Frequency Ratio调大即降低SCK频率重新生成比特流。过高的时钟频率可能导致信号完整性问题尤其是在飞线或长走线的情况下。5.2 问题二烧写过程缓慢或在中途卡住、报超时错误排查步骤检查Flash容量和镜像大小使用program_flash时工具默认会擦除整个Flash扇区。如果你的Flash很大如256Mb而BOOT.bin很小擦除整个芯片会非常耗时。可以使用-erase和-blankcheck参数进行更精细的控制但一般不建议新手操作。优化烧写脚本program_flash命令在后台会先擦除再编程。对于大容量Flash这个过程可能超过JTAG服务器的默认超时时间。可以在连接时增加超时设置connect -timeout 30000单位毫秒。电源问题Flash编程特别是擦除操作需要较大的瞬时电流。如果板卡电源功率不足或纹波过大可能导致操作失败。确保使用稳定可靠的电源并在Flash的VCC引脚附近有足够的去耦电容。5.3 问题三烧写成功但板卡从Flash启动失败烧写工具显示成功但将启动模式切换到Flash后板卡无法启动。排查步骤验证BOOT.bin文件首先确认你烧写的BOOT.bin本身是正确的。可以在JTAG模式下通过dow命令将这个BOOT.bin直接加载到DDR中运行看功能是否正常。如果JTAG直接运行都失败那问题在镜像本身。检查烧写偏移地址Zynq芯片从Flash启动时默认从0x0地址开始读取数据。确保你的program_flash命令使用了-offset 0参数。如果你烧写到了其他偏移地址启动ROM是找不到引导头的。检查Flash连接模式与启动模式设置烧写时我们可能用了qspi_single模式但你的板卡硬件设计可能要求Zynq以Quad模式去读取Flash。这由Zynq的MIO[5:0]启动模式引脚决定。烧写模式可以和启动读取模式不同。例如你可以用Standard模式烧写但板卡配置为Quad模式启动。只要Flash里的数据格式正确这是可以的。但更常见的是两者不匹配导致启动失败。请核对原理图中启动模式电阻的设置确保其与你期望的Flash读取模式一致。使用Vivado的Flash读写功能进行验证在Vivado Hardware Manager中配置好PL后可以尝试直接通过“Read/Write Memory”功能读取Flash线性地址如0xFC000000开头的数据。你应该能看到BOOT.bin的头部信息如FSBL的代码。如果读出的全是0xFF或乱码说明烧写的数据不对或没写进去。5.4 独家避坑技巧制作“黄金参考”比特流为你手头每一款不同的板卡都提前生成并保存好一个经过验证的“强制烧写比特流”。文件名可以包含芯片和Flash型号如zynq7020_w25q256_force_program.bit。这能节省大量重复调试时间。在脚本中加入“Flash ID读取”验证在执行正式烧写前先运行一个读取Flash ID的小测试。你可以写一个简单的内存读写脚本通过AXI Quad SPI的寄存器空间发送0x9F读ID命令并读取返回的制造商和设备ID。这能最直接地证明JTAG-PL-Flash这条通路是畅通的。善用逻辑分析仪如果遇到通信问题逻辑分析仪是你的最佳伙伴。抓取SPI总线上的波形对照Flash数据手册的时序图可以清晰看到指令、地址、数据是否被正确发送和接收。很多棘手的软件问题在波形面前一目了然。注意Flash的写保护位有些Flash芯片出厂时或上次操作后可能被设置了写保护通过状态寄存器。在烧写前需要先发送解锁命令。program_flash命令通常会处理这个但如果它失败了可以尝试手动通过XSCT发送SPI命令来清除写保护。最后我个人最深刻的体会是“强制烧写”本质上是一种调试和应急手段它体现了对硬件底层更深入的控制力。熟练掌握它不仅能解决启动模式不对的尴尬更能让你在遇到更复杂的Flash相关问题时如Flash部分损坏需要修复、更新特定参数区等拥有除标准流程外的另一把利器。把PL当作一个可编程的“桥梁”通过JTAG这座“总控台”你几乎可以操作板卡上的任何资源这种自由度正是嵌入式开发的魅力所在。

相关新闻

基于Real-ESRGAN的图像超分辨率实践:从原理到批量处理

基于Real-ESRGAN的图像超分辨率实践:从原理到批量处理

1. 先搞清楚“靠近点”到底在解决什么实际问题 看到“靠近点……再靠近点……”这个标题,很多人第一反应可能是摄影、图像处理或者某种视觉交互。没错,这个主题的核心,就是解决一个非常具体的问题: 如何通过技术手段,…

2026/10/15 0:49:12 阅读更多 →
奥系论战:终极捷德单挑六强联军的战力推演与设定分析

奥系论战:终极捷德单挑六强联军的战力推演与设定分析

在奥特曼系列粉丝创作与讨论圈中,角色实力对比一直是经久不衰的话题。近期,一个名为“『奥系论战』原设百倍激战唯究VS格光帝究格黑究光金彼岸爆发赛”的标题引发了广泛讨论。这并非官方剧情,而是基于《奥特曼》系列原作设定(“原…

2026/10/13 8:15:06 阅读更多 →
Nginx性能调优实战:从参数配置到高级优化

Nginx性能调优实战:从参数配置到高级优化

1. Nginx性能调优的核心价值与场景定位 Nginx作为当前全球使用最广泛的高性能Web服务器之一,其性能表现直接影响着网站响应速度、并发处理能力和资源利用率。我在管理日均PV超过500万的电商平台时,通过系统化的Nginx调优将服务器负载降低了40%&#xff0…

2026/10/2 2:46:14 阅读更多 →

最新新闻

当AI原生公司开始“吃掉”制片厂:影视工业的边界正在溶解

当AI原生公司开始“吃掉”制片厂:影视工业的边界正在溶解

🌊 专注 AI 大模型与前沿科技深度解析,习惯从工程师视角拆解技术热点,让我们一起在技术浪潮中保持清醒与好奇 🚀当AI原生公司开始“吃掉”制片厂:影视工业的边界正在溶解30 秒结论 本文判断:AI原生影视公司…

2026/10/15 0:49:41 阅读更多 →
从柯西-施瓦兹不等式到匹配滤波:工程直觉与实战避坑指南

从柯西-施瓦兹不等式到匹配滤波:工程直觉与实战避坑指南

简介:这份资料围绕雷达信号处理中的匹配滤波技术展开,从柯西施瓦兹不等式这一数学基础切入,帮助读者理解匹配滤波器的理论来源与工程实现。内容适合具备一定信号处理与线性代数基础的高校学生、科研人员及雷达工程从业者,用于解决…

2026/10/15 0:48:41 阅读更多 →
手写C++ OBJ文件解析器:从格式到百万顶点优化与避坑指南

手写C++ OBJ文件解析器:从格式到百万顶点优化与避坑指南

简介:面向需要处理Wavefront OBJ三维模型格式的开发者和图形学入门者,这份资源提供一套基于Visual Studio 2013的obj解析C源码。源码实现完整的读取流程,覆盖顶点、纹理坐标、法线及多边形面这几类核心指令的解析,通过文件流逐行读…

2026/10/15 0:48:41 阅读更多 →
superpowers:用SKILL.md让Claude Code变身高效率AI开发助手

superpowers:用SKILL.md让Claude Code变身高效率AI开发助手

1. 先搞清楚:superpowers 到底是什么如果你平时用 Claude Code 比较多,可能早就遇到了一个让我当初很头疼的问题:底层模型确实聪明,但你在对话里让它"做个深度调研""写一套完整的单测""把这次的改动整理…

2026/10/15 0:48:41 阅读更多 →
用repomap给Claude Code一张代码地图,工具调用从52次降到3次

用repomap给Claude Code一张代码地图,工具调用从52次降到3次

1. 52 次工具调用到底是怎么花掉的我一直觉得 Claude Code 这类 CLI 编程助手最让人上头的点是“它真的会自己去翻代码库”,但最让人血压升高的点也是“它真的会自己去翻代码库”。刚上手那会儿,我在一个两万行左右的项目里让它排查登录流程的 token 过期…

2026/10/15 0:48:41 阅读更多 →
C#调用MATLAB绘图实战:COM自动化、句柄管理与嵌入式集成

C#调用MATLAB绘图实战:COM自动化、句柄管理与嵌入式集成

简介:本资源面向C#开发者与MATLAB混合编程实践者,解决在Windows平台下利用MATLAB强大图形引擎(尤其三维可视化)弥补C#原生绘图能力不足的核心问题。适用于科学计算、工程仿真、教学演示等需高质量数学图形的中高级开发场景。压缩包…

2026/10/15 0:48:41 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时,网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上,依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里,扩缩容到底难在哪做过大模型推理服务部署的人,大概都经历过这样的场景:一个团队共用一套推理集群,A 业务跑的是 7B 的小模型,B 业务跑的是 72B 的大模型,C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子:一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减,为了把启动时间压进两秒以内,我手贱地把一串自认为“没用”的 systemd 服务给 disable 了,其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/14 16:30:29 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 7:53:34 阅读更多 →