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

📄 vrtxvisi.inc

📁 VRTX 商用嵌入式实时操作系统
💻 INC
字号:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
;		Copyright (c) 1993 READY SYSTEMS CORPORATION.
;
;	All rights reserved. READY SYSTEMS' source code is an unpublished
;	work and the use of a copyright notice does not imply otherwise.
;	This source code contains confidential, trade secret material of
;	READY SYSTEMS. Any attempt or participation in deciphering, decoding,
;	reverse engineering or in any way altering the source code is
;	strictly prohibited, unless the prior written consent of
;	READY SYSTEMS is obtained.
;
;
;	Module Name:		%M%
;
;	Identification:		%Z% %I% %M%
;
;	Date:			%G%  %U%
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;


; VRTX32 task-level function codes

SCFTCREATE   EQU 0000H ; create task
SCFTDELETE   EQU 0001H ; delete task
SCFTSUSPEND  EQU 0002H ; suspend task
SCFTRESUME   EQU 0003H ; resume task
SCFTPRIORITY EQU 0004H ; change task priority
SCFTINQUIRY  EQU 0005H ; task status inquiry
SCFGBLOCK    EQU 0006H ; get memory block
SCFRBLOCK    EQU 0007H ; release memory block
SCFPOST      EQU 0008H ; post message to mailbox
SCFPEND      EQU 0009H ; pend for message from mailbox
SCFGTIME     EQU 000AH ; get time
SCFSTIME     EQU 000BH ; set time
SCFTDELAY    EQU 000CH ; task delay
SCFGETC      EQU 000DH ; get character
SCFPUTC      EQU 000EH ; put character
SCFWAITC     EQU 000FH ; wait for special character
SCFTSLICE    EQU 0015H ; enable round-robin scheduling
SCFFCREATE   EQU 0017H ; create event flag group
SCFFDELETE   EQU 0018H ; delete event flag group
SCFFPEND     EQU 0019H ; pend on event flag group
SCFFPOST     EQU 001AH ; post event to event flag group
SCFFCLEAR    EQU 001BH ; clear event
SCFFINQUIRY  EQU 001CH ; event flag group inquiry
SCFQJAM      EQU 001EH ; jam message to queue
SCFQECREATE  EQU 001FH ; create FIFO message queue
SCFLOCK      EQU 0020H ; disable task rescheduling
SCFUNLOCK    EQU 0021H ; enable task rescheduling
SCFPCREATE   EQU 0022H ; create memory partition
SCFPEXTEND   EQU 0023H ; extend memory partition
SCFACCEPT    EQU 0025H ; accept message from mailbox
SCFQPOST     EQU 0026H ; post message to queue
SCFQPEND     EQU 0027H ; pend for message from queue
SCFQACCEPT   EQU 0028H ; accept message from queue
SCFQCREATE   EQU 0029H ; create message queue
SCFQINQUIRY  EQU 002AH ; queue status inquiry
SCFSCREATE   EQU 002BH ; create semaphore
SCFSDELETE   EQU 002CH ; delete semaphore
SCFSPEND     EQU 002DH ; pend on semaphore
SCFSPOST     EQU 002EH ; post unit to semaphore
SCFSINQUIRY  EQU 002FH ; semaphore inquiry
SCFGVERSION  EQU 0059H ; get version number
; 
; VRTX32 interrupt-level function codes

UIFEXIT    EQU 0011H ; exit interrupt handler
UIFTIMER   EQU 0012H ; announce timer interrupt
UIFRXCHR   EQU 0013H ; received-character interrupt
UIFTXRDY   EQU 0014H ; transmit-ready interrupt
UIFENTER   EQU 0016H ; enter interrupt handler

; VRTX32 initialization function codes

VRTXFINIT  EQU 0030H ; initialize VRTX32
VRTXFGO    EQU 0031H ; start application execution
; 
ACFTCREATE      EQU     0040H   ; create ARTX task
ACFTABORT       EQU     0041H   ; abort ARTX task
ACFTSUSPEND     EQU     0042H   ; suspend ARTX task
ACFTRESUME      EQU     0043H   ; resume ARTX task
ACFTPRIORITY    EQU     0044H   ; change ARTX task priority
ACFTINQUIRY     EQU     0045H   ; inquiry on the ARTX task
ACFACTIVATE     EQU     0046H   ; activate ARTX task
ACFAEND         EQU     0047H   ; end of the ARTX task activation
ACFTDEALLOC     EQU     0048H   ; deallocate ARTX task reference
ACFMFCREATE     EQU     004AH   ; create new master frame
ACFCOMPLETE     EQU     004BH   ; complete master frame
ACFRENTRY       EQU     004CH   ; rendezvous entry
ACFRACCEPT      EQU     004DH   ; rendezvous accept
ACFREND         EQU     004EH   ; rendezvous end
ACFRINQUIRY     EQU     004FH   ; inquiry on the specified entry
ACFRACCEPTQ     EQU     0050H   ; rendezvous accept on one entry
; ARTX initialization function codes

ARTXFINIT       EQU     0051H   ; initialize ARTX
ARTXFGO         EQU     0052H   ; start application execution

; VRTX/Spiff function codes

SCFACCEPTC      EQU     0010H   ; accept character
SCFQBRDCST      EQU     001DH   ; broadcast message to queue
SCFPINQUIRY     EQU     0024H   ; partition inquiry
SCFGCLOCK       EQU     0032H   ; get clock
SCFSCLOCK       EQU     0033H   ; set clock
SCFADELAY       EQU     0034H   ; delay task until absolute time
SCFHALLOC       EQU     0035H   ; allocate memory block
SCFHCREATE      EQU     0036H   ; create heap
SCFHDELETE      EQU     0037H   ; delete heap
SCFHFREE        EQU     0038H   ; free memory block
SCFHINQUIRY     EQU     0039H   ; heap inquiry
SCFMACCEPT      EQU     003AH   ; accept resource from mutex
SCFMCREATE      EQU     003BH   ; create mutex
SCFMDELETE      EQU     003CH   ; delete mutex
SCFMINQUIRY     EQU     003DH   ; mutex inquiry
SCFMPEND        EQU     003EH   ; pend on mutex
SCFMPOST        EQU     003FH   ; post to mutex
SCFPDELETE      EQU     0053H   ; delete partition
SCFQDELETE      EQU     0054H   ; delete queue
SCFQPOSTW       EQU     0055H   ; post message to queue and wait
SCFSACCEPT      EQU     0056H   ; accept unit from semaphore
SCFTECREATE     EQU     0057H   ; create task with specified stack size
SCFTXCREATE     EQU     0058H   ; create task with specified structure

; Task Control Block

TCB        STRUC
TBIDNEXT   DD  ?  ; 00H reserved
TBDELVAL   DD  ?  ; 04H reserved
TBDELNEXT  DD  ?  ; 08H reserved
TBDELBACK  DD  ?  ; 0CH reserved
TBRES1     DW  ?  ; 10H reserved
TBLPRI     DW  ?  ; 12H reserved
TBNEXT     DD  ?  ; 14H reserved
TBBACK     DD  ?  ; 18H reserved
TBEXT      DB   6 DUP(?)  ; 1CH pointer to user's TCB extension
TBPRI      DB  ?  ; 22H priority
TBID       DB  ?  ; 23H task ID number
TBSTAT     DW  ?  ; 24H status
TBSTACK    DW  ?  ; 26H reserved
TBFLAGS    DW  ?  ; 28H reserved
TBANEXT    DD  ?  ; 2AH reserved
TBABACK    DD  ?  ; 2EH reserved
TBRSV2     DW  ?  ; 32H reserved
TBMCBADD   DD  ?  ; 34H reserved
TBQCBADD   DD  ?  ; 38H reserved
TBPERF     DD  ?  ; 3CH reserved
TBSLICE    DW  ?  ; 40H reserved
TBLINK     DD  ?  ; 42H start of TSS (back link to previous TSS)
TBESP0     DD  ?  ; 46H TSS's ESP0
TBSS0      DD  ?  ; 4AH TSS's SS0
TBESP1     DD  ?  ; 4EH TSS's ESP1
TBSS1      DD  ?  ; 52H TSS's SS1
TBESP2     DD  ?  ; 56H TSS's ESP2
TBSS2      DD  ?  ; 5AH TSS's SS2
TBCR3      DD  ?  ; 5EH TSS's PDPR
TBEIP      DD  ?  ; 62H TSS's EIP
TBEFLAGS   DD  ?  ; 66H TSS's EFLAGS
TBEAX      DD  ?  ; 6AH TSS's EAX
TBECX      DD  ?  ; 6EH TSS's ECX
TBEDX      DD  ?  ; 72H TSS's EDX
TBEBX      DD  ?  ; 76H TSS's EBX
TBESP      DD  ?  ; 7AH TSS's ESP
TBEBP      DD  ?  ; 7EH TSS's EBP
TBESI      DD  ?  ; 82H TSS's ESI
TBEDI      DD  ?  ; 86H TSS's EDI
TBES       DD  ?  ; 8AH TSS's ES
TBCS       DD  ?  ; 8EH TSS's CS
TBSS       DD  ?  ; 92H TSS's SS
TBDS       DD  ?  ; 96H TSS's DS
TBFS       DD  ?  ; 9AH TSS's FS
TBGS       DD  ?  ; 9EH TSS's GS
TBLDT      DD  ?  ; 0A2H TSS's LDT 
TBIOBASE   DD  ?  ; 0A8H TSS's I/O BASE
TBRSV      DD   4 DUP(?)  ; 0AAH reserved
TCB        ENDS

TCBB       EQU  0BAH ; total size in bytes
TCBP       EQU    12 ; total size in paragraphs

; 
; Configuration Table

CFTBL      STRUC
CFWSSEL    DW  ?  ; 00H VRTX workspace selector
CFWSOFF    DD  ?  ; 02H reserved, must be zero
CFWSSIZE   DD  ?  ; 06H VRTX workspace size
CFSSTKSZ   DW  ?  ; 0AH system stack size per task
CFISTKSZ   DW  ?  ; 0CH interrupt stack size
CFCBCOUNT  DW  ?  ; 0EH maximum number of control blocks
CFRSVD1    DW  ?  ; 10H reserved, must be zero
CFIDLE     DW  ?  ; 12H idle task stack size
CFIOMSZ    DW  ?  ; 14H I/O map size
CFDISLEV   DW  ?  ; 16H Reserved, must be 0
CFUSTKSZ   DW  ?  ; 18H user stack size per task
CFRSRVD3   DD  ?  ; 1AH reserved, must be zero
CFUTSKCT   DW  ?  ; 1EH user task count
CFRSRVD4   DW  ?  ; 20H reserved, must be zero
CFTXRDY    DB   6 DUP(?)  ; 22H TXRDY driver routine pointer
CFTCREATE  DB   6 DUP(?)  ; 28H TCREATE routine pointer
CFTDELETE  DB   6 DUP(?)  ; 2EH TDELETE routine pointer
CFTSWITCH  DB   6 DUP(?)  ; 34H TSWITCH routine pointer
CFCVTADDR  DB   6 DUP(?)  ; 3AH component vector table pointer
CFDALO     DB   6 DUP(?)  ; 40H descriptor allocation routine pointer
CFTBL      ENDS

CFTBLB     EQU   46H ; total size in bytes
CFTBLP     EQU     5 ; total size in paragraphs
; 
; TBSTAT task status flags

TBSSUSP    EQU 0001H ; explicitly suspended
TBSMBOX    EQU 0002H ; suspended for mailbox message
TBSGETC    EQU 0004H ; suspended for character input
TBSPUTC    EQU 0008H ; suspended for character output
TBSWAITC   EQU 0010H ; suspended for special character
TBSDELAY   EQU 0020H ; suspended for task delay/timeout
TBSQUEUE   EQU 0040H ; suspended for queue message
TBSRSV1    EQU 0080H ; reserved
TBSIDLE    EQU 0100H ; idle task
TBSFLAG    EQU 0200H ; suspended for event
TBSSEMA    EQU 0400H ; suspended for semaphore unit
; 
; System-wide error codes

RET_OK     EQU 0000H ; successful return
; 
; VRTX32 error codes

ER_TID     EQU 0001H ; task ID error
ER_TCB     EQU 0002H ; no TCBs available
ER_MEM     EQU 0003H ; no memory available
ER_NMB     EQU 0004H ; not a memory block
ER_MIU     EQU 0005H ; mailbox in use
ER_ZMW     EQU 0006H ; zero message
ER_BUF     EQU 0007H ; buffer full
ER_WTC     EQU 0008H ; WAITC in progress
ER_ISC     EQU 0009H ; invalid system call
ER_TMO     EQU 000AH ; timeout
ER_NMP     EQU 000BH ; no message present
ER_QID     EQU 000CH ; queue ID error
ER_QFL     EQU 000DH ; queue full
ER_PID     EQU 000EH ; partition ID error
ER_INI     EQU 000FH ; fatal initialization error
ER_NCP     EQU 0010H ; no character present
ER_CVT     EQU 0020H ; component vector table not present
ER_COM     EQU 0021H ; undefined component
ER_OPC     EQU 0022H ; undefined opcode for component
ER_NOCB    EQU 0030H ; no control blocks available
ER_ID      EQU 0031H ; event flag group or semaphore ID error
ER_PND     EQU 0032H ; tasks pending on ev flag group/semaphore
ER_DEL     EQU 0033H ; event flag group or semaphore is deleted
ER_OVF     EQU 0034H ; event flag already set or semaphore overflow
; 

⌨️ 快捷键说明

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