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

📄 test.src

📁 uc/os在c167上的移植代码
💻 SRC
字号:
; C166/ST10 C compiler v6.0 r2            SN00082920-161 (c) 1998 TASKING, Inc.
; options: -Id:\c166\include -IC:\software\UCOS-II\C167\Tasking\test
;          -IC:\software\UCOS-II\C167\Tasking\source
;          -IC:\software\UCOS-II\C167\Tasking\Test -IC:\software\UCOS-II\SOURCE
;          -xmifp -Ml -P -FFSc -Ot -OB -zautobitastruct-4 -zautobita-0 -T256 -s
;          -g -zvolatile_union -A1 -O1
$DEBUG
$NOLOCALS
$EXTEND
$NOMOD166
$STDNAMES(reg.def)
$SEGMENTED
$CASE
$MODEL(LARGE)
$CHECKCPU16
	NAME	TEST_C
	ASSUME	DPP3:SYSTEM
	?SYMB	'c:\software\ucos-ii\c167\tasking\test\test.c',32,80,16
	?SYMB	'',1,82,0
	?SYMB	'80166',0,84,0
	?SYMB	'',0,81,0
	?SYMB	'void',00H,45,1
	?SYMB	'char',080000H,45,2
	?SYMB	'unsigned char',080000H,45,3
	?SYMB	'short',0100000H,45,4
	?SYMB	'unsigned short',0100000H,45,5
	?SYMB	'long',0200000H,45,6
	?SYMB	'unsigned long',0200000H,45,7
	?SYMB	'float',0200000H,45,10
	?SYMB	'double',0400000H,45,11
	?SYMB	'int',0100000H,45,16
	?SYMB	'unsigned int',0100000H,45,18
	?SYMB	'bit',010000H,7,256
	?SYMB	'c:\software\ucos-ii\c167\tasking\test\test.c',0,29,1
	?SYMB	'',0,86,1
; test.c      1	/*
; test.c      2	*********************************************************************************************************
; test.c      3	*                                                uC/OS-II
; test.c      4	*                                          The Real-Time Kernel
; test.c      5	*
; test.c      6	*                        (c) Copyright 1992-1998, Jean J. Labrosse, Plantation, FL
; test.c      7	*                                           All Rights Reserved
; test.c      8	*
; test.c      9	*                                                 V2.00
; test.c     10	*
; test.c     11	*                                               EXAMPLE #1
; test.c     12	*					by Karl Wannenmacher
; test.c     13	*						Nov 2000
; test.c     14	*********************************************************************************************************
; test.c     15	*/
; test.c     16	
; test.c     17	
; test.c     18	
; test.c     19	#include "includes.h"
	?SYMB	'c:\software\ucos-ii\c167\tasking\test\includes.h',0,29,2
	?SYMB	'',0,86,2
	?SYMB	'd:\c166\include\stdio.h',0,29,3
	?SYMB	'',0,86,3
	?SYMB	'd:\c166\include\stdarg.h',0,29,4
	?SYMB	'',0,86,4
	?SYMB	'',0,86,3
	?SYMB	'',01a0002H,38,258
	?SYMB	'_iobuf',0,40,259
	?SYMB	'_ptr',0,23,258
	?SYMB	'_cnt',32,23,16
	?SYMB	'_base',48,23,258
	?SYMB	'_flag',80,23,2
	?SYMB	'_file',88,23,2
	?SYMB	'_bufsiz',96,23,16
	?SYMB	'',112,18,0
	?SYMB	'FILE',259,13,260
	?SYMB	'',01a0001H,38,262
	?SYMB	'',01080106H,5,263
	?SYMB	'',16,47,264
	?SYMB	'',0,30,0
	?SYMB	'',0,49,0
	?SYMB	'va_list',263,13,265
	?SYMB	'size_t',18,13,266
	?SYMB	'fpos_t',7,13,267
	?SYMB	'',0,86,2
	?SYMB	'd:\c166\include\string.h',0,29,3
	?SYMB	'',0,86,3
	?SYMB	'',0,86,2
	?SYMB	'd:\c166\include\ctype.h',0,29,3
	?SYMB	'',0,86,3
	?SYMB	'',0,86,2
	?SYMB	'd:\c166\include\stdlib.h',0,29,3
	?SYMB	'',0,86,3
	?SYMB	'T$1',0,40,268
	?SYMB	'quot',0,23,16
	?SYMB	'rem',16,23,16
	?SYMB	'',32,18,0
	?SYMB	'div_t',268,13,269
	?SYMB	'T$2',0,40,270
	?SYMB	'quot',0,23,6
	?SYMB	'rem',32,23,6
	?SYMB	'',64,18,0
	?SYMB	'ldiv_t',270,13,271
	?SYMB	'',0,86,2
	?SYMB	'd:\c166\include\reg167.h',0,29,3
	?SYMB	'',0,86,3
	?SYMB	'',0,86,2
	?SYMB	'C:\software\UCOS-II\C167\Tasking\source\os_cpu.h',0,29,3
	?SYMB	'',0,86,3
	?SYMB	'INT16U',5,13,272
	?SYMB	'',0,86,2
	?SYMB	'c:\software\ucos-ii\c167\tasking\test\os_cfg.h',0,29,3
	?SYMB	'',0,86,3
	?SYMB	'',0,86,2
	?SYMB	'C:\software\UCOS-II\C167\Tasking\source\ucos_ii.h',0,29,3
	?SYMB	'',0,86,3
	?SYMB	'INT8U',3,13,273
	?SYMB	'OS_STK',18,13,274
	?SYMB	'',01140111H,5,275
	?SYMB	'',16,47,276
	?SYMB	'',0,30,0
	?SYMB	'',1,49,0
	?SYMB	'T$3',0,40,277
	?SYMB	'OSEventPtr',0,23,262
	?SYMB	'OSEventTbl',32,23,275
	?SYMB	'OSEventCnt',48,23,272
	?SYMB	'OSEventType',64,23,273
	?SYMB	'OSEventGrp',72,23,273
	?SYMB	'',80,18,0
	?SYMB	'OS_EVENT',277,13,278
	?SYMB	'INT32U',7,13,279
	?SYMB	'INT8S',2,13,280
	?SYMB	'BOOLEAN',3,13,281
	?SYMB	'',01a0112H,38,283
	?SYMB	'',01a011cH,38,286
	?SYMB	'',01a0116H,38,288
	?SYMB	'os_tcb',0,40,284
	?SYMB	'OSTCBStkPtr',0,23,283
	?SYMB	'OSTCBNext',32,23,286
	?SYMB	'OSTCBPrev',64,23,286
	?SYMB	'OSTCBEventPtr',96,23,288
	?SYMB	'OSTCBMsg',128,23,262
	?SYMB	'OSTCBDly',160,23,272
	?SYMB	'OSTCBStat',176,23,273
	?SYMB	'OSTCBPrio',184,23,273
	?SYMB	'OSTCBX',192,23,273
	?SYMB	'OSTCBY',200,23,273
	?SYMB	'OSTCBBitX',208,23,273
	?SYMB	'OSTCBBitY',216,23,273
	?SYMB	'',224,18,0
	?SYMB	'OS_TCB',284,13,289
	?SYMB	'T$4',0,40,290
	?SYMB	'OSMsg',0,23,262
	?SYMB	'OSEventTbl',32,23,275
	?SYMB	'OSEventGrp',48,23,273
	?SYMB	'',64,18,0
	?SYMB	'OS_MBOX_DATA',290,13,291
	?SYMB	'T$5',0,40,292
	?SYMB	'OSMsg',0,23,262
	?SYMB	'OSNMsgs',32,23,272
	?SYMB	'OSQSize',48,23,272
	?SYMB	'OSEventTbl',64,23,275
	?SYMB	'OSEventGrp',80,23,273
	?SYMB	'',96,18,0
	?SYMB	'OS_Q_DATA',292,13,293
	?SYMB	'T$6',0,40,294
	?SYMB	'OSCnt',0,23,272
	?SYMB	'OSEventTbl',16,23,275
	?SYMB	'OSEventGrp',32,23,273
	?SYMB	'',48,18,0
	?SYMB	'OS_SEM_DATA',294,13,295
	?SYMB	'',0,86,2
	?SYMB	'',0,86,1
