vxworks进入中断后程序就挂了,咋回事
发布时间:2010-06-14 16:49:56 文章来源:www.iduyao.cn 采编人员:星星草
vxworks进入中断后程序就挂了,怎么回事?
#include "vxWorks.h"
//#include "cacheLib.h"
#include "memLib.h"
//#include "iv.h"
#include "intLib.h"
#include "sysLib.h"
#include "stdio.h"
//#include "m8260IntrCtl.h"
#include "ioLib.h"
#include "logLib.h"
#include "taskLib.h"
#include "ads8260.h"
//#define M8260_SIMR_L(base) ((volatile int *) ((base) + 0x010C20))
#define M8260_SIMR_H(base) ((volatile int *) ((base) + 0x010C1C))
#define M8260_SIPNR_H(base) ((volatile int *) ((base) + 0x010c08))
IMPORT int vxImmrGet(void);
int irq = 0;
void IRQ_6()
{
//int i = * M8260_SIMR_H(0xff000000);
//logMsg("IRQ_6! SIMR = %x \n",i,0,0,0,0,0);
int immrVal = 0xff000000;
logMsg("6",0,0,0,0,0,0);
irq = 6;
*M8260_SIPNR_H(0xff000000) = 0x00000200;
}
void IRQ_5()
{
//int i = * M8260_SIMR_H(0xff000000);
//logMsg("IRQ_5! SIMR = %x \n",i,0,0,0,0,0);
int immrVal = 0xff000000;
logMsg("5",0,0,0,0,0,0);
irq = 5;
*M8260_SIPNR_H(0xff000000) = 0x00000400;
}
void simr_h_read(void)
{
int simr = * M8260_SIMR_H(0xff000000);
printf("M8260_SIMR_H = %x\n",simr);
printf("irq = %d\n",irq);
}
void p_i(void)
{
while(1)
{
int simr = * M8260_SIMR_H(0xff000000);
printf("M8260_SIMR_H = %x\n",simr);
printf("irq = %d\n",irq);
taskDelay(10);
}
}
void test_irq(void)
{
int immrVal = 0xff000000;//vxImmrGet();
printf("test_irq.begin\n");
m8260IntDisable(INUM_IRQ6);
m8260IntDisable(INUM_IRQ5);
//immrVal = vxImmrGet();
/* * M8260_SIMR_H(immrVal) &= ~0x00000600;*/
intConnect (INUM_TO_IVEC(INUM_IRQ6), (VOIDFUNCPTR)IRQ_6, 0);
intConnect (INUM_TO_IVEC(INUM_IRQ5), (VOIDFUNCPTR)IRQ_5, 0);
/* * M8260_SIMR_H(immrVal) |= 0x00000600;*/
m8260IntEnable(INUM_IRQ6);
m8260IntEnable(INUM_IRQ5);
taskSpawn("002",100,0,50,(FUNCPTR)p_i,0,0,0,0,0,0,0,0,0,0);
printf("test_irq.end\n");
}
------解决方案--------------------
进中断后,屏蔽中断试试
------解决方案--------------------
进中断后,必须清中断,等待下一次中断的到来
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。
其他相似内容:
-
Tilcon下的Table控件问题
VxWorks5.5+Tilcon5.4环境下~~
在程序中如何在Table的最后新增一行?
------解决方案-----------------...
-
关于vxworks的inflate/deflate
请问各位大侠,在vxworks中,针对不同架构的cpu的vxworks代码中,应该是采用相同的inflate/deflate解压...
-
tornado安装问题
请高手帮忙:
问下tornado的安装过程中,如果从开始菜单直接运行tornado,会提示错误,这是因为安装还没有完成,在C盘Torn...
-
vxworks系统启动很慢
小弟最近在做一个vxworks下的项目,目前系统基本上已经搭建起来了,但是系统从flash上启动的时候非常的慢,经查看...
-
请问一下,一个任务accept产生的socket描述符怎么在另一个task的send函数中用,把那个Socket ID作为全局可以吗???谢谢!
有两个任务,一个接...
-
taskspawn 分配一个任务时,参数中有优先级,堆栈大小,我要怎么来写啊?刚刚搞这个东西。
taskspawn 分配一个任务时,参数中有优先级,堆栈...
-
谁会裸机运行pentium的cpu
谁会裸机运行pentium的cpu,能不能简单讲讲?
就是将cpu引导到保护模式后,进入到一段用户代码,这段代码是个...
-
如何根据字符数组去执行相应的函数或者查找到变量(急!)
现在需要在没有操作系统的powerPC上完成这样一个类似串口的输入输出功能。注...
-
关于vxworks TFFS文件系统搭建时 format 死机问题
我修改了tffsconfig.c systffs.c config.h 等文件,已经显示了 type size但是...
-
vxworks解压缩
请问各位大侠,vxworks的解压缩源代码怎么看不到啊?它是采用的通用deflate/inflate算法吗?
在命令行中defl...