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

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

?? ch0062t.c

?? AMX操作系統源碼
?? C
字號:
/*	*************************************************		*/
/*	*						*		*/
/*	*	AMX 4-Thumb Multitasking Kernel		*		*/
/*	*	ARM Timer Reference Clock Driver	*		*/
/*	*						*		*/
/*	*************************************************		*/
/*									*/
/*	Copyright (c) 1997						*/
/*	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				*/

#include	"cjzzz.h"		/* General Kernel definitions	*/

/*	*************************************************		*/
/*	*						*		*/
/*	*	ARM Timer Reference Peripheral		*		*/
/*	*		Clock Driver			*		*/
/*	*						*		*/
/*	*************************************************		*/

/* ARM document "ARM DDI 0062D" (Reference Peripherals Specification)	*/
/* defines a dual counter/timer specification as used on the		*/
/* ARM Development Board for the ARM7TDMI.				*/
/* Each timer is a 16-bit wide down counter with a selectable		*/
/* input clock pre-scale division of 1, 16 or 256.			*/
/* This clock driver module supports the use of either one of the	*/
/* two counter timers identified in the stated specification.		*/
/*									*/
/* Edit the following definitions to identify the manner in which	*/
/* the ARM Timer Reference Peripheral is configured in your		*/
/* hardware system.							*/
/* Define VVPIT to be the base address of the memory mapped timer	*/
/* register block reserved for addressing the chip.			*/
/* Define VVINTV to be the AMX vector number reserved for the interrupt	*/
/* generated by the selected timer.					*/
/* Define VVTIMER to be 1 or 2 to pick timer 1 or 2.			*/
/* To define the clock frequency, you MUST				*/
/* define VVPRESCALE to be 1, 16 or 256 to pick the input clock		*/
/* pre-scale and define VVCOUNT to be 1 to 63535 to pick the		*/
/* downcount value.							*/
/* A delay may be required between consecutive device accesses.		*/
/* Define VVIODELAY to be the number of microseconds to delay between	*/
/* reads or writes to memory mapped I/O device registers.		*/
/*									*/
/* The following example selects Timer 1 of the ARM Timer Reference	*/
/* Peripheral as implemented in the custom FPGA chip on the		*/
/* ARM Development Board for the ARM7TDMI.				*/
/* With an input clock frequency of 20MHz, a pre-scale divisor		*/
/* of 1 and a downcount value of 20000 generates a 1ms clock interrupt.	*/
/* Delay 1 microsecond between I/O reads and writes.			*/

#define VVPIT	0x0A800000		/* Timer base address		*/
#define VVINTV	4			/* PIT vector number		*/
#define VVTIMER	1			/* Select timer			*/
#define VVPRESCALE 1			/* Pre-scale divisor value	*/
#define VVCOUNT 20000			/* Downcount value		*/
#define VVIODELAY 1			/* I/O delay (microseconds)	*/


/* The following macros are used for device input/output operations.	*/
/* Revise these macros, if necessary, to account for the manner in	*/
/* which devices are addressed in your hardware configuration.		*/

#define IN32(port) \
	((VVIODELAY ? (cjcfhwdelay(VVIODELAY), 0) : 0), \
	(unsigned char)cjcfin32((void *)(port)))
#define OUT32(port, val) \
	((VVIODELAY ? (cjcfhwdelay(VVIODELAY), 0) : 0), \
	cjcfout32((void *)(port), (CJ_T32)(val)))

/* ---------------------------------------------------------------------*/
/* Define timer registers and masks					*/

#define CTLOAD	0x00		/* Timer reload value (read/write)	*/
#define CTVALUE	0x04		/* Timer current value (read)		*/
#define CTCTRL	0x08		/* Timer control (read/write)		*/
#define CTCLEAR	0x0C		/* Timer clear interrupt (write)	*/
#define CTOFS2	0x20		/* Timer 2 offset from base address	*/

				/* Counter/timer control bit masks	*/
#define CTRLDIV1	0x00000000	/* Divide by 1 prescale		*/
#define CTRLDIV16	0x00000004	/* Divide by 16 prescale	*/
#define CTRLDIV256	0x00000008	/* Divide by 256 prescale	*/
#define CTRLMPERIOD	0x00000040	/* Periodic timer mode		*/
#define CTRLENABLE	0x00000080	/* Timer enable			*/


/* Define registers and masks for the particular timer selected		*/

#if (VVTIMER==1)
#define VVTMR (VVPIT)			/* Timer 1 port			*/
#endif
#if (VVTIMER==2)
#define VVTMR ((VVPIT)+CTOFS2)		/* Timer 2 port			*/
#endif

					/* Timer control value		*/
#if (VVPRESCALE==1)
#define VVCTRL (CTRLMPERIOD | CTRLDIV1)
#endif
#if (VVPRESCALE==16)
#define VVCTRL (CTRLMPERIOD | CTRLDIV16)
#endif
#if (VVPRESCALE==256)
#define VVCTRL (CTRLMPERIOD | CTRLDIV256)
#endif


/* External references							*/
					/* Board support procedure	*/
void CJ_CCPP chclken(int tmrnum);	/* Clock interrupt enable	*/
void CJ_CCPP chclkdis(int tmrnum);	/* Clock interrupt disable	*/

void CJ_CCPP ch0062clk(void);		/* Clock ISP root in		*/
					/* Target Configuration Module	*/

/* ---------------------------------------------------------------------*/
/* chclockinit - Initialize Clock Driver				*/
/*									*/
/* Add this procedure to your list of Restart Procedures at the		*/
/* point in the list at which you wish the clock to begin operation.	*/
/*									*/
/* Return:	Interrupts are disabled and are then			*/
/*		restored to their state upon entry.			*/

void CJ_CCPP chclockinit(void)
{
	CJ_TYFLAGS	procflags;	/* Saved processor flags	*/

/*--------								*/
/* Save interrupt status						*/
/* Disable interrupts							*/
/* Disable clock interrupts						*/
/* Install clock interrupt handler					*/
/* Set periodic timer mode and pre-scale divisor			*/
/* Program timer for desired frequency of operation			*/
/* Start clock and enable clock interrupts				*/
/*--------								*/
/* ---	Disable interrupts -------------				*/
	procflags = cj_kpsrrddi();
	chclkdis(VVTIMER);		/* Disable clock interrupts	*/
	cjksivtwr(VVINTV, ch0062clk);	/* Install clock ISP		*/
	OUT32(VVTMR + CTCTRL, VVCTRL);	/* Set timer mode and pre-scale	*/
	OUT32(VVTMR + CTLOAD, VVCOUNT);	/* Set timer downcount value	*/
					/* Enable the timer		*/
	OUT32(VVTMR + CTCTRL, VVCTRL | CTRLENABLE);

	chclken(VVTIMER);		/* Enable clock interrupts	*/
/* ---	Restore interrupts -------------				*/
	cjcfflagwr(procflags);
	}

/* ---------------------------------------------------------------------*/
/* chclockexit - Clock Driver Exit Procedure				*/
/*									*/
/* Add this procedure to your list of Exit Procedures at the		*/
/* point in the list at which you wish to shut off clock operation.	*/
/*									*/
/* Return:	Interrupts are disabled and are then			*/
/*		restored to their state upon entry.			*/

void CJ_CCPP chclockexit(void)
{
	CJ_TYFLAGS	procflags;	/* Saved processor flags	*/

/*--------								*/
/* Save interrupt status						*/
/* Disable interrupts							*/
/* Disable clock interrupts and reset the clock				*/
/*--------								*/
/* ---	Disable interrupts -------------				*/
	procflags = cj_kpsrrddi();
	chclkdis(VVTIMER);		/* Disable timer interrupts	*/
	OUT32(VVTMR + CTCTRL, VVCTRL);	/* Disable the timer		*/
/* ---	Restore interrupts -------------				*/
	cjcfflagwr(procflags);
	}