; test.c     20	
; test.c     21	
; test.c     22	//Constants
; test.c     23	#define  TASK_STK_SIZE                 512       // Size of each task's stacks (# of WORDs) = 1KBytes  
; test.c     24	#define  N_TASKS                       2         // Number of identical tasks                          
; test.c     25	
; test.c     26	
; test.c     27	
; test.c     28	//Global Data
; test.c     29	OS_STK           TaskStk[N_TASKS][TASK_STK_SIZE];     // Tasks stacks                                  
TEST_1_FB	SECTION	DATA WORD PUBLIC 'CFAR'
TEST_1_FB_ENTRY	LABEL	BYTE
_TaskStk	LABEL	WORD
	DS	2048
	PUBLIC	_TaskStk
	?SYMB	'',01290112H,5,296
	?SYMB	'',16,47,297
	?SYMB	'',0,30,0
	?SYMB	'',511,49,0
	?SYMB	'',012b0128H,5,298
	?SYMB	'',16,47,299
	?SYMB	'',0,30,0
	?SYMB	'',1,49,0
	?SYMB	'TaskStk',_TaskStk,22,298
; test.c     30	OS_EVENT        *pReceiverMailBox;
TEST_1_FB	ENDS

TEST_2_NB	SECTION	DATA WORD PUBLIC 'CNEAR'
	ASSUME	DPP2:TEST_2_NB
TEST_2_NB_ENTRY	LABEL	BYTE
_pReceiverMailBox	LABEL	WORD
	DS	4
	PUBLIC	_pReceiverMailBox
	?SYMB	'pReceiverMailBox',_pReceiverMailBox,22,288
; test.c     31	OS_EVENT        *pSenderMailBox;
_pSenderMailBox	LABEL	WORD
	DS	4
	PUBLIC	_pSenderMailBox
	?SYMB	'pSenderMailBox',_pSenderMailBox,22,288
