首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏hank

    AMD Xilinx AXI Interrupt Controller 中断优先级

    中断嵌套 要使用中断优先级,通常也要使能中断嵌套(Nested Interrupts)。 AXI Interrupt Controller的手册pg099中的描述如下: Nested Interrupts The core provides support for nested interrupts It enables Microblaze interrupts after blocking further interrupts from the current interrupt number On exit, it disables microblaze interrupts and restores ILR register default value(0xFFFFFFFF)back. It is recommended to increase STACK_SIZE in linker script for nested interrupts.

    98830编辑于 2023-05-23
  • 来自专栏hank

    【分享】扩展MPSoC中断

    MPSoC的A53(PS)的中断细节,在Xilinx的UG1085的Table 13‐1: System Interrupts部分做了详细介绍。 PS-PL Interrupts The interrupts from the processing system I/O peripherals (IOP) are routed to the PL 检查Linux中断信息 Linux在/proc/interrupts文件里,提供了系统的中断信息。 读“/proc/interrupts”的内容时,会调用kernel\irq\Proc.c中的函数int show_interrupts(struct seq_file *p, void *v)。 interrupts IPI5: 0 0 0 0 IRQ work interrupts IPI6:

    1.9K20发布于 2021-04-30
  • 来自专栏这里只有VxWorks

    Task之计数信号量示例

    include <wdLib.h> #include <semLib.h> #include <taskLib.h> #include <sysLib.h> #define TIME_BETWEEN_INTERRUPTS define NUM_OF_GIVES 10 LOCAL SEM_ID semId; LOCAL WDOG_ID wdId; /* synchronizes with interrupts **************************************************** * simulates a hardware device which generates interrupts times ) { semGive(semId); times--; if(times > 0) wdStart(wdId, TIME_BETWEEN_INTERRUPTS */ wdStart(wdId, TIME_BETWEEN_INTERRUPTS,(FUNCPTR)syncISR, NUM_OF_GIVES); /* arbitrary delay

    55010发布于 2021-11-12
  • 来自专栏云计算与大数据

    kernel | interrupt| driver

    /proc/softirqs 提供了软中断的运行情况; /proc/interrupts 提供了硬中断的运行情况。 (4)硬中断:硬中断是由硬件产生的,比如,像磁盘,网卡,键盘,时钟等。 These interrupts are handled mostly as I/O interrupts; we discuss the peculiar characteristics of timer interrupts in Chapter 6. Interprocessor interrupts A CPU issued an interrupt to another CPU of a multiprocessor system. We cover such interrupts in the later section "Interprocessor Interrupt Handling.”

    90510编辑于 2022-04-18
  • 来自专栏MySQL修行 | 老叶茶馆

    MySQL压测时Linux中断异常飚高,原来是因为...

    [root@yejr.run]# watch -d cat /proc/interrupts ... LOC: 2468939840 2374791518 2373834803 2373613050 Local timer interrupts SPU: 0 0 0 0 Spurious interrupts PMI: 0 0 0 0 Performance monitoring interrupts IWI: 50073298 45861632 45568755 45833911 IRQ work interrupts RTR: 0 CAL: 5131479 6539715 17285454 11211131 Function call interrupts TLB: 23094853 24045725

    1.6K62发布于 2020-10-10
  • 来自专栏云计算与大数据

    linux | 网络数据包softirq 软中断与CPU

    LOC: 2110890 1998553 Local timer interrupts SPU: 0 0 Spurious interrupts PMI: 0 0 Performance monitoring interrupts IWI: 0 0 IRQ work interrupts CAL: 1563802 1451446 Function call interrupts TLB: 1119 1363 TLB shootdowns TRM: 0 0 Thermal event interrupts THR: 0 0 Threshold APIC interrupts Hard interrupts are expensive because they cannot be interrupted.

    3.7K20编辑于 2023-03-18
  • 来自专栏linux驱动个人学习

    soft lockup和hard lockup介绍

    static void watchdog_interrupt_count(void) { __this_cpu_inc(hrtimer_interrupts); } 这里我们就要回顾之前创建的那个kernel 线程了,多久调用一次就和hrtimer_interrupts的值密切相关。 static int watchdog_should_run(unsigned int cpu) { return __this_cpu_read(hrtimer_interrupts) ! ); if (__this_cpu_read(hrtimer_interrupts_saved) == hrint) return 1; __this_cpu_write(hrtimer_interrupts_saved , hrint); return 0; } 而这个函数主要就是查看hrtimer_interrupts变量在时钟中断处理函数里有没有被更新。

    3.3K10发布于 2020-06-16
  • 来自专栏韦东山嵌入式

    韦东山:在Linux设备树(DTS)中指定中断_在代码中获得中断

    设备树里中断节点的语法 2.设备树里中断节点的示例 3.在代码中获得中断 参考: 内核Documentation\devicetree\bindings\interrupt-controller\interrupts.txt = <0x10140000 0x1000>; }; 如果中断控制器有级联关系,下级的中断控制器还需要表明它的“interrupt-parent”是谁,用了interrupt-parent”中的哪一个“interruptsinterrupts 你要用哪一个中断? Interrupts里要用几个cell,由interrupt-parent对应的中断控制器决定。 { gpioext: gpio-adnp@41 { compatible = "ad,gpio-adnp"; interrupt-parent = <&gpio>; interrupts 一个“interrupts-extended”属性就可以既指定“interrupt-parent”,也指定“interrupts”,比如: interrupts-extended = <&intc1

    10.1K20发布于 2020-09-30
  • 来自专栏人人都是极客

    动手定制一个开发板案例

    80040000 { compatible = "arm,pl310-cache"; reg = <0x80040000 0x1000>; interrupts compatible = "csdn,gitchat-tick"; reg = <0x20000 0x1000>; interrupts compatible = "csdn,gitchat-gpio"; reg = <0x40000 0x200>; interrupts compatible = "csdn,gitchat-uart"; reg = <0x50000 0x1000>; interrupts reg = <0x5c>; interrupt-parent = <&gpio0>; interrupts

    1.2K11发布于 2020-02-13
  • 来自专栏ADAS性能优化

    Identifying Jitter-Related Jank

    Interrupt traffic Because ARM platforms deliver interrupts to CPU 0 only by default, we recommend the In general, it's too hard to predict the state of the system for most common interrupts, but if you have Drivers leaving preemption or IRQs disabled too long Disabling preemption or interrupts for too long Keep in mind that running an interrupt handler prevents you from servicing other interrupts, which also Many hardware interrupts are in the critical path of performance and must be run immediately.

    77210编辑于 2022-05-13
  • 来自专栏hank

    【分享】嵌入式Linux系统中的CPU控制

    也可以查看/proc/interrupts,显示系统中各个CPU处理的中断数量。 Linux系统中的中断也很多,也可以采用如下脚本,设置所有中断的CPU亲和。 /bin/sh cat /proc/interrupts > interrupts_list_all.txt cat /proc/interrupts | grep -v "CPU" | grep -v "IPI" | grep -v "Err" | awk '{print $1}' > interrupts_list.txt echo -e "\nRead interrupts list file:" ; cat interrupts_list.txt | while read line do # remove colon : line_new=${line/:/} interrupts IPI5: 0 0 0 0 IRQ work interrupts IPI6:

    4.5K20发布于 2020-11-11
  • 来自专栏WriteSimpleDemo

    网卡中断绑定

    网卡中断 获取网卡设备所有中断 [root@PowerCycle_1_DL380G7 ~]# cat /proc/interrupts|grep -iw eth0 52: 12403 packets received, 0% packet loss round-trip min/avg/max = 0.1/0.1/0.4 ms [root@moon 44]# cat /proc/interrupts /proc/interrupts 文件示例 [root@PowerCycle_1_DL380G7 ~]# cat /proc/interrupts CPU0 CPU1 44175771 40677695 7410066 5246562 6503443 4989630 6236192 3668821 Local timer interrupts 0 0 0 0 0 0 0 0 Spurious interrupts

    5.1K30发布于 2020-03-20
  • 来自专栏全栈程序员必看

    PetaLinux学习笔记 2

    >; ranges; }; pmu@f8891000 { // Performance Monitor Unit compatible = "arm,cortex-a9-pmu"; interrupts 0x00000003 0x636c6b00 0x00000008>; clock-names = "can_clk", "pclk"; reg = <0xe0008000 0x00000078>; interrupts 0x00000003 0x636c6b00 0x00000008>; clock-names = "can_clk", "pclk"; reg = <0xe0009000 0x00000078>; interrupts i2c-r1p10"; status = "disabled"; clocks = <0x00000001 0x00000083>; interrupt-parent = <0x00000004>; interrupts i2c-r1p10"; status = "disabled"; clocks = <0x00000001 0x00000083>; interrupt-parent = <0x00000004>; interrupts

    2.1K30编辑于 2022-10-01
  • 来自专栏Linux内核深入分析

    GICv3驱动初始化

    (PPI), Shared Peripheral Interrupts (SPI), Software Generated Interrupts (SGI), and Locality-specific Peripheral Interrupts (LPI). The 1st cell is the interrupt type; 0 for SPI interrupts, 1 for PPI interrupts. SPI interrupts are in the range [0-987]. PPI interrupts are in the range [0-15]. 用于描述一个中断源的详细信息,此值等于3代表interrupts中有三个字段 第一个字段代表中断类型(GIC_PPI, GIC_SPI) 第二个字段物理中断号,根据中断类型中断号的范围不同。

    2.4K31发布于 2020-04-09
  • 来自专栏TencentOS-tiny

    i.MX RT1062 嵌套中断向量控制器NVIC

    /** Interrupt Number Definitions */ #define NUMBER_OF_INT_VECTORS 174 /**< Number of interrupts Here the interrupts connected * to NVIC are the LEVEL1 interrupts, because they are routed to the core * The interrupts connected to intmux are the LEVEL2 interrupts, they are routed * to NVIC first then * * This function only enables the LEVEL1 interrupts. The number of LEVEL1 interrupts * is indicated by the feature macro FSL_FEATURE_NUMBER_OF_LEVEL1_INT_VECTORS

    1.2K30编辑于 2021-12-28
  • 来自专栏嵌入式程序猿

    一步步学习MQX实时操作系统(4)

    0x000003FF : 0; define symbol m_interrupts_start = 0x00000000; define symbol m_interrupts_end define exported symbol __VECTOR_TABLE = m_interrupts_start; 具体详情可以参考.icf文件 系统启动首先执行boot.S文件,关中断,从中断向量表中获取其中第一项内容作为系统栈的首指针 /* Disable interrupts and clear pendingflags */ ldr r0, =NVIC_ICER0 ldr r1, =NVIC_ICPR0

    97850发布于 2018-04-10
  • 来自专栏ops技术分享

    CPU中的上下文(下)

    可以看到sysbench占用了很高的cpu使用率很高,但没有产生多少上下文切换 5.查看多线程,-t显示线程 pidstat -wt 3 可以看到线程占用的很多 6.查看中断信息 /proc/interrupts /proc/interrupts 就是这种通信机制的一部分,用于内核空间与用户空间之间的通信,提供了一个只读的中断使用情况。 watch -d cat /proc/interrupts

    75430发布于 2021-05-24
  • 来自专栏PostgreSQL研究与原理解析

    PgSQL技术内幕 • statement_timeout做的那些事

    CHECK_FOR_INTERRUPTS->ProcessInterrupts:InterruptPending在函数StatementCancelHandler中就置为了true,所以CHECK_FOR_INTERRUPTS 而PG关键流程中有很多地方都会调用CHECK_FOR_INTERRUPTS来检测中断的发生并处理。 一旦PG流程陷入某些底层函数出不来,导致statement_timeout超时,就会因为不能继续执行后续流程进入CHECK_FOR_INTERRUPTS做真正取消SQL的操作。

    1.3K10编辑于 2023-12-04
  • 来自专栏Netty历险记

    线程池中的2个注意点

    Thread.currentThread(); Runnable task = w.firstTask; w.firstTask = null; w.unlock(); // allow interrupts completedAbruptly); } } 代码中,我们可以看到lock()和unlokc()成对出现了.可是奇怪的是,在方法开始处还有一个unlock()调用. w.unlock(); // allow interrupts 在没有出现lock()的情况下,居然出现了unlock()调用.作者还注释了allow interrupts. Worker(Runnable firstTask) { setState(-1); // inhibit interrupts until runWorker this.firstTask

    35920编辑于 2022-06-02
  • 来自专栏嵌入式Linux系统开发

    FreeRTOS(五):中断配置和临界段

    3、FreeRTOS 开关中断 FreeRTOS 开关中断函数为 portENABLE_INTERRUPTS ()和 portDISABLE_INTERRUPTS(),这两个函数其实是宏定义,在 portmacro.h 中有定义,如下: #define portDISABLE_INTERRUPTS() vPortRaiseBASEPRI() #define portENABLE_INTERRUPTS() 函数 vPortSetBASEPRI()是向寄存器 BASEPRI 写入一个值,此值作为参数 ulBASEPRI 传 递进来,portENABLE_INTERRUPTS()是开中断,它传递了个 0 给 \r\n"); portDISABLE_INTERRUPTS(); delay_xms(5000); printf("打开中断............. 中断关闭 5S 以后就会调用函数 portENABLE_INTERRUPTS()重新打开中断,重新打开中断以后 TIM5 恢复运行,蓝框所示部分。

    4K00编辑于 2021-12-15
领券