3598|8

57

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

ce6.0 r3 + s3c2450 运行 coreplayer ,串口输出报错信息 [复制链接]

Exception 'Undefined Instruction' (1): Thread-Id=04c80006(pth=82b474d4), Proc-Id=04c70006(pprc=87ac0bac) 'PLAYER.EXE', VM-active=04c70006(pprc=87ac0bac) 'PLAYER.EXE'
PC=00079ba0(PLAYER.EXE+0x00069ba0) RA=000797c4(PLAYER.EXE+0x000697c4) SP=0042fd48, BVA=00000000
Exception 'Undefined Instruction' (1): Thread-Id=04c80006(pth=82b474d4), Proc-Id=04c70006(pprc=87ac0bac) 'PLAYER.EXE', VM-active=04c70006(pprc=87ac0bac) 'PLAYER.EXE'
PC=00079bc8(PLAYER.EXE+0x00069bc8) RA=000797f8(PLAYER.EXE+0x000697f8) SP=0042fd48, BVA=00000000

能够正常运行。但是,报错总是怪怪的。

请教,这大概是什么原因引起的?

最新回复

谢谢了,很详细。  详情 回复 发表于 2010-6-11 14:05
点赞 关注

回复
举报

55

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
看不出来,你的coreplayer有问题。一点一点查吧
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
coreplayer 网上下载的,应该没问题吧。

我是怕驱动哪里有问题。
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

4
 
coreplayer是完全的软解码。我觉得应该和驱动没什么关系,有关系也是内存的问题。
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

5
 
引用楼主 shenmou 的回复:
Exception 'Undefined Instruction' (1): Thread-Id=04c80006(pth=82b474d4), Proc-Id=04c70006(pprc=87ac0bac) 'PLAYER.EXE', VM-active=04c70006(pprc=87ac0bac) 'PLAYER.EXE'
PC=00079ba0(PLAYER.EXE+0x00069ba0……




你在R2下面有这个问题吗?呵呵~有可能是内存问题
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

6
 
coreplayer 是软解码呀  跟驱动没关系吧。有时候我也遇到过这种问题,但是几率很小,偶尔而已。也没搞清楚到底是什么问题所致。关注
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

7
 
我猜测可能是coreplayer在检测CPU类型时触发的未定义指令的异常。可见tcpmp的cpu.c中CPUDetect函数部分代码:
SafeGetCpuId(0,CpuId);

if (CpuId[0])
{
        p->ICache = 512 << ((CpuId[1] >> 6) & 7);
        p->DCache = 512 << ((CpuId[1] >> 18) & 7);
}
else
{
#if !defined(TARGET_PALMOS) && !defined(TARGET_SYMBIAN)
        // when need to detect cpu features somehow
        // (only works if we can catch cpu exceptions)
        TRY_BEGIN
        {       
                if (CheckARM5E())
                {
                        int XScale;
                        Caps |= CAPS_ARM_5E;

                        XScale = CheckARMXScale();
                        if (XScale)
                        {
                                p->ICache = p->DCache = 32768;
                                Caps |= CAPS_ARM_XSCALE;
                                if (XScale > 1)
                                        Caps |= CAPS_ARM_WMMX;
                        }
                }
        }
        TRY_END
#endif
}
由于CE6.0下用户模式无法直接获得CPUID,因此这里采用了尝试直接执行指定指令集,如果得到正确计算结果,则认为当前CPU支持特定指令集(这里是ARMV5TE和WMMX);否则触发异常。不过没关系,很显然这里进行了异常保护。只是不能阻止内核输出触发异常的信息。
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

8
 
关注R3
 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

9
 
引用 6 楼 bzjing 的回复:
我猜测可能是coreplayer在检测CPU类型时触发的未定义指令的异常。可见tcpmp的cpu.c中CPUDetect函数部分代码:
SafeGetCpuId(0,CpuId);

if (CpuId[0])
{
p->ICache = 512 << ((CpuId[1] >> 6) & 7);
p->DCache = 512 << ((CpuId[1] >> 18) &am……


谢谢了,很详细。
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表