; test.c     32	
; test.c     33	
; test.c     34	//Function Prototypes
; test.c     35	void   ReceiverTask(void *data);                       
; test.c     36	void   SenderTask(void *data);                         
; test.c     37	
; test.c     38	
; test.c     39	/*$PAGE*/
; test.c     40	
; test.c     41	
; test.c     42	//Main
; test.c     43	void main (void)
; test.c     44	{
TEST_2_NB	ENDS

TEST_3_PR	SECTION	CODE WORD PUBLIC 'CPROGRAM'
	?LINE	44
	PUBLIC	_main
	?SYMB	'main',_main,37,1
	?SYMB	'',44,8,34
_main	PROC	FAR
	?SYMB	'',00H,95,0
; Locals:
; 
; CSEs:
; 
; test.c     45	    DP2 = 0xffff;
	?LINE	45
	MOV	DP2,#0FFFFh
; test.c     46	    OSInit();                                              
	?LINE	46
	MOV	R12,#SOF _3
	MOV	[-R0],R12
	?SYMB	'',$,96,2
	MOV	R12,#SEG _3
	MOV	[-R0],R12
	?SYMB	'',$,96,4
	JMPS	SEG _OSInit,_OSInit
	?SYMB	'',$,96,0
_3:
; test.c     47	    pReceiverMailBox = OSMboxCreate((void*)0);
	?LINE	47
	MOV	R12,#00h
	MOV	R13,#00h
	MOV	R14,#SOF _4
	MOV	[-R0],R14
	?SYMB	'',$,96,2
	MOV	R14,#SEG _4
	MOV	[-R0],R14
	?SYMB	'',$,96,4
	JMPS	SEG _OSMboxCreate,_OSMboxCreate
	?SYMB	'',$,96,0
_4:
	MOV	_pReceiverMailBox,R4
	MOV	(_pReceiverMailBox+2),R5
; test.c     48	    pSenderMailBox = OSMboxCreate((void*)0);
	?LINE	48
	MOV	R12,#00h
	MOV	R13,#00h
	MOV	R14,#SOF _5
	MOV	[-R0],R14
	?SYMB	'',$,96,2
	MOV	R14,#SEG _5
	MOV	[-R0],R14
	?SYMB	'',$,96,4
	JMPS	SEG _OSMboxCreate,_OSMboxCreate
	?SYMB	'',$,96,0
_5:
	MOV	_pSenderMailBox,R4
	MOV	(_pSenderMailBox+2),R5
; test.c     49	    OSTaskCreate(ReceiverTask, (void *)0, (void *)&TaskStk[0][TASK_STK_SIZE - 1], 3);
	?LINE	49
	MOV	R12,#03h
	MOV	[-R0],R12
	?SYMB	'',$,96,2
	MOV	R13,#POF (_TaskStk+1022)
	MOV	R14,#PAG _TaskStk
	MOV	[-R0],R14
	?SYMB	'',$,96,4
	MOV	[-R0],R13
	?SYMB	'',$,96,6
	MOV	R12,#SOF _ReceiverTask
	MOV	R13,#SEG _ReceiverTask
	MOV	R14,#00h
	MOV	R15,#00h
	MOV	R1,#SOF _6
	MOV	[-R0],R1
	?SYMB	'',$,96,8
	MOV	R1,#SEG _6
	MOV	[-R0],R1
	?SYMB	'',$,96,10
	JMPS	SEG _OSTaskCreate,_OSTaskCreate
	?SYMB	'',$,96,6
_6:
	ADD	R0,#06h
	?SYMB	'',$,96,0
; test.c     50	    OSTaskCreate(SenderTask, (void *)0, (void *)&TaskStk[1][TASK_STK_SIZE - 1], 4);
	?LINE	50
	MOV	R12,#04h
	MOV	[-R0],R12
	?SYMB	'',$,96,2
	MOV	R13,#POF (_TaskStk+2046)
	MOV	R14,#PAG _TaskStk
	MOV	[-R0],R14
	?SYMB	'',$,96,4
	MOV	[-R0],R13
	?SYMB	'',$,96,6
	MOV	R12,#SOF _SenderTask
	MOV	R13,#SEG _SenderTask
	MOV	R14,#00h
	MOV	R15,#00h
	MOV	R1,#SOF _7
	MOV	[-R0],R1
	?SYMB	'',$,96,8
	MOV	R1,#SEG _7
	MOV	[-R0],R1
	?SYMB	'',$,96,10
	JMPS	SEG _OSTaskCreate,_OSTaskCreate
	?SYMB	'',$,96,6
_7:
	ADD	R0,#06h
	?SYMB	'',$,96,0
; test.c     51	    OSStart();     
	?LINE	51
	MOV	R12,#SOF _8
	MOV	[-R0],R12
	?SYMB	'',$,96,2
	MOV	R12,#SEG _8
	MOV	[-R0],R12
	?SYMB	'',$,96,4
	JMPS	SEG _OSStart,_OSStart
	?SYMB	'',$,96,0
_8:
; test.c     52	    
; test.c     53	    
; test.c     54	                                    
; test.c     55	}
	?LINE	55
	MOV	R3,[R0+]
	MOV	R2,[R0+]
	ATOMIC	#03h
	PUSH	R3
	PUSH	R2
	RETS
_main	ENDP
	?SYMB	'',$,17,55
