找回密码
 注册
搜索
楼主: onlytrue

6225_06B异常重启求助

[复制链接]
发表于 2008-7-5 23:35:51 | 显示全部楼层
我看到你有MQQ模块,最近听说qq客户端有问题,用了会重启[em01]
点评回复

使用道具 举报

发表于 2008-7-5 23:36:40 | 显示全部楼层
会不会是MQQ模块的问题呢,我听说移动qq有引起重启的问题[em02]
点评回复

使用道具 举报

 楼主| 发表于 2008-7-7 14:46:03 | 显示全部楼层
以下是引用kof2000在2008-7-5 23:36:40的发言:
会不会是MQQ模块的问题呢,我听说移动qq有引起重启的问题[em02]

啊,有这个传说么?不过我们很多重启是在MQQ并没有启用的情况下出现的,MQQ不启用是否也会引起重启呢?
点评回复

使用道具 举报

 楼主| 发表于 2008-7-7 15:47:09 | 显示全部楼层
以下是引用singlespark在2008-7-5 11:21:41的发言:
Fatal Error (804): Buffer not available这样的错误我今年刚刚遇到过,当时原因是oslmalloc分配的空间太小,而使用时,strcpy拷贝了超过分配的大小的字符串导致溢出。溢出导致了动态分配的区域不正确,这样只要用oslmalloc分配,得到的地址都是不在有效地址之内。当时问题出在初始化,开机就死机,找了三天才找到原因。
如果不好确定问题出在哪里,你可以试试用catcher导出memory dump:
Memory dump必須是手機死機了之後才能工作, 在工模中將memory dump選項打開的目的, 是要讓手機不會重起, 而停在死機的畫面.所以抓取之前必須確認:
1. 工模中有將memory dump打開,
2. 手機必須停在死機畫面.
memory dump会记录所有的RAM中的内容,如果确实是溢出,根据导出来的文件,应该可以分析的出来,你可以叫MTK的人一起帮你看看,否则一大堆二进制也不好分析。
另外随机死机不排除是驱动的问题,我以前也遇到过,就是手机不管进入哪个模块都会死机,完全随机,死机信息什么都有。最后查出来是EMI文件不对,EMI中的信息和实际的Nor flash不匹配。

嗯,memory dump选项我已经打开了,不过很多时候重启时并没有停在死机界面,晕。停在死机界面的时候,通常是一些Assert,这个时候的确输出了好的内存信息,二进制看的头晕。
对于EMI的信息,前面有个XD也建议说检查一下,我的确用的不是完全对应的MCP,因为K5L2731在他的List上不支持6225,我再去详细对比一下两个Spec,非常感谢你的建议!
点评回复

使用道具 举报

发表于 2008-7-7 18:14:17 | 显示全部楼层

K5L2731CAM

2731和25搭配肯定没有问题,建议你修改MCP配成:K5L2731CAM,用几部机器做对比实验。
如果还是有问题,灾检查一下最近内存相关的代码。
点评回复

使用道具 举报

发表于 2008-7-10 12:57:38 | 显示全部楼层
问题解决了?
点评回复

使用道具 举报

 楼主| 发表于 2008-7-11 10:39:32 | 显示全部楼层
以下是引用singlespark在2008-7-10 12:57:38的发言:
问题解决了?

非常感谢你的持续关注,我检查了一下EMI配置,的确发现了一个问题,那就是MCP SRAM 的PageSize应该是8(K5L2731CAM)的,被错误地配成了16(S71PL129JB0BFW9Z)。不过很稀奇地,手机居然也能使用那么长时间。
把6225 SRAM的Asynchrnous EMI Setting (Maximal MPLL) 配置从 0x40514648 修改为 0x40514608 后,测试不到12小时,一台机器就出现了2次没有错误信息的重启,[em03],另外一台已经工作快72小时了,还未重启。
目前还在继续测试,既希望他尽快重启,又怕他真的频繁重启,矛盾啊
点评回复

使用道具 举报

 楼主| 发表于 2008-7-11 10:47:41 | 显示全部楼层
以下是引用perennial在2008-7-7 18:14:17的发言:
2731和25搭配肯定没有问题,建议你修改MCP配成:K5L2731CAM,用几部机器做对比实验。
如果还是有问题,灾检查一下最近内存相关的代码。

