dra7xx: example for communication between hlos and rtos

example for hlos send cmd to rtos. Share message beteen hlos usecase and rtos usecase.

commit 06716a048f0870a0762782dcc93fd084f5920665
Author: xxx Zhang <>
Date:   Tue May 28 13:43:23 2019 +0800

    vsdk: add command for appctrol

diff --git a/apps/src/hlos/adas/src/usecases/disp_dist_src_display/chains_dispDistSrc_Display.c b/apps/src/hlos/adas/src/usecases/disp_dist_src_display/chains_dispDistSrc_Display.c
index 07640ac..cec7b38 100644
--- a/apps/src/hlos/adas/src/usecases/disp_dist_src_display/chains_dispDistSrc_Display.c
+++ b/apps/src/hlos/adas/src/usecases/disp_dist_src_display/chains_dispDistSrc_Display.c
@@ -227,6 +227,7 @@ Void chains_dispDistSrc_Display_StopAndDeleteApp(Chains_DispDistSrcDisplayAppObj
 Void Chains_dispDistSrc_Display(Chains_Ctrl *chainsCfg)
 {
     char ch = 'a';
+    char Command[10]={'0'}; 
     UInt32 done = FALSE;
     Chains_DispDistSrcDisplayAppObj chainsObj;
 
@@ -255,6 +256,13 @@ Void Chains_dispDistSrc_Display(Chains_Ctrl *chainsCfg)
                 chains_dispDistSrc_Display_printStatistics(&chainsObj.ucObj);
                 break;
             default:
+                 Command[0] = ch;
+                 System_linkControl(
+                                       chainsObj.ucObj.Display_m4LinkID,
+                                           SYSTEM_CMD_GET_CMD,
+                                       &Command[0],
+                                       10,
+                                       TRUE);
                 Vps_printf("\nUnsupported option '%c'. Please try again\n", ch);
                 break;
         }
diff --git a/apps/src/rtos/usecases/null_src_dec_display/chains_nullSrcDecDisplay.c b/apps/src/rtos/usecases/null_src_dec_display/chains_nullSrcDecDisplay.c
index fc9b3c0..fd37fdb 100644
--- a/apps/src/rtos/usecases/null_src_dec_display/chains_nullSrcDecDisplay.c
+++ b/apps/src/rtos/usecases/null_src_dec_display/chains_nullSrcDecDisplay.c
@@ -66,7 +66,7 @@ Limited License.
 #include "chains_nullSrcDecDisplay_priv.h"
 #include <src/include/chains_common.h>
 #include <src/include/chains_common_osal.h>
-
+#include <include/link_api/system.h>
 #define MAX_NUMBER_OF_CHANNELS    (1)
 #define ENCDEC_MAX_FRAME_WIDTH    (1280)
 #define ENCDEC_MAX_FRAME_HEIGHT   (720)
@@ -75,8 +75,8 @@ Limited License.
 #define EARLY_VIDEO_DATA_VIRT  0xA5000000
 #define EARLY_VIDEO_HDR_VIRT   0xA5c00000
 #define NUM_REPEAT_PLAYBACK 2
-
-static UInt32 xxx = 2;
+extern Uint32 GET_Message;
+static UInt32 xxx = 3;
 static Bool bVideoDone = FALSE;
 UInt32 FLAG  = 0;
 #ifdef IPUMM_INCLUDE
@@ -584,37 +584,62 @@ Void Chains_nullSrc_DecodeDisplay(Chains_Ctrl *chainsCfg)
   //  }
     done = FALSE;
     while( !done ){
-        switch ( FLAG  )
-        {
-        case 1:
-            xxx = 3; FLAG = 0;
-            bVideoDone = FALSE;
-            if(bVideoDone){};
-            break;
-        case 2:
-            xxx = 2;  FLAG = 0;
-            bVideoDone = FALSE;
-            break;
-        case 3:
-            FLAG = 0;
-            #ifdef IPUMM_INCLUDE
-            BspOsal_semPost(semEarlyVid);
-            #endif
-            break;
-        case 4:
-            FLAG = 0;
-            chainsObj.ucObj.NullSourcePrm.pauseLink=TRUE;
-            break;
-        case 5:
-            FLAG = 0;
-            chainsObj.ucObj.NullSourcePrm.pauseLink=FALSE;
-            break;
-        case 6:
-            FLAG = 0;
-            chains_nullSrcDecDisplay_StopAndDeleteApp(&chainsObj);
-            break;
-        default:
-            break;
+        if ( GET_Message > 0 ){
+            
+            
+            FLAG= GET_Message -0x30;
+            Vps_printf(">>>>> xxx:  %d %d  \n ",GET_Message, FLAG );
+            GET_Message = 0;
+            switch ( FLAG  )
+            {
+            case 1:
+                Vps_printf(">>>>> xxx:  1 nullsrc send dat \n");
+                xxx = 3; FLAG = 0;
+                bVideoDone = FALSE;
+                if(bVideoDone){};
+                break;
+            case 2:
+                Vps_printf(">>>>> xxx:  2 nullsrc stop dat \n");
+                xxx = 2;  FLAG = 0;
+                bVideoDone = FALSE;
+                break;
+            case 3:
+                Vps_printf(">>>>> xxx:  3 IPUMM startting \n");
+                FLAG = 0;
+                #ifdef IPUMM_INCLUDE
+                BspOsal_semPost(semEarlyVid);
+                #endif
+                break;
+            case 4:
+                Vps_printf(">>>>> xxx:  4 pause nullsrc \n");
+                FLAG = 0;
+                   /* Puase Null source */
+                    System_linkControl(
+                        chainsObj.ucObj.NullSourceLinkID,
+                        NULL_SRC_LINK_CMD_PAUSE,
+                        NULL,
+                        0,
+                        TRUE);
+                break;
+            case 5:
+                Vps_printf(">>>>> xxx:  5 resume nullsrc \n");
+                FLAG = 0;
+                   /* Resume Null source */
+                System_linkControl(
+                        chainsObj.ucObj.NullSourceLinkID,
+                        NULL_SRC_LINK_CMD_RESUME,
+                        NULL,
+                        0U,
+                        TRUE);
+                break;
+            case 6:
+                Vps_printf(">>>>> xxx:  6 stop chains. \n");
+                FLAG = 0;
+                chains_nullSrcDecDisplay_StopAndDeleteApp(&chainsObj);
+                break;
+            default:
+                break;
+            }
         }
         Task_sleep(sleepMs);
     }
diff --git a/apps/src/rtos/usecases/null_src_dec_display/chains_nullSrcDecDisplay_priv.h b/apps/src/rtos/usecases/null_src_dec_display/chains_nullSrcDecDisplay_priv.h
index 9e2c6f0..403af49 100644
--- a/apps/src/rtos/usecases/null_src_dec_display/chains_nullSrcDecDisplay_priv.h
+++ b/apps/src/rtos/usecases/null_src_dec_display/chains_nullSrcDecDisplay_priv.h
@@ -47,10 +47,10 @@ Limited License.
 
  DISCLAIMER.
 
- THIS SOFTWARE IS PROVIDED BY TI AND TI<92>S LICENSORS 'AS IS' AND ANY EXPRESS OR
+ THIS SOFTWARE IS PROVIDED BY TI AND TI�S LICENSORS 'AS IS' AND ANY EXPRESS OR
  IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- IN NO EVENT SHALL TI AND TI<92>S LICENSORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ IN NO EVENT SHALL TI AND TI�S LICENSORS BE LIABLE FOR ANY DIRECT, INDIRECT,
  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
diff --git a/links_fw/include/link_api/system_common.h b/links_fw/include/link_api/system_common.h
index e549870..9c7f13f 100644
--- a/links_fw/include/link_api/system_common.h
+++ b/links_fw/include/link_api/system_common.h
@@ -47,10 +47,10 @@ Limited License.
 
  DISCLAIMER.
 
- THIS SOFTWARE IS PROVIDED BY TI AND TI<92>S LICENSORS "AS IS" AND ANY EXPRESS OR
+ THIS SOFTWARE IS PROVIDED BY TI AND TI�S LICENSORS "AS IS" AND ANY EXPRESS OR
  IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- IN NO EVENT SHALL TI AND TI<92>S LICENSORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ IN NO EVENT SHALL TI AND TI�S LICENSORS BE LIABLE FOR ANY DIRECT, INDIRECT,
  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
@@ -199,6 +199,7 @@ Limited License.
  */
 #define SYSTEM_CMD_GET_INFO                 (0x00000005U)
 
+#define SYSTEM_CMD_GET_CMD                  (0x00000006U)
 /**
  *******************************************************************************
  *
diff --git a/links_fw/src/rtos/links_ipu/display/displayLink_tsk.c b/links_fw/src/rtos/links_ipu/display/displayLink_tsk.c
index 33ce5da..06925c8 100644
--- a/links_fw/src/rtos/links_ipu/display/displayLink_tsk.c
+++ b/links_fw/src/rtos/links_ipu/display/displayLink_tsk.c
@@ -85,7 +85,7 @@ Limited License.
  *******************************************************************************
  */
 #include "displayLink_priv.h"
-
+Uint32 GET_Message = 0;
 /*******************************************************************************
  *                  Internal Function Declarations
  *******************************************************************************
@@ -201,7 +201,12 @@ Int32 DisplayLink_tskRun(DisplayLink_Obj *pObj, Utils_TskHndl *pTsk,
 
                 DisplayLink_drvProcessData(pObj);
                 break;
-
+            case SYSTEM_CMD_GET_CMD:
+                memcpy( &GET_Message,(char *)Utils_msgGetPrm(pRunMsg), 1);
+                    Vps_printf(">>>>>>: xxx: display link Get_message %c \n",&(GET_Message));
+                if(GET_Message ){};
+                                Utils_tskAckOrFreeMsg(pRunMsg, status);
+                break;
             case SYSTEM_CMD_DELETE:
                 *done = (Bool)TRUE;
                 *ackMsg = (Bool)TRUE;

猜你喜欢

转载自www.cnblogs.com/widic/p/10942514.html
今日推荐