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

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

?? conf_tny.a51

?? Keil uVision2
?? 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	20000	; default is 10000 cycles
;
;  Define Round-Robin Timeout in Hardware-Timer ticks.
TIMESHARING	EQU     0	; 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     1      ; 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	0FFH	; 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

; 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一区二区三区免费野_久草精品视频
蜜桃一区二区三区在线观看| 国产美女一区二区| 精品国产电影一区二区| 97久久精品人人爽人人爽蜜臀| 亚洲v中文字幕| 日本一区二区三级电影在线观看| 在线观看免费亚洲| 国内国产精品久久| 午夜精品福利在线| 综合色天天鬼久久鬼色| 午夜国产精品一区| 国产婷婷色一区二区三区在线| 欧美日韩综合不卡| gogo大胆日本视频一区| 精品中文字幕一区二区| 亚洲国产成人av网| 亚洲四区在线观看| 久久久久久夜精品精品免费| 欧美日韩精品免费| av电影一区二区| 国产乱理伦片在线观看夜一区| 亚瑟在线精品视频| 一区二区成人在线视频| 欧美激情综合在线| 久久久亚洲国产美女国产盗摄| 91精品免费在线| 欧美亚洲国产bt| 91网站在线观看视频| 丁香婷婷深情五月亚洲| 国产一区二区在线观看视频| 日本不卡在线视频| 天堂va蜜桃一区二区三区漫画版| 亚洲视频在线观看一区| 亚洲品质自拍视频| 国产精品萝li| 亚洲图片你懂的| 国产精品成人一区二区三区夜夜夜| 久久精品男人天堂av| 欧美精品一区二区精品网| 日韩一区二区三| 日韩精品一区二| 精品国产青草久久久久福利| 精品88久久久久88久久久| 日韩欧美在线123| 日韩欧美视频在线| 欧美tickle裸体挠脚心vk| 欧美精品一区二区三区一线天视频| 日韩欧美一区在线| 日韩美一区二区三区| 久久影视一区二区| 国产午夜精品美女毛片视频| 亚洲国产精品成人久久综合一区 | 欧美性xxxxxx少妇| 欧美色窝79yyyycom| 欧美色综合影院| 日韩一区二区在线免费观看| 日韩一区二区三区电影在线观看 | 91精品国产一区二区| 欧美一区二区免费观在线| 欧美一卡二卡在线观看| 久久女同互慰一区二区三区| 久久精品视频网| 亚洲视频在线一区| 婷婷中文字幕综合| 日韩一区二区三区视频在线观看 | 亚洲欧美日本韩国| 午夜精品123| 国产一区激情在线| 91欧美一区二区| 欧美另类videos死尸| 精品国产三级电影在线观看| 国产精品福利影院| 亚洲成人福利片| 国产乱码精品一区二区三区av| 成人国产精品免费观看动漫| 欧美亚洲综合另类| 久久日一线二线三线suv| 国产精品午夜电影| 日韩专区欧美专区| 国产成人午夜99999| 欧美日韩在线播放一区| 精品福利二区三区| 一区二区三区日韩欧美| 麻豆精品视频在线| av亚洲精华国产精华| 欧美一区二区三区免费视频| 亚洲国产精品成人综合| 天天色天天爱天天射综合| 国产大陆精品国产| 欧美一区二区三区四区高清| 国产精品女主播在线观看| 视频一区欧美精品| bt欧美亚洲午夜电影天堂| 欧美一级日韩免费不卡| 中文字幕一区在线观看视频| 蜜臀久久99精品久久久久宅男| 波多野结衣中文字幕一区二区三区| 欧美日韩国产一级| 最新中文字幕一区二区三区| 久久国产精品免费| 欧美亚洲日本国产| 国产精品久久久久影院亚瑟| 蜜臀a∨国产成人精品| 色乱码一区二区三区88| 国产视频一区二区在线观看| 舔着乳尖日韩一区| 91视频国产观看| 久久久蜜臀国产一区二区| 午夜精品久久久久影视| 成人高清免费在线播放| 2023国产精品| 免费久久99精品国产| 欧美亚洲国产一卡| 亚洲欧美另类小说| 成人丝袜18视频在线观看| 日韩美女天天操| 强制捆绑调教一区二区| 欧美色国产精品| 亚洲美女免费在线| 99久久久无码国产精品| 久久精品人人做| 韩国精品主播一区二区在线观看 | 亚洲欧洲日韩一区二区三区| 国产麻豆精品在线观看| 精品美女一区二区| 美国十次综合导航| 制服丝袜亚洲色图| 日韩中文字幕亚洲一区二区va在线 | 亚洲欧美激情一区二区| 成人一区二区视频| 中文字幕久久午夜不卡| 国产精品自拍在线| 久久一夜天堂av一区二区三区| 欧美精品777| 亚洲一区二区三区精品在线| 色欧美乱欧美15图片| 国产精品视频一区二区三区不卡| 处破女av一区二区| 欧美国产精品中文字幕| 成人av网站在线观看| 国产精品麻豆一区二区| 99久久精品免费看国产| 中文字幕一区av| 色综合天天性综合| 亚洲精品成人精品456| 色综合久久中文综合久久97| 一区二区三区高清在线| 在线观看视频91| 亚洲超丰满肉感bbw| 欧美一区二区三区男人的天堂| 久久99热这里只有精品| 26uuu亚洲| 国产99久久久国产精品免费看| 日本一区免费视频| 日本韩国精品一区二区在线观看| 亚洲成人免费av| 精品蜜桃在线看| 成人性生交大片免费看在线播放| 国产精品婷婷午夜在线观看| 91女厕偷拍女厕偷拍高清| 亚洲午夜久久久久久久久久久| 欧美一区永久视频免费观看| 激情综合色丁香一区二区| 日本一区二区久久| 色噜噜夜夜夜综合网| 男人的天堂久久精品| 国产偷国产偷亚洲高清人白洁| 91丨九色丨蝌蚪富婆spa| 亚洲一区二区欧美| 精品国产91亚洲一区二区三区婷婷 | 亚洲综合在线第一页| 欧美一级黄色大片| 成人av网址在线| 舔着乳尖日韩一区| 国产欧美日韩视频在线观看| 在线免费视频一区二区| 免费在线成人网| 综合亚洲深深色噜噜狠狠网站| 91精品欧美一区二区三区综合在| 福利一区福利二区| 亚洲国产人成综合网站| 国产亚洲精品中文字幕| 欧美网站一区二区| 国产一区二区三区免费| 亚洲狠狠丁香婷婷综合久久久| 欧美一三区三区四区免费在线看| 成人av在线网站| 精品一区二区三区免费视频| 专区另类欧美日韩| 精品国产一区久久| 欧美三区在线观看| 大尺度一区二区| 美女被吸乳得到大胸91| 一区二区三区成人| 国产欧美一区二区精品性| 欧美日本乱大交xxxxx| 9人人澡人人爽人人精品| 激情偷乱视频一区二区三区| 亚洲国产精品久久人人爱| 国产精品久久综合|