• 大小: 1.46M
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-03-25
  • 语言: Matlab
  • 标签: MATLAB  

资源简介

介绍DACE , MATLAB Kriging Toolbox V2[1].0工具箱使用的好文档

资源截图

代码片段和文件信息

#include 
#include “serial.h“


////////////////////////////////////////////////////////
////////////////////////////////////////////////////////
void ZeroTestArr()
{
   int i;
   unsigned int *puiTestArr = (unsigned int *)(0xE0109000);

   for ( i=0; i<0x100; i++ )
      *puiTestArr++ = 0;

   return;
}

////////////////////////////////////////////////////////
////////////////////////////////////////////////////////
void * TestProcForCore2( volatile void *p )
{
   int i;
   int iMax;
   unsigned int *puiTestArr = (unsigned int *)(0xE0109000);

   iMax = *(unsigned int *)p;

   for ( i=0; i      *puiTestArr++ = i;

   return (void *)(i + 1);
}






////////////////////////////////////////////////////////
////////////////////////////////////////////////////////
unsigned int g_uiCore2Stackbase = 0;

void SetCore2Stackbase( unsigned int uiStackbase )
{
   g_uiCore2Stackbase = uiStackbase;
   return;
}

////////////////////////////////////////////////////////
////////////////////////////////////////////////////////
void CallFuncOnCore2( void * (* pProc)(volatile void *p) void *puiP1 )
{
   // 1) pProc - %r5
   // 2) puiP1 - %r6

   asm
   {
      //“push %r0“;
      //“push %r1“;

      “lih hi(0xE0100FF8) %r0“;
      “lil lo(0xE0100FF8) %r0“;

      “lih hi(_g_uiCore2Stackbase) %r1“;   // | %sp0
      “lil lo(_g_uiCore2Stackbase) %r1“;   // |
      “lw [%r1] %r1“;
      “sub %r1 4 %r1“;                    // for 1 parameter (puiP1)
      “sw %r1 [%r0+4]“;

      “sw %r6 [%r1]“;                      // “push“ parameter (puiP1)
      “sw %r5 [%r0]“;                      // %pc0 - start Core2

      //“pop %r1“;
      //“pop %r0“;
   }
}

////////////////////////////////////////////////////////
////////////////////////////////////////////////////////
void * WaitForCore2()
{
   // Return value - %r4
   
   volatile unsigned int uiDummy;

   asm
   {
      //“push %r0“;
      //“push %r1“;

      “lih hi(0xE0100FF8) %r0“;
      “lil lo(0xE0100FF8) %r0“;

“wait_for_Core2:“;
      “lw [%r0] %r1“;
      “cmp %r1 0“;
      “jmp.nz wait_for_Core2“;

      “lih hi(_g_uiCore2Stackbase) %r1“;
      “lil lo(_g_uiCore2Stackbase) %r1“;
      “lw [%r1] %r1“;
      “sub %r1 4 %r1“;
      “lw [%r1] %r4“;                      // get result value from Core2 stack
                                            // and return it in Core1 context
      “sw %r4 [%sp]“;                      // save to dummy var uiDummy

      //“pop %r1“;
      //“pop %r0“;
   }

   return (void *)uiDummy;
}


////////////////////////////////////////////////////////
////////////////////////////////////////////////////////
int main()
{
   int i;
   unsigned int uiParStr;
   unsigned int *puiParStr = &uiParStr;
   volatile unsigned int uiRes = 0;

   ZeroTestArr();

   SetCore2Stackbase( 0xE0108000 );

   uiParStr = 0x20;
   Ca

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件     1614527  2020-09-18 06:26  DACE.0.pdf
     文件        3230  2020-09-18 06:25  main.c
     文件         312  2020-09-18 06:25  make.bat

评论

共有 条评论