C
Qt Quick Ultralite camera Example
message(STATUS "NXP board: ${BOARD_NAME}") if(${BOARD_NAME} STREQUAL "mimxrt1050") SET(BOARD_NAME "evkbimxrt1050") SET(DEVICE_NAME "MIMXRT1052") elseif(${BOARD_NAME} STREQUAL "mimxrt1060") SET(BOARD_NAME "evkmimxrt1060") SET(DEVICE_NAME "MIMXRT1062") elseif(${BOARD_NAME} STREQUAL "mimxrt1064") SET(BOARD_NAME "evkmimxrt1064") SET(DEVICE_NAME "MIMXRT1064") endif() message(STATUS "NXP SDK directory: ${QUL_BOARD_SDK_DIR}") if(NOT EXISTS "${QUL_BOARD_SDK_DIR}/boards/${BOARD_NAME}/driver_examples/csi/rgb565") message(FATAL_ERROR "NXP's CSI driver example not found at ${QUL_BOARD_SDK_DIR}") endif() target_link_libraries(camera PRIVATE Qul::PlatformBSPConfig) if(IAR) target_compile_options(camera PRIVATE $<$<COMPILE_LANGUAGE:C>:--diag_suppress Pa082> ) #Pa082 order of volatile accesses is undefined else() target_compile_options(camera PRIVATE -Wno-error=unused-parameter # The DelayLoop() function in NXP SDK code (fsl_common_arm.c) uses a non-local label in # inline assembly which is incompatible with GCC LTO when that function gets inlined # Thus, we need to disable function inlining. See UL-4412. -fno-inline-functions ) endif() target_compile_definitions(camera PRIVATE SDK_I2C_BASED_COMPONENT_USED=1 SERIAL_PORT_TYPE_UART=1 ) target_include_directories(camera PRIVATE "${QUL_BOARD_SDK_DIR}/boards/${BOARD_NAME}/driver_examples/csi/rgb565" "${QUL_BOARD_SDK_DIR}/CMSIS/Include/" "${QUL_BOARD_SDK_DIR}/components/" "${QUL_BOARD_SDK_DIR}/components/uart" "${QUL_BOARD_SDK_DIR}/components/serial_manager" "${QUL_BOARD_SDK_DIR}/components/video/" "${QUL_BOARD_SDK_DIR}/components/video/camera/" "${QUL_BOARD_SDK_DIR}/components/video/camera/device/" "${QUL_BOARD_SDK_DIR}/components/video/camera/receiver/" "${QUL_BOARD_SDK_DIR}/components/video/camera/receiver/csi" "${QUL_BOARD_SDK_DIR}/components/video/camera/device/ov7725/" "${QUL_BOARD_SDK_DIR}/components/video/camera/device/mt9m114/" "${QUL_BOARD_SDK_DIR}/components/video/camera/device/sccb/" "${QUL_BOARD_SDK_DIR}/components/video/i2c/" "${QUL_BOARD_SDK_DIR}/devices/${DEVICE_NAME}/" "${QUL_BOARD_SDK_DIR}/devices/${DEVICE_NAME}/drivers/" "${QUL_BOARD_SDK_DIR}/devices/${DEVICE_NAME}/utilities/debug_console" "${CMAKE_CURRENT_SOURCE_DIR}/../.." ) target_sources(camera PRIVATE "${QUL_BOARD_SDK_DIR}/boards/${BOARD_NAME}/driver_examples/csi/rgb565/camera_support.c" "${QUL_BOARD_SDK_DIR}/components/video/camera/device/mt9m114/fsl_mt9m114.c" "${QUL_BOARD_SDK_DIR}/components/video/camera/receiver/csi/fsl_csi_camera_adapter.c" "${QUL_BOARD_SDK_DIR}/devices/${DEVICE_NAME}/drivers/fsl_common_arm.c" "${QUL_BOARD_SDK_DIR}/components/video/fsl_video_common.c" "${QUL_BOARD_SDK_DIR}/components/video/i2c/fsl_video_i2c.c" "${QUL_BOARD_SDK_DIR}/devices/${DEVICE_NAME}/drivers/fsl_csi.c" pin_mux_csi.c board_lpi2c.c camerainterface.cpp ) if (QUL_BUILD_QMLPROJECT_EXAMPLES) target_link_libraries(camera_qmlproject PRIVATE Qul::PlatformBSPConfig) if(IAR) target_compile_options(camera_qmlproject PRIVATE $<$<COMPILE_LANGUAGE:C>:--diag_suppress Pa082> ) #Pa082 order of volatile accesses is undefined else() target_compile_options(camera_qmlproject PRIVATE -Wno-error=unused-parameter # The DelayLoop() function in NXP SDK code (fsl_common_arm.c) uses a non-local label in # inline assembly which is incompatible with GCC LTO when that function gets inlined # Thus, we need to disable function inlining. See UL-4412. -fno-inline-functions ) endif() target_compile_definitions(camera_qmlproject PRIVATE SDK_I2C_BASED_COMPONENT_USED=1 SERIAL_PORT_TYPE_UART=1 ) target_include_directories(camera_qmlproject PRIVATE "${QUL_BOARD_SDK_DIR}/boards/${BOARD_NAME}/driver_examples/csi/rgb565" "${QUL_BOARD_SDK_DIR}/CMSIS/Include/" "${QUL_BOARD_SDK_DIR}/components/" "${QUL_BOARD_SDK_DIR}/components/uart" "${QUL_BOARD_SDK_DIR}/components/serial_manager" "${QUL_BOARD_SDK_DIR}/components/video/" "${QUL_BOARD_SDK_DIR}/components/video/camera/" "${QUL_BOARD_SDK_DIR}/components/video/camera/device/" "${QUL_BOARD_SDK_DIR}/components/video/camera/receiver/" "${QUL_BOARD_SDK_DIR}/components/video/camera/receiver/csi" "${QUL_BOARD_SDK_DIR}/components/video/camera/device/ov7725/" "${QUL_BOARD_SDK_DIR}/components/video/camera/device/mt9m114/" "${QUL_BOARD_SDK_DIR}/components/video/camera/device/sccb/" "${QUL_BOARD_SDK_DIR}/components/video/i2c/" "${QUL_BOARD_SDK_DIR}/devices/${DEVICE_NAME}/" "${QUL_BOARD_SDK_DIR}/devices/${DEVICE_NAME}/drivers/" "${QUL_BOARD_SDK_DIR}/devices/${DEVICE_NAME}/utilities/debug_console" "${CMAKE_CURRENT_SOURCE_DIR}/../.." ) target_sources(camera_qmlproject PRIVATE "${QUL_BOARD_SDK_DIR}/boards/${BOARD_NAME}/driver_examples/csi/rgb565/camera_support.c" "${QUL_BOARD_SDK_DIR}/components/video/camera/device/mt9m114/fsl_mt9m114.c" "${QUL_BOARD_SDK_DIR}/components/video/camera/receiver/csi/fsl_csi_camera_adapter.c" "${QUL_BOARD_SDK_DIR}/devices/${DEVICE_NAME}/drivers/fsl_common_arm.c" "${QUL_BOARD_SDK_DIR}/components/video/fsl_video_common.c" "${QUL_BOARD_SDK_DIR}/components/video/i2c/fsl_video_i2c.c" "${QUL_BOARD_SDK_DIR}/devices/${DEVICE_NAME}/drivers/fsl_csi.c" pin_mux_csi.c board_lpi2c.c camerainterface.cpp ) endif()