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

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

?? adb7t.s

?? AMX操作系統源碼
?? S
字號:
	TTL	ADB7T, ARM Development Board (ARM7TDMI) Support
;	*************************************************		*/
;	*						*		*/
;	*	AMX 4-Thumb Multitasking Kernel		*		*/
;	*	ARM7TDMI ADB Board Support		*		*/
;	*						*		*/
;	*************************************************		*/
;									*/
;	Copyright (c) 1997-1999						*/
;	KADAK Products Ltd.						*/
;	Vancouver, B.C., Canada						*/
;									*/
;	All rights reserved.						*/
;									*/
;   This document and source file contains CONFIDENTIAL INFORMATION	*/
;   or trade secrets, or both, which are the property of KADAK		*/
;   Products Ltd. This document and source file is subject to the	*/
;   terms and conditions of the KADAK Products Ltd. Software License	*/
;   Agreement which restricts the manner in which it may be used.	*/
;									*/
;	Release Date:	November 1, 1997				*/
;	Revised:	August 15, 1998					*/
;			Correct comments				*/
;	Revised:	December 1, 1999				*/
;			Revise AREA parameters				*/
;
;	INCLUDE	CJZZZK.DEF	; Kernel assembler definitions
;
	INCLUDE	CJZZZK.DEF
;
;	.eject	# ------------------------------------------------------
; Support for the ARM Development Board (ARM7TDMI)
;
; Devices on this board include:
;
; ST16C552 -
;	Two 16 deep FIFO serial ports
;	One parallel port
;
; One custom logic FPGA device -
;	One interrupt controller (see ARM Reference Peripherals Spec)
;	Two counter/timers (see ARM Reference Peripherals Spec)
;
; Memory map:
;	0x0A000000	Interrupt Controller base
;	0x0A800000	Counter/Timer base
;
; The ARM core supports one regular interrupt (IRQ) and one fast
; interrupt (FIQ).  The ARM Development Board (ARM7TDMI) supports multiple
; IRQ interrupts through an external interrupt controller.
;
; The IRQ interrupt controller uses a bit position for each different
; interrupt source and bit positions are defined for a software programmed
; interrupt, communication channels, timers, PC Card slots, and for
; the Advanced System Bus (ASB) and Advanced Peripheral Bus (APB).
; Bit 0 is unassigned in the IRQ controller so that it may share the
; same interrupt source as the FIQ controller.
; All IRQ interrupt source inputs are active HIGH and level sensitive.
; Any inversion or latching required to provide edge sensitivity must
; be provided at the generating source of the interrupt.
; A hardware priority scheme and automatic interrupt vectoring are not
; provided because these functions can be provided in software.
; A programmed interrupt register is provided to generate an interrupt
; under software control.  This software interrupt is typically used
; to downgrade an FIQ interrupt to an IRQ interrupt.
;
;	.eject	# ------------------------------------------------------
; Set symbol KNEST to be non-zero if interrupt nesting is required.
; Interrupt nesting requires saving, setting and restoring of the
; interrupt disable mask for interrupt prioritization purposes.
;
; The state of KNEST must match the setting on the "Interrupts"
; property page in your Target Parameter File.
; If KNEST is 1, the IIP in this module will use 4 bytes of history storage.
;
;
; Definitions
;
KNEST		EQU	1		; Interrupt nesting is required
;					; (0/1 = no/yes)
ICBASE		EQU	0x0A000000	; Interrupt Controller base address
IRQSTAT		EQU	0x000		; IRQ status (read)
IRQRAWSTAT	EQU	0x004		; IRQ raw status (read)
IRQENABLE	EQU	0x008		; IRQ enable (read)
IRQENSET	EQU	0x008		; IRQ enable set (write)
IRQENCLR	EQU	0x00C		; IRQ enable clear (write)
IRQSOFT		EQU	0x010		; Programmed IRQ interrupt (write)
FIQSTAT		EQU	0x100		; FIQ status (read)
FIQRAWSTAT	EQU	0x104		; FIQ raw status (read)
FIQENABLE	EQU	0x108		; FIQ enable (read)
FIQENSET	EQU	0x108		; FIQ enable set (write)
FIQENCLR	EQU	0x10C		; FIQ enable clear (write)
FIQSOURCE	EQU	0x114		; FIQ interrupt source (read/write)
;
;					; IRQ status and enable bit masks
TMR1M		EQU	0x00000010	; Timer 1 interrupt bit mask
TMR2M		EQU	0x00000020	; Timer 2 interrupt bit mask
TMR1BN		EQU	4		; Timer 1 interrupt bit number
TMR2BN		EQU	5		; Timer 2 interrupt bit number
;
CTBASE		EQU	0x0A800000	; Counter/timer base address
CT1LOAD		EQU	0x00		; Timer 1 reload value (read/write)
CT1VALUE	EQU	0x04		; Timer 1 current value (read)
CT1CTRL		EQU	0x08		; Timer 1 control (read/write)
CT1CLEAR	EQU	0x0C		; Timer 1 clear interrupt (write)
CT2LOAD		EQU	0x20		; Timer 2 reload value (read/write)
CT2VALUE	EQU	0x24		; Timer 2 current value (read)
CT2CTRL		EQU	0x28		; Timer 2 control (read/write)
CT2CLEAR	EQU	0x2C		; Timer 2 clear interrupt (write)
;
;					; Counter/timer control bit masks
CTRLDIV1	EQU	0x00000000	; Divide by 1 prescale
CTRLDIV16	EQU	0x00000040	; Divide by 16 prescale
CTRLDIV256	EQU	0x00000080	; Divide by 256 prescale
CTRLMPERIOD	EQU	0x00000400	; Periodic timer mode
CTRLENABLE	EQU	0x00000800	; Timer enable
;
;	.eject	# ------------------------------------------------------
; Instruction and Data Cache definitions
;
KCCCMD		EQU	0xC0000000	; Cache control command
;					; (see function chXXXcache)
;					; Select i-cache and d-cache
;					; Leave caches disabled
;
;
;	*****************
;	*		*
;	* Start of ROM  *
;	*		*
;	*****************
;
;
; External references
;
	IMPORT	cjcfhwdelay	; I/O delay
	IMPORT	cjcfin8		; Read I/O byte
	IMPORT	cjcfout8	; Write I/O byte
	IMPORT	cjcfhwpcache	; Fetch cache parameters
	IMPORT	chv4rcache	; Cache Control Services
;
	IF (:DEF:K_THUMB211)
	AREA	|ASM$$code|,CODE,READONLY,INTERWORK
	ELSE
	AREA	|ASM$$code|,CODE,READONLY
	ENDIF
;
;	.eject	# ------------------------------------------------------
; chbrdinit - Initialize the ARM Development Board (ARM7TDMI)
;
; void CJ_CCPP chbrdinit(void) {}
;
; Note:	This procedure programs the interrupt controller to
;	disable ALL interrupt sources.
;
; Setup:	None
; Return:	a1..a4, ip, flags can be altered
;		Interrupts are disabled and are then
;		restored to their state upon entry.
;
	EXPORT	chbrdinit
chbrdinit EQU	.
	STMDB	sp!,{v1,lr}
;
; 	Note:	If you want the caches to be initialized,
;		delete the following branch instruction.
;		The cache initialization will invalidate and disable
;		both the instruction and data caches.
;		If the data cache is currently enabled,
;		it will be flushed.
;
	B	CHBRDX
;
	MOV	a1,#0			; a1 = 0 = NULL pointer
	BL	cjcfhwpcache		; Fetch cache parameters
;
; The following cache configuration parameters from the
; AMX Target Configuration Module have been loaded into registers:
; a2 = instruction cache total size (bytes)
; a3 = instruction cache line size (bytes)
; a4 = data cache total size (bytes)
; ip = data cache line size (bytes)
;
	STMDB	sp!,{ip}		; Push parameter on stack
	LDR	a1,=KCCCMD		; a1 = cache control command
;
	MRS	v1,CPSR			; v1 = current interrupt state
	ORR	lr,v1,#K_PSCIRQ:OR:K_PSCFIQ
	MSR	CPSR_c,lr		; -----disable interrupts
	BL	chv4rcache		; Initialize caches
	MSR	CPSR_c,v1		; -----restore interrupts
	ADD	sp,sp,#4		; Clean stack
