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

Cortex-A7中断控制器GIC

Cortex-A7中断控制器GIC

在这里插入图片描述

中断号

  • 芯片内部的中断都会引起IRQ Interrupt
  • GIC将所有的中断源(最多1020个中断ID)分为三类:
    1. SPI(SharedPeripheralInterrupt)共享中断,外部中断都属于SPI中断 [ID32-1019]
    2. PPI(PrivatePeripheralInterrupt)私有中断 [ID16-31]
    3. SGI(Software-generatedInterrupt)软件中断,由软件触发引起的中断[ID0-15]
#define NUMBER_OF_INT_VECTORS 160                /**< Number of interrupts in the Vector table */typedef enum IRQn {/* Auxiliary constants */NotAvail_IRQn                = -128,             /**< Not available device specific interrupt *//* Core interrupts */Software0_IRQn               = 0,                /**< Cortex-A7 Software Generated Interrupt 0 */Software1_IRQn               = 1,                /**< Cortex-A7 Software Generated Interrupt 1 */Software2_IRQn               = 2,                /**< Cortex-A7 Software Generated Interrupt 2 */Software3_IRQn               = 3,                /**< Cortex-A7 Software Generated Interrupt 3 */Software4_IRQn               = 4,                /**< Cortex-A7 Software Generated Interrupt 4 */Software5_IRQn               = 5,                /**< Cortex-A7 Software Generated Interrupt 5 */Software6_IRQn               = 6,                /**< Cortex-A7 Software Generated Interrupt 6 */Software7_IRQn               = 7,                /**< Cortex-A7 Software Generated Interrupt 7 */Software8_IRQn               = 8,                /**< Cortex-A7 Software Generated Interrupt 8 */Software9_IRQn               = 9,                /**< Cortex-A7 Software Generated Interrupt 9 */Software10_IRQn              = 10,               /**< Cortex-A7 Software Generated Interrupt 10 */Software11_IRQn              = 11,               /**< Cortex-A7 Software Generated Interrupt 11 */Software12_IRQn              = 12,               /**< Cortex-A7 Software Generated Interrupt 12 */Software13_IRQn              = 13,               /**< Cortex-A7 Software Generated Interrupt 13 */Software14_IRQn              = 14,               /**< Cortex-A7 Software Generated Interrupt 14 */Software15_IRQn              = 15,               /**< Cortex-A7 Software Generated Interrupt 15 */VirtualMaintenance_IRQn      = 25,               /**< Cortex-A7 Virtual Maintenance Interrupt */HypervisorTimer_IRQn         = 26,               /**< Cortex-A7 Hypervisor Timer Interrupt */VirtualTimer_IRQn            = 27,               /**< Cortex-A7 Virtual Timer Interrupt */LegacyFastInt_IRQn           = 28,               /**< Cortex-A7 Legacy nFIQ signal Interrupt */SecurePhyTimer_IRQn          = 29,               /**< Cortex-A7 Secure Physical Timer Interrupt */NonSecurePhyTimer_IRQn       = 30,               /**< Cortex-A7 Non-secure Physical Timer Interrupt */LegacyIRQ_IRQn               = 31,               /**< Cortex-A7 Legacy nIRQ Interrupt *//* Device specific interrupts */IOMUXC_IRQn                  = 32,               /**< General Purpose Register 1 from IOMUXC. Used to notify cores on exception condition while boot. */DAP_IRQn                     = 33,               /**< Debug Access Port interrupt request. */SDMA_IRQn                    = 34,               /**< SDMA interrupt request from all channels. */TSC_IRQn                     = 35,               /**< TSC interrupt. */SNVS_IRQn                    = 36,               /**< Logic OR of SNVS_LP and SNVS_HP interrupts. */LCDIF_IRQn                   = 37,               /**< LCDIF sync interrupt. */RNGB_IRQn                    = 38,               /**< RNGB interrupt. */CSI_IRQn                     = 39,               /**< CMOS Sensor Interface interrupt request. */PXP_IRQ0_IRQn                = 40,               /**< PXP interrupt pxp_irq_0. */SCTR_IRQ0_IRQn               = 41,               /**< SCTR compare interrupt ipi_int[0]. */SCTR_IRQ1_IRQn               = 42,               /**< SCTR compare interrupt ipi_int[1]. */WDOG3_IRQn                   = 43,               /**< WDOG3 timer reset interrupt request. */Reserved44_IRQn              = 44,               /**< Reserved */APBH_IRQn                    = 45,               /**< DMA Logical OR of APBH DMA channels 0-3 completion and error interrupts. */WEIM_IRQn                    = 46,               /**< WEIM interrupt request. */RAWNAND_BCH_IRQn             = 47,               /**< BCH operation complete interrupt. */RAWNAND_GPMI_IRQn            = 48,               /**< GPMI operation timeout error interrupt. */UART6_IRQn                   = 49,               /**< UART6 interrupt request. */PXP_IRQ1_IRQn                = 50,               /**< PXP interrupt pxp_irq_1. */SNVS_Consolidated_IRQn       = 51,               /**< SNVS consolidated interrupt. */SNVS_Security_IRQn           = 52,               /**< SNVS security interrupt. */CSU_IRQn                     = 53,               /**< CSU interrupt request 1. Indicates to the processor that one or more alarm inputs were asserted. */USDHC1_IRQn                  = 54,               /**< USDHC1 (Enhanced SDHC) interrupt request. */USDHC2_IRQn                  = 55,               /**< USDHC2 (Enhanced SDHC) interrupt request. */SAI3_RX_IRQn                 = 56,               /**< SAI3 interrupt ipi_int_sai_rx. */SAI3_TX_IRQn                 = 57,               /**< SAI3 interrupt ipi_int_sai_tx. */UART1_IRQn                   = 58,               /**< UART1 interrupt request. */UART2_IRQn                   = 59,               /**< UART2 interrupt request. */UART3_IRQn                   = 60,               /**< UART3 interrupt request. */UART4_IRQn                   = 61,               /**< UART4 interrupt request. */UART5_IRQn                   = 62,               /**< UART5 interrupt request. */eCSPI1_IRQn                  = 63,               /**< eCSPI1 interrupt request. */eCSPI2_IRQn                  = 64,               /**< eCSPI2 interrupt request. */eCSPI3_IRQn                  = 65,               /**< eCSPI3 interrupt request. */eCSPI4_IRQn                  = 66,               /**< eCSPI4 interrupt request. */I2C4_IRQn                    = 67,               /**< I2C4 interrupt request. */I2C1_IRQn                    = 68,               /**< I2C1 interrupt request. */I2C2_IRQn                    = 69,               /**< I2C2 interrupt request. */I2C3_IRQn                    = 70,               /**< I2C3 interrupt request. */UART7_IRQn                   = 71,               /**< UART-7 ORed interrupt. */UART8_IRQn                   = 72,               /**< UART-8 ORed interrupt. */Reserved73_IRQn              = 73,               /**< Reserved */USB_OTG2_IRQn                = 74,               /**< USBO2 USB OTG2 */USB_OTG1_IRQn                = 75,               /**< USBO2 USB OTG1 */USB_PHY1_IRQn                = 76,               /**< UTMI0 interrupt request. */USB_PHY2_IRQn                = 77,               /**< UTMI1 interrupt request. */DCP_IRQ_IRQn                 = 78,               /**< DCP interrupt request dcp_irq. */DCP_VMI_IRQ_IRQn             = 79,               /**< DCP interrupt request dcp_vmi_irq. */DCP_SEC_IRQ_IRQn             = 80,               /**< DCP interrupt request secure_irq. */TEMPMON_IRQn                 = 81,               /**< Temperature Monitor Temperature Sensor (temperature greater than threshold) interrupt request. */ASRC_IRQn                    = 82,               /**< ASRC interrupt request. */ESAI_IRQn                    = 83,               /**< ESAI interrupt request. */SPDIF_IRQn                   = 84,               /**< SPDIF interrupt. */Reserved85_IRQn              = 85,               /**< Reserved */PMU_IRQ1_IRQn                = 86,               /**< Brown-out event on either the 1.1, 2.5 or 3.0 regulators. */GPT1_IRQn                    = 87,               /**< Logical OR of GPT1 rollover interrupt line, input capture 1 and 2 lines, output compare 1, 2, and 3 interrupt lines. */EPIT1_IRQn                   = 88,               /**< EPIT1 output compare interrupt. */EPIT2_IRQn                   = 89,               /**< EPIT2 output compare interrupt. */GPIO1_INT7_IRQn              = 90,               /**< INT7 interrupt request. */GPIO1_INT6_IRQn              = 91,               /**< INT6 interrupt request. */GPIO1_INT5_IRQn              = 92,               /**< INT5 interrupt request. */GPIO1_INT4_IRQn              = 93,               /**< INT4 interrupt request. */GPIO1_INT3_IRQn              = 94,               /**< INT3 interrupt request. */GPIO1_INT2_IRQn              = 95,               /**< INT2 interrupt request. */GPIO1_INT1_IRQn              = 96,               /**< INT1 interrupt request. */GPIO1_INT0_IRQn              = 97,               /**< INT0 interrupt request. */GPIO1_Combined_0_15_IRQn     = 98,               /**< Combined interrupt indication for GPIO1 signals 0 - 15. */GPIO1_Combined_16_31_IRQn    = 99,               /**< Combined interrupt indication for GPIO1 signals 16 - 31. */GPIO2_Combined_0_15_IRQn     = 100,              /**< Combined interrupt indication for GPIO2 signals 0 - 15. */GPIO2_Combined_16_31_IRQn    = 101,              /**< Combined interrupt indication for GPIO2 signals 16 - 31. */GPIO3_Combined_0_15_IRQn     = 102,              /**< Combined interrupt indication for GPIO3 signals 0 - 15. */GPIO3_Combined_16_31_IRQn    = 103,              /**< Combined interrupt indication for GPIO3 signals 16 - 31. */GPIO4_Combined_0_15_IRQn     = 104,              /**< Combined interrupt indication for GPIO4 signals 0 - 15. */GPIO4_Combined_16_31_IRQn    = 105,              /**< Combined interrupt indication for GPIO4 signals 16 - 31. */GPIO5_Combined_0_15_IRQn     = 106,              /**< Combined interrupt indication for GPIO5 signals 0 - 15. */GPIO5_Combined_16_31_IRQn    = 107,              /**< Combined interrupt indication for GPIO5 signals 16 - 31. */Reserved108_IRQn             = 108,              /**< Reserved */Reserved109_IRQn             = 109,              /**< Reserved */Reserved110_IRQn             = 110,              /**< Reserved */Reserved111_IRQn             = 111,              /**< Reserved */WDOG1_IRQn                   = 112,              /**< WDOG1 timer reset interrupt request. */WDOG2_IRQn                   = 113,              /**< WDOG2 timer reset interrupt request. */KPP_IRQn                     = 114,              /**< Key Pad interrupt request. */PWM1_IRQn                    = 115,              /**< hasRegInstance(`PWM1`)?`Cumulative interrupt line for PWM1. Logical OR of rollover, compare, and FIFO waterlevel crossing interrupts.`:`Reserved`) */PWM2_IRQn                    = 116,              /**< hasRegInstance(`PWM2`)?`Cumulative interrupt line for PWM2. Logical OR of rollover, compare, and FIFO waterlevel crossing interrupts.`:`Reserved`) */PWM3_IRQn                    = 117,              /**< hasRegInstance(`PWM3`)?`Cumulative interrupt line for PWM3. Logical OR of rollover, compare, and FIFO waterlevel crossing interrupts.`:`Reserved`) */PWM4_IRQn                    = 118,              /**< hasRegInstance(`PWM4`)?`Cumulative interrupt line for PWM4. Logical OR of rollover, compare, and FIFO waterlevel crossing interrupts.`:`Reserved`) */CCM_IRQ1_IRQn                = 119,              /**< CCM interrupt request ipi_int_1. */CCM_IRQ2_IRQn                = 120,              /**< CCM interrupt request ipi_int_2. */GPC_IRQn                     = 121,              /**< GPC interrupt request 1. */Reserved122_IRQn             = 122,              /**< Reserved */SRC_IRQn                     = 123,              /**< SRC interrupt request src_ipi_int_1. */Reserved124_IRQn             = 124,              /**< Reserved */Reserved125_IRQn             = 125,              /**< Reserved */CPU_PerformanceUnit_IRQn     = 126,              /**< Performance Unit interrupt ~ipi_pmu_irq_b. */CPU_CTI_Trigger_IRQn         = 127,              /**< CTI trigger outputs interrupt ~ipi_cti_irq_b. */SRC_Combined_IRQn            = 128,              /**< Combined CPU wdog interrupts (4x) out of SRC. */SAI1_IRQn                    = 129,              /**< SAI1 interrupt request. */SAI2_IRQn                    = 130,              /**< SAI2 interrupt request. */Reserved131_IRQn             = 131,              /**< Reserved */ADC1_IRQn                    = 132,              /**< ADC1 interrupt request. */ADC_5HC_IRQn                 = 133,              /**< ADC_5HC interrupt request. */Reserved134_IRQn             = 134,              /**< Reserved */Reserved135_IRQn             = 135,              /**< Reserved */SJC_IRQn                     = 136,              /**< SJC interrupt from General Purpose register. */CAAM_Job_Ring0_IRQn          = 137,              /**< CAAM job ring 0 interrupt ipi_caam_irq0. */CAAM_Job_Ring1_IRQn          = 138,              /**< CAAM job ring 1 interrupt ipi_caam_irq1. */QSPI_IRQn                    = 139,              /**< QSPI1 interrupt request ipi_int_ored. */TZASC_IRQn                   = 140,              /**< TZASC (PL380) interrupt request. */GPT2_IRQn                    = 141,              /**< Logical OR of GPT2 rollover interrupt line, input capture 1 and 2 lines, output compare 1, 2 and 3 interrupt lines. */CAN1_IRQn                    = 142,              /**< Combined interrupt of ini_int_busoff,ini_int_error,ipi_int_mbor,ipi_int_txwarning and ipi_int_waken */CAN2_IRQn                    = 143,              /**< Combined interrupt of ini_int_busoff,ini_int_error,ipi_int_mbor,ipi_int_txwarning and ipi_int_waken */Reserved144_IRQn             = 144,              /**< Reserved */Reserved145_IRQn             = 145,              /**< Reserved */PWM5_IRQn                    = 146,              /**< Cumulative interrupt line. OR of Rollover Interrupt line, Compare Interrupt line and FIFO Waterlevel crossing interrupt line */PWM6_IRQn                    = 147,              /**< Cumulative interrupt line. OR of Rollover Interrupt line, Compare Interrupt line and FIFO Waterlevel crossing interrupt line */PWM7_IRQn                    = 148,              /**< Cumulative interrupt line. OR of Rollover Interrupt line, Compare Interrupt line and FIFO Waterlevel crossing interrupt line */PWM8_IRQn                    = 149,              /**< Cumulative interrupt line. OR of Rollover Interrupt line, Compare Interrupt line and FIFO Waterlevel crossing interrupt line */ENET1_IRQn                   = 150,              /**< ENET1 interrupt */ENET1_1588_IRQn              = 151,              /**< ENET1 1588 Timer interrupt [synchronous] request. */ENET2_IRQn                   = 152,              /**< ENET2 interrupt */ENET2_1588_IRQn              = 153,              /**< MAC 0 1588 Timer interrupt [synchronous] request. */Reserved154_IRQn             = 154,              /**< Reserved */Reserved155_IRQn             = 155,              /**< Reserved */Reserved156_IRQn             = 156,              /**< Reserved */Reserved157_IRQn             = 157,              /**< Reserved */Reserved158_IRQn             = 158,              /**< Reserved */PMU_IRQ2_IRQn                = 159               /**< Brown-out event on either core, gpu or soc regulators. */
} IRQn_Type;
  • 申请中断号request_irq

  • 释放中断号free_irq

  • 中断处理函数irqreturn_t (*irq_handler_t)(int,void*)

  • 管理具体的中断

    enable_irq(int irq)

    disable_irq(int irq)

  • 管理全局中断

    local_irq_enabel()

    local_irq_disable()

  • 保存中断环境

    local_irq_save(flag)

    local_irq_restore(flag)

上半部

  • 处理快,不长时间占用CPU
  • 处理的内容不希望被别的中断打断
  • 处理的任务对时间敏感
  • 处理的任务与硬件有关
  • 直接在中断服务函数中处理

下半部

  • 中断处理耗时

软中断

  1. softirq_action表示软中断

    struct softirq_action{void    (*action)(struct softirq_action *);};
    
  2. 软中断类型包括:

     enum{HI_SOFTIRQ=0,TIMER_SOFTIRQ,NET_TX_SOFTIRQ,NET_RX_SOFTIRQ,BLOCK_SOFTIRQ,BLOCK_IOPOLL_SOFTIRQ,TASKLET_SOFTIRQ,SCHED_SOFTIRQ,HRTIMER_SOFTIRQ,RCU_SOFTIRQ,    /* Preferable RCU should always be the last softirq */NR_SOFTIRQS};
  3. 注册软中断对应的中断处理函数

    void open_softirq(int nr, void(*action)(struct softirq_action*))

  4. 触发软中断

    raise_softirq(int nr)

tasklet

  1. tasklet_struct表示tasklet

  2. 初始化一个tasklet

    void tasklet_init(struct tasklet_struct *t,void (*func)(unsigned long),unsigned long data)

    或者

    DECLARE_TASKLET(name,func,data)

  3. 开始调度tasklet

    void tasklet_schedule(struct tasklet_struct *t)

struct tasklet_struct testtasklet;//takslet处理函数
void tasklet_handler(unsigned int data)
{}//中断处理函数
irqreturn_t test_handler(int irq,void *dev_id)
{//启动tasklet调度tasklet_schedule(&testtasklet);
}//驱动入口函数
static int __init xxx_init(void)
{//初始化tasklettasklet_init(&testtasklet,tasklet_handler,data);//注册中断处理函数request_irq(xxx_irq,test_handler,0,"xxx",&xx_dev);
} 

工作队列

  1. workqueue_struct表示一个工作队列

  2. 初始化一个工作队列

    INIT_WORK(_work,_func)

    或者

    DECLARE_WORK(n,f)

  3. 开始调度工作队列

    schedule_work(stuct work_struct *work)

struct work_struct testwork;//work处理函数
void work_handler(struct work_struct *work)
{}//中断处理函数
irqreturn_t test_handler(int irq,void *dev_id)
{//启动work调度schedule_work(&testwork);
}//驱动入口函数
static int __init xxx_init(void)
{//初始化workINIT_WORK(&testwork,work_handler)//注册中断处理函数request_irq(xxx_irq,test_handler,0,"xxx",&xx_dev);
} 

相关文章:

Cortex-A7中断控制器GIC

Cortex-A7中断控制器GIC 中断号 芯片内部的中断都会引起IRQ InterruptGIC将所有的中断源(最多1020个中断ID)分为三类: SPI(SharedPeripheralInterrupt)共享中断&#xff0c;外部中断都属于SPI中断 [ID32-1019]PPI(PrivatePeripheralInterrupt)私有中断 [ID16-31]SGI(Software-…...

JavaSE:常用类

前言从现在开始进入高级部分的学习&#xff0c;鼓励自己一下&#xff01;画个大饼&#xff1a; 常用类->集合框架->IO流->多线程->网络编程 ->注解与反射->GUI很重要的东西&#xff0c;不能不会&#xff01;Object类祖宗类&#xff0c;主要方法&#xff1a;t…...

Element中树形控件在项目中的实际应用

文章目录1、使用目的2、官网组件3、组合使用组件案例4、在项目中实际应用4.1 组合组件的使用4.1.2 代码落地4.1.3 后台接口数据4.1.4 实际效果官网连接直达&#xff1a;Tree树形控件的使用 1、使用目的 用清晰的层级结构展示信息&#xff0c;可展开或折叠。 2、官网组件 <…...

kaggle RSNA 比赛过程总结

引言 算算时间&#xff0c;有差不多两年多没在打kaggle了&#xff0c;自20年最后一场后&#xff08;其实之前也就打过两场&#xff0c;一场打铁&#xff0c;一场表格赛是金是银不太记得&#xff0c;当时相当于刺激战场&#xff0c;过拟合lb大赛太刺激了&#xff0c;各种trick只…...

51单片机入门————LED灯的控制

LED的电路图通过原理图看出&#xff0c;LED灯是接单片机芯片的P20~P27的一共有8个LED&#xff0c;51单片机也是8字节的P20x010xFE————1111 1110P20xFE可以表示把在P2端的第一个灯点亮1 表示高电平0表示低电平当为0的时候形成一个完整回路&#xff0c;电流从高电平流向低电平…...

J - 二进制与、平方和(线段树 + 维护区间1的个数)

2023河南省赛组队训练赛&#xff08;二&#xff09; - Virtual Judge (vjudge.net) 请你维护一个长度为 n 的非负整数序列 a1, a2, ..., an&#xff0c;支持以下两种操作&#xff1a; 第一种操作会将序列 al, al  1, ..., ar 中的每个元素&#xff0c;修改为各自和 x…...

BertTokenizer的使用方法(超详细)

导入 from transformers import BertTokenizer from pytorch_pretrained import BertTokenizer以上两行代码都可以导入BerBertTokenizer,transformers是当下比较成熟的库&#xff0c;pytorch_pretrained是google提供的源码(功能不如transformers全面) 加载 tokenizer BertT…...

深度学习编译器CINN(3):编译过程中遇到的问题总结

目录 问题一:No module named XXXX 问题描述 分析与解决方案 问题二:catastrophic error: cannot open source file "float16.h"...

yum 安装mysql8数据全过程

mysql8安装方式&#xff1a;&#xff08;使用官方yum仓库&#xff09; 1. wget https://dev.mysql.com/get/mysql80-community-release-el7-4.noarch.rpm 安装 yum install mysql80-community-release-el7-4.noarch.rpm 2、生成yum源缓存 每次当我们编写了&#xff0c…...

内网vCenter部署教程一

PS:因为交换机链路为trunk,安装先登录ESXI,将端口组改为管理vlan ID(1021) 一、双击镜像,打开文件夹,目录为F:\vcsa-ui-installer\win32,双击installer.exe 二、先设置语言为中文 三、点击下一步 四、选择需要安装esxi的主机。 五、设置Vcenter虚拟机的密码...

java 进阶—线程的常用方法

大家好&#xff0c;通过java进阶—多线程&#xff0c;我们知道的什么是进程&#xff0c;什么是线程&#xff0c;以及线程的三种创建方式的选择 今天&#xff0c;我们来看看线程的基础操作 start() 开启线程 public class Demo implements Runnable {Overridepublic void run…...

hadoop的运行模式

作者简介&#xff1a;大家好我是小唐同学(๑>؂<๑&#xff09;&#xff0c;好久不见&#xff0c;为梦想而努力的小唐又回来了&#xff0c;让我们一起加油&#xff01;&#xff01;&#xff01; 个人主页&#xff1a;小唐同学(๑>؂<๑&#xff09;的博客主页 目前…...

服务器(centos7.6)已经安装了宝塔面板,想在里面安装一个SVN工具(subversion),应该如何操作呢?

首先&#xff0c;在登录进入宝塔面板&#xff0c;然后点击左侧终端&#xff0c;进入终端界面&#xff0c;如下图&#xff1a;------------------------------------------如果是第一次使用会弹出输入服务器用户名和密码&#xff0c;此时输入root账号和密码&#xff0c;即可进入…...

从智能进化模型看用友BIP的AI平台化能力

随着人工成本的上升&#xff0c;智能和自动化技术的成熟&#xff0c;企业在越来越多的场景开始应用自动化技术来替代相对标准及有规则的工作&#xff0c;同时利用智能算法来优化复杂工作及决策&#xff0c;获得竞争优势。 不同于阅读、聊天、搜索等面向终端用户的应用场景&…...

项目管理的主要内容包括哪些?盘点好用的项目管理系统软件

阅读本文您将了解&#xff1a;1、项目管理的主要内容包括哪些2、好用的项目管理软件 项目管理是为了实施一个特定目标&#xff0c;所实施的一系列针对项目要素的管理过程&#xff0c;包括过程、手段以及技术等。 通过项目管理&#xff0c;我们能够提前安排和控制项目的时间、…...

Allegro如何查看PCB上器件的库路径操作指导

Allegro如何查看PCB上器件的库路径操作指导 在做PCB设计的时候,有时需要检查PCB上器件使用的库的路径是否正确,Allegro支持快速将PCB上所有器件的库路径都列出来 如下图 如何显示这个报表,具体操作如下 点击Tools点击Report...

笔记【尚硅谷】大数据Canal教程丨Alibaba数据实时同步神器

视频教程&#xff1a;【尚硅谷】大数据Canal教程丨Alibaba数据实时同步神器教程资料&#xff1a;https://pan.baidu.com/s/1VhGBcqeywM6jyXJxtytd1w?pwd6666&#xff0c;提取码&#xff1a;6666本套教程以Canal的底层原理展开讲解&#xff0c;细致地介绍了Canal的安装部署及常…...

如何重定向命令行日志信息到指定txt文件?

如果你想把命令行的输出重定向到指定的txt文件&#xff0c;你可以使用一些符号来实现。例如&#xff0c;你可以在命令后面加上>或>>符号&#xff0c;然后指定文件名。例如&#xff1a; command > output.txt 这样就会把command的标准输出保存到output.txt文件中&…...

物理机不能访问虚拟机kali的web服务解决方案记录

目录 环境 问题描述 解决方案 知识补充 效果测试 其他思路 环境 kali&#xff08;nat模式&#xff09;&#xff0c;物理机&#xff0c;可互ping 问题描述 kali的web服务器不能在物理机上访问。 1.本机能ping通虚拟机 2.虚拟机也能ping通本机 3.虚拟机能访问自己的web …...

服务器配置 | 在Windows本地显示远程服务器绘图程序

文章目录方法1&#xff1a;在MobaXterm的终端输入指令方法2&#xff1a;在Pycharm中运行前提概要&#xff0c;需要在本地Windows端显示点云的3d可视化界面 对于点云的3d可视化一般有两种方法&#xff0c;open3d显示或者是mayavi显示。这两个库都可以使用pip install来实现安装…...

【入坑系列】TiDB 强制索引在不同库下不生效问题

文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...

mongodb源码分析session执行handleRequest命令find过程

mongo/transport/service_state_machine.cpp已经分析startSession创建ASIOSession过程&#xff0c;并且验证connection是否超过限制ASIOSession和connection是循环接受客户端命令&#xff0c;把数据流转换成Message&#xff0c;状态转变流程是&#xff1a;State::Created 》 St…...

服务器硬防的应用场景都有哪些?

服务器硬防是指一种通过硬件设备层面的安全措施来防御服务器系统受到网络攻击的方式&#xff0c;避免服务器受到各种恶意攻击和网络威胁&#xff0c;那么&#xff0c;服务器硬防通常都会应用在哪些场景当中呢&#xff1f; 硬防服务器中一般会配备入侵检测系统和预防系统&#x…...

NLP学习路线图(二十三):长短期记忆网络(LSTM)

在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...

IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)

文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...

vue3+vite项目中使用.env文件环境变量方法

vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量&#xff0c;这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...

企业如何增强终端安全?

在数字化转型加速的今天&#xff0c;企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机&#xff0c;到工厂里的物联网设备、智能传感器&#xff0c;这些终端构成了企业与外部世界连接的 “神经末梢”。然而&#xff0c;随着远程办公的常态化和设备接入的爆炸式…...

基于SpringBoot在线拍卖系统的设计和实现

摘 要 随着社会的发展&#xff0c;社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统&#xff0c;主要的模块包括管理员&#xff1b;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…...

HubSpot推出与ChatGPT的深度集成引发兴奋与担忧

上周三&#xff0c;HubSpot宣布已构建与ChatGPT的深度集成&#xff0c;这一消息在HubSpot用户和营销技术观察者中引发了极大的兴奋&#xff0c;但同时也存在一些关于数据安全的担忧。 许多网络声音声称&#xff0c;这对SaaS应用程序和人工智能而言是一场范式转变。 但向任何技…...

嵌入式常见 CPU 架构

架构类型架构厂商芯片厂商典型芯片特点与应用场景PICRISC (8/16 位)MicrochipMicrochipPIC16F877A、PIC18F4550简化指令集&#xff0c;单周期执行&#xff1b;低功耗、CIP 独立外设&#xff1b;用于家电、小电机控制、安防面板等嵌入式场景8051CISC (8 位)Intel&#xff08;原始…...