/* End of File */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品免费在线观看| 免费xxxx性欧美18vr| 日本不卡高清视频| 懂色av中文一区二区三区| 欧洲视频一区二区| 国产精品素人一区二区| 亚洲国产精品自拍| 成人一区二区三区视频在线观看| 欧美性极品少妇| 中文字幕日本不卡| 老司机午夜精品| 在线欧美一区二区| 久久精品视频在线免费观看| 麻豆视频观看网址久久| 色婷婷综合激情| 国产欧美一区二区三区鸳鸯浴| 亚洲成人av一区二区| 91麻豆.com| 国产区在线观看成人精品| 亚洲精品欧美综合四区| 国产精品1区二区.| 91精品国产麻豆国产自产在线 | 中文字幕日韩精品一区| 国产伦精品一区二区三区在线观看 | 2020国产精品| 五月激情综合色| 成人av网站免费观看| 日本一区二区三区四区| 美腿丝袜在线亚洲一区| 在线观看日韩精品| 国产精品私人自拍| 国产精品中文字幕一区二区三区| 91精品国产免费| 午夜视频一区二区| 欧美日韩国产一级| 亚洲综合成人在线| 色婷婷精品久久二区二区蜜臂av| 国产精品久线在线观看| 国产成人一区在线| 精品国产百合女同互慰| 日本成人中文字幕在线视频| 日韩精品每日更新| 欧美一区二区三区视频在线观看 | 欧美日韩一区成人| 午夜视频一区在线观看| 欧美色视频一区| 一区二区三区精品视频| 粉嫩欧美一区二区三区高清影视| 精品av久久707| 调教+趴+乳夹+国产+精品| 91福利在线导航| 亚洲综合男人的天堂| 色94色欧美sute亚洲线路二 | 极品少妇xxxx偷拍精品少妇| 69堂成人精品免费视频| 日本午夜一区二区| 日韩一区二区视频| 狠狠色丁香婷婷综合| 精品国产乱码91久久久久久网站| 国产麻豆视频精品| 国产清纯美女被跳蛋高潮一区二区久久w | 国产成人欧美日韩在线电影| 欧美国产禁国产网站cc| 成人黄色网址在线观看| 国产精品国产三级国产aⅴ入口| 国产成人鲁色资源国产91色综 | 91精品久久久久久久久99蜜臂| 石原莉奈一区二区三区在线观看| 欧美一二三在线| 国产资源在线一区| 国产日产欧美一区二区三区| 成人av网站在线| 依依成人精品视频| 91精选在线观看| 久久成人免费电影| 久久久精品一品道一区| 99久久久久久99| 亚洲国产日日夜夜| 欧美电影免费提供在线观看| 欧美色精品天天在线观看视频| 亚洲丶国产丶欧美一区二区三区| 欧美色倩网站大全免费| 蜜桃久久久久久久| 国产日韩欧美高清在线| 色哟哟亚洲精品| 三级成人在线视频| 国产日韩欧美激情| 在线视频国产一区| 日韩avvvv在线播放| 国产欧美日韩精品一区| 色综合久久66| 蜜臀久久久99精品久久久久久| 日韩精品一区在线| 色综合咪咪久久| 蜜桃久久久久久久| 中文字幕一区二区在线观看| 在线观看区一区二| 国产精品99精品久久免费| 亚洲精品中文在线影院| 日韩午夜小视频| a4yy欧美一区二区三区| 日本欧美一区二区三区| 国产日本欧洲亚洲| 欧美日韩精品欧美日韩精品一 | 国产午夜精品一区二区| 一本色道久久综合亚洲91| 日韩精品乱码免费| 中文字幕中文字幕在线一区| 欧美性色aⅴ视频一区日韩精品| 狠狠色丁香婷婷综合| 亚洲精品免费在线播放| 欧美成人精精品一区二区频| 99久久综合精品| 午夜精品一区二区三区三上悠亚| 久久理论电影网| 欧美丝袜第三区| 国产成人午夜99999| 天天色综合成人网| 最新中文字幕一区二区三区| 日韩一区二区三区免费看 | 奇米影视一区二区三区小说| 亚洲视频在线一区| 欧美精品一区二区三区视频| 欧美日韩亚洲综合一区二区三区| 国产69精品久久久久777| 免费av成人在线| 亚洲高清视频中文字幕| 亚洲欧美日韩国产中文在线| 欧美国产精品专区| 久久五月婷婷丁香社区| 欧美mv和日韩mv的网站| 欧美精品一级二级| 欧美三级电影在线观看| 91麻豆.com| 99视频超级精品| 国产精品亚洲成人| 精品一区二区在线视频| 日韩电影免费在线观看网站| 亚洲成人资源在线| 一区二区理论电影在线观看| 亚洲少妇中出一区| 国产精品久久久久久久久免费丝袜 | 成人国产精品视频| 国产剧情一区在线| 久久精品国产一区二区| 美日韩一级片在线观看| 午夜国产不卡在线观看视频| 一区二区三区精品在线| 久久久久久久久久久久电影| 26uuu精品一区二区| 日韩欧美区一区二| 欧美成人欧美edvon| 日韩欧美不卡在线观看视频| 欧美电影免费观看高清完整版| 日韩三级中文字幕| 欧美成人性福生活免费看| 精品sm在线观看| 国产日韩欧美在线一区| 亚洲国产成人私人影院tom| 国产性做久久久久久| 欧美国产综合一区二区| 亚洲国产高清aⅴ视频| 中文字幕一区二区不卡| 国产精品久久久一区麻豆最新章节| 国产精品入口麻豆原神| 国产精品丝袜久久久久久app| 国产精品久久久久影视| 17c精品麻豆一区二区免费| 亚洲欧美日韩中文播放| 亚洲一区二区三区爽爽爽爽爽| 亚洲一区在线观看免费 | 国产欧美综合色| 国产精品乱码妇女bbbb| 亚洲三级在线免费观看| 亚洲激情六月丁香| 婷婷国产v国产偷v亚洲高清| 日韩av中文字幕一区二区 | 中文字幕一区二区在线观看| 日韩毛片一二三区| 亚洲第一av色| 蜜臀久久久久久久| 国产99一区视频免费| 91蜜桃在线免费视频| 欧美乱妇一区二区三区不卡视频 | 国产成人亚洲精品青草天美| www.日韩精品| 欧美日韩极品在线观看一区| 欧美va亚洲va国产综合| 日本一区二区三级电影在线观看 | 国产性色一区二区| 一区二区三区中文字幕电影| 蜜臀久久99精品久久久画质超高清 | 国产精品私人影院| 亚洲成人免费影院| 国产精品亚洲专一区二区三区| 91捆绑美女网站| 日韩欧美在线123| 国产精品国产自产拍高清av| 亚洲成人av一区| 国产99久久精品|