; test.c     56	
; test.c     57	
; test.c     58	//Tasks
; test.c     59	void SenderTask (void *data)
; test.c     60	{
	?LINE	60
	PUBLIC	_SenderTask
	?SYMB	'SenderTask',_SenderTask,37,1
	?SYMB	'',60,8,34
_SenderTask	PROC	FAR
	?SYMB	'',00H,95,0
	SUB	R0,#02h
	?SYMB	'',$,96,2
; Locals:
;     count = offset 0
;     error = offset 1
; 
; CSEs:
; 
	?SYMB	'count',2,98,273
	?SYMB	'-2',$,101,2
	?SYMB	'error',1,98,273
	?SYMB	'-1',$,101,1
; test.c     61	    INT8U count = 0;
; test.c     62	    INT8U error;
; test.c     63	    data = data;
; test.c     64	    	    
; test.c     65	    
; test.c     66	    
; test.c     67	    while (1)
	?LINE	67
_11:
; test.c     68	    {
; test.c     69		for (count=0;count<10;count++)
	?LINE	69
	MOVB	RL1,#00h
	MOVB	[R0],RL1
_12:
; test.c     70		{
; test.c     71		    OSMboxPost(pSenderMailBox, (void*)&count);
	?LINE	71
	MOV	R12,_pSenderMailBox
	MOV	R13,(_pSenderMailBox+2)
	MOV	R14,R0
	AND	R14,#03FFFh
	MOV	R15,DPP1
	MOV	R1,#SOF _13
	MOV	[-R0],R1
	?SYMB	'',$,96,4
	MOV	R1,#SEG _13
	MOV	[-R0],R1
	?SYMB	'',$,96,6
	JMPS	SEG _OSMboxPost,_OSMboxPost
	?SYMB	'',$,96,2
_13:
; test.c     72		    OSMboxPend(pReceiverMailBox, 0, &error);
	?LINE	72
	MOV	R12,#01h
	ADD	R12,R0
	AND	R12,#03FFFh
	MOV	R13,DPP1
	MOV	[-R0],R13
	?SYMB	'',$,96,4
	MOV	[-R0],R12
	?SYMB	'',$,96,6
	MOV	R12,_pReceiverMailBox
	MOV	R13,(_pReceiverMailBox+2)
	MOV	R14,#00h
	MOV	R15,#SOF _14
	MOV	[-R0],R15
	?SYMB	'',$,96,8
	MOV	R15,#SEG _14
	MOV	[-R0],R15
	?SYMB	'',$,96,10
	JMPS	SEG _OSMboxPend,_OSMboxPend
	?SYMB	'',$,96,6
_14:
	ADD	R0,#04h
	?SYMB	'',$,96,2
	?LINE	69
	MOVB	RL1,[R0]
	ADDB	RL1,#01h
	MOVB	[R0],RL1
	CMPB	RL1,#0Ah
	JMPR	cc_ULT,_12
	?LINE	67
	JMPR	cc_UC,_11
	?SYMB	'',$,102,1
	?SYMB	'',$,102,2
	?SYMB	'',$,96,0
; test.c     73		}
; test.c     74	    }
; test.c     75	
; test.c     76	}
	?LINE	76
	RETS
_SenderTask	ENDP
	?SYMB	'',$,17,76
