OpenCores
URL https://opencores.org/ocsvn/pcie_ds_dma/pcie_ds_dma/trunk

Subversion Repositories pcie_ds_dma

[/] [pcie_ds_dma/] [trunk/] [soft/] [linux/] [application/] [wb_test/] [src/] [work/] [main.cpp] - Diff between revs 2 and 19

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 2 Rev 19
Line 57... Line 57...
#include "cl_wbpex.h"
#include "cl_wbpex.h"
//#include "tf_test.h"
//#include "tf_test.h"
//#include "tf_teststrm.h"
//#include "tf_teststrm.h"
//#include "tf_teststrmout.h"
//#include "tf_teststrmout.h"
//#include "useful.h"
//#include "useful.h"
 
#include "wb_teststrm.h"
 
#include "wb_teststrmout.h"
 
 
CL_WBPEX    g_Board;
CL_WBPEX    g_Board;
 
 
U32 isTwoTest=0;
U32 isTwoTest=0;
 
 
void ShowPldInfo( CL_WBPEX *pBrd );
static volatile int exit_flag = 0;
 
 
 
void signa_handler(int signo)
 
{
 
    exit_flag = 1;
 
}
 
 
 
 
 
void ShowWishboneInfo( CL_WBPEX *pBrd );
 
 
//
//
//=== Console
//=== Console
//
//
//HANDLE        hConsoleOut;
//HANDLE        hConsoleOut;
Line 75... Line 85...
int BRDC_main(int argc, BRDCHAR* argv[])
int BRDC_main(int argc, BRDCHAR* argv[])
{
{
    // анализ командной строки
    // анализ командной строки
    setlocale( LC_ALL, "Russian" );
    setlocale( LC_ALL, "Russian" );
 
 
    //TF_Test  *pTest=NULL;
    TF_Test  *pTest=NULL;
    //TF_Test  *pTest2=NULL;
    TF_Test  *pTest2=NULL;
 
 
    BRDCHAR* fname = argv[1];
    BRDCHAR* fname = argv[1];
    BRDCHAR* fname2=NULL;
    BRDCHAR* fname2=NULL;
    if( argc<2 )
    if( argc<2 )
    {
    {
Line 91... Line 101...
        fname2=argv[2];
        fname2=argv[2];
    }
    }
 
 
 
 
    //printf( "Файл инициализации: %s\n", fname );
    //printf( "Файл инициализации: %s\n", fname );
  //  try
    try
    {
    {
        CL_WBPEX *pBrd = &g_Board;
        CL_WBPEX *pBrd = &g_Board;
 
 
        int ret=pBrd->init();
        int ret=pBrd->init();
 
 
        if( 0==ret )
        if( 0==ret )
        {
        {
            BRDC_fprintf( stderr, _BRDC("Модуль AMBPEX открыт успешно\n") );
            BRDC_fprintf( stderr, _BRDC("Board PEXDRV open succesfully\n") );
 
 
 
 
            /*
            /*
            for( trd=0; trd<8; trd++ )
            for( trd=0; trd<8; trd++ )
                pBrd->RegPokeInd( trd, 0, 1 );
                pBrd->RegPokeInd( trd, 0, 1 );
Line 116... Line 126...
                pBrd->RegPokeInd( trd, 0, 0 );
                pBrd->RegPokeInd( trd, 0, 0 );
            */
            */
 
 
        } else
        } else
        {
        {
            BRDC_fprintf( stderr, _BRDC("Ошибка при открытии модуля AMBPEX: ret=0x%.8X\n"), ret );
            BRDC_fprintf( stderr, _BRDC("Error during open PEXDRV: ret=0x%.8X\n"), ret );
            //getch();
            //getch();
            exit(-1);
            exit(-1);
        }
        }
 
 
        printf( "\nShowPldInfo\n" );
        //printf( "\nShowPldInfo\n" );
        ShowPldInfo( pBrd );
        ShowWishboneInfo( pBrd );
    }
    //}
}
 
 
 
#if 0
 
 
//#if 0
        if( fname[0]=='o' )
        if( fname[0]=='o' )
            pTest = new TF_TestStrmOut( fname, &g_AMBPEX );
            pTest = new WB_TestStrmOut( fname, pBrd );
        else
        else
            pTest = new TF_TestStrm( fname, &g_AMBPEX );
            pTest = new WB_TestStrm( fname, pBrd );
 
 
        Sleep( 10 );
        Sleep( 10 );
 
 
        if( fname2 )
        if( fname2 )
        {
        {
            isTwoTest=1;
            isTwoTest=1;
            if( fname2[0]=='o' )
            if( fname2[0]=='o' )
                pTest2 = new TF_TestStrmOut( fname2, &g_AMBPEX );
                pTest2 = new WB_TestStrmOut( fname2, pBrd );
            else
            else
                pTest2 = new TF_TestStrm( fname2, &g_AMBPEX );
                pTest2 = new WB_TestStrm( fname2, pBrd );
        }
        }
 
 
        pTest->Prepare();
        pTest->Prepare();
        if( pTest2 )
        if( pTest2 )
            pTest2->Prepare();
            pTest2->Prepare();
Line 155... Line 165...
        if( pTest2 )
        if( pTest2 )
            pTest2->Start();
            pTest2->Start();
 
 
        //int key;
        //int key;
        int isFirstCallStep=1;
        int isFirstCallStep=1;
 
        int isStopped = 0;
        for( ; ; )
        for( ; ; )
        {
        {
            if( kbhit() )
 
            {
 
                int key=getch();
 
                if( key==0x1B )
 
                {
 
 
 
 
 
 
            if( exit_flag )
 
            {
 
                if(!isStopped) {
                    pTest->Stop();
                    pTest->Stop();
                    if( pTest2 )
                    if( pTest2 ) {
                        pTest2->Stop();
                        pTest2->Stop();
                    BRDC_fprintf( stderr, _BRDC("\n\nОтмена\n") );
 
                }
                }
 
                    BRDC_fprintf( stderr, _BRDC("\n\nCancel\n") );
                if( key=='i' )
                    isStopped = 1;
                {
 
                    pBrd->RegPokeInd( 4, TRDIND_DELAY_CTRL, 0x12 );
 
                    pBrd->RegPokeInd( 4, TRDIND_DELAY_CTRL, 0x10 );
 
                    g_DelayCnt--; BRDC_fprintf( stderr, "\n\ng_DelayCnt = %d ", g_DelayCnt );
 
                }
                }
 
 
                if( key=='o' )
 
                {
 
                    pBrd->RegPokeInd( 4, TRDIND_DELAY_CTRL, 0x13 );
 
                    pBrd->RegPokeInd( 4, TRDIND_DELAY_CTRL, 0x11 );
 
                    g_DelayCnt++; BRDC_fprintf( stderr, "\n\ng_DelayCnt = %d ", g_DelayCnt );
 
                }
                }
 
 
            }
            if( exit_flag )
            ret=pTest->isComplete();
 
            if( ret )
 
            {
 
                if( pTest2 )
 
                {
                {
                    ret=pTest2->isComplete();
                if(isStopped) {
                    if( ret )
 
 
                    if( pTest->isComplete() ) {
 
 
 
                        if( pTest2 ) {
 
                            if( pTest2->isComplete() )
                        break;
                        break;
                } else
                        } else {
                {
 
                    break;
                    break;
                }
                }
 
 
            }
            }
 
                }
 
            }
 
 
 
 
            //SetConsoleCursorPosition(hConsoleOut, rCursorPosition);
            //SetConsoleCursorPosition(hConsoleOut, rCursorPosition);
            if( isFirstCallStep || isTwoTest )
            if( isFirstCallStep || isTwoTest )
            {
            {
 
 
              BRDC_fprintf( stderr, _BRDC("%10s %10s %10s %10s %10s %10s %10s %10s\n"), _BRDC(""), _BRDC("BLOCK_WR"), _BRDC("BLOCK_RD"), _BRDC("BLOCK_OK"), _BRDC("BLOCK_ERR"), _BRDC("SPD_CURR"), _BRDC("SPD_AVR"), _BRDC("STATUS"));
              BRDC_fprintf( stdout, _BRDC("%10s %10s %10s %10s %10s %10s %10s %10s\n"), _BRDC(""), _BRDC("BLOCK_WR"), _BRDC("BLOCK_RD"), _BRDC("BLOCK_OK"), _BRDC("BLOCK_ERR"), _BRDC("SPD_CURR"), _BRDC("SPD_AVR"), _BRDC("STATUS"));
              BRDC_fprintf( stderr, _BRDC("\n"));
              BRDC_fprintf( stdout, _BRDC("\n"));
            }
            }
 
 
            if (isFirstCallStep)
            if (isFirstCallStep)
            {
            {
                //CONSOLE_SCREEN_BUFFER_INFO csbInfo;
                //CONSOLE_SCREEN_BUFFER_INFO csbInfo;
Line 257... Line 253...
    BRDC_fprintf( stderr, "\n Press any key\n" );
    BRDC_fprintf( stderr, "\n Press any key\n" );
    //getch();
    //getch();
 
 
//}
//}
    return 0;
    return 0;
#endif
//#endif
 
}
 
 
 
 
 
 
void ShowPldInfo( CL_WBPEX *pBrd )
void ShowWishboneInfo( CL_WBPEX *pBrd )
{
{
 
 
 
 
    {
    {
        U32 d, d1, d2, d3, d4, d5, ii;
        U32 d, d1, d2, d3, d4, d5, ii;
        U32 block_id, block_id_mod;
        U32 block_id, block_id_mod;
        U32 block_ver_major, block_ver_minor;
        U32 block_ver_major, block_ver_minor;
        const char *str;
        const char *str;
 
 
        BRDC_fprintf( stderr, _BRDC("Прошивка ПЛИС WB\r\n")  );
        BRDC_fprintf( stderr, _BRDC("FPGA WB\r\n")  );
 
 
 
 
/*
/*
        d=pBrd->RegPeekInd( 0, 0x108 );
        d=pBrd->RegPeekInd( 0, 0x108 );
        if( d==0x4953 ) {
        if( d==0x4953 ) {
Line 295... Line 292...
        d=pBrd->RegPeekInd( 0, 0x10B );  BRDC_fprintf( stderr, "   Модификация прошивки ПЛИС:  %d \n", d );
        d=pBrd->RegPeekInd( 0, 0x10B );  BRDC_fprintf( stderr, "   Модификация прошивки ПЛИС:  %d \n", d );
        d=pBrd->RegPeekInd( 0, 0x10A );  BRDC_fprintf( stderr, "   Версия прошивки ПЛИС:       %d.%d\n", d>>8, d&0xFF );
        d=pBrd->RegPeekInd( 0, 0x10A );  BRDC_fprintf( stderr, "   Версия прошивки ПЛИС:       %d.%d\n", d>>8, d&0xFF );
        d=pBrd->RegPeekInd( 0, 0x114 );  BRDC_fprintf( stderr, "   Номер сборки прошивки ПЛИС: 0x%.4X\n", d );
        d=pBrd->RegPeekInd( 0, 0x114 );  BRDC_fprintf( stderr, "   Номер сборки прошивки ПЛИС: 0x%.4X\n", d );
*/
*/
 
 
        BRDC_fprintf( stderr, "\nИнформация о блоках управления:\n\n" );
        BRDC_fprintf( stderr, "\nWB block info:\n\n" );
        for( ii=0; ii<2; ii++ ) {
        for( ii=0; ii<2; ii++ ) {
 
 
            d= pBrd->wb_block_read( ii, 0 );
            d= pBrd->wb_block_read( ii, 0 );
                block_id = d & 0xFFF; block_id_mod=(d>>12) & 0xF;
                block_id = d & 0xFFF; block_id_mod=(d>>12) & 0xF;
 
 
Line 318... Line 315...
                case 0x1B: str="TEST_GENERATE "; break;
                case 0x1B: str="TEST_GENERATE "; break;
 
 
 
 
            default: str="UNKNOW        "; break;
            default: str="UNKNOW        "; break;
            }
            }
 
            //BRDC_fprintf( stderr, " %d  0x%.8X 0x%.8X \n", ii, d, d1 );
 
 
            BRDC_fprintf( stderr, " %d  0x%.4X %s ", ii, block_id, str );
            BRDC_fprintf( stderr, " %d  0x%.4X %s ", ii, block_id, str );
            if( block_id>0 ) {
            if( block_id>0 ) {
                BRDC_fprintf( stderr, " MOD: %-2d VER: %d.%d ", block_id_mod, block_ver_major, block_ver_minor );
                BRDC_fprintf( stderr, " MOD: %-2d VER: %d.%d \n", block_id_mod, block_ver_major, block_ver_minor );
            } else {
            } else {
                BRDC_fprintf( stderr, "\n" );
                BRDC_fprintf( stderr, "\n" );
            }
            }
 
 
        }
        }

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.