//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
|
|
#ifndef TF_CheckItem_CL_AMBPEXH
|
#ifndef TF_CheckItem_CL_AMBPEXH
|
#define TF_CheckItem_CL_AMBPEXH
|
#define TF_CheckItem_CL_AMBPEXH
|
|
|
#include "utypes.h"
|
#include "utypes.h"
|
//#include "brd.h"
|
#include "board.h"
|
//#include "time.h"
|
#include "time.h"
|
#include "ctrlstrm.h"
|
#include "ctrlstrm.h"
|
|
|
//#include <string.h>
|
|
|
|
class board;
|
|
|
|
class CL_AMBPEX
|
class CL_AMBPEX
|
{
|
{
|
|
|
|
|
public:
|
public:
|
|
// virtual char* GetName( void ); //!< Возвращает название класса
|
|
|
//! Инициализация модуля
|
//! Инициализация модуля
|
virtual U32 init( void );
|
virtual U32 init( void );
|
|
|
//! Завершение работы с модулем
|
//! Завершение работы с модулем
|
virtual void cleanup( void );
|
virtual void cleanup( void );
|
|
|
|
|
int StreamInit( U32 strm, U32 cnt_buf, U32 size_one_buf_of_bytes, U32 trd, U32 dir, U32 cycle, U32 system, U32 agree_mode );
|
int StreamInit( U32 strm, U32 cnt_buf, U32 size_one_buf_of_bytes, U32 trd, U32 dir, U32 cycle, U32 system, U32 agree_mode );
|
|
|
void StreamDestroy( U32 strm );
|
void StreamDestroy( U32 strm );
|
|
|
U32* StreamGetBufByNum( U32 strm, U32 numBuf );
|
U32* StreamGetBufByNum( U32 strm, U32 numBuf );
|
|
|
void StreamStart( U32 strm );
|
void StreamStart( U32 strm );
|
|
|
void StreamStop( U32 strm );
|
void StreamStop( U32 strm );
|
|
|
int StreamGetBuf( U32 strm, U32** ptr );
|
int StreamGetBuf( U32 strm, U32** ptr );
|
|
|
int StreamGetIndexDma( U32 strm );
|
int StreamGetIndexDma( U32 strm );
|
|
|
int StreamGetNextIndex( U32 strm, U32 index );
|
int StreamGetNextIndex( U32 strm, U32 index );
|
|
|
void StreamGetBufDone( U32 strm );
|
void StreamGetBufDone( U32 strm );
|
|
|
// Доступ к регистрам
|
// Доступ к регистрам
|
|
|
//! Запись в косвенно адресуемый регистр
|
//! Запись в косвенно адресуемый регистр
|
void RegPokeInd( S32 trdNo, S32 rgnum, U32 val );
|
void RegPokeInd( S32 trdNo, S32 rgnum, U32 val );
|
|
|
//! Чтение из косвенно адресуемого регистра
|
//! Чтение из косвенно адресуемого регистра
|
U32 RegPeekInd( S32 trdNo, S32 rgnum );
|
U32 RegPeekInd( S32 trdNo, S32 rgnum );
|
|
|
//! Запись в прямой регистр
|
//! Запись в прямой регистр
|
void RegPokeDir( S32 trdNo, S32 rgnum, U32 val );
|
void RegPokeDir( S32 trdNo, S32 rgnum, U32 val );
|
|
|
//! Чтение из прямого регистра
|
//! Чтение из прямого регистра
|
U32 RegPeekDir( S32 trdNo, S32 rgnum );
|
U32 RegPeekDir( S32 trdNo, S32 rgnum );
|
|
|
CL_AMBPEX(const char* dev_name = NULL);
|
|
|
CL_AMBPEX(const char *devname);
|
virtual ~CL_AMBPEX();
|
virtual ~CL_AMBPEX();
|
|
|
private:
|
|
|
|
|
private:
|
//! Указатель на модуль
|
//! Указатель на модуль
|
board *m_pBoard;
|
board *m_pBoard;
|
|
|
|
|
struct StreamParam
|
struct StreamParam
|
{
|
{
|
U32 status;
|
U32 status;
|
U32 strm;
|
U32 strm;
|
U32 cnt_buf;
|
U32 cnt_buf;
|
U32 size_one_buf_of_bytes;
|
U32 size_one_buf_of_bytes;
|
U32 trd;
|
U32 trd;
|
U32 cycle;
|
U32 cycle;
|
U32 system;
|
U32 system;
|
U32 dir;
|
U32 dir;
|
|
|
U32 indexDma;
|
U32 indexDma;
|
U32 indexPc;
|
U32 indexPc;
|
U32 agree_mode;
|
U32 agree_mode;
|
|
|
BRDstrm_Stub *pStub;
|
BRDstrm_Stub *pStub;
|
|
|
U08 *pBlk[256]; //!< Массив указателей на блоки памяти
|
U08 *pBlk[256]; //!< Массив указателей на блоки памяти
|
|
|
StreamParam()
|
StreamParam()
|
{
|
{
|
//memset( this, 0, sizeof( StreamParam ) );
|
//memset( this, 0, sizeof( StreamParam ) );
|
};
|
};
|
};
|
};
|
|
|
StreamParam m_streamParam[2];
|
StreamParam m_streamParam[2];
|
|
|
|
|
};
|
};
|
|
|
void Sleep( int ms );
|
void Sleep( int ms );
|
|
|
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
|
|
#endif
|
#endif
|
|
|