非常感谢你的回复,我的K5L2731CAM上没有6225的配置,我是直接用S71PL129JB0BFW9Z修改过来的,SRAM的Page Size差别以前没有注意到,已经手动调整过来(SRAM的Asynchrnous EMI Setting (Maximal MPLL) 配置从 0x40514648 修改为 0x40514608),不过郁闷的是同样的程序,一台机器还没有坚持到12小时,另外一个已经工作了72小时了,[em37]
点评回复

使用道具 举报

发表于 2008-7-11 13:59:14 | 显示全部楼层
看来多半就是EMI的问题了。
点评回复

使用道具 举报

发表于 2008-7-12 10:47:05 | 显示全部楼层
楼主,你这个问题解决了吗?我这边也出现异常复位,错误信息如下:
Fatal Error(804):Buffer not available(10)-L4
不知道是怎么回事,请大家帮忙解决。
点评回复

使用道具 举报

发表于 2008-7-12 20:50:25 | 显示全部楼层
我觉得在任何情况下都会死机时,就应该怀疑硬件和驱动的问题了,MMI一般不会导致这样的情况。
点评回复

使用道具 举报

 楼主| 发表于 2008-7-15 09:07:22 | 显示全部楼层
以下是引用jerson1980在2008-7-12 10:47:05的发言:
楼主,你这个问题解决了吗?我这边也出现异常复位,错误信息如下:
Fatal Error(804):Buffer not available(10)-L4
不知道是怎么回事,请大家帮忙解决。

804:Buffer not available(10)的错误我已经解决了,那个是Size为16的Buffer被过量分配的问题,我的代码是因为出现了一些自己添加的不必要的分配内存代码,把那些代码屏蔽以后,这个804错误就不再出现了。
[em03]但是我的手机还是经常出现一些莫名的重启,而且每次还不一样,有时候还没有错误提示[em03]
点评回复

使用道具 举报

 楼主| 发表于 2008-7-15 09:53:39 | 显示全部楼层
以下是引用singlespark在2008-7-12 20:50:25的发言:
我觉得在任何情况下都会死机时,就应该怀疑硬件和驱动的问题了,MMI一般不会导致这样的情况。

你好,我上个周末把那个正常待机4天的板子装成了整机,然后待机还没有到24小时就出现了错误,[em37],因为是整机,电池快没有电了,充过一段时间电,所以我有点怀疑充电的驱动导致了异常。不知道这种猜测是否合理?
最近3次有记录的错误如下:
ex_type = 0x04  --  DATAABORT_EXCEPTION
execution_unit = Array [8]  --  DRVBMT
stack_dump = Array [10]
        stack_dump[0] = 0x002ee323  --  0x002ee2f8 T lcd_dll_delete_till
        stack_dump[1] = 0x004b8445  --  0x004b8414 T receive_msg_ext_q
        stack_dump[2] = 0x003b72c5  --  0x003b714c T bmt_task_main
        stack_dump[3] = 0x00000001
        stack_dump[4] = 0x00000001
        stack_dump[5] = 0x00000033
        stack_dump[6] = 0x0037d8b7  --  0x0037d8a8 T TCC_Task_Shell
        stack_dump[7] = 0x00000001
        stack_dump[8] = 0x00000001
        stack_dump[9] = 0x003b714d  --  0x003b714c T bmt_task_main

ex_type = 0x06  --  SYS_FATALERR_EXT_TASK_EXCEPTION
execution_unit = Array [8]  --  DRVBMT
stack_dump = Array [10]
        stack_dump[0] = 0x002ed341  --  0x002ed2c4 T evshed_timer_handler
        stack_dump[1] = 0x004b8445  --  0x004b8414 T receive_msg_ext_q
        stack_dump[2] = 0x00021349  --  0x00021260 T EngineerModeGetUartRes
        stack_dump[3] = 0x003b72c5  --  0x003b714c T bmt_task_main
        stack_dump[4] = 0x00000001
        stack_dump[5] = 0x00000001
        stack_dump[6] = 0x00000033
        stack_dump[7] = 0x0037d8b7  --  0x0037d8a8 T TCC_Task_Shell
        stack_dump[8] = 0x000bb50d  --  0x000bb4c0 T UI_print_bordered_stacked_character
        stack_dump[9] = 0x00000001

ex_type = 0x05  --  ASSERT_FAIL_EXCEPTION
filename = Array [24]  --  m11420.c
linenumber = 0x000001d4  --  468
stack_dump = Array [10]
        stack_dump[0] = 0x000c30c3  --  0x000c3094 T _send_S_k_bool_A3A_k_8_A18A_k_8_
        stack_dump[1] = 0x00000001
        stack_dump[2] = 0x0006d283  --  0x0006c7f8 T L1I_TChSetSmallHs
        stack_dump[3] = 0x00068cd3  --  0x00068c90 T L1I_CallTimers
        stack_dump[4] = 0x00000001
        stack_dump[5] = 0x00069937  --  0x00069720 T L1I_InitAMRQICompensated
        stack_dump[6] = 0x0006943d  --  0x00069408 T L1I_FrameTick
        stack_dump[7] = 0x00000003
        stack_dump[8] = 0x000693f7  --  0x000693dc T L1I_FrameInterrupt
        stack_dump[9] = 0x0042f04d  --  0x0042f00c T isrC_Main
点评回复

使用道具 举报

发表于 2008-7-15 10:18:03 | 显示全部楼层
是否增加了什么任务,或者修改过系统一些中断的优先级?
点评回复

使用道具 举报

发表于 2008-7-15 13:34:24 | 显示全部楼层
楼主,也就是说引起重启的问题不是EMI的问题?那还真是奇怪了。
你试试用MTK release过来的版本加上你们的驱动,看看有没有问题,如果没有问题,就说明不是驱动的问题。
点评回复

使用道具 举报

发表于 2008-7-15 15:40:55 | 显示全部楼层
是否修改过scat文件,把系统的一些.o从内部ram里给屏蔽掉了?
点评回复

使用道具 举报

 楼主| 发表于 2008-7-16 14:09:12 | 显示全部楼层
以下是引用yangwind在2008-7-15 15:40:55的发言:
是否修改过scat文件,把系统的一些.o从内部ram里给屏蔽掉了?

