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

📄 memtest.c

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

        OSQPost(MsgQueue[TASK_8_PRIO],addr1);
        for(i=0;i<16;i++)  	msg[i]=0xEE;
		OSMemPut(MemPtr,msg);
*/
    }
}
//===================================================================
void  Task10 (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_10_PRIO+64;
				CheckAddr=addr1;
				LoopForTest();
			}
		msg = (rom INT8U *)OSQPend(MsgQueue[TASK_10_PRIO],0, &err);

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

*/
		msg = (rom INT8U *)OSQPend(MsgQueue[TASK_10_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_10_PRIO+64;
			CheckBytes[1]=err;
			CheckAddr=msg;
			LoopForTest();

		}
		else if(msg[TASK_11_PRIO]!=TASK_11_PRIO
			|| msg[TASK_12_PRIO]!=TASK_12_PRIO
			|| msg[TASK_13_PRIO]!=TASK_13_PRIO){
			CheckBytes[0]=TASK_10_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_10_PRIO+80;
				CheckAddr=addr1;
				LoopForTest();
			}

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

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

//			msg[TASK_10_PRIO]=TASK_10_PRIO;
//	        OSQPost(MsgQueue[TASK_9_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[0]=TASK_10_PRIO+16;
			LoopForTest();
		}

		addr1=OSMemGet(MemPtr,&err);
		for(i=0;i<16;i++){
			addr1[i]=msg[i];
		}
		addr1[TASK_10_PRIO]=TASK_10_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[0]=TASK_10_PRIO;
			LoopForTest();
		}

        OSQPost(MsgQueue[TASK_9_PRIO],addr1);
        for(i=0;i<16;i++)  	msg[i]=0xEE;
		OSMemPut(MemPtr,msg);
*/
    }
}
//===================================================================
void  Task11 (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_11_PRIO+64;
				CheckAddr=addr1;
				LoopForTest();
			}
		msg = (rom INT8U *)OSQPend(MsgQueue[TASK_11_PRIO],0, &err);

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

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

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

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

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

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

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

//			msg[TASK_11_PRIO]=TASK_11_PRIO;
//	        OSQPost(MsgQueue[TASK_10_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[0]=TASK_11_PRIO+16;
			LoopForTest();
		}

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

	//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[0]=TASK_11_PRIO;
			LoopForTest();
		}

        OSQPost(MsgQueue[TASK_10_PRIO],addr1);
        for(i=0;i<16;i++)  	msg[i]=0xEE;
		OSMemPut(MemPtr,msg);
*/
    }
}
//===================================================================
void  Task12 (void *data)
{
    rom INT8U *msg;
    INT8U  err;
	rom INT8U *addr1;
	INT8U i;
	unsigned short long slint;
    
    data = data;
    for (;;) {
/*			addr1=OSMemGet(MemPtr,&err);
			if(err!=OS_NO_ERR){
				CheckBytes[0]=TASK_12_PRIO+64;
				CheckAddr=addr1;
				LoopForTest();
			}
		msg = (rom INT8U *)OSQPend(MsgQueue[TASK_12_PRIO],0, &err);

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

			if(err!=OS_NO_ERR){
				CheckBytes[0]=TASK_12_PRIO+32;
				CheckBytes[1]=err;
			for(i=1;i<14;i++)	CheckBytes[i+1]=msg[i];
				CheckAddr=msg;
				LoopForTest();
			}

//			slint=(unsigned short long)msg;
//			if(slint<0x11a006 || slint>=0x11c006){
//				CheckBytes[0]=TASK_13_PRIO+64;
//				CheckBytes[1]=0xe1;
//				CheckAddr=msg;
//				LoopForTest();
//			}
			
//			err=(INT8U)(slint & 0xff);
//			if(err!=6){
//				CheckBytes[0]=TASK_13_PRIO+128;
//				CheckBytes[1]=0xe2;
//				CheckAddr=msg;
//				LoopForTest();
//			}



/*
	//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[0]=TASK_12_PRIO+16;
			LoopForTest();
		}

		addr1=OSMemGet(MemPtr,&err);
		for(i=0;i<16;i++){
			addr1[i]=msg[i];
		}
		addr1[TASK_12_PRIO]=TASK_12_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[0]=TASK_12_PRIO;
			LoopForTest();
		}
		
		
        OSQPost(MsgQueue[TASK_11_PRIO],addr1);
        for(i=0;i<16;i++)  	msg[i]=0xEE;
		OSMemPut(MemPtr,msg);
*/
//		if(msg!=(rom INT8U *)0x11a000){
		if((unsigned short long)msg<0x11a006 || (unsigned short long)msg>=0x11C006){

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

		}
		else if(msg[TASK_13_PRIO]!=TASK_13_PRIO){

			CheckBytes[0]=TASK_12_PRIO;
			CheckBytes[1]=err;
			CheckAddr=msg;

			for(i=1;i<14;i++)	CheckBytes[i+1]=msg[i];

			LoopForTest();
		}
		else{
		
			addr1=OSMemGet(MemPtr,&err);
			for(i=1;i<16;i++)		addr1[i]=0xEE;

			if(err!=OS_NO_ERR){
				CheckBytes[0]=TASK_12_PRIO+80;
				CheckAddr=addr1;
				LoopForTest();
			}

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

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

//			msg[TASK_12_PRIO]=TASK_12_PRIO;
//	        OSQPost(MsgQueue[TASK_11_PRIO],msg);

		}
    }
}
//===================================================================

