首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > VxWorks >

vxworks下遇到一个奇怪的有关问题

2013-09-07 
vxworks下遇到一个奇怪的问题开发环境:vxworks 6.9.3.1, P2020子卡,PPC85XXe500v2gnu编译器,C程序代码,编

vxworks下遇到一个奇怪的问题
开发环境:vxworks 6.9.3.1, P2020子卡,PPC85XXe500v2gnu编译器,C程序代码,编译时去掉-ansi,添加-mlongcall选项。

问题代码如下:


static void btFunc_VerProgReq()
{
    int res;
    int flag1=0;
    char bootTm[8]={0};      /* 问题出在这行 */
    char ttime[8];


    ..........
}


如果第二行这么定义了,则运行时会出现下面的错误:

SPE unavailable exception
Exception current instruction address: 0x0c2e82b8
Machine Status Register: 0x00029230
Condition Register: 0x48000848
Task: 0xb0513d0 "tBoot"
0xb0513d0 (tBoot): task 0xb0513d0 has had a failure and has been stopped.
0xb0513d0 (tBoot): The task has been terminated because it triggered an exception that raised the signal 4.

-> tt tBoot
0x0011c2c4 vxTaskEntry  +0x48 : 0x0c2e9990 ()
0x0c2e9990 bootRun      +0x12f8: btFunc_VerProgReq ()
value = 0 = 0x0

如果上面第二行不在定义时这样初始化就没有问题。谁知道这是什么怎么回事?怎么解决呢,我在程序的其他地方也有许多这种初始化方式,但是只有两个地方有这个问题。
vxworks exception gnu SPE
[解决办法]
看看反汇编出来的代码,可能用了spe的指令。可以在执行到这个函数之前,先把SPE打开。

热点排行