; test.c     77		
; test.c     78	
; test.c     79	void ReceiverTask (void *data)
; test.c     80	{
	?LINE	80
	PUBLIC	_ReceiverTask
	?SYMB	'ReceiverTask',_ReceiverTask,37,1
	?SYMB	'',80,8,34
_ReceiverTask	PROC	FAR
	?SYMB	'',0300H,95,0
	MOV	[-R0],R9
	?SYMB	'',$,96,2
	MOV	[-R0],R8
	?SYMB	'',$,96,4
	SUB	R0,#02h
	?SYMB	'',$,96,6
; Locals:
;     error = offset 0
; 
; CSEs:
;     count = R8R9
; 
	?SYMB	'',01a0111H,38,304
	?SYMB	'count',1,98,304
	?SYMB	'error',2,98,273
	?SYMB	'-6',$,101,2
; test.c     81	    
; test.c     82	    INT8U *count;
; test.c     83	    INT8U error;
; test.c     84	    data = data;
; test.c     85	    OSTickISRInit();
	?LINE	85
	MOV	R12,#SOF _16
	MOV	[-R0],R12
	?SYMB	'',$,96,8
	MOV	R12,#SEG _16
	MOV	[-R0],R12
	?SYMB	'',$,96,10
	JMPS	SEG _OSTickISRInit,_OSTickISRInit
	?SYMB	'',$,96,6
_16:
; test.c     86	    
; test.c     87	            
; test.c     88	    while (1)
	?LINE	88
_15:
; test.c     89	    {			   
; test.c     90	    	count = (INT8U*)OSMboxPend(pSenderMailBox, 0, &error);
	?LINE	90
	MOV	R12,R0
	AND	R12,#03FFFh
	MOV	R13,DPP1
	MOV	[-R0],R13
	?SYMB	'',$,96,8
	MOV	[-R0],R12
	?SYMB	'',$,96,10
	MOV	R12,_pSenderMailBox
	MOV	R13,(_pSenderMailBox+2)
	MOV	R14,#00h
	MOV	R15,#SOF _17
	MOV	[-R0],R15
	?SYMB	'',$,96,12
	MOV	R15,#SEG _17
	MOV	[-R0],R15
	?SYMB	'',$,96,14
	JMPS	SEG _OSMboxPend,_OSMboxPend
	?SYMB	'',$,96,10
_17:
	ADD	R0,#04h
	?SYMB	'',$,96,6
	MOV	R8,R4
	MOV	R9,R5
	?SYMB	'R8R9',$,100,1
; test.c     91		P2 = *count;
	?LINE	91
	EXTP	R9,#01h
	MOVB	RL1,[R8]
	MOVBZ	R8,RL1
	?SYMB	'',$,102,1
	MOV	P2,R8
; test.c     92		OSTimeDlyHMSM(0, 0, 5, 0);  
	?LINE	92
	MOV	R12,#00h
	MOV	R13,#00h
	MOV	R14,#05h
	MOV	R15,#00h
	MOV	R8,#SOF _18
	MOV	[-R0],R8
	?SYMB	'',$,96,8
	MOV	R8,#SEG _18
	MOV	[-R0],R8
	?SYMB	'',$,96,10
	JMPS	SEG _OSTimeDlyHMSM,_OSTimeDlyHMSM
	?SYMB	'',$,96,6
_18:
; test.c     93	        OSMboxPost(pReceiverMailBox, (void*)1);
	?LINE	93
	MOV	R12,_pReceiverMailBox
	MOV	R13,(_pReceiverMailBox+2)
	MOV	R14,#01h
	MOV	R15,#00h
	MOV	R8,#SOF _19
	MOV	[-R0],R8
	?SYMB	'',$,96,8
	MOV	R8,#SEG _19
	MOV	[-R0],R8
	?SYMB	'',$,96,10
	JMPS	SEG _OSMboxPost,_OSMboxPost
	?SYMB	'',$,96,6
_19:
	?LINE	88
	JMPR	cc_UC,_15
	?SYMB	'',$,102,2
	?SYMB	'',$,96,4
	?SYMB	'',$,96,2
	?SYMB	'',$,96,0
; test.c     94	    	
; test.c     95	       
; test.c     96	    }
; test.c     97	}
	?LINE	97
	RETS
_ReceiverTask	ENDP
	?SYMB	'',$,17,97
; test.c     98	
; test.c     99	       		
; test.c    100	   
; test.c    101		   
; test.c    102	
TEST_3_PR	ENDS

C166_US	SECTION	DATA WORD GLBUSRSTACK 'CUSTACK'
	DS	34
C166_US	ENDS

C166_BSS	SECTION	DATA WORD GLOBAL 'CINITROM'
	DW	06h
	DPPTR	TEST_1_FB_ENTRY
	DW	0800h
	DW	06h
	DPPTR	TEST_2_NB_ENTRY
	DW	08h
C166_BSS	ENDS

	EXTERN	_OSTaskCreate:FAR
	EXTERN	_OSMboxPost:FAR
	EXTERN	_OSTickISRInit:FAR
	EXTERN	_OSMboxCreate:FAR
	EXTERN	_OSTimeDlyHMSM:FAR
	EXTERN	_OSMboxPend:FAR
	EXTERN	_OSInit:FAR
	EXTERN	_OSStart:FAR
	EXTERN	__CSTART:FAR
C166_DGROUP	DGROUP	TEST_2_NB
	REGDEF	R0-R15
	END

⌨️ 快捷键说明

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