找回密码
 注册
搜索
查看: 1600|回复: 5

求教:Spreadtrum平台上的几个问题

[复制链接]
发表于 2006-5-16 23:26:00 | 显示全部楼层 |阅读模式
<P>  在Spreadtrum上作开发也有大半年,但有几个问题在心中一直困挠着我,希望在这里能够得到大家的指点。
1。Driver子工程中dummy子目录下的那两个文件的功能是什么? dummy这个词怎么理解?
2。MSG_APP_OK与MSG_CTR_OK两个消息的区别在哪里? 分别用在什么环境下?
3。application、window,control的区别与联系。</P>
<P>4。如何理解平台里service这个思想。在什么情况时需要自己创建一个service?该如何创建?</P>
<P>
   最后也希望此帖能够起到一个抛砖引玉的作用,大家来共同学习进步!</P>
发表于 2006-5-17 16:50:00 | 显示全部楼层
<P>1.伪程序啊,做虚拟或测试用</P><P>2.有控件的情况下没啥区别,无控件的情况下只能用MSG_APP_OK</P><P>3.application&gt;window&gt;control,一个application可能有多个window,一个window可能有多个control</P><P>4. 接口通信方式为Client-Server的机制,你所说的service是指什么呢?</P>[br]<p align=right><font color=red>+3 RD币</font></p>
点评回复

使用道具 举报

发表于 2006-5-17 22:55:00 | 显示全部楼层
<P>楼上正解!快,真快!看来spreadtrum的人够活跃!</P>[em15]
点评回复

使用道具 举报

 楼主| 发表于 2006-5-21 16:57:00 | 显示全部楼层
<P>写得太过简单了!</P><P>第四条自问自答好了,不对地地方大家指正:</P><P 0cm 0cm 0pt; LINE-HEIGHT: 12pt">服务的思想是与事件相关联的。服务其实是某一个<FONT face="Times New Roman">task</FONT>将对部分消息的处理抽象成一个接口,客户端可以通过<FONT face="Times New Roman">SCI_RegisterMsg()</FONT>函数可以对自己感兴趣的消息注册处理回调函数。</P><P 0cm 0cm 0pt; LINE-HEIGHT: 12pt">用户自己创建<FONT face="Times New Roman">Service</FONT>的步骤:(以<FONT face="Times New Roman">USB task</FONT>为例)</P><P 0cm 0cm 0pt; LINE-HEIGHT: 12pt"><FONT face="Times New Roman">1</FONT>.创建<FONT face="Times New Roman">task</FONT>之前创建<FONT face="Times New Roman">usb service</FONT>:创建时需指定一个默认的消息处理回调函数,当客户端在注册消息处理,而未指定处理函数,系统会调用该默认的回调函数来处理该事件消息。</P><P 0cm 0cm 0pt; LINE-HEIGHT: 12pt"><FONT face="Times New Roman">         status = SCI_CreateClientList(USB_DISK_SERVICE, (UDISK_MSG_MAX_NUM &amp; 0x0ff), <p></p></FONT></P><P 0cm 0cm 0pt; LINE-HEIGHT: 12pt"><FONT face="Times New Roman">                (REG_CALLBACK) UDISKSVR_SendSignal);<p></p></FONT></P><P 0cm 0cm 0pt; LINE-HEIGHT: 12pt"><FONT face="Times New Roman">    //</FONT>如果是用户自定义的服务,服务<FONT face="Times New Roman">id</FONT>要求在<FONT face="Times New Roman">USER_SERVICE</FONT>之后。<p></p></P><P 0cm 0cm 0pt; LINE-HEIGHT: 12pt"><FONT face="Times New Roman">         status = SCI_CreateStaticThread(USB_TASK_ID, "T_UDISK", U_DiskTask, 0, 0, <p></p></FONT></P><P 0cm 0cm 0pt; LINE-HEIGHT: 12pt"><FONT face="Times New Roman">                                     u_disk_stack_addr, U_DISK_STACK_SIZE, <p></p></FONT></P><P 0cm 0cm 0pt; LINE-HEIGHT: 12pt"><FONT face="Times New Roman">                                     (SCI_PRIORITY_IDLE ), SCI_PREEMPT,<p></p></FONT></P><P 0cm 0cm 0pt; LINE-HEIGHT: 12pt"><FONT face="Times New Roman">                                     "Q_UDISK", u_disk_queue_addr, U_DISK_QUEUE_NUM, <p></p></FONT></P><P 0cm 0cm 0pt; LINE-HEIGHT: 12pt"><FONT face="Times New Roman">                                     SCI_AUTO_START);<p></p></FONT></P><P 0cm 0cm 0pt; LINE-HEIGHT: 12pt"><p><FONT face="Times New Roman"> </FONT></p></P><P 0cm 0cm 0pt; LINE-HEIGHT: 12pt"><FONT face="Times New Roman">2</FONT>.<FONT face="Times New Roman"> </FONT>在客户端通过<FONT face="Times New Roman">SCI_RegisterMsg()</FONT>注册消息处理<FONT face="Times New Roman"> </FONT></P><P 0cm 0cm 0pt; LINE-HEIGHT: 12pt"><FONT face="Times New Roman">       </FONT></P><P 0cm 0cm 0pt; LINE-HEIGHT: 12pt"><FONT face="Times New Roman">   MMI task</FONT>:<FONT face="Times New Roman">APP_RegisterRefService</FONT>()<FONT face="Times New Roman">in mmimain.c </FONT></P><P 0cm 0cm 0pt; LINE-HEIGHT: 12pt"><FONT face="Times New Roman">    //Register UDISK event<p></p></FONT></P><P 0cm 0cm 0pt; LINE-HEIGHT: 12pt"><FONT face="Times New Roman">    #ifndef WIN32 <p></p></FONT></P><P 0cm 0cm 0pt; LINE-HEIGHT: 12pt"><FONT face="Times New Roman">    SCI_RegisterMsg( UDISK_SERVICE, <p></p></FONT></P><P 0cm 0cm 0pt; LINE-HEIGHT: 12pt"><FONT face="Times New Roman">                           UDISK_PLUGIN, <p></p></FONT></P><P 0cm 0cm 0pt; LINE-HEIGHT: 12pt"><FONT face="Times New Roman">                           UDISK_MSG_MAX - 1, <p></p></FONT></P><P 0cm 0cm 0pt; LINE-HEIGHT: 12pt"><FONT face="Times New Roman">                           UdiskCallBackFunc);<p></p></FONT></P><P 0cm 0cm 0pt; LINE-HEIGHT: 12pt"><p><FONT face="Times New Roman"> </FONT></p></P><P 0cm 0cm 0pt; LINE-HEIGHT: 12pt"><FONT face="Times New Roman">3</FONT>.在<FONT face="Times New Roman">usb task</FONT>的主函数中,获得某一个<FONT face="Times New Roman">singnal</FONT>后,若需要<FONT face="Times New Roman">signal</FONT>应交由客户端来处理,则既可调用<FONT face="Times New Roman">SCI_SendEventToClient</FONT>()调用客户端提供的消息处理回调函数(注意:该函数仍然是在服务端的<FONT face="Times New Roman">task</FONT>内运行的)。回调函数中不能做太耗时的工作,一般来说,只是给客户的<FONT face="Times New Roman">task</FONT>转发一个消息。<p></p></P><P 0cm 0cm 0pt; LINE-HEIGHT: 12pt"><FONT face="Times New Roman">  if( (SIM_SET_ARM_CLK_CNF == cmd) &amp;&amp; bStartFlag)<p></p></FONT></P><P 0cm 0cm 0pt; LINE-HEIGHT: 12pt"><FONT face="Times New Roman">        {<p></p></FONT></P><P 0cm 0cm 0pt; LINE-HEIGHT: 12pt"><FONT face="Times New Roman">            // Send con            <p></p></FONT></P><P 0cm 0cm 0pt; LINE-HEIGHT: 12pt"><FONT face="Times New Roman">            SCI_SendEventToClient(USB_DISK_SERVICE, UDISK_START_CNF, NULL);            <p></p></FONT></P><P 0cm 0cm 0pt; LINE-HEIGHT: 12pt"><FONT face="Times New Roman">            do_udisk_start();            <p></p></FONT></P><P 0cm 0cm 0pt; LINE-HEIGHT: 12pt"><FONT face="Times New Roman">            SCI_SendEventToClient(USB_DISK_SERVICE, UDISK_STOP_CNF, NULL);            <p></p></FONT></P><P 0cm 0cm 0pt; LINE-HEIGHT: 12pt"><FONT face="Times New Roman">            // restore the freq<p></p></FONT></P><P 0cm 0cm 0pt; LINE-HEIGHT: 12pt"><FONT face="Times New Roman">            bStartFlag = 0;<p></p></FONT></P><P 0cm 0cm 0pt; LINE-HEIGHT: 12pt"><FONT face="Times New Roman">            // Send a request to change ARM clock<p></p></FONT></P><P 0cm 0cm 0pt; LINE-HEIGHT: 12pt"><FONT face="Times New Roman">           REF_SendSetArmClkReq(old_clk);<p></p></FONT></P><P 0cm 0cm 0pt; LINE-HEIGHT: 12pt"><FONT face="Times New Roman">        }<p></p></FONT></P>[br]<p align=right><font color=red>+3 RD币</font></p>
点评回复

使用道具 举报

发表于 2006-6-8 18:40:00 | 显示全部楼层
Raylove,你把Spreadtrum的人给吓跑了,哈哈!
点评回复

使用道具 举报

发表于 2006-6-20 15:15:00 | 显示全部楼层
<P>1. dummy就是虚拟函数,由于spreadtrum版本是不断升级的,有些函数在新的版本里可以没有,但</P><P>为了兼容性,还是保留这个函数,为的是修改最小化。</P>[br]<p align=right><font color=red>+1 RD币</font></p>
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2024-5-12 23:22 , Processed in 0.048031 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表