void  Task13 (void *data)
{
    rom INT8U *msg;
    INT8U  err;
    INT8U i;
	rom INT8U *addr1;
	unsigned short long slint;
	INT16U blocks;
	
	blocks=0;
    
    data = data;
    for (;;) {
       OSTimeDly(50);                       /* Wait one second                          */

/*		addr1=OSMemGet(MemPtr,&err);
		addr1[TASK_13_PRIO]=TASK_13_PRIO;

	//OS_ENTER_CRITICAL();
		CheckBytes[TASK_13_PRIO]=addr1[TASK_13_PRIO];
	//OS_EXIT_CRITICAL();
		if(CheckBytes[TASK_13_PRIO]!=TASK_13_PRIO){
			CheckBytes[0]=TASK_13_PRIO;
			LoopForTest();
		}

        OSQPost(MsgQueue[TASK_12_PRIO],addr1);//(rom INT8U *)one);
*/

/*		for(i=0;i<blocks;i++){
			UnusedMem[i]=OSMemGet(MemPtr,&err);
			if(err!=OS_NO_ERR){
				CheckBytes[0]=TASK_13_PRIO+32;
//				CheckAddr=msg;
				LoopForTest();
			}
		}	
//		msg=(rom INT8U *)0x11a000;

*/



//			addr1=OSMemGet(MemPtr,&err);
//			if(err!=OS_NO_ERR){
//				CheckBytes[0]=TASK_13_PRIO+80;
//				CheckAddr=addr1;
//				LoopForTest();
//			}




		msg=OSMemGet(MemPtr,&err);
//		msg=(rom INT8U *)0x11a006;	//OSMemGet(MemPtr,&err);

/*			if(err!=OS_NO_ERR){
				CheckBytes[0]=TASK_13_PRIO+32;
				CheckBytes[1]=err;
				CheckAddr=msg;
				LoopForTest();
			}

*/			slint=(unsigned short long)msg;
			if(slint<0x11a006 || slint>=0x11c006){
				CheckBytes[0]=TASK_13_PRIO+64;
				CheckBytes[1]=0xe1;
				CheckAddr=msg;
				LoopForTest();
			}
			
			err=(INT8U)(slint & 0xff);
			if(err!=6){
				CheckBytes[0]=TASK_13_PRIO+128;
				CheckBytes[1]=0xe2;
				CheckAddr=msg;
				LoopForTest();
			}



//		msg=(rom INT8U *)(0x11a006+(blocks>>1));
//		blocks++;
//		if(blocks>377)
//		{
//			blocks++;
//			blocks--;
//			blocks=0;
//		}



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



/*

		for(i=0;i<blocks;i++){
			err=OSMemPut(MemPtr,UnusedMem[i]);
			if(err!=OS_NO_ERR){
				CheckBytes[0]=TASK_13_PRIO+128;
				CheckAddr=UnusedMem[i];
				LoopForTest();
			}
		}
			
		blocks++;
		if(blocks>=32)	blocks=0;
*/

		for(i=0;i<32;i++)	msg[i]=0xee;
		msg[TASK_13_PRIO]=TASK_13_PRIO;
        OSQPost(MsgQueue[TASK_12_PRIO],msg);
    }
}
//===================================================================

⌨️ 快捷键说明

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