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

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

?? ac48drhi.c

?? Audiocodes old vision DSP driver
?? C
?? 第 1 頁 / 共 5 頁
字號:
		if(LastBlockFlag)	
			{		/* Set DSP to read/write back to LSB first */
			Ac48xxSetHPIByteOrder(DeviceIndex, LSB_FIRST);
			LastBlockFlag=0;
			if(BlockStructureFile)    
			    fprintf(BlockStructureFile, 
                "                                    LAST_STAGE_COMPLETED\n"); 
			return LAST_STAGE_COMPLETED;
			}
		LastBlockFlag = (Download[0] & 0x80);
		BlockLength =  ((int)(Download[4])<<8) 
					  |(int)((unsigned char)Download[5]);
		BlockLength += 5;	/* as is */
		if(BlockStructureFile)    
    		fprintf(BlockStructureFile, "%.6X: %.2X%.2X  %.2X%.2X  %.2X%.2X  %.2X%.2X  %.2X%.2X \n", 
                    (int)(Download - ProgramDownloadStructure),
                    Download[0], Download[1], 
                    Download[2], Download[3], 
                    Download[4], Download[5], /* BlockLength - 5 */
                    Download[6], Download[7], 
                    Download[8], Download[9]); 
                    /* HPIA <= AC48_PROGRAM_ADDRESS-1 */
		Ac48xxHostWrite((char)((AC48_PROGRAM_ADDRESS-1)>>8), 
											DeviceIndex, HPIA, First);
		Ac48xxHostWrite((char)(AC48_PROGRAM_ADDRESS-1), 
											DeviceIndex, HPIA, Second);
		for(i=0; i<BlockLength; i++) /* copy block */ 
			{
			Ac48xxHostWrite(*Download++, DeviceIndex, HPID, First);
			Ac48xxHostWrite(*Download++, DeviceIndex, HPID, Second);
			}
		        /* write "packet full" */
				/* HPIA <= BOOT_STATUS_REGISTER */
		Ac48xxHostWrite((char)(AC48_BOOT_STATUS_REGISTER>>8), 
											DeviceIndex, HPIA, First);
		Ac48xxHostWrite((char)AC48_BOOT_STATUS_REGISTER, 
											DeviceIndex, HPIA, Second);
				/* HPID <= PACKET_FULL */
		Ac48xxHostWrite((char)0          , DeviceIndex, HPIDL, First);
		Ac48xxHostWrite((char)PACKET_FULL, DeviceIndex, HPIDL, Second);
				/* send interupt to DSP */
		Ac48xxHostWrite((SET_DSPINT | CLEAR_HINT | MSB_FIRST), 
											DeviceIndex, HPIC, First);
		Ac48xxHostWrite((SET_DSPINT | CLEAR_HINT | MSB_FIRST), 
											DeviceIndex, HPIC, Second);
		}
}

/*======================================================================*/
/* Name    :        Ac48xxBoot                                          */
/*======================================================================*/
/* Purpose :    Download software into the AC48 Device.                 */
/*                                                                      */
/* Inputs  :    int DeviceIndex:                                        */
/*                  Device index to be initialized.                     */
/*              const char *KernelDownload:                             */
/*                  Pointer to the AC48 boot kernel download software 	*/
/*                  to be downloaded.                                   */
/*              int KernelSize:                                         */
/*                  This value can vary according to kernel version.    */
/*              const char **ProgramDownload:                           */
/*                  Address of Pointer to the AC48 operational software */
/*                  to be downloaded. This Pointer muves with the       */
/*                                                            Download. */
/*              int Stage:                                              */
/*                  This parameter is relevant only when WaitMode equal */
/*                  to "DONT_WAIT_PACKET_EMPTY". This parameter	helps   */
/*                  the watch-dog mechanism to let the AC48	complete    */
/*                  the booting                                         */
/*              TWaitMode WaitMode:                                     */
/*                  Wait / don't wait to "packet-empty".                */
/* Output  :    int:                                                    */
/*                  (LAST_STAGE_COMPLETED) - for successful operation   */
/*                  (ERROR) - Program Download failed                   */
/*                  (-1) -  the Program Download proccess did not       */
/*                          complete, yet. In edition, the pointer to   */
/*                          the Program Download Blocks, updated.       */
/*======================================================================*/
int Ac48xxBoot(int DeviceIndex, const char *KernelDownload, int KernelSize, 
               const char **ProgramDownload, int Stage, TWaitMode WaitMode)
{
	int Status;
	if(Stage != (-1))
		Ac48xxKernelDownload(DeviceIndex, KernelDownload, KernelSize);
	do
		Status = Ac48xxProgramDownload(DeviceIndex, ProgramDownload);
	while((WaitMode == WAIT_PACKET_EMPTY) && (Status == (-1)));
	return Status;	/* ERROR( 1 ) / (-1) / LAST_STAGE_COMPLETED( 0 ) */
}

/*======================================================================*/
/* Name    :        Ac48xxBootCompletely                                */
/*======================================================================*/
/* Purpose :    Download software into the AC48 Device.                 */
/*                                                                      */
/* Inputs  :    int DeviceIndex:                                        */
/*                  Device index to be initialized.                     */
/*              const char *KernelDownload:                             */
/*                  Pointer to the AC48 boot kernel download software 	*/
/*                  to be downloaded.                                   */
/*              int KernelSize:                                         */
/*                  This value can vary according to kernel version.    */
/*              const char *ProgramDownload:                            */
/*                  Pointer to the AC48 operational software            */
/*                  to be downloaded.                                   */
/* Output  :    int:                                                    */
/*                  0 - (AC_OK) Boot Complete successfully              */
/*                       after (AC48_TIME_OUT-TimeOut) iterations       */
/*                  1 - (AC_ERROR) Program Download failed              */
/*                999 - TIME_OUT_ERROR (Failed after AC48_TIME_OUT      */
/*                       iterations)                                    */
/*======================================================================*/
int Ac48xxBootCompletely(int DeviceIndex, const char *KernelDownload, 
                         int KernelSize, const char *ProgramDownload)
{
	int Status;
    int TimeOut = AC48_TIME_OUT;
	Ac48xxKernelDownload(DeviceIndex, KernelDownload, KernelSize);
    while(TimeOut)
		{
		Status = Ac48xxProgramDownload(DeviceIndex, &ProgramDownload);
		if(Status != (-1))
            return Status;
        TimeOut--;
		Ac48xxResponseDelay();
        }			
    return TIME_OUT_ERROR;         /* Boot Time-out Error  */
}

/*======================================================================*/
/* Name    :        Ac48xxBootForDebugging                              */
/*======================================================================*/
/* Purpose :    Same as Ac48xxBoot, plus debugging report of Program    */
/*                                                          download.   */
/* Inputs  :    Same as at Ac48xxBoot function, plus two parameters:    */
/*              ProgramDownloadStructure:                               */
/*                  A pointer to the begining of the first Block of     */
/*                  Program Download Structure.                         */
/*              BlockStructureFile:                                     */
/*                  A text file Handle. The function writes to this     */
/*                  file a list of Downloaded-Block's length and        */
/*                  offset. This File reflects the Program Download     */
/*                  process, include re'entrances, as a result of       */
/*                  'PACKET_FULL', end, finally 'LAST_STAGE_COMPLETED'. */
/*======================================================================*/
int Ac48xxBootForDebugging(int DeviceIndex, const char *KernelDownload, 
                           int KernelSize, const char **ProgramDownload, 
                           const char *ProgramDownloadStructure, 
                           int Stage, TWaitMode WaitMode, 
                           FILE *BlockStructureFile)
{
    int Status;
    if((Stage == FIRST_STAGE) && BlockStructureFile)
        fprintf(BlockStructureFile, "<Block Offset>: <Word[0]> <Word[1]> <W0rd[2](BlockLength-5)> <W0rd[3]> <W0rd[4]> \n\n"); 
	if(Stage != (-1))
		Ac48xxKernelDownload(DeviceIndex, KernelDownload, KernelSize);
	do
		Status = Ac48xxProgramDownloadForDebugging(DeviceIndex, 
                                                   ProgramDownload, 
                                                   ProgramDownloadStructure, 
                                                   BlockStructureFile);
    while((WaitMode == WAIT_PACKET_EMPTY) && (Status == (-1)));
    return Status;	/* ERROR( 1 ) / (-1) / LAST_STAGE_COMPLETED( 0 ) */
}

