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

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

?? conf_tny.a51

?? 基于keil c51的rtos tiny源代碼(keil 7.05 version)
?? 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     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     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	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  ; 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一区二区三区免费野_久草精品视频
久久99精品久久久久婷婷| 欧洲亚洲国产日韩| 亚洲自拍偷拍麻豆| 中文子幕无线码一区tr| 久久久久久亚洲综合| 精品久久久久久最新网址| 欧美裸体bbwbbwbbw| 欧美日韩美少妇| 8v天堂国产在线一区二区| 欧美日韩国产综合一区二区三区| 成人黄色av电影| 9色porny自拍视频一区二区| 成人av在线影院| 91啦中文在线观看| 欧洲精品在线观看| 欧美美女黄视频| 成人短视频下载 | 日本欧美一区二区| 午夜久久久久久久久久一区二区| 亚洲免费资源在线播放| 亚洲欧美日韩成人高清在线一区| 亚洲综合一区二区三区| 日韩精品91亚洲二区在线观看| 午夜精品久久久久久久| 蜜桃传媒麻豆第一区在线观看| 久久国产精品72免费观看| 精品一区二区三区在线播放| 成人手机电影网| 欧洲一区在线观看| 日韩一区二区三区电影在线观看| 久久中文娱乐网| 亚洲欧美激情一区二区| 亚洲18色成人| 国产精品综合久久| 色久综合一二码| 日韩一区二区三区电影在线观看| 国产女同互慰高潮91漫画| 一区二区三区日韩在线观看| 免费观看在线综合| 99久久精品情趣| 日韩一级片在线播放| 国产精品美女一区二区| 轻轻草成人在线| 成人国产一区二区三区精品| 3d成人动漫网站| 国产欧美日韩久久| 日韩黄色免费电影| 一本色道综合亚洲| 久久亚洲影视婷婷| 日欧美一区二区| 不卡视频一二三四| 久久影院电视剧免费观看| 亚洲一线二线三线久久久| 国内精品写真在线观看| 欧美日韩国产片| 国产精品视频yy9299一区| 另类欧美日韩国产在线| 欧美日韩一区二区电影| 国产精品天干天干在观线| 老司机免费视频一区二区三区| 91国在线观看| **欧美大码日韩| 国产成人在线视频网站| 日韩视频一区在线观看| 五月综合激情婷婷六月色窝| 91在线免费看| 中文一区一区三区高中清不卡| 精品无码三级在线观看视频| 欧美日韩国产经典色站一区二区三区| 国产精品国产a| 成人免费视频视频在线观看免费| 日韩精品影音先锋| 奇米精品一区二区三区在线观看一| 欧美最猛性xxxxx直播| 成人欧美一区二区三区小说 | 国产精品99久久不卡二区| 3atv在线一区二区三区| 午夜精品福利视频网站| 欧美视频完全免费看| 亚洲一二三四区不卡| 欧美最猛黑人xxxxx猛交| 亚洲永久免费视频| 欧美日韩国产影片| 日韩1区2区3区| 欧美一级日韩一级| 另类小说综合欧美亚洲| 久久综合九色综合欧美98| 国产精品一区二区久久不卡 | 色综合夜色一区| 亚洲精品老司机| 欧美日韩精品电影| 免费成人深夜小野草| 久久婷婷国产综合精品青草| 国产精品一区二区久久不卡| 中文字幕av一区二区三区| av成人免费在线观看| 一区二区三区在线影院| 欧美精品久久一区二区三区| 久久99精品国产.久久久久| 国产色婷婷亚洲99精品小说| 99riav一区二区三区| 亚洲国产精品一区二区久久| 欧美一区二区视频在线观看2020 | www激情久久| 成人网在线播放| 图片区日韩欧美亚洲| 亚洲精品一区二区三区精华液| 丁香另类激情小说| 亚洲高清久久久| 精品国产成人系列| 91在线看国产| 免费在线看一区| 国产精品久久久久9999吃药| 欧美三级电影一区| 国产一区二区精品久久91| 一区二区三区精品视频| 日韩免费视频一区| 色偷偷久久人人79超碰人人澡| 五月激情综合网| 国产精品久久久久久户外露出| 在线观看91av| 成人高清免费观看| 日韩成人午夜电影| 成人欧美一区二区三区黑人麻豆| 91精品国产色综合久久不卡电影 | 国产亚洲一区二区三区| 一本到三区不卡视频| 美国毛片一区二区| 亚洲最大成人网4388xx| 久久精品免视看| 777色狠狠一区二区三区| 91在线观看视频| 国产一区不卡在线| 久99久精品视频免费观看| 亚洲午夜在线观看视频在线| 欧美国产一区二区| www国产亚洲精品久久麻豆| 欧美日高清视频| 色成人在线视频| 99精品黄色片免费大全| 国产激情一区二区三区桃花岛亚洲| 亚洲国产毛片aaaaa无费看| 一区精品在线播放| 亚洲国产成人午夜在线一区| 精品国产一区二区三区不卡| 7777精品伊人久久久大香线蕉的 | 首页国产丝袜综合| 夜夜嗨av一区二区三区| 国产精品久久久久久户外露出 | 中文字幕免费不卡在线| 日韩免费性生活视频播放| 3atv一区二区三区| 在线不卡中文字幕播放| 欧美精品三级日韩久久| 欧美日韩精品一区二区天天拍小说| 色综合久久综合网97色综合| 91小视频在线| 色综合天天综合狠狠| 91久久精品一区二区三区| 91麻豆国产精品久久| 欧美亚洲综合久久| 欧美精品一卡两卡| 日韩一区二区在线观看视频 | 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 在线成人av影院| 91精品国产一区二区三区蜜臀| 欧美另类一区二区三区| 欧美一区二区福利在线| 精品免费国产二区三区| 久久久www成人免费无遮挡大片| 久久综合狠狠综合久久激情| 欧美国产国产综合| 中文字幕在线观看一区| 亚洲摸摸操操av| 日本sm残虐另类| 国产黄色精品视频| 色哟哟精品一区| 欧美一区二区私人影院日本| 国产三级一区二区| 亚洲精品欧美激情| 青娱乐精品在线视频| 一本久道久久综合中文字幕| 欧美精品粉嫩高潮一区二区| 欧美成人性福生活免费看| 国产精品毛片久久久久久久| 一区二区三区四区激情| 麻豆精品视频在线观看视频| 国产精品夜夜嗨| 欧美色大人视频| 国产婷婷色一区二区三区| 亚洲国产综合视频在线观看| 黄色资源网久久资源365| 色8久久精品久久久久久蜜| 精品久久久久久久久久久久包黑料| 欧美国产乱子伦| 日韩精品电影一区亚洲| 91在线国内视频| 日韩一区二区精品葵司在线| 亚洲图片欧美激情| 国产在线视视频有精品|