diag_service的GLINK_IST是怎么来的

2024-02-05 10:30
文章标签 怎么 service diag glink ist

本文主要是介绍diag_service的GLINK_IST是怎么来的,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

背景

平台:SA8155,Q+A 1.2.1

8155上集成了很多IP核,其中有不少的IP本质上是arm M核或者R核,这些模块在开发或者使用过程中也是需要监控和诊断的,但是他们并没有外部的调试接口,高通设计了整套诊断框架通过APSS(application processer subsystem)用来实现对这些IP核的诊断和监控。这套诊断框架支持从上位机PC的 QPST/QXDM软件对IP core的访问,也支持从APSS直接访问。

diag_service线程信息

在查看diag_service线程信息,我们能看到,这个有几个以GLINK_IST_x命名的中断线程:

# pidin -p 32790 threadspid tid name               thread name          STATE       Blocked                     32790   1 bin/diag_service   1                    RECEIVE     10                          32790   2 bin/diag_service   DALTimer_dispatcher  RECEIVE     2                           32790   3 bin/diag_service   Workloop             SEM         fff8089e64620f94            32790   4 bin/diag_service   GLINK_IST_481        INTR                                    32790   5 bin/diag_service   GLINK_IST_188        INTR                                    32790   6 bin/diag_service   GLINK_IST_606        INTR                                    32790   7 bin/diag_service   glink_ssr_handler    REPLY       24586                       32790   8 bin/diag_service   ipcr_lpass           CONDVAR     (0x270731be10)              32790   9 bin/diag_service   ipcr_cdsp            CONDVAR     (0x270731bce0)              32790  10 bin/diag_service   ipcr_mpss            CONDVAR     (0x270731bbb0)              32790  11 bin/diag_service   IPC_ROUTER_RM        RECEIVE     3                           32790  12 bin/diag_service   diag_timer_handler   RECEIVE     5                           32790  13 bin/diag_service   diag_task            CONDVAR     (0x5134b3e34)               32790  14 bin/diag_service   pdbg_rm              RECEIVE     6                           32790  15 bin/diag_service   diag_resmgr          RECEIVE     17                          32790  16 bin/diag_service   diag_fwd_task        CONDVAR     (0x5134bc17c)               32790  17 bin/diag_service   diag_compress_task   CONDVAR     (0x5134bc0cc)               32790  18 bin/diag_service   ssr_event_monitor    REPLY       700466                      32790  19 bin/diag_service   diagcomm_udp         CONDVAR     (0x270733cac0)              32790  20 bin/diag_service   GLinkSMEMlpass       CONDVAR     (0x27073104a4)              32790  21 bin/diag_service   GLinkSMEMmpss        CONDVAR     (0x27073104f4)              32790  22 bin/diag_service   GLinkSMEMcdsp        CONDVAR     (0x2707310544)

我们想了解的是这几个线程是怎么来的,如何创建的

GLINK_IST_x中断线程创建

调用时序图:

对应的dts文件以及节点信息:

target/filesets/dtsi/sdm8155.dtsi

    smem_info {mpss@0 {id = <0x1>;interrupts = <0x1e1>;reg = <0x17c0000c 0x1000>;tx-fifo-size = <0x4000>;tx-mtu-size = <0x1000>;ss_name = "mpss";};lpass@0 {id = <0x2>;interrupts = <0xbc>;reg = <0x17c0000c 0x100>;tx-fifo-size = <0x4000>;tx-mtu-size = <0x1000>;ss_name = "lpass";};dsps@0 {id = <0x3>;interrupts = <0xca>;reg = <0x17c0000c 0x1000000>;tx-fifo-size = <0x4000>;tx-mtu-size = <0x1000>;ss_name = "dsps";};cdsp@0 {id = <0x5>;interrupts = <0x25e>;reg = <0x17c0000c 0x10>;tx-fifo-size = <0x4000>;tx-mtu-size = <0x1000>;ss_name = "cdsp";};};

interrupts = <0x25e>; --> 606 --> GLINK_IST_606

diag_service全景图

参考

80-NA157-61 Rev. YE 《Diagnostic System User Guide》

这篇关于diag_service的GLINK_IST是怎么来的的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/680616

相关文章

[职场] 护理专业简历怎么写 #经验分享#微信

护理专业简历怎么写   很多想成为一名护理方面的从业者,但是又不知道应该怎么制作一份简历,现在这里分享了一份护理方面的简历模板供大家参考。   蓝山山   年龄:24   号码:12345678910   地址:上海市 邮箱:jianli@jianli.com   教育背景   时间:2011-09到2015-06   学校:蓝山大学   专业:护理学   学历:本科