你好,非常感谢你的回复,因为我们用的MCP最后一个bank为2M,所以修改过ROM的Size,其他的都没有动了,Scat文件如下:
ROM 0x00000000 0x00e00000
{
    ROM 0x00000000 0x00400000
    {
         bootarm.obj (C$$code,+First)
         *.obj (LEADING_PART,+First)
         *wap.lib (+RO-CODE)
         *plutommi.lib (+RO-CODE)
         *l4_classb.lib (+RO-CODE)
         *mtkapp.lib (+RO-CODE)
         *l1_classb.lib (+RO-CODE)
         *j2me.lib (+RO-CODE)
         *wapadp.lib (+RO-CODE)
         *jam.lib (+RO-CODE)
         *email.lib (+RO-CODE)
         *l4misc.lib (+RO-CODE)
    }
    ROM2 +0x0 0x00400000
    {
         .ANY (+RO-CODE)
    }
    ROM3 +0x0
    {
         .ANY (+RO-DATA)
    }
    EXTSRAM_LARGEPOOL_NORMAL 0x08000000
    {
; For MT6228, MT6229 projects, app-based ASM always at first due to Java FBBR
         app_mem.obj (LARGEPOOL_FIRST_ZI)
         j2me_custom_resource.obj (LARGEPOOL_ZI)
         med_main.obj (LARGEPOOL_ZI)
         ScrMemMgr.obj (LARGEPOOL_ZI)
    }
    EXTSRAM +0x00
    {
         * (+RW, +ZI)
    }
    DUMMY_END 0x08400000 0x04
    {
         bootarm.obj (DUMMY_POOL)
    }
    INTSRAM_CODE 0xA0000000 0x7600
    {
; system-realted CODE , SMALL set
         bootarm.obj (INTERNCODE)
         init.obj (SNORCODE)
         custom_emi.obj (INTERNCODE)
         isrentry.obj (INTERNCODE)
         data_buff_pool.obj (INTERNCODE)
         ctrl_buff_pool.obj (INTERNCODE)
         stack_buff_pool.obj (INTERNCODE)
         stack_ltlcom.obj (INTERNCODE)
         stack_timer.obj (INTERNCODE)
         intrCtrl.obj (INTERNCODE)
         custom_switchclock.obj (INTERNCODE)
         idle_task.obj (INTERNCODE)
         cache.obj (INTERNCODE)
; Nucleus-related CODE , SMALL set
         tct.obj (+RO)
         tcc.obj (INTERNCODE)
         csc.obj (INTERNCODE)
         tmt.obj (+RO)
         smc.obj (INTERNCODE)
         evc.obj (INTERNCODE)
         pmc.obj (INTERNCODE)
         quc.obj (INTERNCODE)
         kal_nucleus_buff_mgr.obj (INTERNCODE)
         kal_nucleus_evshed_buff_mgr.obj (INTERNCODE)
         kal_nucleus_itc.obj (INTERNCODE)
         kal_nucleus_timer.obj (INTERNCODE)
; THREADX-related CODE , SMALL set
         ; UNDER CONSTRUCTION
         tx_thread_interrupt_disable.obj (+RO)
         tx_thread_interrupt_restore.obj (+RO)
         tx_thread_context_save.obj (+RO)
         tx_thread_context_restore.obj (+RO)
         tx_thread_irq_nesting_start.obj (+RO)
         tx_thread_irq_nesting_end.obj (+RO)
         tx_thread_system_return.obj (+RO)
         tx_thread_schedule.obj (+RO)
         tx_thread_resume.obj (+RO)
         tx_thread_system_resume.obj (+RO)
         tx_timer_interrupt.obj (+RO)
         tx_timer_thread_entry.obj (+RO)
         tx_block_allocate.obj (+RO)
         tx_block_release.obj (+RO)
         tx_event_flags_get.obj (+RO)
         tx_event_flags_set.obj (+RO)
         tx_mutex_get.obj (+RO)
         tx_mutex_put.obj (+RO)
         kal_threadx_tasks.obj (INTERNCODE)
         kal_threadx_buff_mgr.obj (INTERNCODE)
         kal_threadx_itc.obj (INTERNCODE)
         kal_threadx_timer.obj (INTERNCODE)
; common used C library
         memset.o (+RO)
         rt_memclr.o (+RO)
         callvia.o (+RO)
         _sprintf.o (+RO)
         rt_memcpy.o (+RO)
         lludiv10.o (+RO)
         rt_udiv.o (+RO)
         uread4.o (+RO)
         uwrite4.o (+RO)
; INTSRAM_CODE_OBJ_others_6225
         mpal_gprs_common_func.obj (INTERNCODE)
         mpal_gprs_dl_msg_hdlr.obj (INTERNCODE)
         m12160.obj (INTERNCODE)
         m12170.obj (INTERNCODE)
         cam_module.obj (INTERNCODE)
         uart.obj (INTERNCODE)
         gdi_image_gif.obj (INTERNCODE)
         gdi_bytestream.obj (INTERNCODE)
         gdi_image_direct_gif.obj (INTERNCODE)
         gdi_mutex.obj (INTERNCODE)
         *l1dsm.obj (SNORCODE)
    }
    INTSRAM_DATA 0xA0007600 0x5A00
    {
; system-realted data
         bootarm.obj (STACK_POOL_INTSRAM)
         isrentry.obj (INTERNCONST, INTERNRW, INTERNZI)
         stack_init.obj (INTERNCONST, INTERNRW, INTERNZI)
         ctrl_buff_pool.obj (INTERNCONST, INTERNRW, INTERNZI)
         stack_ltlcom.obj (INTERNCONST, INTERNRW, INTERNZI)
         custom_switchclock.obj (INTERNCONST, INTERNRW, INTERNZI)
         idle_task.obj (INTERNCONST, INTERNRW, INTERNZI)
; Nucleus-related data ; Standard set
         tst*.obj (INTERNCONST, INTERNRW, INTERNZI)
         tct.obj (+RW, +ZI)
         tcd.obj (INTERNCONST, INTERNRW, INTERNZI)
         tmd.obj (+RW, +ZI)
         evd.obj (+RW, +ZI)
         pmd.obj (+RW, +ZI)
         qud.obj (+RW, +ZI)
         smd.obj (+RW, +ZI)
; THREADX-related data ; Standard set
         tx_thread_initialize.obj (+RW, +ZI)
         tx_timer_initialize.obj (+RW, +ZI)
; INTSRAM_DATA_OBJ_others_6225
         mpal_gprs_common_func.obj (INTERNCONST, INTERNRW, INTERNZI)
         mpal_gprs_dl_msg_hdlr.obj (INTERNCONST, INTERNRW, INTERNZI)
         m12160.obj (INTERNCONST, INTERNRW, INTERNZI)
         m12170.obj (INTERNCONST, INTERNRW, INTERNZI)
         gdi_image.obj (INTERNCONST, INTERNRW, INTERNZI)
         gdi_bytestream.obj (INTERNCONST, INTERNRW, INTERNZI)
         gdi.obj (INTERNZI)
         interpret.obj (INTERNZI)
         sw_jpeg_decoder.obj (INTERNRW1, INTERNZI1)
         jpeg_encoder.obj (+RW, +ZI)
         med_main.obj (INTERNRW2, INTERNZI2)
    }   
    DYNAMIC_CODE1 0xa000d000 OVERLAY 0x5000
    {
         * (AMR515_DYNAMIC_CODE, AMR515_DYNAMIC_ZI)
    }
    DYNAMIC_CODE2 0xa000d000 OVERLAY 0x5000
    {
         * (G3D_DYNAMIC_CODE, G3D_DYNAMIC_ZI)
    }
    DYNAMIC_CODE3 0xa000d000 OVERLAY 0x5000
    {
         * (CTM_DYNAMIC_CODE, CTM_DYNAMIC_ZI)
    }
    DYNAMIC_CODE4 0xa000d000 OVERLAY 0x5000
    {
         * (G729_DYNAMIC_CODE, G729_DYNAMIC_ZI)
    }
    DYNAMIC_CODE5 0xa000d000 OVERLAY 0x5000
    {
         * (SBC_DYNAMIC_CODE, SBC_DYNAMIC_ZI)
    }
    DYNAMIC_CODE7 0xa000d000 OVERLAY 0x5000
    {
         * (REVERB_DYNAMIC_CODE, REVERB_DYNAMIC_ZI)
    }
    DYNAMIC_CODE8 0xa000d000 OVERLAY 0x5000
    {
         * (RESAMPLE_DYNAMIC_CODE, RESAMPLE_DYNAMIC_ZI)
    }
    INTSRAM_MULTIMEDIA 0x40000000 0xC000
    {
         med_main.obj (INTERNRW1, INTERNZI1)
         isp_comm.obj (INTERNRW1, INTERNZI1)
    }
}
点评回复

