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

聊城做网站优化重庆市建设工程节能中心网站

聊城做网站优化,重庆市建设工程节能中心网站,制作网页可以用word吗,网站备案名称修改点击查看系列文章 》 Interrupt Pipeline系列文章大纲-CSDN博客 4.2.1 通过DTS传递物理中断号给Linux 参考《GICv3_Software_Overview_Official_Release_B》#xff0c;下表描述了GIC V3支持的INTID(硬件中断号)的范围。 SGI (Software Generated Interrupt)#xff1a;软…点击查看系列文章 》 Interrupt Pipeline系列文章大纲-CSDN博客  4.2.1 通过DTS传递物理中断号给Linux 参考《GICv3_Software_Overview_Official_Release_B》下表描述了GIC V3支持的INTID(硬件中断号)的范围。 SGI (Software Generated Interrupt)软件触发的中断。Linux内核可以通过写GICD_SGIR寄存器来触发一个中断事件用于CPU core之间的通信。 PPI (Private Peripheral Interrupt)私有外设中断。这是每个核心私有的中断。PPI会送达到指定的CPU上应用场景有CPU本地时钟。 SPI (Shared Peripheral Interrupt)软件触发的中断。软件可以通过写GICD_SGIR寄存器来触发一个中断事件一般用于核间通信。 LPI (Locality-specific Peripheral Interrupt)LPI是GICv3中的新特性是基于消息的中断。当前GIC V3驱动irq-gic-v3.c的参数gicv3_nolpi默认为0所以默认是默认支持LPI的。 SOC芯片在设计的时候不同设备会分配到自己固定的硬件中断号一般在手册里都会说明。这些硬件中断号如何告知内核呢通过open firmware device tree经常简称device tree。设备树通常以 .dtsDevice Tree Source文件的形式编写这是一种人类可读的文本格式。.dts 文件会被编译成二进制的 .dtbDevice Tree Blob文件供内核在启动时使用。 以dts中的timer设备为例说明一下硬件中断号是如何传入Linux中的。 /dts-v1/;/ {......timer {compatible arm,armv8-timer;interrupts GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_HIGH),GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_HIGH),GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_HIGH),GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_HIGH);};...... };interrupts 属性定义了定时器产生的中断。每个中断由三个字段组成 第一个字段是中断类型0代表GIC_SPI1代表GIC_PPI 第二个字段是中断号。这个中断号并不是GIC中的硬件中断号而是PPI或SPI各自范围的逻辑编号。对于PPI来说范围是0~15对于SPI来说范围是0~987。例子中有四个PPI中断号中断号13 (0x0d)、中断号14 (0x0e)、中断号11 (0x0b)、中断号10 (0x0a)。第三个字段是中断的属性包括2个字节。低字节是中断的触发类型在这个例子中中断是高电平触发。高字节表示中断的目标 CPU 掩码例如GIC_CPU_MASK_SIMPLE(8)可以表示所有 8 个 CPU 都可以接收这个中断。 dts里面的中断号是如何传递到Linux中呢Linux根据dts中的timer节点来创建设备时需要计算出真实的hwirq。以GIC IRQ V3来说使用gic_irq_domain_translate函数根据中断类型进行转换。对于PPI要加上16对于SPI要加上32. 最后一个问题对于timer设备来说四个中断最终使用哪个中断根据compatible arm,armv8-timer确认匹配的驱动程序为drivers/clocksource/arm_arch_timer.c。四个中断的定义在include/clocksource/arm_arch_timer.h。  drivers/clocksource/arm_arch_timer.c TIMER_OF_DECLARE(armv8_arch_timer, arm,armv8-timer, arch_timer_of_init);include/clocksource/arm_arch_timer.h enum arch_timer_ppi_nr {ARCH_TIMER_PHYS_SECURE_PPI, // 对应timer中的PPI 13ARCH_TIMER_PHYS_NONSECURE_PPI, //对应timer中的PPI 14ARCH_TIMER_VIRT_PPI, //对应timer中的PPI 11ARCH_TIMER_HYP_PPI, //对应timer中的PPI 10ARCH_TIMER_MAX_TIMER_PPI // 用于边界检查 };以我用的QEMU virt为例arch_timer_of_init调用arch_timer_select_ppi()选择了ARCH_TIMER_VIRT_PPI对应timer中的PPI 11。根据上面的分析针对PPI中断Linux会加上偏移量16最终得到hwirq 27 通过cat /proc/interrupts来验证一下arch_timer的硬件中断号hwirq确实是27 注意看图上的第一列显示的是Linux中断号。arch_timer的硬件中断号hwirq 27对应Linux的中断号为3二者是怎么映射的下一章继续分析。 点击查看系列文章 》 Interrupt Pipeline系列文章大纲-CSDN博客 原创不易需要大家多多鼓励您的关注、点赞、收藏就是我的创作动力
http://www.hkea.cn/news/14527336/

相关文章:

  • 软文网站有哪些网站建设具体建设流程
  • 网站建设英文文献目录如何快速推广一个新产品
  • 进度跟踪网站开发化工网站模板
  • 为什么没有人做搜索网站了上海中小企业
  • 中鼎国际建设集团网站如何设计推广方案
  • me域名公司网站企业网站开发实训目的
  • 网站到期不想续费网页设计表格跨行代码
  • 珠宝静态网站模板沧州网站设计多少钱
  • 景洪服装网站建设网站建设特色
  • 哪里有免费的网站源码成都工业设计公司
  • 手机算命网站建设淘特app推广代理
  • 开拓网站建设公司百度指数分析
  • 沈阳有资质做网站的公司泉州网站建设网站制作
  • 山西住房与城乡建设厅定额网站简约网站建设
  • 临沂网站建设联系方式高端玩家
  • 做众筹网站怎么赚钱网架钢构公司
  • 顺德营销型网站建设甘肃酒泉建设银行网站
  • 公司网站建设怎么成都模板网站建设服务
  • 网站建设工作流程图课程培训网站建设
  • 泊头做网站电话专门做淘宝客网站
  • 街舞舞团公司做网站做网站的硬件
  • 个人响应式网站设计丽泽桥网站建设
  • 推广项目网站天元建设集团有限公司北京分公司
  • 网络ip查询网站怎么做微信小程序商城
  • 商洛网站建设电话网络运营专员
  • 郑州做网站熊掌号物业网站模板
  • 做外贸的j交易网站品质好的网站制作
  • 小型网站开发小论文百度关键词推广价格查询
  • 电商网站开发定制做名片用什么网站
  • 黄岩地区做环评立项在哪个网站广州做网站mxszpt