Java面试八股之怎么通过Java程序判断JVM是32位还是64位

怎么通过Java程序判断JVM是32位还是64位 可以通过Java程序内部检查系统属性来判断当前运行的JVM是32位还是64位。以下是一个简单的方法: public class JvmBitCheck {public static void main(String[] args) {String arch = System.getProperty("os.arch");String dataM

电脑不小心删除的文件怎么恢复?4个必备恢复方法!

“刚刚在对电脑里的某些垃圾文件进行清理时,我一不小心误删了比较重要的数据。这些误删的数据还有机会恢复吗?希望大家帮帮我,非常感谢!” 在这个数字化飞速发展的时代,电脑早已成为我们日常生活和工作中不可或缺的一部分。然而,就像生活中的小插曲一样,有时我们可能会在不经意间犯下一些小错误,比如不小心删除了重要的文件。 当那份文件消失在眼前,仿佛被时间吞噬,我们不禁会心生焦虑。但别担心,就像每个问题

ABAP怎么把传入的参数刷新到内表里面呢?

1.在执行相关的功能操作之前,优先执行这一段代码,把输入的数据更新入内表里面 DATA: lo_guid TYPE REF TO cl_gui_alv_grid.CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'IMPORTINGe_grid = lo_guid.CALL METHOD lo_guid->check_changed_data.CALL M

电子盖章怎么做_电子盖章软件

使用e-章宝(易友EU3000智能盖章软件)进行电子盖章的步骤如下: 一、准备阶段 软件获取: 访问e-章宝(易友EU3000智能盖章软件)的官方网站或相关渠道,下载并安装软件。账户注册与登录: 首次使用需注册账户,并根据指引完成注册流程。注册完成后,使用用户名和密码登录软件。 二、电子盖章操作 文档导入: 在e-章宝软件中,点击“添加”按钮,导入待盖章的PDF文件。支持批量导入多个文件,

说一说三大运营商的流量类型,看完就知道该怎么选运营商了!

说一说三大运营商的流量类型,看完就知道该怎么选运营商了?目前三大运营商的流量类型大致分为通用流量和定向流量,比如: 中国电信:通用流量+定向流量 电信推出的套餐通常由通用流量+定向流量所组成,通用流量比较多,一般都在100G以上,而且电信套餐长期套餐较多,大多无合约期,自主激活的卡也是最多的,适合没有通话需求的朋友办理。 中国移动:通用流量+定向流量 移动推出的套餐通常由通用流量+定向

js小题:通过字符串执行同名变量怎么做

在JavaScript中,你不能直接使用一个字符串来直接引用一个变量,因为JavaScript是一种静态类型语言(尽管它的类型在运行时可以变化),变量的名字在编译时就被确定了。但是,有几种方法可以实现类似的功能: 使用对象(或Map)来存储变量: 你可以使用一个对象来存储你的变量,然后使用字符串作为键来访问这些变量。 let myVars = { 'var1': 'Hello', 'var

vue怎么处理跨域

Vue.js 本身并不直接解决跨域问题,因为跨域问题主要是浏览器基于同源策略(Same-origin policy)的一种安全限制。然而,在Vue.js项目中,我们可以采取一些策略来绕过或处理跨域问题。 解决跨域问题的常用方法: 代理服务器:在开发环境中,我们可以配置一个代理服务器来转发API请求,从而绕过浏览器的同源策略。Vue CLI 提供了内置的代理功能,可以在 vue.config.j

又看见定时器了,怎么这么想写了~~

1.scheduleUpdate(); 与virtual void update(float dt);   联合使用,就是每隔一段时间就调用一次update,实际上是每一帧都调用一次updata方法,scheduleUpdate();方法相当于开启了定时器。 2.schedule的作用和scheduleUpdate差不多,只是这个其实更好用一些,这个可以只是指定调用的方法,系统默认每一帧都调用一

今天又有了别的收获。青云怎么这么厉害呢- -。。感觉无论付出多么大的努力,和他差不多就行~~

1.第一个收获就是一个宏这个宏第一个参数是函数的类型,第二个是名字,第三个其实就是setRow(),getRow(),两个方法,为的就是让我们得到对象。嘿嘿,收获不小~~ 2.比如我们定义了一个宏#define WC (6) 我们调用一个方法,suShi->m_imgIndex=rand()%WC  ;表示取0-WC-1的整数值。。 3.为了更好的适配各种环境在applicatio