/*======================================================================*/
/* Name    :        Ac48xxBootCompletelyForDebugging                    */
/*======================================================================*/
/* Purpose :    Same as Ac48xxBoot, plus debugging report of Program    */
/*                                                          download.   */
/* Inputs  :    int DeviceIndex:                                        */
/*                  Device index to be initialized.                     */
/*              const char *KernelDownload:                             */
/*                  Pointer to the AC48 boot kernel download software 	*/
/*                  to be downloaded.                                   */
/*              int KernelSize:                                         */
/*                  This value can vary according to kernel version.    */
/*              const char *ProgramDownload:                            */
/*                  Pointer to the AC48 operational software            */
/*                  to be downloaded.                                   */
/*              BlocksStructureFile:                                    */
/*                  A text file Handle. The function writes to this     */
/*                  file a list of Downloaded-Block's length and        */
/*                  offset. This File reflects the Program Download     */
/*                  process, include re'entrances, as a result of       */
/*                  'PACKET_FULL', end, finally 'LAST_STAGE_COMPLETED'. */
/* Output  :    int:                                                    */
/*                  0 - (AC_OK) Boot Complete successfully              */
/*                      after (AC48_TIME_OUT-TimeOut) iterations        */
/*                  1 - (AC_ERROR) Program Download failed              */
/*                999 - TIME_OUT_ERROR (Failed after AC48_TIME_OUT      */
/*                       iterations)                                    */
/*======================================================================*/
int Ac48xxBootCompletelyForDebugging(int DeviceIndex, const char *KernelDownload, 
                                     int KernelSize,  const char *ProgramDownload, 
                                     FILE *BlocksStructureFile)
{
    int Status;
    int TimeOut = AC48_TIME_OUT;
    const char *ProgramDownloadPointer = ProgramDownload;
    if(BlocksStructureFile)
        fprintf(BlocksStructureFile, "<Block Offset>: <Word[0]> <Word[1]> <W0rd[2](BlockLength-5)> <W0rd[3]> <W0rd[4]> \n\n"); 
	Ac48xxKernelDownload(DeviceIndex, KernelDownload, KernelSize);
    while(TimeOut)
		{
		Status = Ac48xxProgramDownloadForDebugging(DeviceIndex, &ProgramDownloadPointer, 
                                                   ProgramDownload, BlocksStructureFile);
		if(Status == AC_OK)   
            {
            fprintf(BlocksStructureFile, "    Boot Complete successfully after %X iterations", (AC48_TIME_OUT-TimeOut));
            return AC_OK;
            }
        if(Status == AC_ERROR)
            {
            fprintf(BlocksStructureFile, "    Boot Failed !!!");
            return AC_ERROR;
            }
        TimeOut--;
		Ac48xxResponseDelay();
        }			
	fprintf(BlocksStructureFile, "    Boot Time-out Error (Failed after %X iterations)", AC48_TIME_OUT);
    return TIME_OUT_ERROR;
}


/*======================================================================*/
/* Name    :        Ac48xxBIT                                           */
/*======================================================================*/
/* Purpose :    Perform Memory Test for the AC48.                       */
/*                                                                      */
/* Inputs  :    int DeviceIndex:                                        */
/*                  Device index to be tested.                          */
/*              const char *KernelDownload:                             */
/*                  Pointer to the AC48 boot kernel download software 	*/
/*                  to be downloaded.                                   */
/*              int KernelSize:                                         */
/*                  This value can vary according to kernel version.    */
/*              const char **BITDownload:                               */
/*                  Address of Pointer to the AC48 'Built In Test'      */
/*                  software to be downloaded.                          */
/*              int Stage:                                              */
/*                  This parameter is relevant only when WaitMode equal */
/*                  to "DONT_WAIT_PACKET_EMPTY". This parameter	helps   */
/*                  the watch-dog mechanism to let the AC48	complete    */
/*                  the Memory Test.                                    */
/*              TWaitMode WaitMode:                                     */
/*                  Wait / don't wait to "packet-empty".                */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲成av人片一区二区三区| 国产成人自拍网| 国产一区二区成人久久免费影院 | 天堂av在线一区| 国产成人精品免费视频网站| 91麻豆精品国产自产在线观看一区| 久久美女艺术照精彩视频福利播放 | 一区二区三区自拍| 粉嫩久久99精品久久久久久夜| 欧美丰满嫩嫩电影| 亚洲免费视频成人| 成人精品一区二区三区中文字幕| 亚洲综合小说图片| 91影视在线播放| 国产欧美精品国产国产专区 | 欧美国产精品久久| 国产曰批免费观看久久久| 欧美精品九九99久久| 亚洲精品伦理在线| 99精品久久99久久久久| 国产精品久久久久久亚洲毛片| 国产乱对白刺激视频不卡| 日韩午夜av电影| 91精选在线观看| 日本视频中文字幕一区二区三区| 欧美日韩精品系列| 最近中文字幕一区二区三区| av色综合久久天堂av综合| 国产三级精品三级在线专区| 国产福利一区二区| 中文字幕乱码日本亚洲一区二区| 国产成人aaa| 中文字幕一区二区三区不卡 | 日韩影院免费视频| 欧美欧美欧美欧美| 青青草视频一区| 日韩精品一区二区三区三区免费| 另类成人小视频在线| 精品久久99ma| 成人小视频免费观看| 亚洲欧洲无码一区二区三区| 日本道免费精品一区二区三区| 一区二区三区免费观看| 欧美久久久久久久久久| 久久99在线观看| 国产精品青草综合久久久久99| av影院午夜一区| 亚洲电影在线免费观看| 日韩欧美在线不卡| 丁香激情综合五月| 亚洲小说春色综合另类电影| 欧美一区二区黄色| 成人一区二区三区| 亚洲高清三级视频| xvideos.蜜桃一区二区| 99久久99久久久精品齐齐| 亚洲一区二区三区在线| 欧美大片拔萝卜| 日韩免费福利电影在线观看| 国产成人无遮挡在线视频| 亚洲欧美二区三区| 欧美变态tickling挠脚心| 99久久国产免费看| 免费成人在线观看视频| 国产精品久久久久久妇女6080| 欧美色电影在线| 国产一区 二区| 亚洲va欧美va天堂v国产综合| 欧美tickling网站挠脚心| 色综合久久九月婷婷色综合| 免费高清在线一区| 亚洲一区二区三区三| 国产色产综合产在线视频| 欧美三区在线观看| 成人av在线资源网| 久久91精品国产91久久小草 | 成人性视频网站| 日韩黄色小视频| 亚洲少妇中出一区| 国产成人午夜精品5599| 日本在线不卡视频| 亚洲免费观看高清完整版在线| 精品卡一卡二卡三卡四在线| 欧美性猛交xxxx黑人交| 欧美日本高清视频在线观看| 另类成人小视频在线| 亚洲成a人v欧美综合天堂下载 | 国产成人av福利| 石原莉奈在线亚洲三区| 亚洲欧美另类小说视频| 久久久久九九视频| 日韩网站在线看片你懂的| 欧美日韩的一区二区| 色呦呦一区二区三区| 盗摄精品av一区二区三区| 韩国一区二区在线观看| 蜜臀久久99精品久久久久宅男 | 日韩免费高清视频| 91精品国产综合久久香蕉的特点 | 色欲综合视频天天天| 成人爽a毛片一区二区免费| 韩国成人福利片在线播放| 日日摸夜夜添夜夜添国产精品| 亚洲一区二区三区在线播放| 一区二区免费看| 一区二区三区精品视频| 一区二区三区免费观看| 亚洲欧美日韩小说| 一区二区在线观看视频| 亚洲综合自拍偷拍| 亚洲午夜视频在线| 亚洲少妇屁股交4| 亚洲欧美日韩国产综合在线| 成人欧美一区二区三区黑人麻豆| 国产欧美综合在线| 中文字幕在线视频一区| 欧美激情综合在线| 亚洲国产激情av| 国产精品天干天干在观线| 国产精品久久精品日日| 国产农村妇女毛片精品久久麻豆| 亚洲国产精品ⅴa在线观看| 国产精品免费视频网站| 中文字幕精品一区二区精品绿巨人| 欧美国产日韩精品免费观看| 欧美极品美女视频| 亚洲欧美日韩一区| 亚洲444eee在线观看| 亚洲成人精品一区二区| 亚洲地区一二三色| 日本一区中文字幕| 国产一区二区三区日韩| av网站免费线看精品| 在线免费亚洲电影| 91精品国产手机| 久久蜜桃av一区二区天堂| 精品国产91久久久久久久妲己| 精品国产免费视频| 国产精品视频麻豆| 亚洲人xxxx| 日韩精品欧美成人高清一区二区| 美女视频黄 久久| 99久久伊人久久99| 欧美日韩视频在线观看一区二区三区| 94色蜜桃网一区二区三区| 在线观看欧美日本| 亚洲精品一区在线观看| 亚洲少妇屁股交4| 久久国内精品视频| www.色精品| 日韩一区二区视频在线观看| 国产精品天美传媒| 美女一区二区三区在线观看| 国产v综合v亚洲欧| 欧美日本韩国一区二区三区视频| 欧美tk丨vk视频| 亚洲色图一区二区三区| 国内精品久久久久影院色| 一本大道久久a久久精品综合| 日韩欧美一级特黄在线播放| 亚洲美女在线国产| 国产一区在线观看视频| 欧美乱妇一区二区三区不卡视频| 久久久影院官网| 天天av天天翘天天综合网色鬼国产| 成人综合婷婷国产精品久久蜜臀| 91精品国产一区二区| 亚洲线精品一区二区三区| 国产精品系列在线观看| 日韩午夜在线影院| 一区二区三区在线看| 成人av网址在线| 精品国产乱码久久| 日本欧美在线观看| 欧美视频在线一区| 亚洲精品视频在线| 成人黄色在线网站| 国产女人aaa级久久久级| 国内精品国产成人国产三级粉色| 欧美日韩国产大片| 亚洲国产日韩一级| 在线日韩av片| 一区二区三区视频在线观看| 91在线精品一区二区| 欧美国产日产图区| 成人av先锋影音| 亚洲欧洲一区二区在线播放| 丰满少妇久久久久久久| 久久久91精品国产一区二区精品| 美国一区二区三区在线播放| 制服丝袜中文字幕亚洲| 亚洲成人av福利| 欧美精品乱码久久久久久按摩| 午夜欧美在线一二页| 欧美精品乱码久久久久久按摩| 日韩黄色片在线观看| 欧美变态口味重另类| 国产伦精一区二区三区| 久久久久九九视频| 久久丝袜美腿综合|