当前位置: 首页 > news >正文

西电微机原理-第六章 输入输出技术

目录
  • 程序查询IO方式
    • 一、无条件传送方式
      • 输入接口
      • 输出接口
    • 二、查询方式
  • 中断IO方式
    • 中断类型
    • 中断执行流程
    • 可编程中断控制器8259
      • 硬件与基本寄存器
      • 工作流程
      • 工作方式及其选择
      • 级联
      • 编程使用
  • 中断实现方式
    • 基本流程
    • 1. 硬件连接
    • 2. 编写初始化程序
      • 初始化8259
      • 设置中断向量表
    • 3. 编写中断处理程序
    • 中断方式实现举例
  • 保护模式下的中断方式

程序查询IO方式

一、无条件传送方式

输入:开关、……

输出:发光二极管、继电器、步进电机、……

输入接口

Untitled

  1. 开关的接法:接一个上拉电阻。如果开关闭合,输出为0;开关断开,输出为1。为了消抖,并联一个电容(抖动的波形频率较高,可以通过电容接地直接导走)
  2. 接入总线:三态门。由于总线是复用的,所以外设的信号不能直接接入到总线上,需要经过三态门的控制。
  3. 三态门的使能端定义了接口地址,避免了总线冲突。只有地址线输入固定的值的时候,三态门才会打开,数据线才能拿到接口的输出,这就是接口的地址的本质含义,即三态门的使能信号。在本例中,接口地址为FFF7H。

注意,三态门使能除了与接口地址有关外,还需要检测内存读写信号(IOR\IOW)和AEN信号(AEN=0表示由cpu控制总线,否则由DAM控制)

驱动程序

MOV DX,0FFF7H
IN AL,DX
AND AL,01H
JZ ON
JMP OFF

In 指令做了什么事情?

  1. 把DX(接口地址)的内容放到地址线上(16位)
  2. IOR给一个负脉冲, AEN=0
  3. 经过1、2后,三态门打开,接口的信息放入地址线D[7..0],放入寄存器 AL

AND AL,01H 得到最低一位,看看是否为1, 如果为1, 说明开关断开;如果为0,说明开关闭合。

Untitled

输出接口

Untitled

  1. 二极管的接法:我们的逻辑器件的高电平带来的电流不足以驱动三极管,但是能吸收较大的电流。所以我们接入一个上拉电阻,采用负逻辑控制二极管。
  2. 接入总线:锁存器。数据总线上无时无刻都有数据传输,所以如果不加锁存器而直接接入总线,一方面会有总线冲突,另一方面三极管会一直出于半亮的状态(01不断变化,相当于脉宽调制)。
  3. 锁存器的使能端定义了接口地址,避免了总线冲突。只有数据线的信号等于接口地址的时候,译码电路的才会触发锁存器的使能信号,把数据线中的内容传送给二极管寄存器。【并且会锁存住,所以二极管的亮暗不会变化】。在本例中,接口地址为0000H。

由于锁存器是上升沿有效,我们一般都是后沿写入,所以译码电路的输出应为低电平有效;如果锁存器是下降沿有效,那么要保证后沿写入,译码电路输出应为高电平有效

驱动程序

MOV DX,0000H
MOV AL,81H
OUT DX,ALMOV AL,00H
OUT DX,AL

OUT 指令做了什么事情?

  1. 把AL的内容放入数据线上,把DX的内容放到地址线上。
  2. 给IOW一个负脉冲,AEN=0
  3. 经过1、2后,锁存器打开,把数据线上DX的内容锁存住,传给输出接口(二极管)

二极管收到的是81H(1000 0001),所以上下两头的二极管会亮,其余不亮

如果采用8086内存管理方式进行16位的数据传送8

Untitled

双体结构A0和BHE作为奇偶存储体的片选信号,分别连接地址线的低、高八位。

这也是的连接两个不同存储体的二极管有不同的接口地址。 3804H和3805H

但由于二者可以同时有效,所以译码电路的使能端只能有一个输出。

在编写程序的时候,由于接口地址3804H是偶地址,而8086可以在一个总线周期内完成对偶地址的16位数据读写,所以可以直接向3804H,传入16位数据来控制这16个二极管(当然也可以分开控制)

Untitled

二、查询方式

基本思想是在准备读写的时候先检查,如果外设忙,就不读写;不忙则读写。

Untitled

