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("
Unsupported option '%c'. Please try again
", 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
",GET_Message, FLAG );
+ GET_Message = 0;
+ switch ( FLAG )
+ {
+ case 1:
+ Vps_printf(">>>>> xxx: 1 nullsrc send dat
");
+ xxx = 3; FLAG = 0;
+ bVideoDone = FALSE;
+ if(bVideoDone){};
+ break;
+ case 2:
+ Vps_printf(">>>>> xxx: 2 nullsrc stop dat
");
+ xxx = 2; FLAG = 0;
+ bVideoDone = FALSE;
+ break;
+ case 3:
+ Vps_printf(">>>>> xxx: 3 IPUMM startting
");
+ FLAG = 0;
+ #ifdef IPUMM_INCLUDE
+ BspOsal_semPost(semEarlyVid);
+ #endif
+ break;
+ case 4:
+ Vps_printf(">>>>> xxx: 4 pause nullsrc
");
+ 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
");
+ 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.
");
+ 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
",&(GET_Message));
+ if(GET_Message ){};
+ Utils_tskAckOrFreeMsg(pRunMsg, status);
+ break;
case SYSTEM_CMD_DELETE:
*done = (Bool)TRUE;
*ackMsg = (Bool)TRUE;