亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? conf_tny.a51

?? TRX51 多任務實時操作系統
?? A51
?? 第 1 頁 / 共 2 頁
字號:
$NOMOD51
;------------------------------------------------------------------------------
;  This file is part of the RTX-51 TINY  Real-Time Operating System Package
;  Copyright KEIL ELEKTRONIK GmbH and Keil Software, Inc. 1991-2002
;  Version 2.01
;------------------------------------------------------------------------------
;  CONF_TNY.A51:  This code allows the configuration of the
;                 RTX-51 TINY Real-Time Operating System
;
;  Copy this file to your project folder and add the copy to your uVision2
;  project.  You can customize several parameters of RTX51 Tiny within this
;  configuration file.
;
;  If you use command line tools, translate this file with:
;
;     Ax51 CONF_TNY.A51
;
;  If you use command line tools, link the modified CONF_TNY.OBJ file to 
;  your application with:
;
;     Lx51 <your object file list>, CONF_TNY.OBJ <controls>
;
;------------------------------------------------------------------------------
;
;  RTX-51 TINY Hardware-Timer
;  ==========================
;
;  With the following EQU statements the initialization of the RTX-51 TINY
;  Hardware-Timer can be defined (RTX-51 TINY uses the 8051 Timer 0 for 
;  controlling RTX-51 software timers).
;
;  Define the register bank used for the timer interrupt.
INT_REGBANK	EQU	    1	; default is Registerbank 1
;
;  Define Hardware-Timer tick time in 8051 machine cycles.
INT_CLOCK	EQU	    10000	; default is 10000 cycles
;
;  Define Round-Robin Timeout in Hardware-Timer ticks.
TIMESHARING	EQU     5	; default is 5 Hardware-Timer ticks.
;		                ; 0 disables Round-Robin Task Switching
;
;  Long User Interrupt Routines: set to 1 if your application contains 
;  user interrupt functions that may take longer than a hardware timer 
;  interval for execution.
LONG_USR_INTR	EQU	 0	; 0 user interrupts execute fast.
;                               ; 1 user interrupts take long execution times.
;
;
;------------------------------------------------------------------------------
;
;  USER CODE FOR 8051 HARDWARE TIMER INTERRUPT
;  ===========================================
;
;  The following macro defines the code executed on a hardware timer interrupt.
;
;  Define instructions executed on a hardware timer interrupt.
HW_TIMER_CODE	MACRO
				; Empty Macro by default
		RETI
		ENDM
;
;
;------------------------------------------------------------------------------
;
;  CODE BANKING SUPPORT
;  ====================
;
;  The following EQU statement controls the code banking support for RTX51 TINY.
;
;  Enable or disable code banking support
CODE_BANKING     EQU     0      ; 0 (default) application uses no code banking
;                               ; 1 application uses code banking
;
;------------------------------------------------------------------------------
;
;  RTX-51 TINY Stack Space
;  =======================
;
;  The following EQU statements defines the size of the internal RAM used
;  for stack area and the minimum free space on the stack.  A macro defines
;  the code executed when there is there is not enough free stack on the
;  CPU stack.
;
;  Define the highest RAM address used for CPU stack
RAMTOP		EQU	 07FH	; default is address (256-1)
;
FREE_STACK	EQU	 20	; default is 20 bytes free space on stack
;                               ; the value 0 disables stack checking
;
STACK_ERROR	MACRO
		CLR	EA	; disable interrupts
		SJMP	$	; endless loop if stack space is exhausted
		ENDM
;
;
;------------------------------------------------------------------------------
;
;  8051 CPU IDLE CODE
;  ==================
;
;  Many 8051 devices provide an IDLE MODE that reduces power consumption and
;  EMC.  The following macro defines the code executed when there is no 
;  ready task in the system.  The code must set the CPU into an IDLE MODE
;  that stops instruction execution until an 8051 hardware interrupt occurs. 
;

; Disable or Enable CPU_IDLE CODE
CPU_IDLE_CODE   EQU     1       ; 0  CPU_IDLE MACRO is not inserted
                                ; 1  CPU_IDLE MACRO is executed

PCON            DATA    087H    ; Power Control SFR on most 8051 devices

; Stop CPU execution until hardware interrupt; executed when there is no 
; active task in the system. 
CPU_IDLE	MACRO
		    ORL	PCON,#1	; set 8051 CPU to IDLE
		    ENDM
;
;
;------------------------------------------------------------------------------
;----------------- !!! End of User Configuration Part    !!! ------------------
;----------------- !!! Do not modify code sections below !!! ------------------
;------------------------------------------------------------------------------

; SFR Symbols
PSW     DATA    0D0H
ACC     DATA    0E0H
B       DATA    0F0H
SP      DATA    81H
DPL     DATA    82H
DPH     DATA    83H
TCON    DATA    88H
TMOD    DATA    89H
TL0     DATA    8AH
TL1     DATA    8BH
TH0     DATA    8CH
TH1     DATA    8DH
IE      DATA    0A8H

; TCON
TF1     BIT     8FH
TR1     BIT     8EH
TF0     BIT     8DH
TR0     BIT     8CH
IE1     BIT     8BH
IT1     BIT     8AH
IE0     BIT     89H
IT0     BIT     88H
; IE 
EA      BIT     0AFH
ES      BIT     0ACH
ET1     BIT     0ABH
EX1     BIT     0AAH
ET0     BIT     0A9H
EX0     BIT     0A8H

; Check Configuration Values


		NAME	?RTX51_TINY_KERNAL

PUBLIC	?RTX_CURRENTTASK 
PUBLIC	?RTX_RAMTOP
PUBLIC  os_switch_task
PUBLIC  ?RTX?SET_ISR

EXTRN	NUMBER (?RTX_MAXTASKN)		; max Task Number

?RTX_RAMTOP   EQU   RAMTOP
?RTX_CLOCK	  EQU	-INT_CLOCK

?RTX_REGISTERBANK EQU	INT_REGBANK * 8
		   DSEG	  AT    ?RTX_REGISTERBANK
		    DS	 2     ; temporary space
?RTX_SAVEACC:     DS	1
saveacc		     EQU	R2    ; for access in interrupt service routine
?RTX_SAVEPSW:     DS	1
savepsw		     EQU	R3    ; for access in interrupt service routine
?RTX_CURRENTTASK: DS	1
currenttask       EQU	R4    ; for access in interrupt service routine

IF (TIMESHARING <> 0)
?RTX_ROBINTIME:   DS	1
robintime	      EQU	R5    ; for access in interrupt service routine
ENDIF

IF (CODE_BANKING <> 0)
EXTRN	DATA	(?B_CURRENTBANK)
EXTRN   CODE    (?B_RESTORE_BANK)
ENDIF


;------------------------------------------------
; Table of Task Entry Pointers
;------------------------------------------------
PUBLIC	?RTX_TASKENTRY

?RTX?TASKENT?S  SEGMENT CODE
		RSEG	?RTX?TASKENT?S
?RTX_TASKENTRY:	DS	2

;------------------------------------------------
; Table of Stack Pointers for each task
;------------------------------------------------
PUBLIC	?RTX_TASKSP

?RTX?TASKSP?S   SEGMENT	IDATA
		RSEG	?RTX?TASKSP?S
?RTX_TASKSP:	DS	1

;------------------------------------------------
; Table of Task Timer/State Pointers
;------------------------------------------------
PUBLIC	?RTX_TASKSTATUS

?RTX?TASKSTATE?S  SEGMENT IDATA
		  RSEG	  ?RTX?TASKSTATE?S
?RTX_TASKSTATUS:
TimerVal:	DS	1	; Task Timer (Software Timer for each task)
TaskState:	DS	1       ; Task Status (state of each Task)

; Definitions for Bits in Task State
;  TaskState.0  = Wait for Signal
;  TaskState.1  = Wait for TimeOut
;  TaskState.2  = Signal Flag
;  TaskState.3  = TimeOut Flag
;  TaskState.4  = Task Ready (Wait for Running)
;  TaskState.5  = Task Active (enabled with os_create)
;  TaskState.6  = Round Robin Time Out
;  TaskState.7  = Run Flag

; byte mask definitions
K_SIG	        EQU	1
K_TMO	        EQU	2
SIG_EVENT	    EQU	4
TMO_EVENT	    EQU	8  
K_READY		    EQU	16
K_ACTIVE	    EQU	32
K_ROBIN		    EQU	64
K_IVL           EQU 128  ; not a task state bit; only used in os_wait
RDY_EVENT       EQU 128  ; READY status flag
K_RDY           EQU 128  ; READY status flag

; bit position definitions
B_WAITSIG	EQU	 0
B_WAITTIM	EQU	 1
B_SIGNAL	EQU	 2
B_TIMEOUT	EQU	 3
B_READY		EQU	 4
B_ACTIVE	EQU	 5
B_ROBIN		EQU	 6
B_IVL       EQU  7    ; not a task state bit; only used in os_wait
B_RDY       EQU  7


IF (TIMESHARING OR CPU_IDLE_CODE)
?RTX?BITS	SEGMENT	BIT
		RSEG	?RTX?BITS
ENDIF

IF (TIMESHARING)
?RTX_TS_DELAY:	DBIT	1       ; Status bit set when task switch in progress
ENDIF

