This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Compiler/TDA2PXEVM: Linux : Not able to increase qspi memory

Part Number: TDA2PXEVM


Tool/software: TI C/C++ Compiler

Hi 

As i'am trying to increase QSPI memory but errors are reported utils_qspi.h to 

#define SYSTEM_QSPI_FLASH_BLOCK_SIZE (32768U*1024U)

How can we  increase the qspi memory as i have to store and access 31mb of memory on qspi.

So can you suggest possible solution ?

Thanks

Pratik

  • Pratik,

    What error do you see? 

    Rgds,

    Brijesh

  • Hi Brijesh 

    Below are the structure which i have defined in c file . 

    typedef struct svsWorldPointsLut
    {
    float afWorldLUTX[450 * 900];
    float afWorldLUTY[450 * 900];
    float afWorldLUTz[450 * 900];
    } svsWorldPointsLut;

    I was able to acesss the array when the structure was as below 

    typedef struct svsWorldPointsLut
    {
    float afWorldLUTX[3];
    } svsWorldPointsLut;

    The error reported is as per logs below 

    "/home/neha/Documents/Visonsdk/vision_sdk/binaries/apps/tda2px_evm_linux_all/obj/vision_sdk/tda2px-evm/c66xdsp_1/release/vision_sdk_configuro/linker_mod.cmd", line 253: error:

    program will not fit into available memory. run placement with alignment

    fails for section ".bss:extMemNonCache:linkStats" size 0x1f0b334 .
    Available memory ranges:
    LINK_STATS_MEM size: 0x80000 unused: 0x80000 max hole: 0x80000
    error: errors encountered during linking;
    "/home/neha/Documents/Visonsdk/vision_sdk/binaries/apps/tda2px_evm_linux_all
    /vision_sdk/bin/tda2px-evm/vision_sdk_c66xdsp_1_release.xe66" not built
    /home/neha/Documents/Visonsdk/vision_sdk/build/rtos/makerules/rules_66.mk:271: recipe for target '/home/neha/Documents/Visonsdk/vision_sdk/binaries/apps/tda2px_evm_linux_all/vision_sdk/bin/tda2px-evm/vision_sdk_c66xdsp_1_release.xe66' failed
    make[7]: *** [/home/neha/Documents/Visonsdk/vision_sdk/binaries/apps/tda2px_evm_linux_all/vision_sdk/bin/tda2px-evm/vision_sdk_c66xdsp_1_release.xe66] Error 1
    /home/neha/Documents/Visonsdk/vision_sdk/build/rtos/makerules/common.mk:271: recipe for target 'c66xdsp_1' failed
    make[6]: *** [c66xdsp_1] Error 2
    MAKEFILE.MK:116: recipe for target 'apps_dsp1' failed
    make[5]: *** [apps_dsp1] Error 2
    make[5]: *** Waiting for unfinished jobs....
    "/home/neha/Documents/Visonsdk/vision_sdk/binaries/apps/tda2px_evm_linux_all/obj/vision_sdk/tda2px-evm/c66xdsp_2/release/vision_sdk_configuro/linker_mod.cmd", line 253: error:
    program will not fit into available memory. run placement with alignment
    fails for section ".bss:extMemNonCache:linkStats" size 0x1f0b334 .
    Available memory ranges:
    LINK_STATS_MEM size: 0x80000 unused: 0x80000 max hole: 0x80000
    error: errors encountered during linking;
    "/home/neha/Documents/Visonsdk/vision_sdk/binaries/apps/tda2px_evm_linux_all
    /vision_sdk/bin/tda2px-evm/vision_sdk_c66xdsp_2_release.xe66" not built
    /home/neha/Documents/Visonsdk/vision_sdk/build/rtos/makerules/rules_66.mk:271: recipe for target '/home/neha/Documents/Visonsdk/vision_sdk/binaries/apps/tda2px_evm_linux_all/vision_sdk/bin/tda2px-evm/vision_sdk_c66xdsp_2_release.xe66' failed
    make[7]: *** [/home/neha/Documents/Visonsdk/vision_sdk/binaries/apps/tda2px_evm_linux_all/vision_sdk/bin/tda2px-evm/vision_sdk_c66xdsp_2_release.xe66] Error 1
    /home/neha/Documents/Visonsdk/vision_sdk/build/rtos/makerules/common.mk:271: recipe for target 'c66xdsp_2' failed
    make[6]: *** [c66xdsp_2] Error 2
    MAKEFILE.MK:127: recipe for target 'apps_dsp2' failed
    make[5]: *** [apps_dsp2] Error 2
    MAKEFILE.MK:31: recipe for target 'apps' failed
    make[4]: *** [apps] Error 2
    MAKEFILE.MK:315: recipe for target 'apps' failed
    make[3]: *** [apps] Error 2
    Makefile:175: recipe for target 'apps_exe' failed
    make[2]: *** [apps_exe] Error 2
    Makefile:38: recipe for target 'apps' failed
    make[1]: *** [apps] Error 2
    Makefile:12: recipe for target 'vision_sdk' failed
    make: *** [vision_sdk] Error 2

    Thanks 

    Pratik

  • Pratik,

    But it is failing for different memory section. it is failing for link_stats memory section. If you remove yr changes, does it build fine?

    Rgds,

    Brijesh

  • Hi Brijesh 

    Attaching my .c  and .h file where data section is mentioned.

    Is the available memory to write to qspi 512 kb how to increase that ?

    As my array which are mntioned in the structure has larger size due to which issue is being reported.

    when the array in the structure is of smaller size say 10 elements it's working fine.chains_ssd_config_gateway.h

    /*
     *Title: chains_ssd_config_gateway.c
     *
     *Application: 2D SVS
     *
     *Copyright: Tata Elxsi
     *
     *Author: Tata Elxsi
     *
     *Creation Date: 01/03/2018
     *
     *Description: This file contains interface functions to get default config params
     *
     */
    
    #include <src/include/chains.h>
    #include <src/include/chains_ssd_default_params.h>
    #include <src/include/chains_ssd_config_gateway.h>
    
    /*
    * GLOBALS
    */
    #pragma DATA_SECTION(cfgPrmsInMemory,".bss:extMemNonCache:linkStats");
    #pragma DATA_ALIGN(cfgPrmsInMemory, 128);
    SSDConfigObj cfgPrmsInMemory = { 0 };
    
    /*
     *  Following overlay configuration params are defaults. Application can change and update any parameter
     */
    const OverlayCfgPrms_t overlayCfgDefaults = {
                                          REAR_VIEW_GUIDELINES_START_X_DEFAULT,
                                          REAR_VIEW_GUIDELINES_START_Y_DEFAULT,
                                          FRONT_VIEW_GUIDELINES_START_X_DEFAULT,
                                          FRONT_VIEW_GUIDELINES_START_Y_DEFAULT,
                                          CAR_IMAGE_OVERLAY_START_X_DEFAULT,
                                          CAR_IMAGE_OVERLAY_START_Y_DEFAULT };
    
    /*
     *  Following surround view algorithm calibration params are defaults. Application can change and update any parameter
     */
    const CalibrationPrms_t calibrationPrmsDefaults = {
                                          SVS_IMAGE_WIDTH_DEFAULT,
                                          SVS_IMAGE_HEIGHT_DEFAULT,
                                          FIELD_OF_VIEW_DEFAULT,
                                          CAMERA_MODEL_DEFAULT,
                                          FOCAL_LENGTH_DEFAULT,
                                          PRINCIPLE_POINT_X_DEFAULT,
                                          PRINCIPLE_POINT_Y_DEFAULT,
                                          START_POINT_WORLD_X_DEFAULT,
                                          START_POINT_WORLD_Y_DEFAULT,
                                          START_POINT_WORLD_STEP_X_DEFAULT,
                                          START_POINT_WORLD_STEP_Y_DEFAULT,
                                          VEHICLE_WIDTH_DEFAULT,
                                          VEHICLE_LENGTH_DEFAULT,
                                          DISTANCE_AROUND_VEHICLE_DEFAULT,
                                          DISTANCE_OF_REAR_AXLE_DEFAULT };
    
    /*
     *  Following overlay camera intrinsics params are defaults. Application can change and update any parameter
     */
    const CameraIntrinsicPrms_t cameraIntrinsicPrmsDefaults = {
                                          FOCAL_X_DEFAULT,
                                          FOCAL_Y_DEFAULT,
                                          OVERLAY_PRINCIPAL_POINT_X_DEFAULT,
                                          OVERLAY_PRINCIPAL_POINT_Y_DEFAULT };
    
    /*
     *  Following overlay camera extrinsics params are defaults. Application can change and update any parameter
     */
    const CameraExtrinsicPrms_t cameraExtrinsicPrmsDefaults = {
                                          ROLL_DEFAULT,
                                          PITCH_DEFAULT,
                                          YAW_DEFAULT,
                                          X_CORDINATE_DISTANCE_DEFAULT,
                                          Y_CORDINATE_DISTANCE_DEFAULT,
                                          Z_CORDINATE_DISTANCE_DEFAULT };
    
    /*
     *  Following overlay car physical params are defaults. Application can change and update any parameter
     */
    const CarPhysicalPrms_t carPhysicalPrmsDefaults = {
                                          CAR_WIDTH_DEFAULT,
                                          FRONT_TO_REAR_AXLE_LENGTH_DEFAULT,
                                          REAR_LENGTH_DEFAULT,
                                          FRONT_LENGTH_DEFAULT,
                                          LENGTH_DIVISION_DEFAULT };
    
    
    /*
    *Name:         SVS2D
    *Description:  Sets default SSD configurations and stores in QSPI
    *Parameters:   NA
    *Return:          SYSTEM_LINK_STATUS_SOK on success
    *                      SYSTEM_LINK_STATUS_EFAIL on fail
    *Requirement:
    */
    Int32 SSDConfig_setDefaultConfigs(Void)
    {
        SSDConfig_EraseSector();
    
        cfgPrmsInMemory.persistent.configBlockID = CONFIG_DEFAULT_NUMBER;
        cfgPrmsInMemory.persistent.configVersion = CONFIG_CURRENT_VERSION;
        cfgPrmsInMemory.persistent.overlayCfgPrms = overlayCfgDefaults;
        cfgPrmsInMemory.persistent.calibrationPrms = calibrationPrmsDefaults;
        cfgPrmsInMemory.persistent.cameraIntrinsicPrms = cameraIntrinsicPrmsDefaults;
        cfgPrmsInMemory.persistent.cameraExtrinsicPrms = cameraExtrinsicPrmsDefaults;
        cfgPrmsInMemory.persistent.carPhysicalPrms = carPhysicalPrmsDefaults;
    
        return SSDConfig_SaveSector();
    }
    
    Int32 SSDConfig_allocateMemoryToLUTs()
    {
        
        return 0;
    }
    
    /*
    *Name:         SVS2D
    *Description:  Allocates memory and reads SSD configurations from QSPI
    *Parameters:   NA
    *Return:          SYSTEM_LINK_STATUS_SOK on success
    *                      SYSTEM_LINK_STATUS_EFAIL on fail
    *Requirement:
    */
    Int32 SSDConfig_InitDefaultConfigs(Void)
    {
        Int32 status = SSDConfig_LoadSector();
        if (status == SYSTEM_LINK_STATUS_SOK)
        {
            if (cfgPrmsInMemory.persistent.configBlockID != CONFIG_DEFAULT_NUMBER)
            {
                Vps_printf(
                        " SSD CONFIG: Default config number not found... initializing to defaults\r\n");
                SSDConfig_setDefaultConfigs();
            }
            else if (cfgPrmsInMemory.persistent.configVersion
                    != CONFIG_CURRENT_VERSION)
            {
                Vps_printf(" SSD CONFIG: Version mismatch, migrating (%d to %d)\r\n",
                           cfgPrmsInMemory.persistent.configVersion,
                           CONFIG_CURRENT_VERSION);
                SSDConfig_setDefaultConfigs();
            }
            else
            {
                Vps_printf(" SSD CONFIG: Default config number found !!!\r\n");
            }
        }
        else
        {
            Vps_printf(" SSD CONFIG: QSPI read failed !!!\r\n");
        }
    
        return SYSTEM_LINK_STATUS_SOK;
    }
    
    /*
    *Name:         SVS2D
    *Description:  De-allocates memory and saves/writes SSD configurations to QSPI
    *Parameters:   NA
    *Return:          SYSTEM_LINK_STATUS_SOK on success
    *                      SYSTEM_LINK_STATUS_EFAIL on fail
    *Requirement:
    */
    Int32 SSDConfig_DeInitDefaultConfigs(Void)
    {
        SSDConfig_SaveSector();
    
        return SYSTEM_LINK_STATUS_SOK;
    }
    
    /*
    *Name:         SVS2D
    *Description:  Erases the sector of QSPI with SSD configurations
    *Parameters:   NA
    *Return:          SYSTEM_LINK_STATUS_SOK on success
    *                      SYSTEM_LINK_STATUS_EFAIL on fail
    *Requirement:
    */
    Int32 SSDConfig_EraseSector(Void)
    {
        Vps_printf(" SSD CONFIG: SSDConfig_EraseSector!\n");
    
        return System_qspiEraseSector(SSD_CONFIG_FLASHMEM_OFFSET_BYTES,
                                      SSD_CONFIG_MEMORY_FLASH_SIZE);
    }
    
    /*
    *Name:         SVS2D
    *Description:  Load the sector of QSPI with SSD configurations
    *Parameters:   NA
    *Return:          SYSTEM_LINK_STATUS_SOK on success
    *                      SYSTEM_LINK_STATUS_EFAIL on fail
    *Requirement:
    */
    Int32 SSDConfig_LoadSector(Void)
    {
        SSDConfigObj *configObj = (SSDConfigObj *) &cfgPrmsInMemory;
    
        Vps_printf(" SSD CONFIG: SSDConfig_LoadSector!\n");
    
        return System_qspiReadSector((UInt32) (&configObj->persistent),
                                     SSD_CONFIG_FLASHMEM_OFFSET_BYTES,
                                     SSD_CONFIG_MEMORY_FLASH_SIZE);
    }
    
    /*
    *Name:         SVS2D
    *Description:  Interface for algorithms to save the configuration in QSPI
    *Parameters:   NA
    *Return:          SYSTEM_LINK_STATUS_SOK on success
    *                      SYSTEM_LINK_STATUS_EFAIL on fail
    *Requirement:
    */
    Int32 SSDConfig_SaveConfigsInMemory(Void)
    {
        return SSDConfig_SaveSector();
    }
    
    /*
    *Name:         SVS2D
    *Description:  Save/write the sector of QSPI with updated SSD configurations
    *Parameters:   NA
    *Return:          SYSTEM_LINK_STATUS_SOK on success
    *                      SYSTEM_LINK_STATUS_EFAIL on fail
    *Requirement:
    */
    Int32 SSDConfig_SaveSector(Void)
    {
        SSDConfigObj *configObj = (SSDConfigObj *) &cfgPrmsInMemory;
    
        Vps_printf(" SSD CONFIG: SSDConfig_SaveSector!\n");
    
        return System_qspiWriteSector(SSD_CONFIG_FLASHMEM_OFFSET_BYTES,
                                      (UInt32) (&configObj->persistent),
                                      SSD_CONFIG_MEMORY_FLASH_SIZE);
    
    }
    
    /*
    *Name:         SVS2D
    *Description:  Interface for links to get the SSD overlay config parameters
    *Parameters:   NA
    *Return:           Pointer to OverlayCfgPrms_t
    *Requirement:
    */
    OverlayCfgPrms_t *SSDConfig_GetOverlayCfgPrms(Void)
    {
        return &cfgPrmsInMemory.persistent.overlayCfgPrms;
    }
    
    /*
    *Name:         SVS2D
    *Description:  Interface for links to get the SSD calibration parameters
    *Parameters:   NA
    *Return:           Pointer to CalibrationPrms_t
    *Requirement:
    */
    CalibrationPrms_t *SSDConfig_GetCalibrationPrms(Void)
    {
        return &cfgPrmsInMemory.persistent.calibrationPrms;
    }
    
    /*
    *Name:         SVS2D
    *Description:  Interface for links to get the SSD camera intrinsic parameters
    *Parameters:   NA
    *Return:           Pointer to CameraIntrinsicPrms_t
    *Requirement:
    */
    CameraIntrinsicPrms_t *SSDConfig_GetCamIntrinsicPrms(Void)
    {
        return &cfgPrmsInMemory.persistent.cameraIntrinsicPrms;
    }
    
    /*
    *Name:         SVS2D
    *Description:  Interface for links to get the SSD Calibration output parameters
    *Parameters:   NA
    *Return:           Pointer to CalibOutputPrms_t
    *Requirement:
    */
    CalibOutputPrms_t *SSDConfig_GetCalibOutputPrms(Void)
    {
        return &cfgPrmsInMemory.persistent.calibOutputPrms;
    }
    
    
    svsLutOutputCam_t *SSDConfig_GetsvsLutOutputCam(Void)
    {
        return &cfgPrmsInMemory.persistent.svsLutOutputCam;
    }
    
    
    
    /*
    *Name:         SVS2D
    *Description:  Interface for links to get the SSD camera extrinsic parameters
    *Parameters:   NA
    *Return:           Pointer to CameraExtrinsicPrms_t
    *Requirement:
    */
    CameraExtrinsicPrms_t *SSDConfig_GetCamExtrinsicPrms(Void)
    {
        return &cfgPrmsInMemory.persistent.cameraExtrinsicPrms;
    }
    
    /*
    *Name:         SVS2D
    *Description:  Interface for links to get the SSD car physical parameters
    *Parameters:   NA
    *Return:           Pointer to CameraExtrinsicPrms_t
    *Requirement:
    */
    CarPhysicalPrms_t *SSDConfig_GetCarPhysicalPrms(Void)
    {
        return &cfgPrmsInMemory.persistent.carPhysicalPrms;
    }
    
    
    /*
    *Name:         SVS2D
    *Description:  Interface for links to get the calibration output parameters
    *Parameters:   NA
    *Return:           Pointer to integer
    *Requirement:
    */
    Int32 *SSDConfig_calibrationStatus(Void)
    {
        return &cfgPrmsInMemory.persistent.CalibrationStatus;
    
    }
    
    /*
    *Name:         SVS2D
    *Description:  Print SSD configurations stored in QSPI
    *Parameters:   NA
    *Return:           NA
    *Requirement:
    */
    Void SSDConfig_PrintDefaultConfigs(Void)
    {
        Vps_printf("[SSDConfigGateway] Printing default values\n");
        Vps_printf("Overlay Config Parameter rearViewStartX: %d\r\n",
                   cfgPrmsInMemory.persistent.overlayCfgPrms.rearViewStartX);
        Vps_printf("Overlay Config Parameter rearViewStartY: %d\r\n",
                   cfgPrmsInMemory.persistent.overlayCfgPrms.rearViewStartY);
        Vps_printf("Overlay Config Parameter frontViewStartX: %d\r\n",
                   cfgPrmsInMemory.persistent.overlayCfgPrms.frontViewStartX);
        Vps_printf("Overlay Config Parameter frontViewStartY: %d\r\n",
                   cfgPrmsInMemory.persistent.overlayCfgPrms.frontViewStartY);
        Vps_printf("Overlay Config Parameter carImageStartX: %d\r\n",
                   cfgPrmsInMemory.persistent.overlayCfgPrms.carImageStartX);
        Vps_printf("Overlay Config Parameter carImageStartY: %d\r\n",
                   cfgPrmsInMemory.persistent.overlayCfgPrms.carImageStartY);
    
        Vps_printf("Calibration params svsImageWidth = %d\r\n",
                    cfgPrmsInMemory.persistent.calibrationPrms.svsImageWidth);
        Vps_printf("Calibration params svsImageHeight = %d\r\n",
                    cfgPrmsInMemory.persistent.calibrationPrms.svsImageHeight);
        Vps_printf("Calibration params fov = %d\r\n",
                    cfgPrmsInMemory.persistent.calibrationPrms.fov);
        Vps_printf("Calibration params cameraModel = %d\r\n",
                    cfgPrmsInMemory.persistent.calibrationPrms.cameraModel);
        Vps_printf("Calibration params focalLength = %d\r\n",
                    cfgPrmsInMemory.persistent.calibrationPrms.focalLength);
        Vps_printf("Calibration params principlePointX = %d\r\n",
                    cfgPrmsInMemory.persistent.calibrationPrms.principlePointX);
        Vps_printf("Calibration params principlePointY = %d\r\n",
                    cfgPrmsInMemory.persistent.calibrationPrms.principlePointY);
        Vps_printf("Calibration params startPointWorldX = %f\r\n",
                    cfgPrmsInMemory.persistent.calibrationPrms.startPointWorldX);
        Vps_printf("Calibration params startPointWorldY = %f\r\n",
                    cfgPrmsInMemory.persistent.calibrationPrms.startPointWorldY);
        Vps_printf("Calibration params startPointWorldStepX = %f\r\n",
                    cfgPrmsInMemory.persistent.calibrationPrms.startPointWorldStepX);
        Vps_printf("Calibration params startPointWorldStepY = %f\r\n",
                    cfgPrmsInMemory.persistent.calibrationPrms.startPointWorldStepY);
        Vps_printf("Calibration params vehicleWidth = %f\r\n",
                    cfgPrmsInMemory.persistent.calibrationPrms.vehicleWidth);
        Vps_printf("Calibration params vehicleLength = %f\r\n",
                    cfgPrmsInMemory.persistent.calibrationPrms.vehicleLength);
        Vps_printf("Calibration params distanceAroundVehicle = %f\r\n",
                    cfgPrmsInMemory.persistent.calibrationPrms.distanceAroundVehicle);
        Vps_printf("Calibration params distanceOfRearAxle = %f\r\n",
                    cfgPrmsInMemory.persistent.calibrationPrms.distanceOfRearAxle);
    
        Vps_printf("Overlay camera intrinsics focalX = %f\r\n",
                    cfgPrmsInMemory.persistent.cameraIntrinsicPrms.focalX);
        Vps_printf("Overlay camera intrinsics focalY = %f\r\n",
                    cfgPrmsInMemory.persistent.cameraIntrinsicPrms.focalY);
        Vps_printf("Overlay camera intrinsics principlePointX = %f\r\n",
                    cfgPrmsInMemory.persistent.cameraIntrinsicPrms.principlePointX);
        Vps_printf("Overlay camera intrinsics principlePointY = %f\r\n",
                    cfgPrmsInMemory.persistent.cameraIntrinsicPrms.principlePointY);
    
        Vps_printf("Overlay camera extrinsics roll = %f\r\n",
                    cfgPrmsInMemory.persistent.cameraExtrinsicPrms.roll);
        Vps_printf("Overlay camera extrinsics pitch = %f\r\n",
                    cfgPrmsInMemory.persistent.cameraExtrinsicPrms.pitch);
        Vps_printf("Overlay camera extrinsics yaw = %f\r\n",
                    cfgPrmsInMemory.persistent.cameraExtrinsicPrms.yaw);
        Vps_printf("Overlay camera extrinsics XCordDistance = %f\r\n",
                    cfgPrmsInMemory.persistent.cameraExtrinsicPrms.XCordDistance);
        Vps_printf("Overlay camera extrinsics YCordDistance = %f\r\n",
                    cfgPrmsInMemory.persistent.cameraExtrinsicPrms.YCordDistance);
        Vps_printf("Overlay camera extrinsics ZCordDistance = %f\r\n",
                    cfgPrmsInMemory.persistent.cameraExtrinsicPrms.ZCordDistance);
    
        Vps_printf("Car physical parameters carWidth = %d\r\n",
                    cfgPrmsInMemory.persistent.carPhysicalPrms.carWidth);
        Vps_printf("Car physical parameters frontToRearAxleLength = %d\r\n",
                    cfgPrmsInMemory.persistent.carPhysicalPrms.frontToRearAxleLength);
        Vps_printf("Car physical parameters rearLength = %d\r\n",
                    cfgPrmsInMemory.persistent.carPhysicalPrms.rearLength);
        Vps_printf("Car physical parameters frontLength = %d\r\n",
                    cfgPrmsInMemory.persistent.carPhysicalPrms.frontLength);
        Vps_printf("Car physical parameters lengthDivision = %d\r\n",
                    cfgPrmsInMemory.persistent.carPhysicalPrms.lengthDivision);
    
        UInt8 iLoop;
        Vps_printf("Calibration camera extrinsics for front camera:\r\n");
        Vps_printf("Calibration homography matrix for front camera :\r\n");
        for (iLoop = 0; iLoop < 8; iLoop++)
        {
            Vps_printf("%f\n", cfgPrmsInMemory.persistent.calibOutputPrms.frontCam.Homography[iLoop]);
        }
        Vps_printf("Calibration Transformation matrix for front camera :\r\n");
        for (iLoop = 0; iLoop < 16; iLoop++)
        {
            Vps_printf("%f\n", cfgPrmsInMemory.persistent.calibOutputPrms.frontCam.TransformMatrixData[iLoop]);
        }
    
        Vps_printf("Calibration camera extrinsics for left camera:\r\n");
        Vps_printf("Calibration homography matrix for Left camera :\r\n");
        for (iLoop = 0; iLoop < 8; iLoop++)
        {
            Vps_printf("%f\n", cfgPrmsInMemory.persistent.calibOutputPrms.leftCam.Homography[iLoop]);
        }
        Vps_printf("Calibration Transformation matrix for Left camera :\r\n");
        for (iLoop = 0; iLoop < 16; iLoop++)
        {
            Vps_printf("%f\n", cfgPrmsInMemory.persistent.calibOutputPrms.leftCam.TransformMatrixData[iLoop]);
        }
    
        Vps_printf("Calibration camera extrinsics for right camera:\r\n");
        Vps_printf("Calibration homography matrix for right camera :\r\n");
        for (iLoop = 0; iLoop < 8; iLoop++)
        {
            Vps_printf("%f\n", cfgPrmsInMemory.persistent.calibOutputPrms.rightCam.Homography[iLoop]);
        }
        Vps_printf("Calibration Transformation matrix for right camera :\r\n");
        for (iLoop = 0; iLoop < 16; iLoop++)
        {
            Vps_printf("%f\n", cfgPrmsInMemory.persistent.calibOutputPrms.rightCam.TransformMatrixData[iLoop]);
        }
    
        Vps_printf("Calibration camera extrinsics for rear camera:\r\n");
        Vps_printf("Calibration homography matrix for rear camera :\r\n");
        for (iLoop = 0; iLoop < 8; iLoop++)
        {
            Vps_printf("%f\n", cfgPrmsInMemory.persistent.calibOutputPrms.rearCam.Homography[iLoop]);
        }
        Vps_printf("Calibration Transformation matrix for rear camera :\r\n");
        for (iLoop = 0; iLoop < 16; iLoop++)
        {
            Vps_printf("%f\n", cfgPrmsInMemory.persistent.calibOutputPrms.rearCam.TransformMatrixData[iLoop]);
        }
    }
    
    /*
     *  End of file
     */
    
    

    Regards

    Pratik

  • Hi Brijesh 

    link_stats memory section was used in our earlier code as the memory requirement was less

    Now as we have to store larger amount of data like around 30mb on qspi memory and access it on dsp and a15 core which  possible 

    memory section can be used.

    Thanks

    Pratik

  • Hi Brijesh 

    Any update on this ?

    Can we increase link_stats memory section which is around 512kb or can we use different memory section as i want to store around 15-30 mb of data and access it in each frame on dsp and a15.

    Can you suggest the solution to this in detail as i'am new to this.

    Your support would be appreciable as it's quiet crictical for me to resolve this.

    Thanks 

    Pratik

  • Hi Pratik,

    But you have not change anything in link state, isn't it? why is this section failing to allocate? 

    Have you done any other changes, except increase in QSPI size? If you revert this change, does it work fine?

    Rgds,

    Brijesh

  • Hi Brijesh 

    I have not change anything in link state.Even i have not even increased QSPI size can you suggest the way to increase the qspi size.

    have you gone through the files which i shared earlier ?

    When try to create a array of 100 elements of float type it is working it is able to alloacte.

    But when tried to create an array of 450x900 elements of float it is not able to allocate.

    Appreciating your quick reply.

    Thanks 

    Pratik 

  • Pratik,

    But is this variable, for which you are trying to increase the number of elements, part of the link_stats memory? Why are you allocating this variable from link_stats memory section?

    Rgds,

    Brijesh  

  • Hi Brijesh 

    Thank you so much for the quick update 

    Yes this  variable is a part of  link_stats memory.

    As we need to access some elements apart from the variable which we are discussing about on all the cores we needed link_stats memory section.

    In case of variable which we are discussing  about we need to access it on dsp and on a15 but it would be great if we could access it on all the cores so that is why using link_stats memory section.

    Thanks 

    Pratik

  • Pratik,

    Then increase the size of the link_stats memory section on each core. it should be there in build file on each core. 

    Also are you using Linux? In this case, Linux may also require changes..

    Rgds,

    Brijesh

  • Hi Brijesh 

    Thank you so much for your quick support.

    I'am using linux, from linux perspctive what changes do i need to make?

    Can you just guide which files need to made changes exactly to increase the link_stats memory section on each core.

    And what range can i increase it as i'am new to this approach.

    Do i need to reduce it at some other place so that i could increase it in link_stats memory section ?

    As now i have declared a macro in file chains_ssd_config_gateway.h

    #define SSD_CONFIG_FLASHMEM_OFFSET_BYTES 0x70000
    #define SSD_CONFIG_MEMORY_FLASH_SIZE (64*1024)

    do i need to change this 

    sharing the chains_ssd_config_gateway.h and chains_ssd_config_gateway.c files

    /*
     *Title: chains_ssd_config_gateway.c
     *
     *Application: 2D SVS
     *
     *Copyright: Tata Elxsi
     *
     *Author: Tata Elxsi
     *
     *Creation Date: 01/03/2018
     *
     *Description: This file contains interface functions to get default config params
     *
     */
    
    #include <src/include/chains.h>
    #include <src/include/chains_ssd_default_params.h>
    #include <src/include/chains_ssd_config_gateway.h>
    
    /*
    * GLOBALS
    */
    #pragma DATA_SECTION(cfgPrmsInMemory,".bss:extMemNonCache:linkStats");
    #pragma DATA_ALIGN(cfgPrmsInMemory, 128);
    SSDConfigObj cfgPrmsInMemory = { 0 };
    
    /*
     *  Following overlay configuration params are defaults. Application can change and update any parameter
     */
    const OverlayCfgPrms_t overlayCfgDefaults = {
                                          REAR_VIEW_GUIDELINES_START_X_DEFAULT,
                                          REAR_VIEW_GUIDELINES_START_Y_DEFAULT,
                                          FRONT_VIEW_GUIDELINES_START_X_DEFAULT,
                                          FRONT_VIEW_GUIDELINES_START_Y_DEFAULT,
                                          CAR_IMAGE_OVERLAY_START_X_DEFAULT,
                                          CAR_IMAGE_OVERLAY_START_Y_DEFAULT };
    
    /*
     *  Following surround view algorithm calibration params are defaults. Application can change and update any parameter
     */
    const CalibrationPrms_t calibrationPrmsDefaults = {
                                          SVS_IMAGE_WIDTH_DEFAULT,
                                          SVS_IMAGE_HEIGHT_DEFAULT,
                                          FIELD_OF_VIEW_DEFAULT,
                                          CAMERA_MODEL_DEFAULT,
                                          FOCAL_LENGTH_DEFAULT,
                                          PRINCIPLE_POINT_X_DEFAULT,
                                          PRINCIPLE_POINT_Y_DEFAULT,
                                          START_POINT_WORLD_X_DEFAULT,
                                          START_POINT_WORLD_Y_DEFAULT,
                                          START_POINT_WORLD_STEP_X_DEFAULT,
                                          START_POINT_WORLD_STEP_Y_DEFAULT,
                                          VEHICLE_WIDTH_DEFAULT,
                                          VEHICLE_LENGTH_DEFAULT,
                                          DISTANCE_AROUND_VEHICLE_DEFAULT,
                                          DISTANCE_OF_REAR_AXLE_DEFAULT };
    
    /*
     *  Following overlay camera intrinsics params are defaults. Application can change and update any parameter
     */
    const CameraIntrinsicPrms_t cameraIntrinsicPrmsDefaults = {
                                          FOCAL_X_DEFAULT,
                                          FOCAL_Y_DEFAULT,
                                          OVERLAY_PRINCIPAL_POINT_X_DEFAULT,
                                          OVERLAY_PRINCIPAL_POINT_Y_DEFAULT };
    
    /*
     *  Following overlay camera extrinsics params are defaults. Application can change and update any parameter
     */
    const CameraExtrinsicPrms_t cameraExtrinsicPrmsDefaults = {
                                          ROLL_DEFAULT,
                                          PITCH_DEFAULT,
                                          YAW_DEFAULT,
                                          X_CORDINATE_DISTANCE_DEFAULT,
                                          Y_CORDINATE_DISTANCE_DEFAULT,
                                          Z_CORDINATE_DISTANCE_DEFAULT };
    
    /*
     *  Following overlay car physical params are defaults. Application can change and update any parameter
     */
    const CarPhysicalPrms_t carPhysicalPrmsDefaults = {
                                          CAR_WIDTH_DEFAULT,
                                          FRONT_TO_REAR_AXLE_LENGTH_DEFAULT,
                                          REAR_LENGTH_DEFAULT,
                                          FRONT_LENGTH_DEFAULT,
                                          LENGTH_DIVISION_DEFAULT };
    
    
    /*
    *Name:         SVS2D
    *Description:  Sets default SSD configurations and stores in QSPI
    *Parameters:   NA
    *Return:          SYSTEM_LINK_STATUS_SOK on success
    *                      SYSTEM_LINK_STATUS_EFAIL on fail
    *Requirement:
    */
    Int32 SSDConfig_setDefaultConfigs(Void)
    {
        SSDConfig_EraseSector();
    
        cfgPrmsInMemory.persistent.configBlockID = CONFIG_DEFAULT_NUMBER;
        cfgPrmsInMemory.persistent.configVersion = CONFIG_CURRENT_VERSION;
        cfgPrmsInMemory.persistent.overlayCfgPrms = overlayCfgDefaults;
        cfgPrmsInMemory.persistent.calibrationPrms = calibrationPrmsDefaults;
        cfgPrmsInMemory.persistent.cameraIntrinsicPrms = cameraIntrinsicPrmsDefaults;
        cfgPrmsInMemory.persistent.cameraExtrinsicPrms = cameraExtrinsicPrmsDefaults;
        cfgPrmsInMemory.persistent.carPhysicalPrms = carPhysicalPrmsDefaults;
    
        return SSDConfig_SaveSector();
    }
    
    Int32 SSDConfig_allocateMemoryToLUTs()
    {
        
        return 0;
    }
    
    /*
    *Name:         SVS2D
    *Description:  Allocates memory and reads SSD configurations from QSPI
    *Parameters:   NA
    *Return:          SYSTEM_LINK_STATUS_SOK on success
    *                      SYSTEM_LINK_STATUS_EFAIL on fail
    *Requirement:
    */
    Int32 SSDConfig_InitDefaultConfigs(Void)
    {
        Int32 status = SSDConfig_LoadSector();
        if (status == SYSTEM_LINK_STATUS_SOK)
        {
            if (cfgPrmsInMemory.persistent.configBlockID != CONFIG_DEFAULT_NUMBER)
            {
                Vps_printf(
                        " SSD CONFIG: Default config number not found... initializing to defaults\r\n");
                SSDConfig_setDefaultConfigs();
            }
            else if (cfgPrmsInMemory.persistent.configVersion
                    != CONFIG_CURRENT_VERSION)
            {
                Vps_printf(" SSD CONFIG: Version mismatch, migrating (%d to %d)\r\n",
                           cfgPrmsInMemory.persistent.configVersion,
                           CONFIG_CURRENT_VERSION);
                SSDConfig_setDefaultConfigs();
            }
            else
            {
                Vps_printf(" SSD CONFIG: Default config number found !!!\r\n");
            }
        }
        else
        {
            Vps_printf(" SSD CONFIG: QSPI read failed !!!\r\n");
        }
    
        return SYSTEM_LINK_STATUS_SOK;
    }
    
    /*
    *Name:         SVS2D
    *Description:  De-allocates memory and saves/writes SSD configurations to QSPI
    *Parameters:   NA
    *Return:          SYSTEM_LINK_STATUS_SOK on success
    *                      SYSTEM_LINK_STATUS_EFAIL on fail
    *Requirement:
    */
    Int32 SSDConfig_DeInitDefaultConfigs(Void)
    {
        SSDConfig_SaveSector();
    
        return SYSTEM_LINK_STATUS_SOK;
    }
    
    /*
    *Name:         SVS2D
    *Description:  Erases the sector of QSPI with SSD configurations
    *Parameters:   NA
    *Return:          SYSTEM_LINK_STATUS_SOK on success
    *                      SYSTEM_LINK_STATUS_EFAIL on fail
    *Requirement:
    */
    Int32 SSDConfig_EraseSector(Void)
    {
        Vps_printf(" SSD CONFIG: SSDConfig_EraseSector!\n");
    
        return System_qspiEraseSector(SSD_CONFIG_FLASHMEM_OFFSET_BYTES,
                                      SSD_CONFIG_MEMORY_FLASH_SIZE);
    }
    
    /*
    *Name:         SVS2D
    *Description:  Load the sector of QSPI with SSD configurations
    *Parameters:   NA
    *Return:          SYSTEM_LINK_STATUS_SOK on success
    *                      SYSTEM_LINK_STATUS_EFAIL on fail
    *Requirement:
    */
    Int32 SSDConfig_LoadSector(Void)
    {
        SSDConfigObj *configObj = (SSDConfigObj *) &cfgPrmsInMemory;
    
        Vps_printf(" SSD CONFIG: SSDConfig_LoadSector!\n");
    
        return System_qspiReadSector((UInt32) (&configObj->persistent),
                                     SSD_CONFIG_FLASHMEM_OFFSET_BYTES,
                                     SSD_CONFIG_MEMORY_FLASH_SIZE);
    }
    
    /*
    *Name:         SVS2D
    *Description:  Interface for algorithms to save the configuration in QSPI
    *Parameters:   NA
    *Return:          SYSTEM_LINK_STATUS_SOK on success
    *                      SYSTEM_LINK_STATUS_EFAIL on fail
    *Requirement:
    */
    Int32 SSDConfig_SaveConfigsInMemory(Void)
    {
        return SSDConfig_SaveSector();
    }
    
    /*
    *Name:         SVS2D
    *Description:  Save/write the sector of QSPI with updated SSD configurations
    *Parameters:   NA
    *Return:          SYSTEM_LINK_STATUS_SOK on success
    *                      SYSTEM_LINK_STATUS_EFAIL on fail
    *Requirement:
    */
    Int32 SSDConfig_SaveSector(Void)
    {
        SSDConfigObj *configObj = (SSDConfigObj *) &cfgPrmsInMemory;
    
        Vps_printf(" SSD CONFIG: SSDConfig_SaveSector!\n");
    
        return System_qspiWriteSector(SSD_CONFIG_FLASHMEM_OFFSET_BYTES,
                                      (UInt32) (&configObj->persistent),
                                      SSD_CONFIG_MEMORY_FLASH_SIZE);
    
    }
    
    /*
    *Name:         SVS2D
    *Description:  Interface for links to get the SSD overlay config parameters
    *Parameters:   NA
    *Return:           Pointer to OverlayCfgPrms_t
    *Requirement:
    */
    OverlayCfgPrms_t *SSDConfig_GetOverlayCfgPrms(Void)
    {
        return &cfgPrmsInMemory.persistent.overlayCfgPrms;
    }
    
    /*
    *Name:         SVS2D
    *Description:  Interface for links to get the SSD calibration parameters
    *Parameters:   NA
    *Return:           Pointer to CalibrationPrms_t
    *Requirement:
    */
    CalibrationPrms_t *SSDConfig_GetCalibrationPrms(Void)
    {
        return &cfgPrmsInMemory.persistent.calibrationPrms;
    }
    
    /*
    *Name:         SVS2D
    *Description:  Interface for links to get the SSD camera intrinsic parameters
    *Parameters:   NA
    *Return:           Pointer to CameraIntrinsicPrms_t
    *Requirement:
    */
    CameraIntrinsicPrms_t *SSDConfig_GetCamIntrinsicPrms(Void)
    {
        return &cfgPrmsInMemory.persistent.cameraIntrinsicPrms;
    }
    
    /*
    *Name:         SVS2D
    *Description:  Interface for links to get the SSD Calibration output parameters
    *Parameters:   NA
    *Return:           Pointer to CalibOutputPrms_t
    *Requirement:
    */
    CalibOutputPrms_t *SSDConfig_GetCalibOutputPrms(Void)
    {
        return &cfgPrmsInMemory.persistent.calibOutputPrms;
    }
    
    
    svsLutOutputCam_t *SSDConfig_GetsvsLutOutputCam(Void)
    {
        return &cfgPrmsInMemory.persistent.svsLutOutputCam;
    }
    
    
    
    /*
    *Name:         SVS2D
    *Description:  Interface for links to get the SSD camera extrinsic parameters
    *Parameters:   NA
    *Return:           Pointer to CameraExtrinsicPrms_t
    *Requirement:
    */
    CameraExtrinsicPrms_t *SSDConfig_GetCamExtrinsicPrms(Void)
    {
        return &cfgPrmsInMemory.persistent.cameraExtrinsicPrms;
    }
    
    /*
    *Name:         SVS2D
    *Description:  Interface for links to get the SSD car physical parameters
    *Parameters:   NA
    *Return:           Pointer to CameraExtrinsicPrms_t
    *Requirement:
    */
    CarPhysicalPrms_t *SSDConfig_GetCarPhysicalPrms(Void)
    {
        return &cfgPrmsInMemory.persistent.carPhysicalPrms;
    }
    
    
    /*
    *Name:         SVS2D
    *Description:  Interface for links to get the calibration output parameters
    *Parameters:   NA
    *Return:           Pointer to integer
    *Requirement:
    */
    Int32 *SSDConfig_calibrationStatus(Void)
    {
        return &cfgPrmsInMemory.persistent.CalibrationStatus;
    
    }
    
    /*
    *Name:         SVS2D
    *Description:  Print SSD configurations stored in QSPI
    *Parameters:   NA
    *Return:           NA
    *Requirement:
    */
    Void SSDConfig_PrintDefaultConfigs(Void)
    {
        Vps_printf("[SSDConfigGateway] Printing default values\n");
        Vps_printf("Overlay Config Parameter rearViewStartX: %d\r\n",
                   cfgPrmsInMemory.persistent.overlayCfgPrms.rearViewStartX);
        Vps_printf("Overlay Config Parameter rearViewStartY: %d\r\n",
                   cfgPrmsInMemory.persistent.overlayCfgPrms.rearViewStartY);
        Vps_printf("Overlay Config Parameter frontViewStartX: %d\r\n",
                   cfgPrmsInMemory.persistent.overlayCfgPrms.frontViewStartX);
        Vps_printf("Overlay Config Parameter frontViewStartY: %d\r\n",
                   cfgPrmsInMemory.persistent.overlayCfgPrms.frontViewStartY);
        Vps_printf("Overlay Config Parameter carImageStartX: %d\r\n",
                   cfgPrmsInMemory.persistent.overlayCfgPrms.carImageStartX);
        Vps_printf("Overlay Config Parameter carImageStartY: %d\r\n",
                   cfgPrmsInMemory.persistent.overlayCfgPrms.carImageStartY);
    
        Vps_printf("Calibration params svsImageWidth = %d\r\n",
                    cfgPrmsInMemory.persistent.calibrationPrms.svsImageWidth);
        Vps_printf("Calibration params svsImageHeight = %d\r\n",
                    cfgPrmsInMemory.persistent.calibrationPrms.svsImageHeight);
        Vps_printf("Calibration params fov = %d\r\n",
                    cfgPrmsInMemory.persistent.calibrationPrms.fov);
        Vps_printf("Calibration params cameraModel = %d\r\n",
                    cfgPrmsInMemory.persistent.calibrationPrms.cameraModel);
        Vps_printf("Calibration params focalLength = %d\r\n",
                    cfgPrmsInMemory.persistent.calibrationPrms.focalLength);
        Vps_printf("Calibration params principlePointX = %d\r\n",
                    cfgPrmsInMemory.persistent.calibrationPrms.principlePointX);
        Vps_printf("Calibration params principlePointY = %d\r\n",
                    cfgPrmsInMemory.persistent.calibrationPrms.principlePointY);
        Vps_printf("Calibration params startPointWorldX = %f\r\n",
                    cfgPrmsInMemory.persistent.calibrationPrms.startPointWorldX);
        Vps_printf("Calibration params startPointWorldY = %f\r\n",
                    cfgPrmsInMemory.persistent.calibrationPrms.startPointWorldY);
        Vps_printf("Calibration params startPointWorldStepX = %f\r\n",
                    cfgPrmsInMemory.persistent.calibrationPrms.startPointWorldStepX);
        Vps_printf("Calibration params startPointWorldStepY = %f\r\n",
                    cfgPrmsInMemory.persistent.calibrationPrms.startPointWorldStepY);
        Vps_printf("Calibration params vehicleWidth = %f\r\n",
                    cfgPrmsInMemory.persistent.calibrationPrms.vehicleWidth);
        Vps_printf("Calibration params vehicleLength = %f\r\n",
                    cfgPrmsInMemory.persistent.calibrationPrms.vehicleLength);
        Vps_printf("Calibration params distanceAroundVehicle = %f\r\n",
                    cfgPrmsInMemory.persistent.calibrationPrms.distanceAroundVehicle);
        Vps_printf("Calibration params distanceOfRearAxle = %f\r\n",
                    cfgPrmsInMemory.persistent.calibrationPrms.distanceOfRearAxle);
    
        Vps_printf("Overlay camera intrinsics focalX = %f\r\n",
                    cfgPrmsInMemory.persistent.cameraIntrinsicPrms.focalX);
        Vps_printf("Overlay camera intrinsics focalY = %f\r\n",
                    cfgPrmsInMemory.persistent.cameraIntrinsicPrms.focalY);
        Vps_printf("Overlay camera intrinsics principlePointX = %f\r\n",
                    cfgPrmsInMemory.persistent.cameraIntrinsicPrms.principlePointX);
        Vps_printf("Overlay camera intrinsics principlePointY = %f\r\n",
                    cfgPrmsInMemory.persistent.cameraIntrinsicPrms.principlePointY);
    
        Vps_printf("Overlay camera extrinsics roll = %f\r\n",
                    cfgPrmsInMemory.persistent.cameraExtrinsicPrms.roll);
        Vps_printf("Overlay camera extrinsics pitch = %f\r\n",
                    cfgPrmsInMemory.persistent.cameraExtrinsicPrms.pitch);
        Vps_printf("Overlay camera extrinsics yaw = %f\r\n",
                    cfgPrmsInMemory.persistent.cameraExtrinsicPrms.yaw);
        Vps_printf("Overlay camera extrinsics XCordDistance = %f\r\n",
                    cfgPrmsInMemory.persistent.cameraExtrinsicPrms.XCordDistance);
        Vps_printf("Overlay camera extrinsics YCordDistance = %f\r\n",
                    cfgPrmsInMemory.persistent.cameraExtrinsicPrms.YCordDistance);
        Vps_printf("Overlay camera extrinsics ZCordDistance = %f\r\n",
                    cfgPrmsInMemory.persistent.cameraExtrinsicPrms.ZCordDistance);
    
        Vps_printf("Car physical parameters carWidth = %d\r\n",
                    cfgPrmsInMemory.persistent.carPhysicalPrms.carWidth);
        Vps_printf("Car physical parameters frontToRearAxleLength = %d\r\n",
                    cfgPrmsInMemory.persistent.carPhysicalPrms.frontToRearAxleLength);
        Vps_printf("Car physical parameters rearLength = %d\r\n",
                    cfgPrmsInMemory.persistent.carPhysicalPrms.rearLength);
        Vps_printf("Car physical parameters frontLength = %d\r\n",
                    cfgPrmsInMemory.persistent.carPhysicalPrms.frontLength);
        Vps_printf("Car physical parameters lengthDivision = %d\r\n",
                    cfgPrmsInMemory.persistent.carPhysicalPrms.lengthDivision);
    
        UInt8 iLoop;
        Vps_printf("Calibration camera extrinsics for front camera:\r\n");
        Vps_printf("Calibration homography matrix for front camera :\r\n");
        for (iLoop = 0; iLoop < 8; iLoop++)
        {
            Vps_printf("%f\n", cfgPrmsInMemory.persistent.calibOutputPrms.frontCam.Homography[iLoop]);
        }
        Vps_printf("Calibration Transformation matrix for front camera :\r\n");
        for (iLoop = 0; iLoop < 16; iLoop++)
        {
            Vps_printf("%f\n", cfgPrmsInMemory.persistent.calibOutputPrms.frontCam.TransformMatrixData[iLoop]);
        }
    
        Vps_printf("Calibration camera extrinsics for left camera:\r\n");
        Vps_printf("Calibration homography matrix for Left camera :\r\n");
        for (iLoop = 0; iLoop < 8; iLoop++)
        {
            Vps_printf("%f\n", cfgPrmsInMemory.persistent.calibOutputPrms.leftCam.Homography[iLoop]);
        }
        Vps_printf("Calibration Transformation matrix for Left camera :\r\n");
        for (iLoop = 0; iLoop < 16; iLoop++)
        {
            Vps_printf("%f\n", cfgPrmsInMemory.persistent.calibOutputPrms.leftCam.TransformMatrixData[iLoop]);
        }
    
        Vps_printf("Calibration camera extrinsics for right camera:\r\n");
        Vps_printf("Calibration homography matrix for right camera :\r\n");
        for (iLoop = 0; iLoop < 8; iLoop++)
        {
            Vps_printf("%f\n", cfgPrmsInMemory.persistent.calibOutputPrms.rightCam.Homography[iLoop]);
        }
        Vps_printf("Calibration Transformation matrix for right camera :\r\n");
        for (iLoop = 0; iLoop < 16; iLoop++)
        {
            Vps_printf("%f\n", cfgPrmsInMemory.persistent.calibOutputPrms.rightCam.TransformMatrixData[iLoop]);
        }
    
        Vps_printf("Calibration camera extrinsics for rear camera:\r\n");
        Vps_printf("Calibration homography matrix for rear camera :\r\n");
        for (iLoop = 0; iLoop < 8; iLoop++)
        {
            Vps_printf("%f\n", cfgPrmsInMemory.persistent.calibOutputPrms.rearCam.Homography[iLoop]);
        }
        Vps_printf("Calibration Transformation matrix for rear camera :\r\n");
        for (iLoop = 0; iLoop < 16; iLoop++)
        {
            Vps_printf("%f\n", cfgPrmsInMemory.persistent.calibOutputPrms.rearCam.TransformMatrixData[iLoop]);
        }
    }
    
    /*
     *  End of file
     */
    
    

    1157.chains_ssd_config_gateway.h

    Your quick reply is appreciated.

    Thanks 

    Pratik

  • Hi Brijesh 

    Any update on this ?

    Thanks

    Pratik

  • Hi Pratik,

    There is a userguide which explains how to change memory map. Please follow it to increase link stats memory and update memory map.

    This will also explain if any change needed inLinux dtb files, in reserved sections..

    Regards,

    Brijesh

  • HI Brijesh 

    I have made the changes as per the memory map userguide but I'am facing issues which I have mentiond in the query 

    https://e2e.ti.com/support/processors/f/791/p/914306/3379448#3379448

    Request you for your suggestion.

    Thanks 

    Pratik

  • Hi Pratik,

    Can you please keep this thread closed? and lets continue discussion on the other thread.

    Rgds,

    Brijesh