Untitled

  • \(D_0 - D_7\) : 数据线
  • \(STB\) : 相当于使能信号,上升沿有效,写入数据,同时 \(BUSY\) 置1。由于上升沿有效所以要保证后沿写入就需要给负脉冲,所以初始值要置为1
  • \(BUSY\) :忙信号,busy=1为忙,busy=0为不忙

方案1:如上图所示, 把 \(D_0 - D_7\)\(STB\) 看做是输入接口, \(BUSY\) 看做是输出接口。

74LS244输入输出逻辑不变,可用作驱动,也可看做8个三态门,我们只用到其中一个三态门

74LS244输入输出逻辑不变,可用作驱动,也可看做8个三态门,我们只用到其中一个三态门

  1. 两个输入接口接锁存器,一个输出接口接三态门
  2. 锁存器和三态门的使能分别接入译码电路定义的接口地址和接口读写信号。(为了严谨,最好也接入AEN)
  3. 该输出设备占用了三个连续的接口地址: 02F8H、02F9H、02FAH

驱动程序:

Untitled

初始化选通信号:把STB置为高,后面好传入负脉冲

循环检测与传送:

  1. S检测外设忙:从接口地址为02FAH处读取BUSY信号到D7。不忙则开始传送
  2. 数据输出:把D0-D7数据传送到接口地址02F8H处
  3. 产生负脉冲来写入数据
    1. 将D7置为低电平,传送到接口地址02F9H处,使STB为低
    2. 按照题目要求,延时100us,给外设响应的时间
    3. 将D7置为高电平,传送到接口地址02F9H处,使STB再次为高,实现负脉冲
  4. 一个字节传送完成,循环1000次

上面的连接方式似曾相识:一个使能端,一个数据端,使能端收到负脉冲后读取数据段的数据。

这有点类似于前面所学的SRAM,ROM等内存的读写。

方案2:把 \(D_0 - D_7\)\(STB\) 看做是输入接口,\(STB\) 看做使能,用内存写入的方式来控制外设。

Untitled

数据段直接连到系统总线,因为有使能端,所以只要使能端不接通,不会写入数据。节省了一个IO口。

由于BUSY的检测和数据的写入不会同时发生,相当于一个半双工通信,所以BUSY的接口可以和STB的接口进行复用,再节省一个IO口。

参考内存的读写,我们能不能用一个 out 指令直接实现对外设的写入呢,前面我们已经知道,out指令执行时会把数据放到数据线上然后发出负脉冲,这点和外设STB的写时序是一致的。所以可以直接用 out 02F9H,xxx 来讲XXX内容写入外设。

驱动程序:

MOV DX,02F9H
MOV AL,[BX]
OUT DX,AL ;将[al]写入外设
...
IN AL,DX  ;将BUSY信号读入AL(复用)

但是此种接法也存在问题:外设可能来不及反映。

INOUT 执行需要一个总线周期 = 四个时钟周期,如果cpu主频为 5MHz,那么总线周期=0.2us*4=0.8us。对于内存来说是来得及反映的,但是对于外设来说很难反映(0.8us << 100us)。所以如果题目对外设的脉冲宽度有明确要求的话,就不能使用 inout 指令来产生脉冲和传递地址与数据了。只能采用方案1,手动调节电平。

由于要手动调节电平并延迟,我们无法保证在此期间要传输的数据还保持在数据线上,所以要加锁存器,那么就又要为D0-D7添加接口地址。BUSY似乎还可以复用。

多外设查询方式示意图:

单点故障,一个花了就会一直阻塞在那里

单点故障,一个花了就会一直阻塞在那里

无优先级的轮询

无优先级的轮询

有优先级的轮询

有优先级的轮询

中断IO方式

中断类型

中断向量表256行,每行四个字节(前两个字节存储偏移,后两个字节存储段基址),总共占1K

Untitled

IF=0:关中断

注意:开中断指的是此时可以响应外部中断,至于内部中断和非屏蔽中断请求,任何时候都会响应的,与是否开关中断无关。

INTA响应:两个负脉冲,一个提醒中断控制器准备好,另一个使中断控制器发送中断向量码

中断执行流程

Untitled

Untitled

可编程中断控制器8259

硬件与基本寄存器

Untitled

IRR:中断请求寄存器(正在请求的中断)

ISR:中断服务寄存器(正在执行的中断)

IMR:中断屏蔽寄存器(屏蔽的中断)

工作流程

Untitled

Untitled

ISR不止一个元素为1,说明允许中断嵌套。ISR的作用就是用来实现默认优先级,数字越小优先级越高。

工作流程:

  1. 发出外部中断IR3,置IRR[3]=1
  2. 收到来自cpu的第一个负脉冲后,8259可以认为中断已经处理完成了,IRR[3]=0,ISR[3]=1。表示中断正在处理。
  3. 收到来自cpu的第二个负脉冲后,8259发出中断向量码。
  4. CPU处理中断, 在中断服务程序的末尾要添加EOI命令
    1. 一般EOI:允许中断嵌套,默认的优先级(数字小的优先级高)。把中断优先级最高的中断的对应位清零。
    2. 特殊EOI:允许中断嵌套,自定义的优先级。在EOI后要添加数字,表示要清零的ISR的位。
    3. 自动EOI:不允许中断嵌套。第一个cpu脉冲时置为1,第二个cpu脉冲时置为0,相当于一直为0。【不允许中断嵌套时,其实ISR没有存在的必要】

工作方式及其选择

Untitled

Untitled

  • 特殊屏蔽方式:允许中断嵌套,自定义的优先级。使用特殊EOI,后面要跟ISR的清零位。
  • 一般屏蔽方式:允许中断嵌套。使用一般EOI。
    • 固定优先级:默认的,数字小的优先级高
    • 循环优先级:自动循环优先级和指定循环优先级

自动循环优先级:一个中断执行后,优先级变为最低

自动循环优先级:一个中断执行后,优先级变为最低

级联

指定循环优先级:指定中断的优先级

指定循环优先级:指定中断的优先级

  • 【主片】特殊全嵌套:同级或更高优先级的中断均可以打断当前中断。
  • 【从片】一般嵌套方式(默认方式):只有公钥优先级的中断才可以打断当前中断。

我们预期中的中断源编号,越小优先级越高

我们预期中的中断源编号,越小优先级越高

为了实现这种理想的优先级。

  • 如果主片采用一般嵌套方式的话,那么在IR7【级联后的编号】发出中断请求时,如果IR6也发出一个中断请求,那么主片由于是同级中断,就不会打断当前正在执行的IR7,导致IR6无法先执行。
  • 如果主片采用特殊全嵌套方式的话,那么统计同级中断能打断当前的中断,然后在判断IR6的优先级是否比IR7高,高的话就打断IR7,执行IR6,这就达到了我们的预期

Untitled

Untitled

  • SP/EN = 1:说明为主片。ICW3表示哪些引脚连接了从片
  • SP/EN = 0:说明为从片。ICW3表示哪个引脚连接了主片

举个例子:

  1. 从片的IR2和IR1同时发送中断请求给主片,主片经过中断判优后,决定先响应从片3的IR2
  2. 主片向CPU发送中断请求
  3. CPU应答
    1. 发送第一个负脉冲,给主片和所有从片
    2. 主片收到第一个负脉冲后,向从片发送一个级联地址3
    3. 从片收到第一个负脉冲后,检查主片发来的级联地址,从片3发现收到的级联地址与自己ICW3中的地址是一致的,由此知道cpu在响应自己的请求
    4. cpu发送第二个负脉冲,从片3向数据总线发送中断向量码

编程使用

Untitled

ICW1~4 加上 OCW1~3 加上 ISR,IRR,一共9个寄存器【IMR和OCW1是同一个寄存器】

Untitled

如何通过一个地址线来访问9个寄存器?部分数据线也参与寻址。

初始化流程介绍

Untitled

  1. 写偶地址【A0=0】,数据的第四位为1:此时会写ICW1
  2. 根据ICW1的写入内容,决定是否要写ICW3和ICW4。
    1. ICW1的D1写入0,说明为单片连接,不写ICW3
    2. ICW1的D0写入0,不写ICW4
  3. 写完ICW1后,要马上跟奇地址【A0=1】写ICW2、(ICW3、ICW4)

至此初始化结束,之后对奇地址的写入都是写入OCW1

注:OCW1是唯一一个既可以读也可以写的寄存器

各个命令字的介绍:【具体讲解:11.02网课1:25:00】

ICW:

Untitled

刚才的级联例子已经表明了用法

刚才的级联例子已经表明了用法

Untitled

Untitled

OCW:

Untitled

Untitled

Untitled

Untitled

中断实现方式

基本流程

  1. 8259连接(硬件)
  2. 编写初始化程序
    1. 8259初始化
    2. 设置中断向量表
  3. 编写中断处理程序

