• 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("
    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;
    
  • 相关阅读:
    使用element-ui是下拉筛选选择
    vue 组件传值
    vue element 地址联动的使用
    vux scroller
    实时监听组件中路由的变化
    vuex的使用
    对移动端滚动高度的获取
    【转】ACM 取石子问题
    【转】ACM博弈知识汇总
    EOJ 2857 编辑距离
  • 原文地址:https://www.cnblogs.com/widic/p/10942514.html
Copyright © 2020-2023  润新知