使用道具 举报

 楼主| 发表于 2008-7-16 14:25:04 | 显示全部楼层
以下是引用yangwind在2008-7-15 10:18:03的发言:
是否增加了什么任务,或者修改过系统一些中断的优先级?

集成QQ的时候增加过一个Task,中断的优先级的问题,我还没有找到调整的地方,[em36],所以应该也没有手动调整过。
难道和QQ相关?前面有兄弟提过QQ有些不稳定,因为重启的时候QQ并没有打开,所以我就没有尝试去掉QQ了。
打击人的是修改EMI的那个版本也曾经几天没有出问题,不知道装机后怎么就出现了这么多错误,[em39]
点评回复

使用道具 举报

 楼主| 发表于 2008-7-16 14:34:55 | 显示全部楼层
以下是引用singlespark在2008-7-15 13:34:24的发言:
楼主,也就是说引起重启的问题不是EMI的问题?那还真是奇怪了。
你试试用MTK release过来的版本加上你们的驱动,看看有没有问题,如果没有问题,就说明不是驱动的问题。

[em39]是啊[em39]
原始版本的配置为有NAND,我这个项目把NAND去掉了,然后工程配置调整了一下,增加了蓝牙,还把很多PBM的图片因为空间原因换成了GIF,电源管理芯片从6305换成了6318,这些其实都是修改配置了,呜呜,为什么会出这样奇怪的错误呢?
点评回复

使用道具 举报

发表于 2008-7-16 14:46:48 | 显示全部楼层
那你把qq的宏关闭以后试试看,这也是没有办法的办法。
另外,还是建议你用MTK release版本加自己的驱动试试看,有助于定位在驱动还是在MMI上。
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

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

GMT+8, 2024-11-29 11:37 , Processed in 0.047040 second(s), 13 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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