IF (CPU_IDLE_CODE)
?RTX_ISR_SIG:	DBIT	1	; Status bit set when interrupt or os_set_signal
ENDIF


		CSEG	AT	0BH
                JMP	TIMERINT

?RTX?CODE       SEGMENT CODE
                RSEG	?RTX?CODE
		USING	0		; Registerbank 0 for following code

IF (FREE_STACK <> 0)
?RTX_STACKERROR:
                STACK_ERROR             ; User defined Stack Error Code
ENDIF

HW_TIMER:	HW_TIMER_CODE

TIMERINT:

IF (LONG_USR_INTR)
		PUSH	ACC
		MOV	A,PSW
		ANL	A,#018H
		XRL	A,#?RTX_REGISTERBANK
		JNZ	CONT_TIMINT
; avoid recursive timer interrupt
		POP	ACC
		RETI		; Return from Recursive Timer Interrupt
CONT_TIMINT:    POP	ACC

ENDIF

		CALL	HW_TIMER	; Enable Interrupts again.

		MOV	?RTX_SAVEPSW,PSW
		MOV	PSW,#?RTX_REGISTERBANK
		MOV	saveacc,A
; Update 8051 Interrupt Timer
		CLR	TR0
		MOV	A,TL0
		ADD	A,#LOW (?RTX_CLOCK + 7)
		MOV	TL0,A
		MOV	A,TH0
		ADDC	A,#HIGH (?RTX_CLOCK + 7)
		MOV	TH0,A
		SETB	TR0

IF (FREE_STACK <> 0)
; Check if enough free stack is available
		MOV	A,currenttask
		ADD	A,#?RTX?TASKSP?S+1
		MOV	R0,A
		MOV	A,@R0
		CJNE	currenttask,#?RTX_MAXTASKN,checkstack
		MOV	A,#RAMTOP
checkstack:	CLR	C
		SUBB	A,SP
		CJNE	A,#FREE_STACK,$+3
		JC	?RTX_STACKERROR
ENDIF

; Update & Check Task Timers
		MOV	R1,#?RTX_MAXTASKN+1
		MOV	R0,#?RTX?TASKSTATE?S
TIMERLOOP:	DEC	@R0          ; Decrement timer
		MOV	A,@R0
		INC	R0           ; advance to TaskState
		JNZ	NoTimeout
		CLR	EA
		MOV	A,@R0
		JNB	ACC.B_WAITTIM,NoWaitTimeout
		ORL	A,#(K_READY+TMO_EVENT)
		MOV	@R0,A
