⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rtdxbios.c

📁 DSP内核代码
💻 C
字号:
/* 每次传输N个int型数,处理后发送回主机*/
#include <std.h>
#include <rtdx.h>
#include"target.h"    /* defines TARGET_INITIALIZE()              */
#include <stdio.h>      /* C_I/O                                    */
#include <log.h>
#include <tsk.h>
#include "rtdxbioscfg.h"

/*保存传输数据的数组*/
int arraydata[];

Void reading(int n);
Void writing(int n);
Void processing(int n);
Void taskend();

Void main()
{
}                          
         
/*从输入管道中读数据*/
Void reading(int n)
{        

         int status;
          n=10;         
          TARGET_INITIALIZE();
/*使能输入、输出通道*/
         RTDX_enableInput(&ichan);
         RTDX_enableOutput(&ochan);
         LOG_printf(&trace,"begin");
         LOG_printf(&trace,"reading");

        status=RTDX_read(&ichan,&arraydata,4*n);
        
        if (status!=4*n) 
        {
               LOG_printf(&trace, "ERROR: RTDX_read failed!\n" );
               exit( -1 );
        }
}
/*向输出管道中写数据*/
Void writing(int n)
{       
        
        int status;
        n=10;
        LOG_printf(&trace,"writing");
        
        status=RTDX_write(&ochan,&arraydata,4*n);


        if ( status == 0 ) {
                LOG_printf(&trace,"ERROR: RTDX_write failed!\n" );
                exit( -1 );
        }
        LOG_printf(&trace,"has been writed to the host");
}
Void processing(int n)
{
     
      int i;
       n=10;
      LOG_printf(&trace,"processing");
     for(i=0;i<n;i+=2){arraydata[i]=-1*arraydata[i];}
}       
Void taskend()
{        
         while ( RTDX_writing != NULL ) 
         {
                #if RTDX_POLLING_IMPLEMENTATION
                    RTDX_Poll();
                #endif
         }


        /*关闭输入和输出通道*/   
        RTDX_disableInput(&ichan);                            
        RTDX_disableOutput(&ochan);

        LOG_printf(&trace, "Program Complete!\n" );
        exit(-1);
} 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -