当前位置: 首页 > 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来实现安装…...

应用升级/灾备测试时使用guarantee 闪回点迅速回退

1.场景 应用要升级,当升级失败时,数据库回退到升级前. 要测试系统,测试完成后,数据库要回退到测试前。 相对于RMAN恢复需要很长时间&#xff0c; 数据库闪回只需要几分钟。 2.技术实现 数据库设置 2个db_recovery参数 创建guarantee闪回点&#xff0c;不需要开启数据库闪回。…...

《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》

在注意力分散、内容高度同质化的时代&#xff0c;情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现&#xff0c;消费者对内容的“有感”程度&#xff0c;正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中&#xff0…...

WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成

厌倦手动写WordPress文章&#xff1f;AI自动生成&#xff0c;效率提升10倍&#xff01; 支持多语言、自动配图、定时发布&#xff0c;让内容创作更轻松&#xff01; AI内容生成 → 不想每天写文章&#xff1f;AI一键生成高质量内容&#xff01;多语言支持 → 跨境电商必备&am…...

3403. 从盒子中找出字典序最大的字符串 I

3403. 从盒子中找出字典序最大的字符串 I 题目链接&#xff1a;3403. 从盒子中找出字典序最大的字符串 I 代码如下&#xff1a; class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...

第 86 场周赛:矩阵中的幻方、钥匙和房间、将数组拆分成斐波那契序列、猜猜这个单词

Q1、[中等] 矩阵中的幻方 1、题目描述 3 x 3 的幻方是一个填充有 从 1 到 9 的不同数字的 3 x 3 矩阵&#xff0c;其中每行&#xff0c;每列以及两条对角线上的各数之和都相等。 给定一个由整数组成的row x col 的 grid&#xff0c;其中有多少个 3 3 的 “幻方” 子矩阵&am…...

mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包

文章目录 现象&#xff1a;mysql已经安装&#xff0c;但是通过rpm -q 没有找mysql相关的已安装包遇到 rpm 命令找不到已经安装的 MySQL 包时&#xff0c;可能是因为以下几个原因&#xff1a;1.MySQL 不是通过 RPM 包安装的2.RPM 数据库损坏3.使用了不同的包名或路径4.使用其他包…...

SAP学习笔记 - 开发26 - 前端Fiori开发 OData V2 和 V4 的差异 (Deepseek整理)

上一章用到了V2 的概念&#xff0c;其实 Fiori当中还有 V4&#xff0c;咱们这一章来总结一下 V2 和 V4。 SAP学习笔记 - 开发25 - 前端Fiori开发 Remote OData Service(使用远端Odata服务)&#xff0c;代理中间件&#xff08;ui5-middleware-simpleproxy&#xff09;-CSDN博客…...

6️⃣Go 语言中的哈希、加密与序列化:通往区块链世界的钥匙

Go 语言中的哈希、加密与序列化:通往区块链世界的钥匙 一、前言:离区块链还有多远? 区块链听起来可能遥不可及,似乎是只有密码学专家和资深工程师才能涉足的领域。但事实上,构建一个区块链的核心并不复杂,尤其当你已经掌握了一门系统编程语言,比如 Go。 要真正理解区…...

图解JavaScript原型:原型链及其分析 | JavaScript图解

​​ 忽略该图的细节&#xff08;如内存地址值没有用二进制&#xff09; 以下是对该图进一步的理解和总结 1. JS 对象概念的辨析 对象是什么&#xff1a;保存在堆中一块区域&#xff0c;同时在栈中有一块区域保存其在堆中的地址&#xff08;也就是我们通常说的该变量指向谁&…...

【HarmonyOS 5】鸿蒙中Stage模型与FA模型详解

一、前言 在HarmonyOS 5的应用开发模型中&#xff0c;featureAbility是旧版FA模型&#xff08;Feature Ability&#xff09;的用法&#xff0c;Stage模型已采用全新的应用架构&#xff0c;推荐使用组件化的上下文获取方式&#xff0c;而非依赖featureAbility。 FA大概是API7之…...