NoWaitTimeout:  SETB	EA
NoTimeout:	INC	R0           ; advance to TaskTimer
		DJNZ	R1,TIMERLOOP

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产免费观看久久| 国产精品夜夜爽| 亚洲国产成人tv| 亚洲一区二区三区免费视频| 亚洲精品国产高清久久伦理二区| 1024成人网| 依依成人精品视频| 亚洲成av人片www| 日韩高清一区二区| 精品伊人久久久久7777人| 美国三级日本三级久久99| 久久电影国产免费久久电影| 久久99这里只有精品| 国产一区二区三区在线观看精品| 国产麻豆精品视频| 成人avav影音| 在线精品视频一区二区| 欧美精品久久久久久久久老牛影院 | 国产一区视频导航| 成人午夜激情影院| 一本久道中文字幕精品亚洲嫩| 色婷婷国产精品| 欧美视频你懂的| 欧美一级黄色录像| 国产亚洲精品7777| 亚洲人123区| 视频一区在线视频| 国产一区二区福利视频| 不卡的看片网站| 欧美日韩视频在线第一区| 日韩欧美亚洲国产另类| 久久精品人人做| 亚洲精品va在线观看| 人人狠狠综合久久亚洲| 国产成人自拍网| 欧美系列在线观看| 欧美白人最猛性xxxxx69交| 国产精品你懂的在线欣赏| 亚洲精选视频免费看| 蜜臀va亚洲va欧美va天堂| 成人晚上爱看视频| 欧美日韩国产大片| 欧美激情一区二区三区在线| 亚洲一区二三区| 国产精品一区二区久久精品爱涩| 91在线看国产| 欧美成人一区二区三区片免费| 国产精品不卡一区二区三区| 亚洲高清三级视频| 国产精品一二三四五| 欧美性色欧美a在线播放| 久久亚洲综合av| 一区二区三区国产豹纹内裤在线| 久久国产三级精品| 在线免费观看不卡av| 精品国产乱码久久久久久浪潮| 亚洲另类春色校园小说| 在线电影国产精品| 国产精品美女久久久久久2018| 中文子幕无线码一区tr| 亚洲乱码日产精品bd| 国产一区二区视频在线播放| 国产欧美精品区一区二区三区| 国产精品久久久久aaaa樱花| 蜜桃av一区二区三区| 色菇凉天天综合网| 国产人成亚洲第一网站在线播放| 性做久久久久久久免费看| 国产黄色成人av| 欧美一区二视频| 一区二区三区久久| av电影一区二区| 久久久91精品国产一区二区精品| 亚洲123区在线观看| 91麻豆精品在线观看| 国产丝袜美腿一区二区三区| 男人的天堂久久精品| 欧美日韩一区二区三区免费看| 国产精品色哟哟网站| 黑人精品欧美一区二区蜜桃| 91麻豆精品国产91久久久久| 亚洲精品中文在线观看| 成人一二三区视频| 国产午夜精品美女毛片视频| 九九精品视频在线看| 欧美一级黄色录像| 色久优优欧美色久优优| 欧美激情综合五月色丁香小说| 久久成人羞羞网站| 日韩欧美一级二级| 蜜臀久久久久久久| 欧美一区二区视频观看视频| 午夜影院久久久| 欧美精三区欧美精三区| 亚洲国产三级在线| 欧美日韩一级片网站| 亚洲国产一二三| 欧美性猛交xxxx乱大交退制版| 亚洲美女淫视频| 91性感美女视频| 国产精品超碰97尤物18| 91在线国产福利| 最新国产の精品合集bt伙计| 岛国精品在线观看| 国产精品成人网| 色激情天天射综合网| 亚洲欧美日韩一区二区三区在线观看| 99久久婷婷国产综合精品| 国产精品女上位| 色香蕉久久蜜桃| 亚洲国产视频一区| 91精品国产福利| 蜜臀av性久久久久蜜臀aⅴ| 日韩欧美自拍偷拍| 狠狠色综合色综合网络| 国产午夜精品一区二区| 成人av网址在线| 一区二区三区四区亚洲| 在线看国产一区| 视频一区二区三区在线| 日韩欧美一级在线播放| 国产成人午夜99999| 中日韩av电影| 91麻豆产精品久久久久久| 亚洲高清一区二区三区| 日韩精品一区二区三区视频在线观看| 久久99精品久久只有精品| 久久久777精品电影网影网| 成人国产视频在线观看| 亚洲一区二区三区四区五区黄| 51精品秘密在线观看| 国产一二三精品| 中文字幕综合网| 69堂国产成人免费视频| 国产精品99久久久久久似苏梦涵| 激情综合色综合久久综合| 国产拍欧美日韩视频二区 | 久久一夜天堂av一区二区三区| 国产福利一区二区三区视频在线| 日韩理论片一区二区| 欧美日韩国产另类一区| 国产伦精品一区二区三区免费迷| 国产精品激情偷乱一区二区∴| 欧美亚洲精品一区| 国产真实乱对白精彩久久| 中文字幕在线不卡| 7878成人国产在线观看| 国产经典欧美精品| 亚洲成人激情自拍| 中文乱码免费一区二区| 欧美色手机在线观看| 国产精品一区二区在线看| 亚洲高清视频中文字幕| 国产三级一区二区| 欧美日韩高清一区二区三区| 国产麻豆精品在线观看| 亚洲mv在线观看| 国产亚洲成av人在线观看导航 | 国产午夜精品一区二区三区嫩草| 在线视频亚洲一区| 国产成人鲁色资源国产91色综| 亚洲综合小说图片| 国产亚洲精久久久久久| 在线成人午夜影院| 97久久超碰国产精品| 狠狠色丁香久久婷婷综合_中| 亚洲精品国产一区二区精华液| 2024国产精品| 欧美精品三级日韩久久| 91在线码无精品| 国产精品香蕉一区二区三区| 日韩国产精品久久久久久亚洲| 国产精品久久毛片av大全日韩| 日韩三区在线观看| 欧美午夜理伦三级在线观看| 成人在线综合网站| 麻豆国产精品官网| 丝袜美腿亚洲综合| 亚洲色图制服诱惑 | 国产成人精品一区二区三区四区 | 97精品电影院| 国产精品1024| 精品亚洲aⅴ乱码一区二区三区| 亚洲一卡二卡三卡四卡五卡| 综合久久久久久久| 国产精品毛片久久久久久| 精品国产乱码久久久久久闺蜜| 欧美日韩高清一区二区不卡 | 久久综合狠狠综合| 日韩一区二区在线看| 欧美日本不卡视频| 欧美综合在线视频| 色综合天天在线| 99久久精品情趣| 国产成人免费视频一区| 国产精品一区二区久久不卡 | 韩国三级电影一区二区| 欧美aⅴ一区二区三区视频| 亚洲va韩国va欧美va| 亚洲午夜一区二区|