?? accelerator.c
字號:
/**********************************************************************************/
/* */
/* Copyright (C) 2006 Oki Electric Industry Co., LTD. */
/* */
/* Module Name : Accelerator Source file */
/* File Name : accelerator.c */
/* Revision : 1.00 */
/* Date : 2006/03/17 */
/**********************************************************************************/
#include "accelerator.h"
extern ULONG exec_finish_flag;
/****************************************/
/*
calculate_PQmodN()
*/
/****************************************/
UCHAR calculate_PQmodN(ULONG *P ,ULONG *Q , ULONG *N, UCHAR mode)
{
if((mode == 0) || (mode > 4) )
{
return(NG);
}
set_Reg((ULONG*)NREG , N,MAXWORD);
set_Reg((ULONG*)T1REG , P,MAXWORD);
set_Reg((ULONG*)T2REG , Q,MAXWORD);
start_Calculate(mode);
wait_Calculate();
return(OK);
}
/****************************************/
/*
set_Reg()
*/
/****************************************/
void set_Reg(ULONG* reg , ULONG* T, UCHAR word)
{
UCHAR i;
for(i=0; i<word; i++){
reg[i] = T[i];
}
return;
}
/****************************************/
/*
start_Calculate(UCHAR mode)
*/
/****************************************/
void start_Calculate(UCHAR mode)
{
UCHAR i=0;
i = mode;
if(i >= 2){
i = (UCHAR)( 1 << (mode-1));
}
*(ULONG *)MODCON2 = i;
return;
}
/****************************************/
/*
init_Accelerator(void)
*/
/****************************************/
void init_Accelerator(void)
{
*(ULONG *)CLKSTOP = 0;
*(ULONG *)IRQMASK =0;
*(ULONG *)DMA_EN =0;
*(ULONG *)MODCON1 =0x00000002;
exec_finish_flag = 0;
return;
}
/****************************************/
/*
wait_Calculate(void)
*/
/****************************************/
void wait_Calculate(void)
{
while(1){
if(exec_finish_flag == 1){
break;
}
}
exec_finish_flag = 0;
return;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -