前文介绍到SRIO有多种类型的包,当中包括了Doorbell包,Doorbell是一种高速的通知类型的短消息,包头和携带信息都非常短,用于master srio设备通知slave srio设备,可用于DSP间的消息通知,也可用于FPGA与DSP间的消息通知。

Doorbell包payload的大小为16bit,例如以下图阴影处为有效位,其它为reserve位。5,6位用于选择Doorbell中断状态寄存器,对于TI DSP的srio包括了四个中断状态寄存器,即DOORBELL[0-3]_ICSR,每一个寄存器仅有16位有效,即每一个寄存器能够支持16个中断源,所以四个寄存器能够支持64个中断源,在TI Nyquist的4 core
DSP中,我们在使用中能够为每一个core分别配置一个ICSR寄存器,这样当相应的寄存器的某位置位了,相应的core会相应该中断。相应于ISCR的四个寄存器的是4个DOORBELL[0-3]_ICCR寄存器,他与ICSR一一相应,用于清除ISCR寄存器中的中断请求位。

比如,DSP A要想DSP B发送Doorbell通知消息,在DSP A上能够配置LSUx_Reg3寄存器中的Doorbell有效位为1,这样就表示了LSUx_Reg5寄存器中的16bit Doorbell_Info内容是有效的,我们能够把Doorbell_Info配置为0x25,当LSUx_Reg0~5寄存器都被设置好后,SRIO硬件会生成Doorbell包(包括两种生成包的情况,參考TI_DSP_SRIO - useful_Q&A一文),当DSP
B收到该包后,推断Doorbell包的payload为0x,SRIO硬件会将DOORBELL_ICSR的第位中断请求位置为1。这样通过与第5位绑定的system event产生中断,在与event绑定的中断函数中能够运行与DOORBELL_ICSR寄存器的第5位绑定的callback函数,在callback函数中能够运行CPU的任务。(下文解说doorbell的中断到core的机制是怎样实现的)。

最新文章

  1. LR12.53—第2课:准备脚本重播
  2. [Java] xms xmx XX:PermSize XX:MaxPermSize 参数意义解析
  3. IOS第18天(10,核心动画-转盘,自定义buton,旋转动画)
  4. IE8兼容H5语义标签
  5. Epic - Spiral Matrix
  6. NPOI Excel导入 导出
  7. dedecms网站如何做在线订单功能
  8. RabbitMq install on Centos6.3
  9. 个性化推荐系统(七)--- ABTest ab测试平台
  10. centos7 无法启动网络(service network restart)错误解决办法
  11. [POJ 2248]Addition Chains
  12. Dynamics CRM项目实例之十:CRM 2015的捆绑销售在订单中的效果
  13. [Swift]LeetCode333. 最大的二分搜索子树 $ Largest BST Subtree
  14. js去掉前后空格
  15. 【高精度】高精度分数[c++]
  16. go web framework gin group api 设计
  17. Pytorch之可视化
  18. firedac数据集数据序列为JSON
  19. 把旧系统迁移到.Net Core 2.0 日记(9) -- T4 Template
  20. Android兼容包之MultiDex

热门文章

  1. RFID的基本组织构成
  2. ORACLE10g R2【RAC+ASM→单实例FS】
  3. Python的主成分分析PCA算法
  4. Flask项目之手机端租房网站的实战开发(三)
  5. 推荐一款稳定快速免费的前端开源项目 CDN 加速服务
  6. SpringMVC 学习笔记(十) 异常处理HandlerExceptionResolver
  7. js课程 4-12 js中正则表达式如何使用
  8. Eclipse 出错 Error:Could not create the Java Virtual Machine Error:A fatal exception has occurred
  9. ITFriend网站内测公测感悟
  10. position:absolute和margin:auto 连用实现元素水平垂直居中