news 2026/6/20 11:22:20

MC68HC908AP中断、看门狗与电源监控模块深度解析与实战避坑

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
MC68HC908AP中断、看门狗与电源监控模块深度解析与实战避坑

1. 项目概述与核心价值

在嵌入式系统开发,尤其是基于MC68HC908AP这类8位微控制器的项目中,中断、看门狗和电源监控是保障系统实时性、可靠性与健壮性的基石。很多工程师在初次接触这些模块时,往往只关注如何“让功能跑起来”,而忽略了其背后精细的配置逻辑和潜在的“坑”。我在十多年的嵌入式开发经历中,处理过无数因中断误触发、看门狗复位不当或电压监控失效导致的系统“灵异”故障。今天,我就以MC68HC908AP的官方数据手册为蓝本,结合实际的调试经验,为你彻底拆解IRQ、KBI、COP和LVI这四个关键模块。这不仅仅是寄存器说明的翻译,更是从电路原理到代码实践,再到避坑指南的深度剖析。无论你是正在评估这款MCU,还是已经深陷调试泥潭,相信这篇近万字的详解都能为你提供清晰的路径和可靠的解决方案。

2. 外部中断(IRQ)模块:从硬件触发到软件响应全解析

外部中断是MCU与外部世界进行异步通信的最直接窗口。MC68HC908AP提供了两个独立的外部中断引脚:IRQ1和IRQ2。它们看似简单,但配置不当极易导致中断丢失、误触发或无法退出中断等棘手问题。

2.1 IRQ模块的硬件架构与工作模式

IRQ模块的核心是一个中断请求锁存器(Interrupt Request Latch)。你可以把它想象成一个带复位端的D触发器。当IRQ引脚上发生有效的电平或边沿事件时,这个锁存器被置位(输出高电平),向CPU发出中断请求。CPU响应中断后,需要通过特定的操作(取中断向量或软件应答)来清除这个锁存器,为下一次中断做好准备。

关键点在于触发模式的配置,这由MODE位控制:

  • MODE = 0(边沿触发):仅对IRQ引脚的下降沿敏感。引脚电平从高变低的瞬间,锁存器置位。一旦置位,即使引脚保持低电平,锁存器也保持置位状态,直到被软件或向量取指清除。这种模式适用于脉冲型信号,如按键的瞬间按下。
  • MODE = 1(边沿与电平触发):对下降沿和低电平都敏感。这意味着,只要引脚为低电平,中断请求就会持续存在。要清除此类中断,必须满足两个条件:1)执行向量取指或软件应答(ACK位写1);2)IRQ引脚必须返回高电平。这两个条件的顺序可以任意。这种模式适用于需要持续监测低电平状态的应用,但需要特别注意防抖动和中断退出逻辑。

实操心得:模式选择背后的考量选择边沿触发还是电平触发,取决于你的信号特性和应用场景。例如,一个机械按键,按下时会产生抖动,会产生多个边沿。如果你用边沿触发,可能误触发多次中断。此时,更好的做法是使用电平触发,并在中断服务程序(ISR)中进行软件防抖(例如延时去抖),或者配合定时器进行扫描。而对于一个干净的、瞬时的脉冲信号(如光电传感器的输出),边沿触发则是更高效、更准确的选择。

2.2 IRQ状态与控制寄存器(INTSCR)深度配置

IRQ1和IRQ2分别由INTSCR1(地址$001E)和INTSCR2(地址$001C)控制。它们的结构高度相似,但INTSCR2多了一个控制IRQ2引脚内部上拉的PUC0ENB位。

寄存器位详解与操作逻辑:

  1. IRQF(中断标志位):只读。这是判断是否有中断挂起的最直接依据。即使中断被屏蔽(IMASK=1),该位依然会因硬件事件而置位。这在纯查询(Polling)方式下非常有用,你可以在主循环中定期检查此位,而无需开启中断向量。

  2. ACK(中断应答位):只写。这是清除中断锁存器的关键。向此位写1,会生成一个内部应答信号,清除对应的IRQ锁存器。请注意:该位读操作永远返回0。在电平触发模式下,仅执行ACK操作而引脚未恢复高电平,中断请求会立即再次产生。

  3. IMASK(中断屏蔽位):读写。IMASK=1时,即使IRQF=1,CPU也不会响应该中断(即不跳转到中断向量)。但中断事件仍会被锁存。一个常见的应用技巧:在进入复杂的、不可重入的代码段前,临时屏蔽某些中断,执行完毕后再开启,可以防止关键流程被打断。

  4. MODE(触发模式选择位):读写。如前所述,控制触发灵敏度。

  5. PUC0ENB(仅INTSCR2):IRQ2引脚内部上拉使能位。PUC0ENB=1时,禁用内部上拉电阻。这意味着你需要外部电路确保IRQ2引脚在不被驱动时有确定电平(通常是接一个外部上拉电阻到VDD)。如果悬空,引脚电平不确定,极易引入噪声中断。

2.3 中断服务程序(ISR)编写要点与避坑指南

编写IRQ的ISR时,有几个细节必须处理妥当,否则会引发难以调试的问题。

1. 中断标志的清除时机:对于边沿触发模式(MODE=0),在ISR开始时或结束时清除IRQF(通过写ACK位)都可以。但对于电平触发模式(MODE=1,情况就复杂了。你必须确保在ISR退出前,外部信号源已经将IRQ引脚拉高。否则,即使你写了ACK,由于引脚仍是低电平,中断请求会立刻再次被锁存,导致CPU刚退出中断又立刻进入,陷入“中断风暴”,系统看似死机。解决方案通常是在ISR中操作某个输出引脚去控制外部电路,或者与信号源有明确的握手协议。

2. 防止虚假中断:噪声是中断系统的天敌。除了良好的硬件滤波(如RC电路)和PCB布局外,软件上可以在ISR刚进入时立即写ACK位,然后再执行实际任务。这样即使是因为噪声毛刺触发的中断,也能在第一时间清除锁存器,避免噪声持续产生影响。

3. 查询模式下的应用:如果你不使用中断向量,而是用BIH/BIL指令或直接读IRQF位来查询,需要注意:BIH/BIL指令只能读取IRQ1引脚的电平,不能用于IRQ2。查询IRQ2的状态,只能通过读取IRQ2F标志位。

4. 在Break模式下的特殊处理:当MCU处于调试Break状态时,默认情况下(BCFE=0),对ACK位的写操作是无效的,这是为了保护中断现场。如果你希望在Break状态下也能通过软件清除中断标志进行调试,需要先将BCFE位(在SIM Break Flag Control Register中)置1。

3. 键盘中断(KBI)模块:多引脚中断与矩阵键盘实现

键盘中断模块可以看作是IRQ模块的多通道扩展版。它允许Port D的8个引脚(PTD0-PTD7)中的任意一个或多个被配置为键盘中断引脚,共享同一个中断向量($FFE0-$FFE1)。这非常适合实现矩阵键盘或需要多个低优先级外部事件触发的场景。

3.1 KBI模块的工作原理与初始化陷阱

KBI模块的核心是一个“或”逻辑。任何一个被使能(KBIEx=1)的KBI引脚变为低电平时,都可能置位键盘中断标志KEYF。与IRQ类似,它也由MODEK位控制触发模式。

这里有一个极其重要的初始化陷阱,手册中提到了,但很多新手会忽略:当通过设置KBIER寄存器中的KBIEx位来使能某个引脚为KBI功能时,该引脚的内部上拉电阻会自动使能。然而,上拉电阻将引脚从低电平拉到高电平需要一定的时间(由RC时间常数决定)。如果在使能的瞬间,引脚由于寄生电容等原因处于不确定状态,这个缓慢上升的过程可能会被误识别为一个从高到低的跳变(如果初始电平被内部电路视为高,然后被上拉拉得更高一点再稳定),从而立即产生一个虚假中断

手册给出了两种可靠的初始化方法:

方法一(推荐):先屏蔽,后使能,再清除

  1. 设置KBSCR中的IMASKK=1,屏蔽所有键盘中断。
  2. 配置KBIER寄存器,使能所需的KBI引脚。
  3. KBSCR中的ACKK位写1,清除可能因上电或使能瞬间产生的虚假中断标志。
  4. 清除IMASKK位(IMASKK=0),正式开启键盘中断。

方法二:先配置为输出高,再切换为输入

  1. 将目标KBI引脚对应的DDRD位设置为1(输出模式)。
  2. 向PTD数据寄存器对应位写1,输出高电平。
  3. 配置KBIER寄存器,使能这些引脚为KBI功能。注意:设置KBIEx=1会强制覆盖DDR设置,将引脚变为输入,但此时引脚已被驱动为高电平,状态稳定。 这种方法通过先主动驱动引脚为高,避免了上拉过程中的电平模糊区。

3.2 KBI寄存器详解与应用场景

键盘状态与控制寄存器(KBSCR,$001A

  • KEYF:键盘中断标志位。任何使能的KBI引脚有效触发都会置位此位。
  • ACKK:键盘中断应答位。写1清除KEYF标志。在电平触发模式下,同样需要所有产生中断的引脚都恢复高电平,中断才能真正结束。
  • IMASKK:键盘中断总屏蔽位。
  • MODEK:触发模式选择位。功能同IRQ的MODE位。

键盘中断使能寄存器(KBIER,$001B

  • KBIE7-KBIE0:分别控制PTD7-PTD0是否作为键盘中断引脚。1为使能。

一个关键特性:当KBIEx=1时,无论DDRD相应位如何设置,该引脚都被强制为输入模式。但是,如果你希望通过软件读取该引脚的电平(例如在查询模式下),你必须同时将DDRD的对应位设为0。这是一个容易混淆的点:KBIEx控制功能,DDRD控制方向,在KBI功能下方向虽被强制,但读取数据寄存器仍需方向寄存器配合(设为输入)。

3.3 实现矩阵键盘扫描的实战思路

虽然KBI可以响应多个引脚,但通常我们用它配合软件扫描来实现4x4或更大的矩阵键盘。这里分享一个经典的“线反转法”结合KBI中断的步骤:

  1. 初始化:将矩阵键盘的4行接至4个KBI引脚(如KBI0-KBI3),并配置为电平触发模式(MODEK=1)。初始化时按上述“方法一”操作,防止误触发。
  2. 等待中断:将所有行线(KBI引脚)通过KBIER使能,并开启中断。此时所有行线被内部上拉为高,列线设置为高阻输入(或输出低,取决于电路设计)。
  3. 中断发生:当任何按键按下,对应的行线被列线拉低,触发键盘中断。
  4. 中断服务程序(ISR): a.消抖:延时10-20ms,再次读取KEYF或引脚状态,确认是否为有效按键。 b.识别行:在ISR中,可以暂时关闭所有KBI中断(IMASKK=1),然后依次将每一行驱动为低电平,同时读取列线状态,判断哪一列被拉低,从而定位按键坐标。 c.清除中断:在确认所有按键已释放(所有行线恢复高电平)后,写ACKK=1清除中断标志。切记:在电平触发模式下,如果按键未释放就清除标志,一退出ISR会立刻再次触发中断。 d.恢复:重新使能KBI中断(IMASKK=0)。
  5. 优化:为了减少中断处理时间,可以在ISR中只做标记,将复杂的扫描和键值解码工作放到主循环中处理。

4. 计算机操作正常(COP)看门狗模块:防止程序跑飞的守护者

看门狗(Watchdog)是嵌入式系统的“最后防线”。其原理很简单:一个独立的计数器不断累加,如果超过预定时间未被软件“喂狗”(清零),就强制系统复位。MC68HC908AP的COP模块就是这样一个看门狗。

4.1 COP模块的时钟源与超时周期

COP的时钟来源于内部时钟ICLK。它包含一个12位的预分频器和一个6位的COP计数器。超时周期由CONFIG1寄存器中的COPRS位决定:

  • COPRS = 0:超时周期为 2^18 - 24 = 262,144 - 24 =262,120个ICLK周期
  • COPRS = 1:超时周期为 2^13 - 24 = 8,192 - 24 =8,168个ICLK周期

假设ICLK频率为8MHz,则周期为0.125μs。对应的超时时间分别为:

  • COPRS=0: 262120 * 0.125μs ≈32.77ms
  • COPRS=1: 8168 * 0.125μs ≈1.021ms

喂狗操作:向COP控制寄存器(COPCTL,地址$FFFF写入任意值,即可清零COP计数器和预分频器的高8位,重新开始计时。$FFFF这个地址同时也是复位向量的低位字节,读取它会返回复位向量的低8位。

4.2 COP的配置、使能与关键注意事项

1. 使能/禁用CONFIG1寄存器中的COPD位控制COP模块。COPD=1禁用COP,COPD=0使能COP。通常在芯片配置字节(位于非易失性存储器中)中设定,上电后生效。这意味着你不能在运行时随意开关COP,它的状态是硬件确定的。

2. 喂狗策略——最大的坑

核心原则:喂狗代码必须放在主循环或确保一定能定期执行的非中断任务中。

绝对要避免的陷阱

  • 仅在中断中喂狗:这是最致命的错误。假设你的主程序因为某个死循环卡住了,但定时器中断仍在正常运行,那么看门狗会一直被中断服务程序清零,永远无法复位,失去了看门狗的意义。程序“跑飞”但看门狗不动作。
  • 喂狗间隔不均匀或过长:你需要计算主循环最坏情况下的执行时间,并确保它远小于COP超时时间。要留出足够的余量(比如,超时时间设定为最坏执行时间的2-3倍)。
  • 在STOP模式前后:执行STOP指令会停止ICLK,COP也暂停。因此,在进入STOP模式之前和退出STOP模式之后,必须立即喂狗。否则,从STOP模式唤醒后,COP可能很快溢出导致意外复位。

3. 示例喂狗代码结构:

// 假设主循环结构 void main(void) { COP_Init(); // 上电后尽早初始化并喂一次狗 EnableInterrupts; // 开启总中断 for(;;) { // 主循环 Task_A(); Task_B(); // ... 其他任务 COP_Feed(); // 在主循环的合适位置喂狗 // 注意:确保所有分支路径都能执行到喂狗操作 } } // 喂狗函数 void COP_Feed(void) { *(volatile unsigned char*)0xFFFF = 0x55; // 向COPCTL地址写任意值,0x55是常用值 }

4. 监控模式与Break模式:在特定的调试模式下(如Monitor Mode),当RSTIRQ1引脚被拉至测试电压VTST时,COP会被禁用,以方便调试。

5. 低电压抑制(LVI)模块:电源监控与系统保护

LVI模块如同系统的“电压警卫”,持续监控VDD(芯片供电电压)和VREG(内部稳压器输出)的电压。当电压低于设定的阈值(VTRIPF)时,它可以产生复位信号,防止MCU在电压不足的情况下执行错误操作,保护自身及外围电路。

5.1 LVI的工作模式与配置

LVI功能通过CONFIG1寄存器的几个位来配置:

配置位名称功能描述
LVIPWRDLVI Power Disable1:禁用VDD电压检测电路。0:启用。
LVIREGDLVI Regulator Disable1:禁用VREG电压检测电路。0:启用。
LVIRSTDLVI Reset Disable1:禁止LVI产生复位信号。0:允许LVI产生复位信号。
LVISTOPLVI in Stop1:在STOP模式下LVI继续工作。0:在STOP模式下LVI关闭。

LVI的两种主要工作模式:

  1. 复位模式(强制复位):适用于要求系统必须在正常电压下工作的场景。

    • 配置LVIPWRD=0,LVIREGD=0,LVIRSTD=0
    • 行为:当VDDVREG任一电压低于其下降阈值VTRIPF时,LVI模块立即产生复位信号,拉低RST引脚,使整个MCU复位。直到电压恢复到高于上升阈值VTRIPRVTRIPR > VTRIPF),复位才会解除。这个迟滞(Hysteresis)电压VHYS防止了电压在阈值附近波动时,系统频繁地复位、启动。
  2. 查询模式(软件监控):适用于电池供电等需要工作在较宽电压范围,且系统具备低压 graceful degradation(优雅降级)能力的场景。

    • 配置LVIPWRD=0,LVIRSTD=1。(LVIREGD可根据需要设置)
    • 行为:LVI不会产生硬件复位。软件需要定期轮询LVI状态寄存器(LVISR,地址$FE0F)中的LVIOUT位。
      • LVIOUT=0:电压正常(VDD > VTRIPRVREG > VTRIPR)。
      • LVIOUT=1:电压过低(VDD < VTRIPFVREG < VTRIPF)。
    • 应用:当检测到LVIOUT=1时,软件可以紧急保存关键数据到EEPROM、关闭外围大功率器件、切换到低功耗模式或通过指示灯报警,实现有序的关机或低压运行。

5.2 LVI使用中的实践要点

  1. 阈值理解:数据手册会提供VTRIPF(下降阈值)和VTRIPR(上升阈值)的具体参数,通常VTRIPRVTRIPF高几十毫伏。设计电源电路时,要确保正常工作的最低电压高于VTRIPR,而认为系统失效的电压点低于VTRIPF

  2. STOP模式下的考量:在STOP模式下,CPU和大多数外设时钟停止以省电。如果你希望LVI在STOP模式下继续监控电压(防止电池电压在休眠时缓慢下降导致无法唤醒),需要设置LVISTOP=1。但这会增加STOP模式下的功耗,因为LVI的比较器电路仍在工作。需要根据应用在安全性和功耗之间权衡。

  3. 与COP的协同:LVI和COP是互补的安全机制。LVI防止“硬件环境异常”(电压过低),COP防止“软件逻辑异常”(程序跑飞)。一个健壮的系统应该同时启用两者。

  4. 状态读取LVIOUT位在电压处于VTRIPFVTRIPR之间时,会保持之前的状态。这意味着电压从正常缓慢下降到触发点以下时,LVIOUT会从0变为1;但当电压从过低缓慢回升到VTRIPR之前,LVIOUT会保持为1,直到电压明确超过VTRIPR才会跳回0。这个特性在软件防抖判断中很有用。

6. 模块间的协同与低功耗模式下的行为

理解这些模块在WAIT和STOP这两种低功耗模式下的行为,对于设计电池供电设备至关重要。

WAIT模式:CPU时钟停止,但外设时钟(ICLK)通常仍在运行。

  • IRQ/KBI:如果中断未被屏蔽(IMASK=0),有效的外部中断信号可以唤醒MCU,使其退出WAIT模式,继续执行程序。
  • COP:仍在运行。必须在进入WAIT模式的循环中,或者通过一个定期触发的定时器中断来喂狗,否则COP会超时复位。
  • LVI:如果使能,继续工作。在复位模式下,低压事件会直接产生复位;在查询模式下,无法工作(因为CPU停了)。

STOP模式:所有时钟都停止,功耗最低。

  • IRQ/KBI:同样,有效的外部中断可以唤醒MCU。注意:某些MCU在STOP模式下需要配置中断为边沿触发才能唤醒,电平触发可能无效,需查阅具体手册确认。对于MC68HC908AP,IRQ/KBI在STOP模式下仍可工作。
  • COP:时钟停止,计数器暂停。关键点:在执行STOP指令的瞬间,COP的预分频器会被清零。因此,在进入STOP模式和唤醒,必须立即喂狗,否则从唤醒点开始计算的COP时间可能很短,导致意外复位。
  • LVI:行为由LVISTOP位控制。LVISTOP=1则LVI继续工作,低压事件可产生复位或唤醒(取决于LVIRSTD配置);LVISTOP=0则LVI关闭以省电。

7. 调试技巧与常见问题排查

在实际开发中,与这些模块相关的问题往往令人头疼。下面是一个常见问题速查表:

现象可能原因排查步骤与解决方案
系统频繁无故复位1. COP超时未及时喂狗。
2. LVI被触发(电压不稳或阈值设置不当)。
3. 程序跑飞后误写系统控制寄存器。
1. 检查复位状态寄存器(SRSR),确认复位源是COP还是LVI。
2. 若是COP,检查喂狗代码位置和间隔,确保主循环最慢执行时间远小于COP超时周期。
3. 若是LVI,测量电源电压纹波,确认是否低于VTRIPF。考虑在电源入口增加滤波电容。
外部中断无法触发1. 中断未使能(IMASK=1或总中断关闭)。
2. 触发模式配置错误(如用电平触发去检测脉冲)。
3. 引脚配置错误(如上拉未使能导致电平浮空)。
4. 中断标志未清除,导致后续中断被阻塞。
1. 确认IMASK=0,并使用了CLI指令开启CPU总中断。
2. 用示波器或逻辑分析仪观察中断引脚实际波形,确认其符合配置的触发条件。
3. 检查PUC0ENB(对于IRQ2)或确认外部上拉电阻正确连接。
4. 在ISR中确认已正确写ACK位(电平触发还需确认引脚已恢复高电平)。
中断重复进入,系统卡死1. 电平触发模式下,ISR未清除中断源(引脚仍为低电平)就清除了标志。
2. 噪声引起多次边沿触发。
1. 确保ISR中清标志前,已通过硬件或软件手段使中断引脚恢复高电平。
2. 在中断引脚增加硬件RC滤波(如1kΩ串联电阻和100pF对地电容)。在ISR入口处先清标志。
键盘中断(KBI)响应异常1. 初始化时未处理虚假中断,导致一上电就进入中断。
2. 多个按键同时按下时,逻辑处理错误。
3. 在查询引脚电平时,未正确设置DDRD为输入。
1. 严格按照前述的“方法一”或“方法二”进行KBI初始化。
2. 在ISR中实现软件扫描,正确处理多键情况(如防鬼键算法)。
3. 即使KBIEx=1,读取PTD前也要设置DDRDx=0
进入STOP模式后无法唤醒或立即复位1. 唤醒中断未正确配置或使能。
2. 进入STOP前未喂狗,唤醒后COP立即超时。
1. 确认用于唤醒的中断(如IRQ/KBI)配置正确,且IMASK=0
2. 在调用STOP指令前和唤醒后的初始化代码中,第一时间调用喂狗函数。
LVI功能似乎不起作用1. LVI模块被禁用(LVIPWRD=1LVIREGD=1)。
2. 配置为查询模式(LVIRSTD=1)但软件从未读取LVIOUT
3. 实际电压始终高于触发阈值。
1. 检查CONFIG1寄存器的配置字节。
2. 在查询模式下,在主循环中定期检查并处理LVIOUT状态。
3. 使用可调电源,缓慢降低VDD电压,同时监控LVIOUT位或观察系统是否复位,以验证LVI阈值。

调试时,充分利用复位状态寄存器(SRSR)和各个模块的状态标志位(IRQF,KEYF,LVIOUT是定位问题的第一步。结合逻辑分析仪抓取中断引脚波形、电源纹波,以及使用仿真器进行单步调试,能够高效地解决大部分问题。

我个人在多年的项目中养成一个习惯:在系统初始化代码里,第一件事就是读取并保存SRSR的值到某个全局变量,然后在调试接口中将其输出。这样,任何一次复位的原因都一目了然,对于后期现场问题追踪有奇效。对于MC68HC908AP,虽然它没有内置的实时时钟(RTC)来记录复位时间,但通过配合一个外置的EEPROM,在每次复位时递增一个计数并保存,也能很好地统计系统运行稳定性。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/20 11:19:07

grunt-nw-builder性能优化:加速你的NW.js桌面应用构建过程

grunt-nw-builder性能优化&#xff1a;加速你的NW.js桌面应用构建过程 【免费下载链接】grunt-nw-builder Build NW.js applications for Mac, Windows and Linux using Grunt 项目地址: https://gitcode.com/gh_mirrors/gr/grunt-nw-builder grunt-nw-builder是一款强大…

作者头像 李华
网站建设 2026/6/20 11:16:55

CANN/GE获取会话ID接口

GetSessionId 【免费下载链接】ge GE&#xff08;Graph Engine&#xff09;是面向昇腾的图编译器和执行器&#xff0c;提供了计算图优化、多流并行、内存复用和模型下沉等技术手段&#xff0c;加速模型执行效率&#xff0c;减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前…

作者头像 李华
网站建设 2026/6/20 11:09:35

Stable Diffusion WebUI Forge终极指南:快速构建AI艺术创作平台

Stable Diffusion WebUI Forge终极指南&#xff1a;快速构建AI艺术创作平台 【免费下载链接】stable-diffusion-webui-forge 项目地址: https://gitcode.com/GitHub_Trending/st/stable-diffusion-webui-forge 你是否曾经为AI图像生成工具的复杂配置而烦恼&#xff1f;…

作者头像 李华
网站建设 2026/6/20 11:07:57

开源大模型完整部署教程:从零开始快速上手主流AI模型

开源大模型完整部署教程&#xff1a;从零开始快速上手主流AI模型 【免费下载链接】self-llm 《开源大模型食用指南》针对中国宝宝量身打造的基于Linux环境快速微调&#xff08;全参数/Lora&#xff09;、部署国内外开源大模型&#xff08;LLM&#xff09;/多模态大模型&#xf…

作者头像 李华
网站建设 2026/6/20 11:01:58

Fidget未来路线图:iOS与Android支持进展及新特性预告

Fidget未来路线图&#xff1a;iOS与Android支持进展及新特性预告 【免费下载链接】fidget Figma based UI library for nim, with HTML and OpenGL backends. 项目地址: https://gitcode.com/gh_mirrors/fi/fidget Fidget作为基于Figma的Nim UI库&#xff0c;凭借HTML和…

作者头像 李华
网站建设 2026/6/20 10:59:32

Windows虚拟显示器驱动终极指南:为你的电脑扩展无限屏幕空间

Windows虚拟显示器驱动终极指南&#xff1a;为你的电脑扩展无限屏幕空间 【免费下载链接】virtual-display-rs A Windows virtual display driver to add multiple virtual monitors to your PC! For Win10. Works with VR, obs, streaming software, etc 项目地址: https://…

作者头像 李华