Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Made changes for AM62A_QNX for single cam and tidl demo #91

Open
wants to merge 1 commit into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions apps/src/input_block.c
Original file line number Diff line number Diff line change
Expand Up @@ -201,7 +201,9 @@ int32_t create_input_block(GraphObj *graph, InputBlock *input_block)
sprintf(sensor_name, "SENSOR_OV2312_UB953_LI");
format_pixel_container = TIVX_RAW_IMAGE_16_BIT;
format_msb = 9;
#if defined(TARGET_OS_LINUX)
v4l2_pix_format = v4l2_fourcc('B','G','I','0');
#endif
output_width = 1600;
output_height = 1300;
}
Expand Down
17 changes: 16 additions & 1 deletion cmake/common.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ endif()

set(TARGET_SOC_LOWER $ENV{SOC})
set(TARGET_OS $ENV{TARGET_OS})
set(QNX_SDP $ENV{QNX_SDP})

if ("${TARGET_OS}" STREQUAL "")
set(TARGET_OS LINUX)
Expand Down Expand Up @@ -82,6 +83,7 @@ add_definitions(

set(VISION_APPS_LIBS_PATH $ENV{VISION_APPS_LIBS_PATH})
set(EDGEAI_LIBS_PATH $ENV{EDGEAI_LIBS_PATH})
set(QNX_LIB_PATH $ENV{QNX_LIB_PATH})
link_directories(${TARGET_FS}/usr/lib/aarch64-linux
${TARGET_FS}/usr/lib
${CMAKE_LIBRARY_PATH}/usr/lib
Expand All @@ -93,6 +95,7 @@ link_directories(${TARGET_FS}/usr/lib/aarch64-linux
if ("${TARGET_OS}" STREQUAL "QNX")
link_directories(${PSDK_QNX_PATH}/qnx/codec/vpu/OpenMAXIL/core/nto/aarch64/so.le/
${PSDK_QNX_PATH}/qnx/codec/vpu/OpenMAXIL/utility/nto/aarch64/so.le
${QNX_LIB_PATH}
)
endif()

Expand Down Expand Up @@ -186,14 +189,26 @@ if ("${TARGET_OS}" STREQUAL "QNX")
ti-pdk
ti-sciclient
c++
c++fs
omxcore_j7
omxil_j7_utility)
add_definitions(
-D_QNX_SOURCE
)
endif()

if ("${TARGET_SOC}" STREQUAL "AM62A" AND "${TARGET_OS}" STREQUAL "QNX")
list(APPEND
SYSTEM_LINK_LIBS
ti-csirxlld
ti-fvid2lld)
endif()

if ("${QNX_SDP}" STREQUAL "710")
list(APPEND
SYSTEM_LINK_LIBS
c++fs)
endif()

set(COMMON_LINK_LIBS
edgeai-tiovx-apps
)
Expand Down
8 changes: 8 additions & 0 deletions modules/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,14 @@ if ("${TARGET_CPU}" STREQUAL "A72" OR "${TARGET_CPU}" STREQUAL "A53")
endif()
endif()

if ("${TARGET_SOC}" STREQUAL "AM62A" AND "${TARGET_OS}" STREQUAL "QNX")
list(APPEND
SRC_FILES
src/tiovx_capture_module.c
src/qnx_display_module.c
src/tiovx_aewb_module.c)
endif()

if ("${TARGET_SOC}" STREQUAL "J721E" OR "${TARGET_SOC}" STREQUAL "J721S2" OR "${TARGET_SOC}" STREQUAL "J742S2" OR "${TARGET_SOC}" STREQUAL "J784S4" OR "${TARGET_SOC}" STREQUAL "J722S")
list(APPEND
SRC_FILES
Expand Down
12 changes: 10 additions & 2 deletions modules/core/include/tiovx_modules_cbs.h
Original file line number Diff line number Diff line change
Expand Up @@ -81,15 +81,19 @@
#include "tiovx_pixelwise_add_module.h"
#include "tiovx_lut_module.h"

#if defined(SOC_J721E) || defined(SOC_J721S2) || defined(SOC_J784S4) || defined(SOC_J722S) || defined(SOC_J742S2)
#if defined(SOC_J721E) || defined(SOC_J721S2) || defined(SOC_J784S4) || defined(SOC_J722S) || defined(SOC_J742S2) || defined(SOC_AM62A)
#if !defined(SOC_AM62A)
#include "tiovx_display_module.h"
#endif
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is bit confusing
Just add capture headers separately

#include "tiovx_capture_module.h"
#include "tiovx_aewb_module.h"
#if !defined(SOC_AM62A)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

are these exluded header files needed for AM62A-Linux ? if yes, please add QNX flag as well

#include "tiovx_sde_module.h"
#include "tiovx_sde_viz_module.h"
#include "tiovx_dof_module.h"
#include "tiovx_dof_viz_module.h"
#endif
#endif

#ifdef __cplusplus
extern "C" {
Expand Down Expand Up @@ -117,14 +121,18 @@ typedef enum {
TIOVX_PIXELWISE_MULTIPLY,
TIOVX_PIXELWISE_ADD,
TIOVX_LUT,
#if defined(SOC_J721E) || defined(SOC_J721S2) || defined(SOC_J784S4) || defined(SOC_J722S) || defined(SOC_J742S2)
#if defined(SOC_J721E) || defined(SOC_J721S2) || defined(SOC_J784S4) || defined(SOC_J722S) || defined(SOC_J742S2) || defined(SOC_AM62A)
#if !defined(SOC_AM62A)
TIOVX_DISPLAY,
#endif
TIOVX_CAPTURE,
TIOVX_AEWB,
#if !defined(SOC_AM62A)
TIOVX_SDE,
TIOVX_SDE_VIZ,
TIOVX_DOF,
TIOVX_DOF_VIZ,
#endif
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same here
add capture and AEWB in separate # define block with all devices
and note that this change should be done only for QNX

#endif
TIOVX_MODULES_NUM_MODULES,
} NODE_TYPES;
Expand Down
6 changes: 5 additions & 1 deletion modules/core/src/tiovx_modules_cbs.c
Original file line number Diff line number Diff line change
Expand Up @@ -206,8 +206,9 @@ NodeCbs gNodeCbs[TIOVX_MODULES_NUM_MODULES] =
.delete_node = tiovx_lut_delete_node,
.get_cfg_size = tiovx_lut_get_cfg_size,
.get_priv_size = tiovx_lut_get_priv_size
#if defined(SOC_J721E) || defined(SOC_J721S2) || defined(SOC_J784S4) || defined(SOC_J722S) || defined(SOC_J742S2)
#if defined(SOC_J721E) || defined(SOC_J721S2) || defined(SOC_J784S4) || defined(SOC_J722S) || defined(SOC_J742S2) || defined(SOC_AM62A)
},
#if !defined(SOC_AM62A)
{
.init_node = tiovx_display_init_node,
.create_node = tiovx_display_create_node,
Expand All @@ -216,6 +217,7 @@ NodeCbs gNodeCbs[TIOVX_MODULES_NUM_MODULES] =
.get_cfg_size = tiovx_display_get_cfg_size,
.get_priv_size = tiovx_display_get_priv_size
},
#endif
{
.init_node = tiovx_capture_init_node,
.create_node = tiovx_capture_create_node,
Expand All @@ -232,6 +234,7 @@ NodeCbs gNodeCbs[TIOVX_MODULES_NUM_MODULES] =
.get_cfg_size = tiovx_aewb_get_cfg_size,
.get_priv_size = tiovx_aewb_get_priv_size
},
#if !defined(SOC_AM62A)
{
.init_node = tiovx_sde_init_node,
.create_node = tiovx_sde_create_node,
Expand Down Expand Up @@ -264,6 +267,7 @@ NodeCbs gNodeCbs[TIOVX_MODULES_NUM_MODULES] =
.get_cfg_size = tiovx_dof_viz_get_cfg_size,
.get_priv_size = tiovx_dof_viz_get_priv_size
}
#endif
#else
}
#endif
Expand Down
79 changes: 79 additions & 0 deletions modules/include/qnx_display_module.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
/*
*
* Copyright (c) 2024 Texas Instruments Incorporated
*
* All rights reserved not granted herein.
*
* Limited License.
*
* Texas Instruments Incorporated grants a world-wide, royalty-free, non-exclusive
* license under copyrights and patents it now or hereafter owns or controls to make,
* have made, use, import, offer to sell and sell ("Utilize") this software subject to the
* terms herein. With respect to the foregoing patent license, such license is granted
* solely to the extent that any such patent is necessary to Utilize the software alone.
* The patent license shall not apply to any combinations which include this software,
* other than combinations with devices manufactured by or for TI ("TI Devices").
* No hardware patent is licensed hereunder.
*
* Redistributions must preserve existing copyright notices and reproduce this license
* (including the above copyright notice and the disclaimer and (if applicable) source
* code license limitations below) in the documentation and/or other materials provided
* with the distribution
*
* Redistribution and use in binary form, without modification, are permitted provided
* that the following conditions are met:
*
* * No reverse engineering, decompilation, or disassembly of this software is
* permitted with respect to any software provided in binary form.
*
* * any redistribution and use are licensed by TI for use only with TI Devices.
*
* * Nothing shall obligate TI to provide you with source code for the software
* licensed and provided to you in object code.
*
* If software source code is provided to you, modification and redistribution of the
* source code are permitted provided that the following conditions are met:
*
* * any redistribution and use of the source code, including any resulting derivative
* works, are licensed by TI for use only with TI Devices.
*
* * any redistribution and use of any object code compiled from the source code
* and any resulting derivative works, are licensed by TI for use only with TI Devices.
*
* Neither the name of Texas Instruments Incorporated nor the names of its suppliers
*
* may be used to endorse or promote products derived from this software without
* specific prior written permission.
*
* DISCLAIMER.
*
* 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'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 LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
* OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
#ifndef _QNX_DISPLAY_MODULE
#define _QNX_DISPLAY_MODULE

#include <screen/screen.h>
#include "tiovx_modules_types.h"

#ifdef __cplusplus
extern "C" {
#endif

int32_t qnx_display_render_buf(Buf *tiovx_buffer);
void qnx_display_init();

#ifdef __cplusplus
}
#endif

#endif
Loading