1. 硬件连接

Untitled

8259接入的是总线的A1,从中可知cpu是8086,因为8086的A0用作偶地址片选。

8259接入的是总线的D0~7,从中可知接入的是8086的偶存储体,总线的A0必然为0

如果不加上A0,会浪费掉两个奇地址:
(比如用FF01读取的时候,会选中8259,但是8259发的数据在低八位上。CPU却采样到高八位上。)
加上A0后,读取奇地址的时候,8259不会被选中,地址就没有被浪费。

2. 编写初始化程序

初始化8259

Untitled

初始化:

偶地址写入 :\(ICW1 = 0001 0011\) :单片【不写ICW3】,写ICW4

奇地址写入: \(ICW2 = 0100 1000\) :设置中断向量码,注意只有高八位有效,所以填入49H的效果和48一样。中断向量码都是由48H开始。

Untitled

奇地址写入: \(ICW3 = 0000 0011\) :一般嵌套方式,非缓冲,自动EOI

到此为止初始化完成。


奇地址写入:由于初始化已经完成,所以写的是OCW1/IMR: \(IMR = 1110 0000\) :屏蔽IR7、IR6、IR5

检查OCW1,查看其读写是否正常。

Untitled

设置中断向量表

Untitled

Untitled

3. 编写中断处理程序

Untitled

如果允许中断嵌套就需要开关中断

如果不是自动EOI就要在程序中发送EOI命令【让ISR的指定位清零】

如何发送EOI

如何发送EOI

中断方式实现举例

Untitled

  1. 硬件连接
  2. 初始化程序:初始化8259,初始化中断向量表
  3. 编写中断处理程序:CLOCK

Untitled

Untitled

Untitled

Untitled

串讲:

Untitled

第一步完成了硬件的连接。

第二步写中断处理程序

第三步写初始化程序,初始化程序一般做了三件事:

  1. 初始化8259,配置它的工作模式
  2. 调整中断向量表
  3. 把中断处理程序驻留在内存中
    1. 找一块空闲内存,用串操作把中断处理程序传送过去
    2. 用DOS的功能调用

这样当一个中断源如IR0来中断时,8259向CPU发送中断请求。

CPU收到后进行中断应答,两个负脉冲。

8259收到第一个负脉冲后,调整IRR和ISR。收到第二个负脉冲后,把中断向量码48H(在初始化时定义的)发给CPU。

CPU收到48H后,查找中断向量表。 IP = (48H4); CS = (48H4+2)。然后跳转中断处理程序来处理中断。

保护模式下的中断方式

增加的内存的特权级,使得中断向量表不能被随意访问。

中断向量表→中断描述符表

从内存地址0开始0→其实地址记录在IDTR寄存器中【记录表的起始地址和表的长度,防止越界访问】

中断描述符(表的每一项)为 8B:存储中断处理程序在段表的基址和偏移,以及访问级别等信息。

相关文章:

西电微机原理-第六章 输入输出技术

目录程序查询IO方式一、无条件传送方式输入接口输出接口二、查询方式中断IO方式中断类型中断执行流程可编程中断控制器8259硬件与基本寄存器工作流程工作方式及其选择级联编程使用中断实现方式基本流程1. 硬件连接2. 编写初始化程序初始化8259设置中断向量表3. 编写中断处理程序…...

【FAQ】应用A如何使用应用B内的文件?

【问题描述】 应用A如何使用应用B的文件?例如,自己开发的应用想读取、复制微信、钉钉等IM应用内的文件。 【背景知识】 系统通过访问控制的机制,防止数据或功能被不当或恶意使用。当前访问控制的机制涉及多方面,包括应用沙箱、应用权限、系统控件等方案。 【解决方案】 为防…...

OpenStack Cinder 创建卷

Cinder 的卷创建(create volume)是块存储服务的核心操作,涉及从请求接收、调度决策到存储后端实际创建的完整流程。 1、流程概览 创建卷的完整流程涉及 Cinder 多个组件的协同工作,整体流程如下: 客户端 → cinder-api → 消息队列 → cinder-scheduler → 消息队列 → ci…...

西电微机原理-第二章 Intel单核处理器