;
CHBRDX	MOV	a4,#ICBASE		; Interrupt controller base address
	MOV	a3,#0xFFFFFFFF
	STR	a3,[a4,#IRQENCLR]	; Disable all interrupt sources
	IF	(K_THUMB<>0)
	LDMIA	sp!,{v1,lr}
	BX	lr
	ELSE
	LDMIA	sp!,{v1,pc}
	ENDIF
;
;	.eject	# ------------------------------------------------------
; chclken/chclkdis - Enable/disable clock interrupts
;
; void CJ_CCPP chclken(int tmrnum) {}
; void CJ_CCPP chclkdis(int tmrnum) {}
;
; Setup:	Interrupts must be disabled
;		a1 = tmrnum (1 or 2)
; Return:	a1..a4, ip, flags can be altered
;		Interrupts are untouched
;
	EXPORT	chclken
chclken	EQU	.
	SUB	a4,a1,#1		; Zero based timer number
	CMP	a4,#1
	IF	(K_THUMB<>0)
	BXHI	lr			; Return if timer number is invalid
	ELSE
	MOVHI	pc,lr			; Return if timer number is invalid
	ENDIF
;
	MOV	a4,#ICBASE		; Interrupt controller base address
	MOV	a3,a1,LSL #TMR1BN	; Timer bit of interest
	STR	a3,[a4,#IRQENSET]	; Enable timer
	IF	(K_THUMB<>0)
	BX	lr
	ELSE
	MOV	pc,lr
	ENDIF
;
	EXPORT	chclkdis
chclkdis EQU	.
	SUB	a4,a1,#1		; Zero based timer number
	CMP	a4,#1
	IF	(K_THUMB<>0)
	BXHI	lr			; Return if timer number is invalid
	ELSE
	MOVHI	pc,lr			; Return if timer number is invalid
	ENDIF
;
	MOV	a4,#ICBASE		; Interrupt controller base address
	MOV	a3,a1,LSL #TMR1BN	; Timer bit of interest
	STR	a3,[a4,#IRQENCLR]	; Disable timer
	IF	(K_THUMB<>0)
	BX	lr
	ELSE
	MOV	pc,lr
	ENDIF
;
;	.eject	# ------------------------------------------------------
; chadb7tirq - Interrupt Identification Procedure
; (for external IRQ vector)
;
; Setup:	IRQ interrupts are disabled
;		FIQ interrupts may be disabled
;		sp = A(4 bytes of PIC state storage)
;		lr[0] = device service entry/exit indicator
;		    = 0 if entering device service
;		    = 1 if exiting device service
; Return:	If entering device service
;		    a1 = interrupt number (0..IRQMAX)
;			= -2 if interrupt number cannot be derived
;		a2..a4, ip, flags can be altered
;		Interrupts are untouched
;
; If entering device service
;	Do a linear search for highest priority pending IRQ interrupt
;		(bit 0 of IRQ status is highest, bit 15 is lowest)
;	If no pending IRQ requests are found
;		Error: return device interrupt number = -2
;	Else
;		Save current IRQ mask
;		Mask off all lower priority interrupts
;		Return device interrupt number
; Else (device service exit)
;	Restore IRQ mask from saved copy
;	
;
	EXPORT	chadb7tirq
chadb7tirq EQU	.
	IF	(KNEST<>0)
	TST	lr,#1
	BNE	KIRQ3			; Device service exit
	ENDIF
;
	MOV	a2,#ICBASE		; Interrupt controller base address
	LDR	a4,[a2,#IRQSTAT]	; a4 = IRQ status
	MOV	a1,#-1			; Bit counter
	MOVS	a3,a4,LSL #16		; Clear MS 16 bits, test result
	BEQ	KIRQ2			; Source of interrupt is unknown
;
KIRQ1	MOVS	a4,a4,LSR #1		; Bit 0 is highest priority
	ADD	a1,a1,#1
	BCC	KIRQ1			; Continue until set bit is found
;
	IF	(KNEST<>0)
	LDR	a4,[a2,#IRQENABLE]	; a4 = IRQ enable mask
	ADR	a3,KIRQ9		; a3 = A(interrupt masks)
	ADD	a3,a3,a1,LSL #1		; Use IRQ priority as word index
	LDRH	a3,[a3]			; a3 = priority interrupt mask
	STRH	a4,[sp]			; Save current enable mask
	STR	a3,[a2,#IRQENCLR]	; Disable all lower priority ints
	ENDIF
	MOV	pc,lr			; Return; a1 = highest priority IRQ #
;
KIRQ2	MOV	a1,#-2			; Interrupt cause not found
	MOV	pc,lr
;
	IF	(KNEST<>0)
KIRQ3	LDRH	a4,[sp]			; a4 = saved enable mask
	MOV	a2,#ICBASE		; Interrupt controller base address
	STR	a4,[a2,#IRQENSET]	; Restore interrupt enable status
	BIC	pc,lr,#1		; Return
;
; Priority ordered interrupt disable masks
;
KIRQ9	DCW	0xFFFF			; Highest priority
	DCW	0xFFFE
	DCW	0xFFFC
	DCW	0xFFF8
	DCW	0xFFF0
	DCW	0xFFE0
	DCW	0xFFC0
	DCW	0xFF80
	DCW	0xFF00
	DCW	0xFE00
	DCW	0xFC00
	DCW	0xF800
	DCW	0xF000
	DCW	0xE000
	DCW	0xC000
	DCW	0x8000			; Lowest priority
	ENDIF
;
;
; End of File
	END

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品视频在线看| 中国色在线观看另类| 久久免费美女视频| 久久se这里有精品| 日韩一区二区在线看| 亚洲在线免费播放| 在线免费av一区| 一区二区三区在线视频观看| 成人黄色在线网站| 日韩一区二区三区视频在线观看| 亚洲另类色综合网站| 成人在线综合网站| 久久综合网色—综合色88| 日韩国产精品久久| 欧美一区二区在线观看| 日韩高清一级片| 日韩午夜在线影院| 国产在线一区二区综合免费视频| 久久久综合视频| 国产成人啪午夜精品网站男同| 国产三级欧美三级日产三级99| 狠狠色丁香婷婷综合| 中文字幕高清不卡| 成人av在线播放网址| 中文字幕亚洲在| 欧美色爱综合网| 美女国产一区二区| 久久久久久久综合色一本| 成人少妇影院yyyy| 亚洲精品v日韩精品| 欧美精品777| 国产精品一区二区久激情瑜伽 | 国产精品亚洲成人| 一区在线观看免费| 欧美特级限制片免费在线观看| 亚洲www啪成人一区二区麻豆| 日韩欧美在线1卡| 成熟亚洲日本毛茸茸凸凹| 亚洲色图都市小说| 欧美一区二区三区喷汁尤物| 国产黑丝在线一区二区三区| 亚洲欧美偷拍三级| 日韩精品一区在线| 色综合婷婷久久| 老司机精品视频线观看86| 欧美极品aⅴ影院| 欧美色男人天堂| 日本美女一区二区三区视频| 久久亚洲精华国产精华液| 国产精品一区二区无线| 最新久久zyz资源站| 在线中文字幕一区| 日韩av高清在线观看| 久久久99精品免费观看| 国产91精品免费| 亚洲精品乱码久久久久久日本蜜臀| 日韩精品一区二区在线观看| 91亚洲精品乱码久久久久久蜜桃| 乱一区二区av| 亚洲国产精品一区二区久久 | 日韩一卡二卡三卡四卡| youjizz久久| 极品尤物av久久免费看| 亚洲综合免费观看高清完整版| 精品久久久久久综合日本欧美| 色综合激情久久| 国产一区二区在线免费观看| 五月激情综合婷婷| 亚洲欧美另类小说| 久久精品水蜜桃av综合天堂| 欧美喷潮久久久xxxxx| bt欧美亚洲午夜电影天堂| 久久aⅴ国产欧美74aaa| 一二三区精品视频| 亚洲欧美综合网| 久久亚洲精品小早川怜子| 欧美久久久久久蜜桃| 一本色道**综合亚洲精品蜜桃冫| 国内外精品视频| 九一九一国产精品| 爽好多水快深点欧美视频| 一区二区三区精品在线| 亚洲欧美在线aaa| 国产欧美一区二区在线观看| 久久综合久久鬼色中文字| 欧美高清dvd| 欧美日韩亚洲综合在线| av男人天堂一区| a4yy欧美一区二区三区| 成人毛片老司机大片| 国产福利精品导航| 国产精品一区二区在线看| 国内精品久久久久影院一蜜桃| 日韩av中文字幕一区二区三区| 五月激情综合网| 喷水一区二区三区| 午夜精品一区二区三区免费视频| 亚洲青青青在线视频| 亚洲欧洲国产专区| 日韩伦理av电影| 1024成人网色www| 国产精品免费久久| 亚洲激情av在线| 国产欧美一区二区三区沐欲| 精品日韩99亚洲| 久久精品在线免费观看| 国产精品高潮呻吟| 最新日韩在线视频| 香蕉影视欧美成人| 麻豆精品一区二区三区| 国产一区二区调教| 成人免费视频一区二区| 一本大道久久a久久精品综合| 欧美在线免费观看视频| 91精品国产综合久久小美女| 精品国产一区二区精华| 国产欧美日韩三区| 亚洲欧美偷拍另类a∨色屁股| 亚洲动漫第一页| 久久99久久99| 国产精品88888| 色婷婷久久一区二区三区麻豆| 欧美日韩一级黄| 久久亚洲捆绑美女| 国产色91在线| 亚洲欧美日韩国产手机在线| 亚洲黄色av一区| 亚洲视频狠狠干| 日本欧美肥老太交大片| 91亚洲精华国产精华精华液| 欧美福利电影网| 国产精品久久网站| 日韩专区在线视频| 丁香天五香天堂综合| 欧洲亚洲精品在线| 久久一留热品黄| 夜夜夜精品看看| 国产精品乡下勾搭老头1| 在线观看视频一区二区| 精品国产一区二区三区不卡 | 亚洲精品日产精品乱码不卡| 午夜电影一区二区三区| 国模套图日韩精品一区二区| 国产精品综合一区二区| 欧洲一区二区av| 欧美激情在线一区二区| 视频一区中文字幕| 99久久99久久免费精品蜜臀| 欧美一区二区美女| 一区二区三区毛片| 国产.欧美.日韩| 欧美mv和日韩mv国产网站| 夜色激情一区二区| 国产91露脸合集magnet| 777色狠狠一区二区三区| 国产精品污www在线观看| 麻豆精品在线视频| 欧美视频在线观看一区二区| 欧美国产欧美亚州国产日韩mv天天看完整 | 在线亚洲+欧美+日本专区| 久久亚洲私人国产精品va媚药| 亚洲在线一区二区三区| 99v久久综合狠狠综合久久| 精品国产成人系列| 无码av中文一区二区三区桃花岛| 北条麻妃一区二区三区| 国产日本亚洲高清| 久久99国产精品久久99| 91精品国产91综合久久蜜臀| 亚洲精品成人悠悠色影视| 国产精品77777| 久久精品一区二区三区不卡| 美女视频黄 久久| 欧美日韩国产综合视频在线观看 | 亚洲欧美日韩一区二区| www.激情成人| 国产精品久久毛片| 成人自拍视频在线| 中文字幕免费一区| 国产成人综合网| 久久蜜臀中文字幕| 国产精品亚洲人在线观看| 精品蜜桃在线看| 久久精品国产亚洲a| 日韩欧美一区二区视频| 日韩中文欧美在线| 91精品国产入口| 另类综合日韩欧美亚洲| 日韩欧美国产一区二区在线播放 | 91在线国产福利| 自拍偷拍亚洲欧美日韩| 91日韩一区二区三区| 亚洲人成人一区二区在线观看 | 制服丝袜亚洲播放| 日本色综合中文字幕| 日韩一区二区在线免费观看| 老司机午夜精品99久久| 久久一区二区三区四区| 懂色av一区二区三区蜜臀| 国产三级一区二区三区|