高通dsps部分的打印
来源:互联网 发布:漂亮老婆 知乎 编辑:程序博客网 时间:2024/06/05 07:42
链接地址:高通dsps部分的打印
dsps部分跟AP端是采用共享内存的方式来交换信息的,对于打印来说,如果把所有的字符串都传到AP端,那么就非常占用共享的内存,所有采用了传递整型数标签的方式。首先在dsps和AP端都约定好,比如:dsps传递0,在AP端就代表"MAG8975: Initializing"这么一个字符串。
在dsps代码部分,在sns_debug_str.h文件中,定义了不同等级,不同参数个数的打印函数:
......
#define SNS_PRINTF_STRING_ID_HIGH_0(mod_id,str_id)
#define SNS_PRINTF_STRING_ID_HIGH_1(mod_id,str_id,parameter1)
......
我们在使用的时候,根据情况调用不同的函数进行打印,这里的几个参数,从字面意思上可以看到,他们分别是模块对于的ID号,模块里面对应的字符串的ID号,后面就是参数。这里说的ID,就是上面讲到的传递的整型数标签,下面就讲讲模块ID和字符串ID。
这个模块ID,在dsps部分的代码和AP端的代码都有定义,而且他们肯定是一样的,这样才是一种约定,在sns_debug_api.h有如下定义(AP端代码也有):
可以看到他们就是枚举类型,比如对于接近和光感模块,可以采用ID: SNS_DBG_MOD_DSPS_DD_ALSPRX,那么对于字符串ID呢,在dsps会定义很多ID,然后在AP端的代码里面,会对不同的ID,定义不同的字符串,在dsps的sns_debug_api.h中截取一段光感模块的字符串ID定义:
在AP端的sns_string_db.h文件里面有定义,对不同的ID定义不同的字符串,下面是截取的一部分:
OK,当dsps传入2,那么AP端就会打印“ALSPRX: PRX/ALS read already pending”这样一句字符串。上面我们已经对不同的模块ID和字符串ID在两个系统间的约定已经进行了说明。如果自己需要添加新模块的打印信息,可以在这些文件中,在两边进行同步的更改。那么,是不是定了的就一定会打印出来呢,其实不然,AP端对需要处理的模块还放到了一个数组里面,只有定义在这个数组里面的模块才会打印。在sns_debug_str.c文件中:在dsps传入模块ID之后,他会在这个数组里面进行搜寻,如果没有包含,就会在log里面打印出db ptr NULL OR string ID not valid (%d)这样一句话。dsps内容比较多,未完待续。。。
- 高通dsps部分的打印
- 高通dsps部分的打印
- 【Stones from other hills】基于TMS320C64x DSPs的MPEG-4实时编码器设计与实现
- 【Stones from other hills】基于TMS320C64x DSPs的MPEG-4实时编码器设计与实现
- 高通RPM部分简介
- 特定内容的部分打印技术
- 打印部分页面时,预览的解决方案。
- 虚拟打印的实现-DDK部分
- CSS实现部分打印的实例
- 打印有序链表的公共部分
- 打印有序链表的公共部分
- 如何打印qq文件的正文部分
- javascript打印-打印页面设置-打印预览代码,特定内容的部分打印技术
- asp.net中的“按需打印”(打印你需要打印的部分)
- 浏览器打印功能:(打印部分)
- 下载高通android 部分源码方法
- (高通平台)pdaf log打印不出来的检查步骤
- 打印部分窗口
- 虚析构函数
- I/O寄存器的边际效应
- Spring事务传播行为(Propagation behavior)
- gdb简单的调试命令
- 解决Three.js中使用OrbitControls导致不能选中DOM的问题
- 高通dsps部分的打印
- Error:Error converting bytecode to dex: Cause: com.android.dex.DexException: Multiple dex files defi
- Oracle Goldengate在HP平台裸设备文件系统OGG-01028处理
- Linux下CGroup进行CPU内存等资源控制
- Oracle中 (+)与left join 的用法区别
- linux笔记two
- F-04畫面按鈕權限設定
- 堆、大根堆、小根堆
- 列出最简真分数序列 1/10,3/10,7/10,9/10