目录2.1.1 功能特性2.1.2 体系结构2.1.3 寄存器、主存、io结构寄存器结构主存结构:双体结构主存结构:分段结构2.1.4 8086芯片引脚共用引脚最小模式下的引脚最小模式下的总线构成标准的总线读写时序8088电路图最大模式的引脚2.2-2.3 Intel多核处理器(酷睿处理器) 2.1.1 功能…...

二叉树的迭代遍历(非递归)

迭代使用栈; 前序遍历 遍历顺序中左右,由于先进后出的栈的特性,我们先加入右孩子再加入左孩子; 代码: class Solution { public:vector<int> preorderTraversal(TreeNode* root) {stack<TreeNode*> st;vector<int> result;if (root == NULL) return res…...

记录---用好了 defineProps 才叫会用 Vue3,90% 的写法都错了

🧑‍💻 写在开头 点赞 + 收藏 === 学会🤣🤣🤣Vue 3 的 Composition API 给开发者带来了更强的逻辑组织能力,但很多人用 defineProps 的方式,依然停留在 Vue 2 的“Options 语法心智”。本质上只是把 props: {} 拿出来“提前声明”,并没有真正理解它的运行机制、类…...

今日流水账-2025年9月15日

1、刷新一下胶片 2、卷腹28下 3、定位一下进程阻塞问题...

c#给原文件重命名

在 C# 里“原文件”指“物理文件”,用 System.IO 就够了——一行代码完成重命名:csharp 复制// 旧名字 → 新名字(同目录就是重命名,跨目录就是移动+改名) System.IO.File.Move("old.txt", "new.txt"); 完整模板(带判断、异常处理) string oldPath …...

tcpdump常用随笔

指定抓到某文件 tcpdump -w a.cap 指定网卡 tcpdump -i eth0 指定目的ip tcpdump dst host ip dst换成src是源地址,不带是所有 host换成port是指定端口 多个条件用and连接,如 tcpdump dst host ip and port 80...

2025年HR经理必备:10款高效人力资源管理软件推荐

摘要:在选择人力资源管理软件时,HR经理需要关注软件的功能性、用户体验、安全性和适用性等方面。2025年即将到来,新一代高效人力资源管理软件不断涌现,以帮助企业更好地管理和优化人力资源流程。在众多选择中,红海云等作为领先的HR解决方案提供商,其产品无疑是值得关注的选…...

GAS中GA变量数据的同步

GAS内部数据的网络同步接口 ServerSetReplicatedTargetData(FGameplayAbilityTargetData) CallReplicatedTargetDataDelegateIfSet()...

提升员工绩效的5大人才管理软件评测与分析

提升员工绩效的5大人才管理软件评测与分析 随着企业对人才发展的重视程度不断加深,尤其是头部企业在这方面的关注和投入更为显著,人才管理软件的需求也随之上升。然而,在追求快速成果的过程中,许多企业忽视了人才管理数字化建设的基础阶段,直接跳到人才评估、人才盘点、继…...

【触想智能】工业显示屏与普通显示屏的八大区别以及应用领域分析

工业显示屏是应用于工业领域的一种特殊显示器,它除了具有传统显示屏的一般特点外,还具有一些特殊的功能,比如在宽温、防尘防水以及耐用性方面,都是普通显示屏无法比的。触想工业显示屏TPC-M2系列一、工业显示屏和普通显示屏的主要区别1、耐用性:工业显示屏通常需要能够在恶…...

LLaVA- Improved Baselines with Visual Instruction Tuning - jack

原始LLaVA论文: 标题: "Visual Instruction Tuning" arXiv链接: https://arxiv.org/abs/2304.08485 会议: NeurIPS 2023 LLaVA-1.5 论文: 标题: "Improved Baselines with Visual Instruction Tuning" arXiv链接: https://arxiv.org/abs/2310.03744…...

042-WEB 攻防:PHP 应用 MYSQL 架构 SQL 注入 跨库查询 文件读写 权限操作

042-WEB 攻防:PHP 应用 & MYSQL 架构 & SQL 注入 & 跨库查询 & 文件读写 & 权限操作 二、核心知识点与演示案例 1. 核心知识点PHP-MYSQL-SQL 注入 - 常规查询PHP-MYSQL-SQL 注入 - 跨库查询PHP-MYSQL-SQL 注入 - 文件读写2. 演示案例PHP-MYSQL-Web 组成架…...

Dsu On Tree 笔记

关于这个技巧我甚至都记不清是什么时候学的了,反正就是很早很早之前,当时学了之后看什么子树查询都想上 Dsu On Tree,后来也没怎么写过了,不过这个东西确确实实很强劲。 今天写了一上午教练的题单,大概获得了三天的时间来写自己想写的,就去写写各种莫队吧。 结果写到一个…...

西电微机原理-第一章 序论:微型计算机概述

目录1.1 基本概念1.2 微处理器概述1.3 微型计算机概述硬件、软件系统一、PC的发展二、PC的基本组成微型计算机的工作过程 1.1 基本概念1.2 微处理器概述Intel微处理器的发展💡 *注意:*8086和8088CPU片内总线和寄存器都是16位的,而8086的系统总线和io接口是16位,支持16位读…...

Liunx 硬盘扩容

第1步:检查磁盘当前状态lsblk sudo fdisk -l /dev/vdb df -h第2步:卸载并清理磁盘(如果已挂载) 如果发现 /dev/vdb 已经被挂载到了某个位置(比如 /data),先卸载它:sudo umount /dev/vdb如果卸载时显示 not mounted,说明没有挂载,继续下一步。 第3步:彻底清除磁盘上的…...

船舶航向控制算法

船舶航向控制算法:Nomoto/Norrbin 非线性模型 → PID/ADRC → 环境扰动 → 航向-航迹双环 → 结果可视化1. 技术要点模型:Nomoto(线性)+ Norrbin(非线性)+ 环境扰动(风/浪/流) 控制:PID、ADRC、L1-GPR 自适应(可选) 输出:航向角、舵角、航迹误差、控制性能指标(IT…...

pyside6 1

1 安装python 2 安装pycharm pycharm中创建项目,在项目中打开终端,安装pyside6 设计完成后保存至项目根目录,执行如下命令,生成相关py文件 打包:在项目根目录安装pyinstaller 安装后查看版本号,确定安装成果 打包 .py文件 pyinstaller -w 01.py //-w 没有黑窗口…...

基于WSL下载Hadoop和HBASE

正常操作 步骤 1:安装 WSL 启用 WSL 功能: 以管理员身份打开 PowerShell 或 命令提示符,输入以下命令并回车: powershell wsl --install 这个命令会自动启用所需的 Windows 功能、下载并安装默认的 Ubuntu 发行版。 (如果上述命令无效,可以手动启用): powershell dism.…...

应用多、交付快,研发运维怎么管?看云效+SAE 如何一站式破局

云效 AppStack 与阿里云 Serverless 应用引擎(SAE)的集成方案,为企业研发团队提供了一套高效、低成本、高质量的研运一体化解决方案。作者:天彤 背景 对于研发团队来说,应用程序(Application)的开发运维的成本、质量、效率,永远是比较难均衡的三个核心要素,特别是对于…...

revit二次开发之 钢筋功能详细分析

根据以上钢筋的功能,可以确定钢筋功能的主要功能按照循序如下:类别     功能 备注Rebar 结构钢筋 生成普通钢筋信息AreaReinforcement 结构区域钢筋  用于生成区域钢筋PathReinforcement 路径区域钢筋 用于生成路径区域钢筋FabricSheet 编织钢筋网片 用于生成网片钢筋类…...

java-wxj02

Java 核心概念深度解析:方法、数组与类 一、方法参数传递机制 示例代码分析 import java.util.Arrays;public class Main {static void changeStr(String x) {x = "xyz";}static void changeArr(String[] strs) {for (int i = 0; i < strs.length; i++) {strs[i]…...

停止win10自动升级操作

Win11 和 Win10,使用。 按 Win + X 键选择 Windows PowerShell (管理员) 按右键粘贴这行代码后回车即可: reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings" /v FlightSettingsMaxPauseDays /t reg_dword /d 10000 /f之后你就可以在 Win…...

vue3 - elementPlus

官网: https://element-plus.org/zh-CN 安装 npm install element-plus --saveElement Plus 是项目运行时必须的 UI 组件库,最终会被打包到生产环境代码中,因此需要用 --save 安装(这也是 npm 5+ 版本的默认行为,可省略 --save)。 package.json一、按钮 Button 全局导入…...

GAS_Aura-Target Data

1...

windows 把恢复分区调整到 c 盘前面

1. 使用diskgenius在c盘前面划分出一块1G以上大小的空间(需要重启) 2. 使用diskgenius在这块空间上建立分区,设置属性为隐藏 3. 使用diskgenius克隆旧恢复分区的文件到新建分区 4. 用管理员CMD命令,修改新建分区类型GUID为"de94bba4-06d1-4d40-a16a-bfd50179d6ac"…...

wso2~对已发布api的元信息管理

在wso2的发布者模块中,如果你的api建立后,是无法修改api名称和context路径的,只能在发布者模块添加新的api,这对于订阅者来说是安全的,但如果你不小心路径写错了,希望对context进行变更,也可以在carbon平台实现api原始信息是的修改,但请注意,这对于所有订阅者都是生效…...

利用Myo臂环采集肌电信号和角速度来实现实时手势识别

利用Myo臂环采集肌电信号(EMG)和角速度(来自陀螺仪)来实现实时手势识别 一、系统概述与工作原理 Myo臂环是一款可穿戴设备,它包含:8个EMG传感器:测量前臂肌肉产生的电信号。不同的手势会激活不同的肌肉群,产生独特的肌电模式。 9轴IMU:包含陀螺仪(角速度)、加速度计…...

实用指南:leetcode 966. 元音拼写检查器 中等

实用指南:leetcode 966. 元音拼写检查器 中等pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !i…...

三轴传感开发新纪元:exvib扩展库让精准检测触手可及!

告别复杂代码与冗长调试,exvib扩展库为三轴传感带来颠覆性变革。极简API设计实现高效对接,开发者只需少量代码即可解锁精准检测能力,轻松应对各类传感场景,让技术落地不再艰难。 一、exvib库典型应用及检测模式 1.1 三种典型应用 exvib.open(mode)接口针对三种典型应用场景…...

List与Dictionary区别

List<T> 和 Dictionary<TKey,TValue> 都是泛型集合,但底层数据结构、使用场景、操作复杂度完全不同:✅ 一句话区别List = 有序数组,按索引找元素,可重复。Dictionary = 哈希表,按键找元素,键唯一,无序(插入顺序不保证)。📊 横向对比表 表格 复制特性Lis…...

OpenStack Cinder 架构

Cinder 是 OpenStack 的 块存储 (Block Storage) 服务,其核心功能是为虚拟机实例提供持久化的块存储设备(即云硬盘 Volume)。这些云硬盘可以被挂载到虚拟机实例上,就像给物理服务器插上一块新的硬盘一样,用于扩展实例的存储空间或持久化保存数据,即使实例本身被终止,数据…...

完整教程:IC(输入捕获)

完整教程:IC(输入捕获)pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !important; font-size…...

HiMarket 正式开源,为企业落地开箱即用的 AI 开放平台

在 AI 浪潮席卷千行百业的今天,我们看到无数企业和开发者满怀激情地投身其中。无论是将内部的大模型能力赋能给各个业务线,还是希望将昂贵的 AI 资产对外开放、构建生态,一个强大的“AI 开放平台”都已成为刚需。💡 目录 01 HiMarket 开源背景 02 HiMarket 是什么 03 快…...

如何统计DrawMeshInstancedIndirect绘制物体的Triangle数据

1)如何统计DrawMeshInstancedIndirect绘制物体的Triangle数据2)如何量化骨骼数量对功耗的影响3)Sprite Atlas和单独的Sprite的RW设置分别如何影响内存4)Playable的Animator.WriteTransform一直执行在一个Job线程里这是第444篇UWA技术知识分享的推送,精选了UWA社区的热门话…...

VK1S68C点钟LED驱动控制专用芯片高抗干扰数显驱动IC 可支持134的点阵LED显示面板

VK1S68C是一种带键盘扫描接口的数码管或点阵LED驱动控制专用芯片,内部集成有3 线串行接口、数据锁存器、LED 驱动、键盘扫描等电路。SEG脚接LED阳极,GRID脚接LED 阴极,可支持13SEGx4GRID、12SEGx5GRID、11SEGx6GRID、10SEGx7GRID的点阵LED显 示面板,最大支持10x2按键。适用…...

基于MATLAB的海洋中尺度涡旋诊断

基于MATLAB的海洋中尺度涡旋诊断方案,使用卫星高度计与海洋模式数据,结合多源特征提取与机器学习方法:一、系统架构设计 % 主程序框架 [ssh_mod, ssh_sat] = load_data(); % 加载模型与卫星数据 [ssh_merged, mask] = data_preprocess(ssh_mod, ssh_sat); % 数据融合与掩膜生…...

从混乱到有序:Tita 项目一体化管理的全场景赋能

在企业运营中,项目管理如同一条贯穿始终的主线,串联起资源调配、团队协作与目标达成。然而,多数企业在项目推进过程中,常常陷入流程断裂、信息滞后、协作低效的困境。Tita 项目一体化管理以全场景覆盖的特性,为企业提供从根源上解决问题的方案,让项目管理从 “被动救火”…...

SpringBoot入门指南:让Java开发变得像搭积木一样简单 - 教程

SpringBoot入门指南:让Java开发变得像搭积木一样简单 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New"…...

汇编语言[王爽]-13 int指令【中断实现loop、jmp】

int指令 格式:int n :n是中断向量码,引发一个中断 作用:等价于下面的代码【中断流程】 1. 取中断向量码N 2. pushf 3. IF=0,TF=0 4. push CS , push IP 5. (IP)=(N*4) ; (CS)=(N*4+2)iret指令 格式: iret 从中断例程中返回 作用:等价于下面的代码 pop IP pop CS popf💡…...

Supabase云同步架构:Flutter应用的数据同步策略

Supabase云同步架构:Flutter应用的数据同步策略本文基于BeeCount(蜜蜂记账)项目的实际开发经验,深入探讨如何使用Supabase构建安全、高效的云端数据同步系统。项目背景 BeeCount(蜜蜂记账)是一款开源、简洁、无广告的个人记账应用。所有财务数据完全由用户掌控,支持本地存储…...

汇编语言[王爽]-12 内中断

内中断的产生 来源及中断码除法错误:0 单步执行:1 执行into指令:4 执行int n指令:n中断向量表中断过程 CPU收到中断信息后,根据中断向量表,跳转到相应的中断程序中处理中断,这一过程称为中断过程从中断信息中取得中断向量码N 标志寄存器入栈(因为中断过程中要改变标志寄…...

【SPIE出版】第五届先进制造技术与电子信息国际学术会议(AMTEI 2025)

第五届先进制造技术与电子信息国际学术会议(AMTEI 2025)将于2025年09月26-28日在重庆召开。【先进制造、机械工程、电子信息方向均可投稿】 【SPIE见刊发表,EI Compendex和Scopus检索收录 | 发表&检索十分稳定!】 第五届先进制造技术与电子信息国际学术会议(AMTEI 202…...

2025.9.15 考试总结

总结来说就是 3h 写 t1 没时间想 t2,t3 了,其实 t3 还是很一眼的。 T1 一个斜优板子。 每次如果 \(l_i = 1, r_i = i - 1\),是很容易用李超树做到 \(O(n \log n)\)。 既然每次查一个区间,那么就在外面套一个线段树。 std 的做法是用线段树维护凸包,我的树套树被卡常了。 李…...

汇编语言[王爽]-01 基础知识

汇编语言的组成汇编指令:机器码的助记符,有相应的机器码 伪指令:没有对应的机器码,由编译器执行,计算机不执行 其他符号:如+ - * / 由编译器识别,没有对应的机器码汇编指令是汇编语言的核心 指令与数据是应用上的概念,在x86架构中,指令和数据存放在内存或磁盘中没有任…...

贪心外套计数

[AGC049E] Increment Decrement一个序列 \(A\) 有一个权值:序列 \(a\) 元素都等于 \(0\),能进行若干次操作单点加 \(1\) 或 \(-1\),花费为 \(1\)。 区间加 \(1\) 或 \(-1\),花费为 \(C\)。\(a\) 变成 \(A\) 的最小花费,即为 \(A\) 的权值。 给 \(n\) 个长 \(k\) 的序列 \(…...

汇编语言[王爽]-02 寄存器

14个寄存器,都是16位 AX BX CX DX SI DI SP BP IP CS SS DS ES PSW 通用寄存器:AX BX CX DX 段寄存器:CS DS SS ES cpu分段寻址 8086是16位机,寄存器,运算器,寄存器与运算器的通路都是16位的,那么又是如何达到20位的地址总线宽度的呢。答案是使用分段寻址 物理地址= 段地…...

汇编语言[王爽]-03 寄存器(内存访问)

内存视图内存由低至高从上往下画 栈的生长方向:高地址向低地址 小端存储:高位存放在高地址,低位存放在低地址书写的时候高位在左边。 4E20H 存储单元高地址在右边。 0 - 3 : 20 4E 12 00mov指令 mov ax,1000h mov ds,ax mov [0],bx #传送字型数据内存单元以ds为段基址 不能…...