⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 memtest.c

📁 本人编写的无线电话程序,给予PIC18C801设计,包括了uCOS的移植以及菜单,自己设计的拼音注入法,完整地一级汉字库,希望对大家有所帮助
💻 C
📖 第 1 页 / 共 4 页
字号:
			|| CheckBytes[TASK_9_PRIO]!=TASK_9_PRIO
			|| CheckBytes[TASK_8_PRIO]!=TASK_8_PRIO
			|| CheckBytes[TASK_7_PRIO]!=TASK_7_PRIO
			|| CheckBytes[TASK_6_PRIO]!=TASK_6_PRIO){
			CheckBytes[0]=TASK_5_PRIO+16;
			LoopForTest();
		}

		addr1=OSMemGet(MemPtr,&err);
		for(i=0;i<16;i++){
			addr1[i]=msg[i];
		}
		addr1[TASK_5_PRIO]=TASK_5_PRIO;

	//OS_ENTER_CRITICAL();
		for(i=1;i<16;i++)	CheckBytes[i]=addr1[i];
	//OS_EXIT_CRITICAL();
		if(CheckBytes[TASK_13_PRIO]!=TASK_13_PRIO
			|| CheckBytes[TASK_12_PRIO]!=TASK_12_PRIO
			|| CheckBytes[TASK_11_PRIO]!=TASK_11_PRIO
			|| CheckBytes[TASK_10_PRIO]!=TASK_10_PRIO
			|| CheckBytes[TASK_9_PRIO]!=TASK_9_PRIO
			|| CheckBytes[TASK_8_PRIO]!=TASK_8_PRIO
			|| CheckBytes[TASK_7_PRIO]!=TASK_7_PRIO
			|| CheckBytes[TASK_6_PRIO]!=TASK_6_PRIO
			|| CheckBytes[TASK_5_PRIO]!=TASK_5_PRIO){
			CheckBytes[0]=TASK_5_PRIO;
			LoopForTest();
		}

        OSQPost(MsgQueue[TASK_4_PRIO],addr1);
        for(i=0;i<16;i++)  	msg[i]=0xEE;
		OSMemPut(MemPtr,msg);
*/    }
}
//===================================================================
void  Task6 (void *data)
{
    rom INT8U *msg;
    INT8U  err;
	rom INT8U *addr1;
	INT8U i;
    
    data = data;
    for (;;) {
/*			addr1=OSMemGet(MemPtr,&err);
			if(err!=OS_NO_ERR){
				CheckBytes[0]=TASK_6_PRIO+64;
				CheckAddr=addr1;
				LoopForTest();
			}
		msg = (rom INT8U *)OSQPend(MsgQueue[TASK_6_PRIO],0, &err);

			err=OSMemPut(MemPtr,addr1);
			if(err!=OS_NO_ERR){
				CheckBytes[0]=TASK_6_PRIO+32;
				CheckAddr=msg;
				LoopForTest();
			}
*/

		msg = (rom INT8U *)OSQPend(MsgQueue[TASK_6_PRIO],0, &err);

//		if((unsigned short long)msg<0x11a006 || (unsigned short long)msg>=0x11C006
		if((unsigned short long)msg<0x11a006 || (unsigned short long)msg>=0x11C006){

			CheckBytes[0]=TASK_6_PRIO+64;
			CheckBytes[1]=err;
			CheckAddr=msg;
			LoopForTest();

		}
		else if(msg[TASK_7_PRIO]!=TASK_7_PRIO
			|| msg[TASK_8_PRIO]!=TASK_8_PRIO
			|| msg[TASK_9_PRIO]!=TASK_9_PRIO
			|| msg[TASK_10_PRIO]!=TASK_10_PRIO
			|| msg[TASK_11_PRIO]!=TASK_11_PRIO
			|| msg[TASK_12_PRIO]!=TASK_12_PRIO
			|| msg[TASK_13_PRIO]!=TASK_13_PRIO){
			CheckBytes[0]=TASK_6_PRIO;
			CheckBytes[1]=err;
			for(i=1;i<14;i++)	CheckBytes[i+1]=msg[i];
			CheckAddr=msg;
			//CheckBytes[1]=(INT8U)((msg>>16)&0xff);
			//CheckBytes[2]=(INT8U)((msg>>8)&0xff);
			//CheckBytes[3]=(INT8U)(msg&0xff);
			LoopForTest();
		}
		else{

			addr1=OSMemGet(MemPtr,&err);
			for(i=1;i<16;i++)		addr1[i]=0xEE;
			if(err!=OS_NO_ERR){
				CheckBytes[0]=TASK_6_PRIO+80;
				CheckAddr=addr1;
				LoopForTest();
			}

			msg[TASK_6_PRIO]=TASK_6_PRIO;
			for(i=1;i<16;i++)	addr1[i]=msg[i];
			
	        OSQPost(MsgQueue[TASK_5_PRIO],addr1);

			err=OSMemPut(MemPtr,msg);
			if(err!=OS_NO_ERR){
				CheckBytes[0]=TASK_6_PRIO+96;
				CheckAddr=msg;
				LoopForTest();
			}

//			msg[TASK_6_PRIO]=TASK_6_PRIO;
//	        OSQPost(MsgQueue[TASK_5_PRIO],msg);
		}

/*
	//OS_ENTER_CRITICAL();
		for(i=1;i<16;i++)	CheckBytes[i]=msg[i];
	//OS_EXIT_CRITICAL();
		if(CheckBytes[TASK_13_PRIO]!=TASK_13_PRIO
			|| CheckBytes[TASK_12_PRIO]!=TASK_12_PRIO
			|| CheckBytes[TASK_11_PRIO]!=TASK_11_PRIO
			|| CheckBytes[TASK_10_PRIO]!=TASK_10_PRIO
			|| CheckBytes[TASK_9_PRIO]!=TASK_9_PRIO
			|| CheckBytes[TASK_8_PRIO]!=TASK_8_PRIO
			|| CheckBytes[TASK_7_PRIO]!=TASK_7_PRIO){
			CheckBytes[0]=TASK_6_PRIO+16;
			LoopForTest();
		}

		addr1=OSMemGet(MemPtr,&err);
		for(i=0;i<16;i++){
			addr1[i]=msg[i];
		}
		addr1[TASK_6_PRIO]=TASK_6_PRIO;

	//OS_ENTER_CRITICAL();
		for(i=1;i<16;i++)	CheckBytes[i]=addr1[i];
	//OS_EXIT_CRITICAL();
		if(CheckBytes[TASK_13_PRIO]!=TASK_13_PRIO
			|| CheckBytes[TASK_12_PRIO]!=TASK_12_PRIO
			|| CheckBytes[TASK_11_PRIO]!=TASK_11_PRIO
			|| CheckBytes[TASK_10_PRIO]!=TASK_10_PRIO
			|| CheckBytes[TASK_9_PRIO]!=TASK_9_PRIO
			|| CheckBytes[TASK_8_PRIO]!=TASK_8_PRIO
			|| CheckBytes[TASK_7_PRIO]!=TASK_7_PRIO
			|| CheckBytes[TASK_6_PRIO]!=TASK_6_PRIO){
			CheckBytes[0]=TASK_6_PRIO;
			LoopForTest();
		}


        OSQPost(MsgQueue[TASK_5_PRIO],addr1);
        for(i=0;i<16;i++)  	msg[i]=0xEE;
		OSMemPut(MemPtr,msg);
*/
    }
}
//===================================================================
void  Task7 (void *data)
{
    rom INT8U *msg;
    INT8U  err;
	rom INT8U *addr1;
	INT8U i;
    
    data = data;
    for (;;) {
/*			addr1=OSMemGet(MemPtr,&err);
			if(err!=OS_NO_ERR){
				CheckBytes[0]=TASK_7_PRIO+64;
				CheckAddr=addr1;
				LoopForTest();
			}
		msg = (rom INT8U *)OSQPend(MsgQueue[TASK_7_PRIO],0, &err);

			err=OSMemPut(MemPtr,addr1);
			if(err!=OS_NO_ERR){
				CheckBytes[0]=TASK_7_PRIO+32;
				CheckAddr=msg;
				LoopForTest();
			}
*/
		msg = (rom INT8U *)OSQPend(MsgQueue[TASK_7_PRIO],0, &err);

//		if((unsigned short long)msg<0x11a006 || (unsigned short long)msg>=0x11C006
		if((unsigned short long)msg<0x11a006 || (unsigned short long)msg>=0x11C006){

			CheckBytes[0]=TASK_7_PRIO+64;
			CheckBytes[1]=err;
			CheckAddr=msg;
			LoopForTest();

		}
		else if(msg[TASK_8_PRIO]!=TASK_8_PRIO
			|| msg[TASK_9_PRIO]!=TASK_9_PRIO
			|| msg[TASK_10_PRIO]!=TASK_10_PRIO
			|| msg[TASK_11_PRIO]!=TASK_11_PRIO
			|| msg[TASK_12_PRIO]!=TASK_12_PRIO
			|| msg[TASK_13_PRIO]!=TASK_13_PRIO){
			CheckBytes[0]=TASK_7_PRIO;
			CheckBytes[1]=err;
			for(i=1;i<14;i++)	CheckBytes[i+1]=msg[i];
			CheckAddr=msg;
			//CheckBytes[1]=(INT8U)((msg>>16)&0xff);
			//CheckBytes[2]=(INT8U)((msg>>8)&0xff);
			//CheckBytes[3]=(INT8U)(msg&0xff);
			LoopForTest();
		}
		else{
			addr1=OSMemGet(MemPtr,&err);
			for(i=1;i<16;i++)		addr1[i]=0xEE;
			if(err!=OS_NO_ERR){
				CheckBytes[0]=TASK_7_PRIO+80;
				CheckAddr=addr1;
				LoopForTest();
			}

			msg[TASK_7_PRIO]=TASK_7_PRIO;
			for(i=1;i<16;i++)	addr1[i]=msg[i];
			
	        OSQPost(MsgQueue[TASK_6_PRIO],addr1);

			err=OSMemPut(MemPtr,msg);
			if(err!=OS_NO_ERR){
				CheckBytes[0]=TASK_7_PRIO+96;
				CheckAddr=msg;
				LoopForTest();
			}

//			msg[TASK_7_PRIO]=TASK_7_PRIO;
//	        OSQPost(MsgQueue[TASK_6_PRIO],msg);
		}

/*	//OS_ENTER_CRITICAL();
		for(i=1;i<16;i++)	CheckBytes[i]=msg[i];
	//OS_EXIT_CRITICAL();
		if(CheckBytes[TASK_13_PRIO]!=TASK_13_PRIO
			|| CheckBytes[TASK_12_PRIO]!=TASK_12_PRIO
			|| CheckBytes[TASK_11_PRIO]!=TASK_11_PRIO
			|| CheckBytes[TASK_10_PRIO]!=TASK_10_PRIO
			|| CheckBytes[TASK_9_PRIO]!=TASK_9_PRIO
			|| CheckBytes[TASK_8_PRIO]!=TASK_8_PRIO){
			CheckBytes[0]=TASK_7_PRIO+16;
			LoopForTest();
		}

		addr1=OSMemGet(MemPtr,&err);
		for(i=0;i<16;i++){
			addr1[i]=msg[i];
		}
		addr1[TASK_7_PRIO]=TASK_7_PRIO;

	//OS_ENTER_CRITICAL();
		for(i=1;i<16;i++)	CheckBytes[i]=addr1[i];
	//OS_EXIT_CRITICAL();
		if(CheckBytes[TASK_13_PRIO]!=TASK_13_PRIO
			|| CheckBytes[TASK_12_PRIO]!=TASK_12_PRIO
			|| CheckBytes[TASK_11_PRIO]!=TASK_11_PRIO
			|| CheckBytes[TASK_10_PRIO]!=TASK_10_PRIO
			|| CheckBytes[TASK_9_PRIO]!=TASK_9_PRIO
			|| CheckBytes[TASK_8_PRIO]!=TASK_8_PRIO
			|| CheckBytes[TASK_7_PRIO]!=TASK_7_PRIO){
			CheckBytes[0]=TASK_7_PRIO;
			CheckBytes[1]=err;
			LoopForTest();
		}

        OSQPost(MsgQueue[TASK_6_PRIO],addr1);
        for(i=0;i<16;i++)  	msg[i]=0xEE;
		OSMemPut(MemPtr,msg);
*/
    }
}
//===================================================================
void  Task8 (void *data)
{
    rom INT8U *msg;
    INT8U  err;
	rom INT8U *addr1;
	INT8U i;
    
    data = data;
    for (;;) {
/*			addr1=OSMemGet(MemPtr,&err);
			if(err!=OS_NO_ERR){
				CheckBytes[0]=TASK_8_PRIO+64;
				CheckAddr=addr1;
				LoopForTest();
			}
		msg = (rom INT8U *)OSQPend(MsgQueue[TASK_8_PRIO],0, &err);

			err=OSMemPut(MemPtr,addr1);
			if(err!=OS_NO_ERR){
				CheckBytes[0]=TASK_8_PRIO+32;
				CheckAddr=msg;
				LoopForTest();
			}
*/
		msg = (rom INT8U *)OSQPend(MsgQueue[TASK_8_PRIO],0, &err);

//		if((unsigned short long)msg<0x11a006 || (unsigned short long)msg>=0x11C006
		if((unsigned short long)msg<0x11a006 || (unsigned short long)msg>=0x11C006){

			CheckBytes[0]=TASK_8_PRIO+64;
			CheckBytes[1]=err;
			CheckAddr=msg;
			LoopForTest();

		}
		else if(msg[TASK_9_PRIO]!=TASK_9_PRIO
			|| msg[TASK_10_PRIO]!=TASK_10_PRIO
			|| msg[TASK_11_PRIO]!=TASK_11_PRIO
			|| msg[TASK_12_PRIO]!=TASK_12_PRIO
			|| msg[TASK_13_PRIO]!=TASK_13_PRIO){
			CheckBytes[0]=TASK_8_PRIO;
			CheckBytes[1]=err;
			for(i=1;i<14;i++)	CheckBytes[i+1]=msg[i];
			CheckAddr=msg;
			//CheckBytes[1]=(INT8U)((msg>>16)&0xff);
			//CheckBytes[2]=(INT8U)((msg>>8)&0xff);
			//CheckBytes[3]=(INT8U)(msg&0xff);
			LoopForTest();
		}
		else{
			addr1=OSMemGet(MemPtr,&err);
			for(i=1;i<16;i++)		addr1[i]=0xEE;
			if(err!=OS_NO_ERR){
				CheckBytes[0]=TASK_8_PRIO+80;
				CheckAddr=addr1;
				LoopForTest();
			}

			msg[TASK_8_PRIO]=TASK_8_PRIO;
			for(i=1;i<16;i++)	addr1[i]=msg[i];
			
	        OSQPost(MsgQueue[TASK_7_PRIO],addr1);

			err=OSMemPut(MemPtr,msg);
			if(err!=OS_NO_ERR){
				CheckBytes[0]=TASK_8_PRIO+96;
				CheckAddr=msg;
				LoopForTest();
			}

//			msg[TASK_8_PRIO]=TASK_8_PRIO;
//	        OSQPost(MsgQueue[TASK_7_PRIO],msg);
		}

/*	//OS_ENTER_CRITICAL();
		for(i=1;i<16;i++)	CheckBytes[i]=msg[i];
	//OS_EXIT_CRITICAL();
		if(CheckBytes[TASK_13_PRIO]!=TASK_13_PRIO
			|| CheckBytes[TASK_12_PRIO]!=TASK_12_PRIO
			|| CheckBytes[TASK_11_PRIO]!=TASK_11_PRIO
			|| CheckBytes[TASK_10_PRIO]!=TASK_10_PRIO
			|| CheckBytes[TASK_9_PRIO]!=TASK_9_PRIO){
			CheckBytes[0]=TASK_8_PRIO+16;
			LoopForTest();
		}

		addr1=OSMemGet(MemPtr,&err);
		for(i=0;i<16;i++){
			addr1[i]=msg[i];
		}
		addr1[TASK_8_PRIO]=TASK_8_PRIO;

	//OS_ENTER_CRITICAL();
		for(i=1;i<16;i++)	CheckBytes[i]=addr1[i];
	//OS_EXIT_CRITICAL();
		if(CheckBytes[TASK_13_PRIO]!=TASK_13_PRIO
			|| CheckBytes[TASK_12_PRIO]!=TASK_12_PRIO
			|| CheckBytes[TASK_11_PRIO]!=TASK_11_PRIO
			|| CheckBytes[TASK_10_PRIO]!=TASK_10_PRIO
			|| CheckBytes[TASK_9_PRIO]!=TASK_9_PRIO
			|| CheckBytes[TASK_8_PRIO]!=TASK_8_PRIO){
			CheckBytes[0]=TASK_8_PRIO;
			CheckBytes[1]=err;
			LoopForTest();
		}

        OSQPost(MsgQueue[TASK_7_PRIO],addr1);
        for(i=0;i<16;i++)  	msg[i]=0xEE;
		OSMemPut(MemPtr,msg);
*/
    }
}
//===================================================================
void  Task9 (void *data)
{
    rom INT8U *msg;
    INT8U  err;
	rom INT8U *addr1;
	INT8U i;
    
    data = data;
    for (;;) {
/*			addr1=OSMemGet(MemPtr,&err);
			if(err!=OS_NO_ERR){
				CheckBytes[0]=TASK_9_PRIO+64;
				CheckAddr=addr1;
				LoopForTest();
			}
		msg = (rom INT8U *)OSQPend(MsgQueue[TASK_9_PRIO],0, &err);

			err=OSMemPut(MemPtr,addr1);
			if(err!=OS_NO_ERR){
				CheckBytes[0]=TASK_9_PRIO+32;
				CheckAddr=msg;
				LoopForTest();
			}
*/
		msg = (rom INT8U *)OSQPend(MsgQueue[TASK_9_PRIO],0, &err);

//		if((unsigned short long)msg<0x11a006 || (unsigned short long)msg>=0x11C006

		if((unsigned short long)msg<0x11a006 || (unsigned short long)msg>=0x11C006){

			CheckBytes[0]=TASK_9_PRIO+64;
			CheckBytes[1]=err;
			CheckAddr=msg;
			LoopForTest();

		}
		else if(msg[TASK_10_PRIO]!=TASK_10_PRIO
			|| msg[TASK_11_PRIO]!=TASK_11_PRIO
			|| msg[TASK_12_PRIO]!=TASK_12_PRIO
			|| msg[TASK_13_PRIO]!=TASK_13_PRIO){
			CheckBytes[0]=TASK_9_PRIO;
			CheckBytes[1]=err;
			for(i=1;i<14;i++)	CheckBytes[i+1]=msg[i];
			CheckAddr=msg;
			//CheckBytes[1]=(INT8U)((msg>>16)&0xff);
			//CheckBytes[2]=(INT8U)((msg>>8)&0xff);
			//CheckBytes[3]=(INT8U)(msg&0xff);
			LoopForTest();
		}
		else{
			addr1=OSMemGet(MemPtr,&err);
			for(i=1;i<16;i++)		addr1[i]=0xEE;
			if(err!=OS_NO_ERR){
				CheckBytes[0]=TASK_9_PRIO+80;
				CheckAddr=addr1;
				LoopForTest();
			}

			msg[TASK_9_PRIO]=TASK_9_PRIO;
			for(i=1;i<16;i++)	addr1[i]=msg[i];
			
	        OSQPost(MsgQueue[TASK_8_PRIO],addr1);

			err=OSMemPut(MemPtr,msg);
			if(err!=OS_NO_ERR){
				CheckBytes[0]=TASK_9_PRIO+96;
				CheckAddr=msg;
				LoopForTest();
			}

//			msg[TASK_9_PRIO]=TASK_9_PRIO;
//	        OSQPost(MsgQueue[TASK_8_PRIO],msg);
		}

/*	//OS_ENTER_CRITICAL();
		for(i=1;i<16;i++)	CheckBytes[i]=msg[i];
	//OS_EXIT_CRITICAL();
		if(CheckBytes[TASK_13_PRIO]!=TASK_13_PRIO
			|| CheckBytes[TASK_12_PRIO]!=TASK_12_PRIO
			|| CheckBytes[TASK_11_PRIO]!=TASK_11_PRIO
			|| CheckBytes[TASK_10_PRIO]!=TASK_10_PRIO){
			CheckBytes[0]=TASK_9_PRIO+16;
			LoopForTest();
		}

		addr1=OSMemGet(MemPtr,&err);
		for(i=0;i<16;i++){
			addr1[i]=msg[i];
		}
		addr1[TASK_9_PRIO]=TASK_9_PRIO;

	//OS_ENTER_CRITICAL();

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -