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/C66XCODECS: Compiler/C66XCODECS

Part Number: C66XCODECS

Tool/software: TI C/C++ Compiler

Hi Sir,

We are doing Unit Test in VectorCast where we are building the source code using below compiler

ccsv8

Compiler: c6000_7.4.2

Also using simulator   tisim_c64xple.ccxml for running the test cases

We are getting below build error as in screen shot. Please help us to resolve the issue.

Thanks

Jeslin

  • For the C++  source file that is being compiled when this error diagnostic is emitted, please follow the directions in the article How to Submit a Compiler Test Case.

    Thanks and regards,

    -George

  • Hi George

    We are from unit test team. I am providing the options what we have set while building this file.  I am unable to attach the prepossessed file.  Please help us resolve the issue.

    vcast_preprocess.txt
    #line 1 "vcast_preprocess.24120.0.cpp"
    #line 1 "C:\\VCAST\\DATA\\code_composer\\c6000_intrinsics.h"
    
    unsigned short & _amem2 (void *ptr);
    unsigned & _amem4 (void *ptr);
    long long & _amem8 (void *ptr);
    unsigned short & _mem2 (void * ptr);
    unsigned & _mem4 (void * ptr);
    long long & _mem8 (void * ptr);
    #line 16 "C:\\VCAST\\DATA\\code_composer\\c6000_intrinsics.h"
    unsigned _pack2 (unsigned src1, unsigned src2);
    unsigned _packl4 (unsigned src1, unsigned src2);
    long long _itoll(int high32bits, int low32bits);
    #line 2 "vcast_preprocess.24120.0.cpp"
    #line 1 "D:/pkg/proj1747_ford_p702_soc_mib/P2_algs/od3d_alg/od3d_wrapper/source/ROI_Extract/source\\dummy_OdExtractChannel.cpp"
    #line 1 "D:\\pkg\\proj1747_ford_p702_soc_mib\\2_install\\application_lvds_tda2px_ti_c66_h_r\\sys\\systypes.h"
    /*!
    ** $URL: http://svn.cel/svn/VVS_Software/release_candidate/BMW/iCAM_SVS/VVS_B6/RC13/source/BMW_iCAM_SVS_VVS_B6_RC13_V05.00.0A.00/P2/components/sys/source/arch/visionmid814x_dsp/systypes.h $
    **
    ** @(#) $Id: systypes.h 16898 2012-03-13 16:18:31Z kellawaytrevor $
    **
    ** \file	systypes.h
    **
    ** \brief	Generic defines and types.
    */
    
    /*****************************************************************************
    **                                                                          **
    ** This program is the confidential and proprietary product of Application  **
    ** Solutions Limited and Valeo Vision Systems. Any unauthorised use,        **
    ** reproduction or transfer of this program is strictly prohibited.         **
    ** Copyright 2007 Application Solutions Limited and Valeo Vision Systems.   **
    ** (Subject to limited distribution and restricted disclosure only.)        **
    ** All rights reserved.                                                     **
    **                                                                          **
    *****************************************************************************/
    
    
    
    
    /*
     * Prevent multiple definitions for SYS/BIOS 6 from TI header file
     */
    /*lint -save -e1960  C++ pattern */
    //Vioations : MISRA 2004 Required Rule 20.2, Note 960:  Re-use of C90 identifier pattern: _STDINT_H
    //Justification for suppression : TI pre processor directive used, prevents adding from similar standard header file. should be suppressed. 
    /*lint -e960 */
    
    /*lint -restore */
    /*---------------------------------------------------------------------------
    ** Includes
    */
    /*lint -save -e322 -e829 (include file defined in compiler) this module is used for C and C++ files */
    #line 1 "D:\\dev\\ti\\ccsv8\\tools\\compiler\\c6000_7.4.2\\include\\stddef.h"
    /*****************************************************************************/
    /* stddef.h   v7.4.2                                                         */
    /*                                                                           */
    /* Copyright (c) 1993-2012 Texas Instruments Incorporated                    */
    /* http://www.ti.com/                                                        */
    /*                                                                           */
    /*  Redistribution and  use in source  and binary forms, with  or without    */
    /*  modification,  are permitted provided  that the  following conditions    */
    /*  are met:                                                                 */
    /*                                                                           */
    /*     Redistributions  of source  code must  retain the  above copyright    */
    /*     notice, this list of conditions and the following disclaimer.         */
    /*                                                                           */
    /*     Redistributions in binary form  must reproduce the above copyright    */
    /*     notice, this  list of conditions  and the following  disclaimer in    */
    /*     the  documentation  and/or   other  materials  provided  with  the    */
    /*     distribution.                                                         */
    /*                                                                           */
    /*     Neither the  name of Texas Instruments Incorporated  nor the names    */
    /*     of its  contributors may  be used to  endorse or  promote products    */
    /*     derived  from   this  software  without   specific  prior  written    */
    /*     permission.                                                           */
    /*                                                                           */
    /*  THIS SOFTWARE  IS PROVIDED BY THE COPYRIGHT  HOLDERS AND CONTRIBUTORS    */
    /*  "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 THE COPYRIGHT    */
    /*  OWNER OR CONTRIBUTORS 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.     */
    /*                                                                           */
    /*****************************************************************************/
    
    
    
    
    
    extern "C" namespace std {
    
    
    
    
    
    
    typedef int ptrdiff_t;
    
    
    
    typedef unsigned size_t;
    
    
    #line 64 "D:\\dev\\ti\\ccsv8\\tools\\compiler\\c6000_7.4.2\\include\\stddef.h"
    
    
    
    
    } /* extern "C" namespace std */
    
    
    
    
    
    using std::ptrdiff_t;
    using std::size_t;
    /*using std::wchar_t;*/
    
    
    /*-----------------------------------------------------------------------*/
    /* Define _win_t, for compiling GCC libraries with the TI compiler.      */
    /* GCC's library (newlib) expects wint_t to be defined here, in stddef.h,*/
    /* which is arguably incorrect, but we go along for compatibility.       */
    /* This is outside the _STDDEF guard in case this file has already       */
    /* been included without __need_wint_t.                                  */
    /*-----------------------------------------------------------------------*/
    #line 39 "D:\\pkg\\proj1747_ford_p702_soc_mib\\2_install\\application_lvds_tda2px_ti_c66_h_r\\sys\\systypes.h"
    /*lint -restore */
    /*---------------------------------------------------------------------------
    ** Defines and Macros
    */
    
    /** @name Boolean constants
    */
    /*@{*/
    /*lint -save -e1960 -e960 suppression unavoidable for True and False undef */
    #line 56 "D:\\pkg\\proj1747_ford_p702_soc_mib\\2_install\\application_lvds_tda2px_ti_c66_h_r\\sys\\systypes.h"
    /*@}*/
    /*lint -restore */
    #line 65 "D:\\pkg\\proj1747_ford_p702_soc_mib\\2_install\\application_lvds_tda2px_ti_c66_h_r\\sys\\systypes.h"
    
    /** @name Macros corresponding to C++ implementation (From c6000/include/stdint.h)
    */
    /*
     * According to footnotes in the 1999 C standard, "C++ implementations
     * should define these macros only when __STDC_LIMIT_MACROS is defined
     * before <stdint.h> is included."
    */
    #line 187 "D:\\pkg\\proj1747_ford_p702_soc_mib\\2_install\\application_lvds_tda2px_ti_c66_h_r\\sys\\systypes.h"
    
    /*---------------------------------------------------------------------------
    ** Typedefs
    */
    /*lint -e1960 suppression required; PC-Lint assumes extern C is a global variable*/
    
    extern "C" {
    
    /*lint -restore */
    /** @name Base types
    */
    /*@{*/
    typedef signed char			int8;
    typedef unsigned char		uint8;
    typedef signed short		int16;
    typedef signed short		sint16;
    typedef unsigned short		uint16;
    
    /*
    ** TI STL means we can't redefine bool, as some STL function overloading
    ** then fails due to duplicates, so leave as a different type. This means
    ** we can't easily do Lint across entire project (rather than unit checkout).
    */
    typedef uint8    			bool_t;
    
    
    
    
    typedef signed int			int32;
    typedef signed int			sint32;
    typedef unsigned int		uint32;
    typedef signed long			int40;
    typedef unsigned long		uint40;
    typedef signed long long	int64;
    typedef unsigned long long	uint64;
    /*@}*/
    
    /** @name Shorthand version of fast types
    **
    ** Modify these for the best implementation for a specific CPU architecture.
    */
    /*@{*/
    typedef int32				intf8;
    typedef uint32				uintf8;
    typedef int32				intf16;
    typedef uint32				uintf16;
    typedef int32				intf32;
    typedef uint32				uintf32;
    typedef int64				intf64;
    typedef uint64				uintf64;
    /*@}*/
    
    /** @name Draft ISO fast names (for compatibility)
    */
    /*@{*/
    typedef int8				int8_t;
    typedef int16				int16_t;
    typedef int32				int32_t;
    typedef int40               int40_t;
    typedef int64               int64_t;
    typedef uint8				uint8_t;
    typedef uint16				uint16_t;
    typedef uint32				uint32_t;
    typedef uint40				uint40_t;
    typedef uint64              uint64_t;
    typedef intf8				int_fast8_t;
    typedef intf16				int_fast16_t;
    typedef intf32				int_fast32_t;
    typedef intf64              int_fast64_t;
    typedef uintf8				uint_fast8_t;
    typedef uintf16				uint_fast16_t;
    typedef uintf32				uint_fast32_t;
    typedef uintf64             uint_fast64_t;
    /*@}*/
    
    /** @name Minimum-width integer types (From c6000/include/stdint.h)
    */
    /*@{*/
    typedef  int8_t   int_least8_t;
    typedef uint8_t  uint_least8_t;
    typedef  int16_t  int_least16_t;
    typedef uint16_t uint_least16_t;
    typedef  int32_t  int_least32_t;
    typedef uint32_t uint_least32_t;
    
    //#ifndef __TI_32BIT_LONG__
        typedef  int40_t  int_least40_t;
        typedef uint40_t uint_least40_t;
    //#endif
    
    typedef  int64_t  int_least64_t;
    typedef uint64_t uint_least64_t;
    /*@}*/
    
    
    /** @name Integer types capable of holding object pointers (From c6000/include/stdint.h)
    */
    /*@{*/
    typedef          int intptr_t;
    typedef unsigned int uintptr_t;
    /*@}*/
    
    /** @name Greatest-width integer types (From c6000/include/stdint.h)
    */
    /*@{*/
    typedef          long long intmax_t;
    typedef unsigned long long uintmax_t;
    /*@}*/
    
    
    /*!
    ** \brief	Our own character type (to avoid MISRA warnings of direct 'char' use).
    */
    typedef char CHAR;
    
    
    /*!
    ** \brief	Our own float type (to avoid MISRA warnings of direct 'float' use).
    */
    typedef float FLOAT;
    
    /*!
    ** \brief	Our own double type (to avoid MISRA warnings of direct 'double' use).
    */
    typedef double DOUBLE;
    
    /*---------------------------------------------------------------------------
    ** Data
    */
    
    /*---------------------------------------------------------------------------
    ** Functions
    */
    
    
    
    }
    
    
    
    /*---------------------------------------------------------------------------
    ** End of File
    */
    #line 2 "D:/pkg/proj1747_ford_p702_soc_mib/P2_algs/od3d_alg/od3d_wrapper/source/ROI_Extract/source\\dummy_OdExtractChannel.cpp"
    //#include"dmachannel.h"
    #line 1 "D:\\pkg\\proj1747_ford_p702_soc_mib\\P2_algs\\od3d_alg\\od3d_wrapper\\source\\ROI_Extract\\source\\OdExtractChannel.h"
    //!
    //! $URL$
    //!
    //! @(#)$Id$
    //!
    //! \file	OdDmaChannel.h
    //!
    //! \brief	Class declaration for OdDmaChannel.
    //!
    
    ////////////////////////////////////////////////////////////////////////////
    //
    // This program is the confidential and proprietary product of Valeo
    // Vision Systems. Any unauthorised use, reproduction or transfer of
    // this program is strictly prohibited.
    // Copyright 2015 Valeo Vision Systems. (Subject to limited
    // distribution and restricted disclosure only.) All rights reserved.
    //
    ////////////////////////////////////////////////////////////////////////////
    
    //---------------------------------------------------------------------------
    
    
    //---------------------------------------------------------------------------
    
    /*lint -esym(970, unsigned, char, short, int) : Use of modifier or type outside of a typedef [MISRA 2004 Rule 6.3] : Interface class */
    //---------------------------------------------------------------------------
    // Includes
    //---------------------------------------------------------------------------
    #line 1 "D:\\pkg\\proj1747_ford_p702_soc_mib\\2_install\\application_lvds_tda2px_ti_c66_h_r\\dma\\dmachannel.h"
    //!
    //! $URL: $
    //!
    //! @(#)$Id: $
    //!
    //! \file	dmachannel.h
    //!
    //! \brief	Definition of DmaChannel implementation.
    //!
    
    //////////////////////////////////////////////////////////////////////////////
    //                                                                          //
    // This program is the confidential and proprietary product of Application  //
    // Solutions Limited and Valeo Vision Systems. Any unauthorised use,        //
    // reproduction or transfer of this program is strictly prohibited.         //
    // Copyright 2008 Application Solutions Limited and Valeo Vision Systems.   //
    // (Subject to limited distribution and restricted disclosure only.)        //
    // All rights reserved.                                                     //
    //                                                                          //
    //////////////////////////////////////////////////////////////////////////////
    
    //---------------------------------------------------------------------------
    
    
    //---------------------------------------------------------------------------
    
    //---------------------------------------------------------------------------
    // Includes
    //---------------------------------------------------------------------------
    #line 1 "D:\\pkg\\proj1747_ford_p702_soc_mib\\2_install\\application_lvds_tda2px_ti_c66_h_r\\dma\\dmaichannel.h"
    //!
    //! $URL:  $
    //!
    //! @(#)$Id:  $
    //!
    //! \file	dmaichannel.h
    //!
    //! \brief	Class declaration for IChannel.
    //!
    
    //////////////////////////////////////////////////////////////////////////////
    //                                                                          //
    // This program is the confidential and proprietary product of Application  //
    // Solutions (Electronics & Vision) Limited and Valeo Vision Systems.       //
    // Any unauthorised use, reproduction or transfer of this program is        //
    // strictly prohibited.                                                     //
    // Copyright 2011 Application Solutions (Electronics & Vision) Limited and  //
    // Valeo Vision Systems. (Subject to limited distribution and restricted    //
    // disclosure only.) All rights reserved.                                   //
    //                                                                          //
    //////////////////////////////////////////////////////////////////////////////
    
    //---------------------------------------------------------------------------
    
    
    //---------------------------------------------------------------------------
    
    //---------------------------------------------------------------------------
    // Includes
    //---------------------------------------------------------------------------
    //Investigated and found no reason for this warning Looks like Lint has some issue with this,so finally agreed suppress it.
    /*lint -save -esym(1960,7-3-1) agreed suppression Required Rule 7-3-1, Violates MISRA C++ 2008 Required Rule 7-3-1, Global declaration*/
    namespace dma {
    
    
    //---------------------------------------------------------------------------
    // Forward Declarations
    //---------------------------------------------------------------------------
    typedef  uint8_t DMA_PRIORITY;
    
    const DMA_PRIORITY	DMA_PRIORITY_0 = 0;
    const DMA_PRIORITY	DMA_PRIORITY_1 = 1;
    const DMA_PRIORITY	DMA_PRIORITY_2 = 2;
    const DMA_PRIORITY	DMA_PRIORITY_3 = 3;
    
    //---------------------------------------------------------------------------
    //! \class      DmaIListener
    //!
    //! \brief		Interface to be implemented by dma listeners.
    //!
    class DmaIListener
    {
    public:
    	virtual
    	~DmaIListener(
    		void
    	) {
    	}
    
    	virtual void
    	dmaCallback(
    		bool result
    	) = 0;
    };
    
    //---------------------------------------------------------------------------
    //! \class      DmaListener
    //!
    //! \brief		Template to create dma listeners.
    //!
    
    template <typename T>
    class DmaListener : public DmaIListener
    {
    protected:
    	typedef void (T::*TClbk)(bool result);
    
    public:
    
    	DmaListener(
    		T       *object,
    		TClbk   runFnc
    	) :
    		m_object(object), m_dmaCallback(runFnc) {
    	}
    
    	virtual
    	~DmaListener(
    		void
    	) {
    		m_object = 0;
    	}
    
    	virtual void
    	dmaCallback(
    		bool result
    	) {
    		(m_object->*m_dmaCallback)(result);
    	}
    
    private:
    	T       *m_object;
    	TClbk	m_dmaCallback;
    };
    
    //---------------------------------------------------------------------------
    //! \class	IChannel
    //!
    //! \brief	Base class for DMA channel resources.
    //!
    class IChannel
    {
    public:
    	IChannel(
    		void
    	) {
    		;
    	}
    
    	virtual
    	~IChannel(
    		void
    	) {
    		;
    	}
    
    	//---------------------------------------------------------------------------
    	//! \brief	Create a channel
    	//!
    	//! \param[in]	listener		Pointer to the DMA listener object if provided
    	//!
    	//! \return		true if successfully created
    	//!
    
    	virtual bool
    	create(
    		DMA_PRIORITY    dmaPri,
    		DmaIListener    *listener
    	) = 0;
    
    	//---------------------------------------------------------------------------
    	//! \brief	Create a channel
    	//!
    	//! \param[in]	listener		Pointer to the DMA listener object if provided
    	//!
    	//! \return		true if successfully created
    	//!
    
    	virtual bool
    	create(
    		void
    	) = 0;
    
    	//---------------------------------------------------------------------------
    	//! \brief	Destroy a channel
    	//!
    	//! \return		true if successfully destroyed
    	//!
    	virtual void
    	destroy(
    		void
    	) = 0;
    
    	//---------------------------------------------------------------------------
    	//! \brief	Configures 2D -> 1D DMA transfer
    	//!
    	//! \param[in]	numVectors	    Number of elements in 2D transfers
    	//! \param[in]	srcStride	    Number of bytes between start of source vector 'v'
    	//!								and start of source vector 'v+1'
    	//!
    	virtual void
    	configure2D1D(
    		uint16_t    numVectors,
    		int16_t     srcStride
    	) = 0;
    
    	//---------------------------------------------------------------------------
    	//! \brief	Configures 1D -> 2D DMA transfer
    	//!
    	//! \param[in]	numVectors	    Number of elements in 2D transfers
    	//! \param[in]	dstStride	    Number of bytes between start of destination vector 'v'
    	//!								and start of destination vector 'v+1'
    	//!
    	virtual void
    	configure1D2D(
    		uint16_t    numVectors,
    		int16_t     dstStride
    	) = 0;
    
    	//---------------------------------------------------------------------------
    	//! \brief	Configures 2D -> 2D DMA transfer
    	//!
    	//! \param[in]	numVectors	    Number of elements in 2D transfers
    	//! \param[in]	srcStride	    Number of bytes between start of source vector 'v'
    	//!								and start of source vector 'v+1'
    	//! \param[in]	dstStride	    Number of bytes between start of destination vector 'v'
    	//!								and start of destination vector 'v+1'
    	//!
    	virtual void
    	configure2D2D(
    		uint16_t    numVectors,
    		int16_t     srcStride,
    		int16_t     dstStride
    	) = 0;
    
    	//---------------------------------------------------------------------------
    	//! \brief	Configures and starts 1D DMA transfer
    	//!
    	//! \param[in]	dst				Destination address of the DMA transfer
    	//! \param[in]	src				Source address of the DMA transfer
    	//! \param[in]	vectorSize		Number of bytes to transfer
    	//!
    	//! \return		true if successfully started
    	//!
    	virtual bool
    	start(
    		void		*dst,
    		const void	*src,
    		uint16_t	vectorSize
    	) = 0;
    
    	//---------------------------------------------------------------------------
    	//! \brief	Configures and starts 2D -> 1D DMA transfer
    	//!
    	//! \param[in]	dst				Destination address of the DMA transfer
    	//! \param[in]	src				Source address of the DMA transfer
    	//! \param[in]	vectorSize		Number of consecutive bytes in each element (1D vector)
    	//! \param[in]	numVectors	    Number of elements in 2D transfers
    	//! \param[in]	srcStride	    Number of bytes between start of source vector 'v'
    	//!								and start of source vector 'v+1'
    	//!
    	//! \return		true if successfully started
    	//!
    	virtual bool
    	start2D1D(
    		void		*dst,
    		void		*src,
    		uint16_t	vectorSize,
    		uint16_t	numVectors,
    		int16_t		srcStride
    	) {
    		configure2D1D(numVectors, srcStride);
    		return start(dst, src, vectorSize);
    	}
    
    	//---------------------------------------------------------------------------
    	//! \brief	Configures and starts 1D -> 2D DMA transfer
    	//!
    	//! \param[in]	dst				Destination address of the DMA transfer
    	//! \param[in]	src				Source address of the DMA transfer
    	//! \param[in]	vectorSize		Number of consecutive bytes in each element (1D vector)
    	//! \param[in]	numVectors	    Number of elements in 2D transfers
    	//! \param[in]	dstStride	    Number of bytes between start of destination vector 'v'
    	//!								and start of destination vector 'v+1'
    	//!
    	//! \return		true if successfully started
    	//!
    	virtual bool
    	start1D2D(
    		void		*dst,
    		void		*src,
    		uint16_t	vectorSize,
    		uint16_t	numVectors,
    		int16_t		dstStride
    	) {
    		configure1D2D(numVectors, dstStride);
    		return start(dst, src, vectorSize);
    	}
    
    	//---------------------------------------------------------------------------
    	//! \brief	Configures and starts 2D -> 2D DMA transfer
    	//!
    	//! \param[in]	dst				Destination address of the DMA transfer
    	//! \param[in]	src				Source address of the DMA transfer
    	//! \param[in]	vectorSize		Number of consecutive bytes in each element (1D vector)
    	//! \param[in]	numVectors	    Number of elements in 2D transfers
    	//! \param[in]	srcStride	    Number of bytes between start of source vector 'v'
    	//!								and start of source vector 'v+1'
    	//! \param[in]	dstStride	    Number of bytes between start of destination vector 'v'
    	//!								and start of destination vector 'v+1'
    	//!
    	//! \return		true if successfully started
    	//!
    	virtual bool
    	start2D2D(
    		void		*dst,
    		void		*src,
    		uint16_t	vectorSize,
    		uint16_t	numVectors,
    		int16_t		srcStride,
    		int16_t		dstStride
    	) {
    		configure2D2D(numVectors, srcStride, dstStride);
    		return start(dst, src, vectorSize);
    	}
    
    	//---------------------------------------------------------------------------
    	//! \brief	Waits for completion of DMA transfer on the channel
    	//!
    	//! \note	This is a blocking function
    	//!
    	virtual void
    	wait(
    		void
    	) = 0;
    
    	//---------------------------------------------------------------------------
    	//! \brief	Checks availability of DMA channel
    	//!
    	//! \return		true if no occurring/pending transfer on the channel
    	//!
    	virtual bool
    	complete(
    		void
    	) = 0;
    
    protected:
    
    private:
    	// Describe reason for private data
    };
    
    //---------------------------------------------------------------------------
    // Inline Functions
    //---------------------------------------------------------------------------
    } // namespace dma //
    /*lint -restore */
    //---------------------------------------------------------------------------
    
    //---------------------------------------------------------------------------
    // End of File
    //---------------------------------------------------------------------------
    #line 31 "D:\\pkg\\proj1747_ford_p702_soc_mib\\2_install\\application_lvds_tda2px_ti_c66_h_r\\dma\\dmachannel.h"
    
    #line 38 "D:\\pkg\\proj1747_ford_p702_soc_mib\\2_install\\application_lvds_tda2px_ti_c66_h_r\\dma\\dmachannel.h"
    
    //---------------------------------------------------------------------------
    // Typedefs
    //---------------------------------------------------------------------------
    
    //---------------------------------------------------------------------------
    // Forward declarations
    //---------------------------------------------------------------------------
    
    
    namespace dma {
    class LldEdmaChannel;
    
    //---------------------------------------------------------------------------
    //! \class  DmaChannel
    //!
    //! \brief  TI LLD EDMA3 implementation.
    //!
    class DmaChannel : public IChannel
    {
    public:
    	DmaChannel(
    		void
    	);
    	virtual
    	~DmaChannel();
    
    	static void
    	init(
    		void
    	);
    
    	virtual bool
    	create(
    		DMA_PRIORITY    dmaPri,
    		DmaIListener    *listener
    	);
    
    	virtual bool
    	create(
    		void
    	);
    
    	virtual void
    	destroy(
    		void
    	);
    
    	virtual void
    	configure2D1D(
    		uint16_t    numVectors,
    		int16_t     srcStride
    	);
    
    	virtual void
    	configure1D2D(
    		uint16_t    numVectors,
    		int16_t     dstStride
    	);
    
    	virtual void
    	configure2D2D(
    		uint16_t    numVectors,
    		int16_t     srcStride,
    		int16_t     dstStride
    	);
    
    	virtual bool
    	start(
    		void        *dst,
    		const void	*src,
    		uint16_t    vectorSize
    	);
    
    	bool
    	startFast(
    		void        *dst,
    		void        *src,
    		uint16_t    vectorSize
    	);
    
    	bool
    	startFrameSet(
    		void        *dst,
    		void        *src,
    		uint32_t    dstLen,
    		uint32_t    srcLen
    	);
    
    	virtual void
    	wait(
    		void
    	);
    
    	virtual bool
    	complete(
    		void
    	);
    
    	static void
    	waitAll(
    		void
    	);
    
    private:
    	SYS_DISABLE_COPY_OPERATOR(DmaChannel)
    	LldEdmaChannel *lldEdmaChannel;
    };
    } //namespace dma
    
    
    
    
    
    //---------------------------------------------------------------------------
    
    //---------------------------------------------------------------------------
    // End of File
    //---------------------------------------------------------------------------
    #line 31 "D:\\pkg\\proj1747_ford_p702_soc_mib\\P2_algs\\od3d_alg\\od3d_wrapper\\source\\ROI_Extract\\source\\OdExtractChannel.h"
    #line 1 "D:\\dev\\ti\\ccsv8\\tools\\compiler\\c6000_7.4.2\\include\\string.h"
    /*****************************************************************************/
    /* string.h   v7.4.2                                                         */
    /*                                                                           */
    /* Copyright (c) 1993-2012 Texas Instruments Incorporated                    */
    /* http://www.ti.com/                                                        */
    /*                                                                           */
    /*  Redistribution and  use in source  and binary forms, with  or without    */
    /*  modification,  are permitted provided  that the  following conditions    */
    /*  are met:                                                                 */
    /*                                                                           */
    /*     Redistributions  of source  code must  retain the  above copyright    */
    /*     notice, this list of conditions and the following disclaimer.         */
    /*                                                                           */
    /*     Redistributions in binary form  must reproduce the above copyright    */
    /*     notice, this  list of conditions  and the following  disclaimer in    */
    /*     the  documentation  and/or   other  materials  provided  with  the    */
    /*     distribution.                                                         */
    /*                                                                           */
    /*     Neither the  name of Texas Instruments Incorporated  nor the names    */
    /*     of its  contributors may  be used to  endorse or  promote products    */
    /*     derived  from   this  software  without   specific  prior  written    */
    /*     permission.                                                           */
    /*                                                                           */
    /*  THIS SOFTWARE  IS PROVIDED BY THE COPYRIGHT  HOLDERS AND CONTRIBUTORS    */
    /*  "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 THE COPYRIGHT    */
    /*  OWNER OR CONTRIBUTORS 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.     */
    /*                                                                           */
    /*****************************************************************************/
    
    
    
    
    
    
    //----------------------------------------------------------------------------
    // <cstring> IS RECOMMENDED OVER <string.h>.  <string.h> IS PROVIDED FOR
    // COMPATIBILITY WITH C AND THIS USAGE IS DEPRECATED IN C++
    //----------------------------------------------------------------------------
    extern "C" namespace std
    {
    
     
    
    
    
    
    
    
    
    
    
    #line 1 "D:\\dev\\ti\\ccsv8\\tools\\compiler\\c6000_7.4.2\\include\\linkage.h"
    /*****************************************************************************/
    /* linkage.h   v7.4.2                                                        */
    /*                                                                           */
    /* Copyright (c) 1998-2012 Texas Instruments Incorporated                    */
    /* http://www.ti.com/                                                        */
    /*                                                                           */
    /*  Redistribution and  use in source  and binary forms, with  or without    */
    /*  modification,  are permitted provided  that the  following conditions    */
    /*  are met:                                                                 */
    /*                                                                           */
    /*     Redistributions  of source  code must  retain the  above copyright    */
    /*     notice, this list of conditions and the following disclaimer.         */
    /*                                                                           */
    /*     Redistributions in binary form  must reproduce the above copyright    */
    /*     notice, this  list of conditions  and the following  disclaimer in    */
    /*     the  documentation  and/or   other  materials  provided  with  the    */
    /*     distribution.                                                         */
    /*                                                                           */
    /*     Neither the  name of Texas Instruments Incorporated  nor the names    */
    /*     of its  contributors may  be used to  endorse or  promote products    */
    /*     derived  from   this  software  without   specific  prior  written    */
    /*     permission.                                                           */
    /*                                                                           */
    /*  THIS SOFTWARE  IS PROVIDED BY THE COPYRIGHT  HOLDERS AND CONTRIBUTORS    */
    /*  "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 THE COPYRIGHT    */
    /*  OWNER OR CONTRIBUTORS 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.     */
    /*                                                                           */
    /*****************************************************************************/
    
    
    
    
    
    /*--------------------------------------------------------------------------*/
    /* Define _CODE_ACCESS ==> how to call RTS functions                        */
    /*--------------------------------------------------------------------------*/
    #line 52 "D:\\dev\\ti\\ccsv8\\tools\\compiler\\c6000_7.4.2\\include\\linkage.h"
    
    /*--------------------------------------------------------------------------*/
    /* Define _DATA_ACCESS ==> how to access RTS global or static data          */
    /*--------------------------------------------------------------------------*/
    
    /*--------------------------------------------------------------------------*/
    /* Define _DATA_ACCESS_NEAR ==> some C6000 RTS data must always be near     */
    /*--------------------------------------------------------------------------*/
    
    
    /*--------------------------------------------------------------------------*/
    /* Define _IDECL ==> how inline functions are declared                      */
    /*--------------------------------------------------------------------------*/
    #line 76 "D:\\dev\\ti\\ccsv8\\tools\\compiler\\c6000_7.4.2\\include\\linkage.h"
    
    /*--------------------------------------------------------------------------*/
    /* If compiling with non-TI compiler (e.g. GCC), nullify any TI-specific    */
    /* language extensions.                                                     */
    /*--------------------------------------------------------------------------*/
    #line 99 "D:\\dev\\ti\\ccsv8\\tools\\compiler\\c6000_7.4.2\\include\\linkage.h"
    
    #line 61 "D:\\dev\\ti\\ccsv8\\tools\\compiler\\c6000_7.4.2\\include\\string.h"
    
    
    
    extern "C"  size_t  strlen(const char *_string);
    
    extern "C"  char *strcpy(char *_dest, const char *_src);
    extern "C"  char *strncpy(char *_to, const char *_from, size_t _n);
    extern "C"  char *strcat(char *_string1, const char *_string2);
    extern "C"  char *strncat(char *_to, const char *_from, size_t _n);
    extern "C"  char *strchr(const char *_string, int _c);
    extern "C"  char *strrchr(const char *_string, int _c);
    
    extern "C"  int  strcmp(const char *_string1, const char *_string2);
    extern "C"  int  strncmp(const char *_string1, const char *_string2, size_t _n);
    
     int     strcoll(const char *_string1, const char *_string2);
     size_t  strxfrm(char *_to, const char *_from, size_t _n);
     char   *strpbrk(const char *_string, const char *_chs);
     size_t  strspn(const char *_string, const char *_chs);
     size_t  strcspn(const char *_string, const char *_chs);
     char   *strstr(const char *_string1, const char *_string2);
     char   *strtok(char *_str1, const char *_str2);
     char   *strerror(int _errno);
    
     void   *memmove(void *_s1, const void *_s2, size_t _n);
     void   *memcpy(void *_s1, const void *_s2, size_t _n);
    
    extern "C"  int     memcmp(const void *_cs, const void *_ct, size_t _n);
    extern "C"  void   *memchr(const void *_cs, int _c, size_t _n);
    
     void   *memset(void *_mem, int _ch, size_t _n);
    
    
    
    } /* extern "C" namespace std */
    
    
    #line 285 "D:\\dev\\ti\\ccsv8\\tools\\compiler\\c6000_7.4.2\\include\\string.h"
    
    
    
    
    using std::size_t;
    using std::strlen;
    using std::strcpy;
    using std::strncpy;
    using std::strcat;
    using std::strncat;
    using std::strchr;
    using std::strrchr;
    //using std::strcmp;
    using std::strncmp;
    using std::strcoll;
    using std::strxfrm;
    using std::strpbrk;
    using std::strspn;
    using std::strcspn;
    using std::strstr;
    using std::strtok;
    using std::strerror;
    using std::memmove;
    using std::memcpy;
    using std::memcmp;
    using std::memchr;
    using std::memset;
    
    
    
    
    #line 32 "D:\\pkg\\proj1747_ford_p702_soc_mib\\P2_algs\\od3d_alg\\od3d_wrapper\\source\\ROI_Extract\\source\\OdExtractChannel.h"
    
    //---------------------------------------------------------------------------
    // Defines
    //---------------------------------------------------------------------------
    
    //---------------------------------------------------------------------------
    //! \class      OdDmaChannel
    //!
    //! \brief
    //!
    //! \invariant
    //!
    class OdDmaChannel
    {
    public:
    
        OdDmaChannel(void)
    	{
    		m_pDma = new dma::DmaChannel();
    		m_pDma->create();
    	}
    
        virtual ~OdDmaChannel(void)
    	{
    	    m_pDma->destroy();
    		delete m_pDma;
    	}
    
        void
        startTransfer2D1D(
            void            *dst,
            void            *src,
            unsigned short  elementSize,
            unsigned short  numElements,
            short           srcElemIndex
        ) {
            m_pDma->start2D1D(dst, src, elementSize, numElements, srcElemIndex);
        }
    
        void
        startTransfer1D2D(
            void            *dst,
            void            *src,
            unsigned short  elementSize,
            unsigned short  numElements,
            short           dstElemIndex
        ) {
            m_pDma->start1D2D(dst, src, elementSize, numElements, dstElemIndex);
        }
    
        void
        wait() {
            m_pDma->wait();
        }
    
        bool
        complete() {
            return m_pDma->complete();
        }
    
    private:
        dma::DmaChannel         *m_pDma;
    };
    
    //---------------------------------------------------------------------------
    //! \class      OdMemcpyChannel
    //!
    //! \brief
    //!
    //! \invariant
    //!
    class OdMemcpyChannel
    {
    public:
        OdMemcpyChannel() {
        }
    
        virtual
        ~OdMemcpyChannel() {
        }
    
        bool
        create(
            void
        ) const {
            return true;
        }
    
        void
        destroy(
            void
        ) const {
        }
    
        //! \brief	configures and starts 1D DMA transfer
        //!
        //! \param[in]	dst				Destination address of the DMA transfer
        //! \param[in]	src				Source address of the DMA transfer
        //! \param[in]	size			Number of bytes to transfer
        void
        startTransfer(
            void            *dst,
            const void      *src,
            unsigned short  size
        ) const {
            if (0 != dst) {
                if (0 != src) {
                    memcpy(dst, src, size);
                }
            }
        }
    
        //! \brief	configures and starts 2D -> 1D DMA transfer
        //!
        //! \param[in]	dst				Destination address of the DMA transfer
        //! \param[in]	src				Source address of the DMA transfer
        //! \param[in]	elemSize		Number of consecutive bytes in each element (1D vector)
        //! \param[in]	numElements     Number of elements in 2D transfers
        //! \param[in]	srcElemIndex    Offset in number of bytes from beginning of
        //!								each element to the beginning of the next element
        void
        startTransfer2D1D(
            void            *dst,
            void            *src,
            unsigned short  elemSize,
            unsigned short  numElements,
            short           srcElemIndex
        ) const {
            if (0 != dst) {
                if (0 != src) {
                    char    *srcElem    = (char *) src;
                    char    *dstElem    = (char *) dst;
                    for (int e = 0; e < numElements; e++) {
                        memcpy(dstElem, srcElem, elemSize);
                        srcElem += srcElemIndex;
                        dstElem += elemSize;
                    }
                }
            }
        }
    
        //! \brief	configures and starts 1D -> 2D DMA transfer
        //!
        //! \param[in]	dst				Destination address of the DMA transfer
        //! \param[in]	src				Source address of the DMA transfer
        //! \param[in]	elemSize		Number of consecutive bytes in each element (1D vector)
        //! \param[in]	numElements     Number of elements in 2D transfers
        //! \param[in]	dstElemIndex    Offset in number of bytes from beginning of
        //!								each element to the beginning of the next element
    	//! return none
        void
        startTransfer1D2D(
            void            *dst,
            void            *src,
            unsigned short  elemSize,
            unsigned short  numElements,
            short           dstElemIndex
        ) const {
            if (0 != dst) {
                if (0 != src) {
                    char    *srcElem    = (char *) src;
                    char    *dstElem    = (char *) dst;
                    for (int e = 0; e < numElements; e++) {
                        memcpy(dstElem, srcElem, elemSize);
                        srcElem += elemSize;
                        dstElem += dstElemIndex;
                    }
                }
            }
        }
    
        void
        wait() const {
        }
    
    
    	//! \brief	Return complete
    	//!
    	//!	\return true
        bool
        complete() const {
            return true;
        }
    
    
    	//! \brief	configures DMA transfer
    	//!
    	//! \param[in]	dst				Destination address of the DMA transfer
    	//! \param[in]	src				Source address of the DMA transfer
    	//! \param[in]	elemSize		Number of consecutive bytes in each element (1D vector)
    	//! return none
        void
        configureTransfer(
            void            *dst,
            const void      *src,
            unsigned short  size
        ) const {
            (void) dst;
            if (0 != dst) {
                if (0 != src) {
                    (void) size;
                    //do nothing
                }
            }
        }
    
    
    	//! \brief	Starts fast transfer
    	//!
    	//! \param[in]	dst				Destination address of the DMA transfer
    	//! \param[in]	src				Source address of the DMA transfer
    	//! \param[in]	elemSize		Number of consecutive bytes in each element (1D vector)
    	//! return none
        void
        startFastTransfer(
            void            *dst,
            const void      *src,
            unsigned short  size
        ) const {
            startTransfer(dst, src, size);
        }
    };
    
    //---------------------------------------------------------------------------
    
    //---------------------------------------------------------------------------
    // End of File
    //---------------------------------------------------------------------------
    
    #line 4 "D:/pkg/proj1747_ford_p702_soc_mib/P2_algs/od3d_alg/od3d_wrapper/source/ROI_Extract/source\\dummy_OdExtractChannel.cpp"
    #line 3 "vcast_preprocess.24120.0.cpp"
    

    Thanks

    Jeslin

  • Thank you for submitting a partial test case.  However, I could not use it to reproduce the problem.  I am not familiar with VectorCast, so I cannot tell you how to use it to create the preprocessed file.  Unfortunately, without a complete test case, I am unable to help you with this problem.

    Thanks and regards,

    -George

  • Hi George,

    I have attached below prepossessed file. This will have all the includes. Please check with this.

    vcast_preprocess.txt

    3021.vcast_preprocess.txt
    #line 1 "vcast_preprocess.24120.0.cpp"
    #line 1 "C:\\VCAST\\DATA\\code_composer\\c6000_intrinsics.h"
    
    unsigned short & _amem2 (void *ptr);
    unsigned & _amem4 (void *ptr);
    long long & _amem8 (void *ptr);
    unsigned short & _mem2 (void * ptr);
    unsigned & _mem4 (void * ptr);
    long long & _mem8 (void * ptr);
    #line 16 "C:\\VCAST\\DATA\\code_composer\\c6000_intrinsics.h"
    unsigned _pack2 (unsigned src1, unsigned src2);
    unsigned _packl4 (unsigned src1, unsigned src2);
    long long _itoll(int high32bits, int low32bits);
    #line 2 "vcast_preprocess.24120.0.cpp"
    #line 1 "D:/pkg/proj1747_ford_p702_soc_mib/P2_algs/od3d_alg/od3d_wrapper/source/ROI_Extract/source\\dummy_OdExtractChannel.cpp"
    #line 1 "D:\\pkg\\proj1747_ford_p702_soc_mib\\2_install\\application_lvds_tda2px_ti_c66_h_r\\sys\\systypes.h"
    /*!
    ** $URL: http://svn.cel/svn/VVS_Software/release_candidate/BMW/iCAM_SVS/VVS_B6/RC13/source/BMW_iCAM_SVS_VVS_B6_RC13_V05.00.0A.00/P2/components/sys/source/arch/visionmid814x_dsp/systypes.h $
    **
    ** @(#) $Id: systypes.h 16898 2012-03-13 16:18:31Z kellawaytrevor $
    **
    ** \file	systypes.h
    **
    ** \brief	Generic defines and types.
    */
    
    /*****************************************************************************
    **                                                                          **
    ** This program is the confidential and proprietary product of Application  **
    ** Solutions Limited and Valeo Vision Systems. Any unauthorised use,        **
    ** reproduction or transfer of this program is strictly prohibited.         **
    ** Copyright 2007 Application Solutions Limited and Valeo Vision Systems.   **
    ** (Subject to limited distribution and restricted disclosure only.)        **
    ** All rights reserved.                                                     **
    **                                                                          **
    *****************************************************************************/
    
    
    
    
    /*
     * Prevent multiple definitions for SYS/BIOS 6 from TI header file
     */
    /*lint -save -e1960  C++ pattern */
    //Vioations : MISRA 2004 Required Rule 20.2, Note 960:  Re-use of C90 identifier pattern: _STDINT_H
    //Justification for suppression : TI pre processor directive used, prevents adding from similar standard header file. should be suppressed. 
    /*lint -e960 */
    
    /*lint -restore */
    /*---------------------------------------------------------------------------
    ** Includes
    */
    /*lint -save -e322 -e829 (include file defined in compiler) this module is used for C and C++ files */
    #line 1 "D:\\dev\\ti\\ccsv8\\tools\\compiler\\c6000_7.4.2\\include\\stddef.h"
    /*****************************************************************************/
    /* stddef.h   v7.4.2                                                         */
    /*                                                                           */
    /* Copyright (c) 1993-2012 Texas Instruments Incorporated                    */
    /* http://www.ti.com/                                                        */
    /*                                                                           */
    /*  Redistribution and  use in source  and binary forms, with  or without    */
    /*  modification,  are permitted provided  that the  following conditions    */
    /*  are met:                                                                 */
    /*                                                                           */
    /*     Redistributions  of source  code must  retain the  above copyright    */
    /*     notice, this list of conditions and the following disclaimer.         */
    /*                                                                           */
    /*     Redistributions in binary form  must reproduce the above copyright    */
    /*     notice, this  list of conditions  and the following  disclaimer in    */
    /*     the  documentation  and/or   other  materials  provided  with  the    */
    /*     distribution.                                                         */
    /*                                                                           */
    /*     Neither the  name of Texas Instruments Incorporated  nor the names    */
    /*     of its  contributors may  be used to  endorse or  promote products    */
    /*     derived  from   this  software  without   specific  prior  written    */
    /*     permission.                                                           */
    /*                                                                           */
    /*  THIS SOFTWARE  IS PROVIDED BY THE COPYRIGHT  HOLDERS AND CONTRIBUTORS    */
    /*  "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 THE COPYRIGHT    */
    /*  OWNER OR CONTRIBUTORS 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.     */
    /*                                                                           */
    /*****************************************************************************/
    
    
    
    
    
    extern "C" namespace std {
    
    
    
    
    
    
    typedef int ptrdiff_t;
    
    
    
    typedef unsigned size_t;
    
    
    #line 64 "D:\\dev\\ti\\ccsv8\\tools\\compiler\\c6000_7.4.2\\include\\stddef.h"
    
    
    
    
    } /* extern "C" namespace std */
    
    
    
    
    
    using std::ptrdiff_t;
    using std::size_t;
    /*using std::wchar_t;*/
    
    
    /*-----------------------------------------------------------------------*/
    /* Define _win_t, for compiling GCC libraries with the TI compiler.      */
    /* GCC's library (newlib) expects wint_t to be defined here, in stddef.h,*/
    /* which is arguably incorrect, but we go along for compatibility.       */
    /* This is outside the _STDDEF guard in case this file has already       */
    /* been included without __need_wint_t.                                  */
    /*-----------------------------------------------------------------------*/
    #line 39 "D:\\pkg\\proj1747_ford_p702_soc_mib\\2_install\\application_lvds_tda2px_ti_c66_h_r\\sys\\systypes.h"
    /*lint -restore */
    /*---------------------------------------------------------------------------
    ** Defines and Macros
    */
    
    /** @name Boolean constants
    */
    /*@{*/
    /*lint -save -e1960 -e960 suppression unavoidable for True and False undef */
    #line 56 "D:\\pkg\\proj1747_ford_p702_soc_mib\\2_install\\application_lvds_tda2px_ti_c66_h_r\\sys\\systypes.h"
    /*@}*/
    /*lint -restore */
    #line 65 "D:\\pkg\\proj1747_ford_p702_soc_mib\\2_install\\application_lvds_tda2px_ti_c66_h_r\\sys\\systypes.h"
    
    /** @name Macros corresponding to C++ implementation (From c6000/include/stdint.h)
    */
    /*
     * According to footnotes in the 1999 C standard, "C++ implementations
     * should define these macros only when __STDC_LIMIT_MACROS is defined
     * before <stdint.h> is included."
    */
    #line 187 "D:\\pkg\\proj1747_ford_p702_soc_mib\\2_install\\application_lvds_tda2px_ti_c66_h_r\\sys\\systypes.h"
    
    /*---------------------------------------------------------------------------
    ** Typedefs
    */
    /*lint -e1960 suppression required; PC-Lint assumes extern C is a global variable*/
    
    extern "C" {
    
    /*lint -restore */
    /** @name Base types
    */
    /*@{*/
    typedef signed char			int8;
    typedef unsigned char		uint8;
    typedef signed short		int16;
    typedef signed short		sint16;
    typedef unsigned short		uint16;
    
    /*
    ** TI STL means we can't redefine bool, as some STL function overloading
    ** then fails due to duplicates, so leave as a different type. This means
    ** we can't easily do Lint across entire project (rather than unit checkout).
    */
    typedef uint8    			bool_t;
    
    
    
    
    typedef signed int			int32;
    typedef signed int			sint32;
    typedef unsigned int		uint32;
    typedef signed long			int40;
    typedef unsigned long		uint40;
    typedef signed long long	int64;
    typedef unsigned long long	uint64;
    /*@}*/
    
    /** @name Shorthand version of fast types
    **
    ** Modify these for the best implementation for a specific CPU architecture.
    */
    /*@{*/
    typedef int32				intf8;
    typedef uint32				uintf8;
    typedef int32				intf16;
    typedef uint32				uintf16;
    typedef int32				intf32;
    typedef uint32				uintf32;
    typedef int64				intf64;
    typedef uint64				uintf64;
    /*@}*/
    
    /** @name Draft ISO fast names (for compatibility)
    */
    /*@{*/
    typedef int8				int8_t;
    typedef int16				int16_t;
    typedef int32				int32_t;
    typedef int40               int40_t;
    typedef int64               int64_t;
    typedef uint8				uint8_t;
    typedef uint16				uint16_t;
    typedef uint32				uint32_t;
    typedef uint40				uint40_t;
    typedef uint64              uint64_t;
    typedef intf8				int_fast8_t;
    typedef intf16				int_fast16_t;
    typedef intf32				int_fast32_t;
    typedef intf64              int_fast64_t;
    typedef uintf8				uint_fast8_t;
    typedef uintf16				uint_fast16_t;
    typedef uintf32				uint_fast32_t;
    typedef uintf64             uint_fast64_t;
    /*@}*/
    
    /** @name Minimum-width integer types (From c6000/include/stdint.h)
    */
    /*@{*/
    typedef  int8_t   int_least8_t;
    typedef uint8_t  uint_least8_t;
    typedef  int16_t  int_least16_t;
    typedef uint16_t uint_least16_t;
    typedef  int32_t  int_least32_t;
    typedef uint32_t uint_least32_t;
    
    //#ifndef __TI_32BIT_LONG__
        typedef  int40_t  int_least40_t;
        typedef uint40_t uint_least40_t;
    //#endif
    
    typedef  int64_t  int_least64_t;
    typedef uint64_t uint_least64_t;
    /*@}*/
    
    
    /** @name Integer types capable of holding object pointers (From c6000/include/stdint.h)
    */
    /*@{*/
    typedef          int intptr_t;
    typedef unsigned int uintptr_t;
    /*@}*/
    
    /** @name Greatest-width integer types (From c6000/include/stdint.h)
    */
    /*@{*/
    typedef          long long intmax_t;
    typedef unsigned long long uintmax_t;
    /*@}*/
    
    
    /*!
    ** \brief	Our own character type (to avoid MISRA warnings of direct 'char' use).
    */
    typedef char CHAR;
    
    
    /*!
    ** \brief	Our own float type (to avoid MISRA warnings of direct 'float' use).
    */
    typedef float FLOAT;
    
    /*!
    ** \brief	Our own double type (to avoid MISRA warnings of direct 'double' use).
    */
    typedef double DOUBLE;
    
    /*---------------------------------------------------------------------------
    ** Data
    */
    
    /*---------------------------------------------------------------------------
    ** Functions
    */
    
    
    
    }
    
    
    
    /*---------------------------------------------------------------------------
    ** End of File
    */
    #line 2 "D:/pkg/proj1747_ford_p702_soc_mib/P2_algs/od3d_alg/od3d_wrapper/source/ROI_Extract/source\\dummy_OdExtractChannel.cpp"
    //#include"dmachannel.h"
    #line 1 "D:\\pkg\\proj1747_ford_p702_soc_mib\\P2_algs\\od3d_alg\\od3d_wrapper\\source\\ROI_Extract\\source\\OdExtractChannel.h"
    //!
    //! $URL$
    //!
    //! @(#)$Id$
    //!
    //! \file	OdDmaChannel.h
    //!
    //! \brief	Class declaration for OdDmaChannel.
    //!
    
    ////////////////////////////////////////////////////////////////////////////
    //
    // This program is the confidential and proprietary product of Valeo
    // Vision Systems. Any unauthorised use, reproduction or transfer of
    // this program is strictly prohibited.
    // Copyright 2015 Valeo Vision Systems. (Subject to limited
    // distribution and restricted disclosure only.) All rights reserved.
    //
    ////////////////////////////////////////////////////////////////////////////
    
    //---------------------------------------------------------------------------
    
    
    //---------------------------------------------------------------------------
    
    /*lint -esym(970, unsigned, char, short, int) : Use of modifier or type outside of a typedef [MISRA 2004 Rule 6.3] : Interface class */
    //---------------------------------------------------------------------------
    // Includes
    //---------------------------------------------------------------------------
    #line 1 "D:\\pkg\\proj1747_ford_p702_soc_mib\\2_install\\application_lvds_tda2px_ti_c66_h_r\\dma\\dmachannel.h"
    //!
    //! $URL: $
    //!
    //! @(#)$Id: $
    //!
    //! \file	dmachannel.h
    //!
    //! \brief	Definition of DmaChannel implementation.
    //!
    
    //////////////////////////////////////////////////////////////////////////////
    //                                                                          //
    // This program is the confidential and proprietary product of Application  //
    // Solutions Limited and Valeo Vision Systems. Any unauthorised use,        //
    // reproduction or transfer of this program is strictly prohibited.         //
    // Copyright 2008 Application Solutions Limited and Valeo Vision Systems.   //
    // (Subject to limited distribution and restricted disclosure only.)        //
    // All rights reserved.                                                     //
    //                                                                          //
    //////////////////////////////////////////////////////////////////////////////
    
    //---------------------------------------------------------------------------
    
    
    //---------------------------------------------------------------------------
    
    //---------------------------------------------------------------------------
    // Includes
    //---------------------------------------------------------------------------
    #line 1 "D:\\pkg\\proj1747_ford_p702_soc_mib\\2_install\\application_lvds_tda2px_ti_c66_h_r\\dma\\dmaichannel.h"
    //!
    //! $URL:  $
    //!
    //! @(#)$Id:  $
    //!
    //! \file	dmaichannel.h
    //!
    //! \brief	Class declaration for IChannel.
    //!
    
    //////////////////////////////////////////////////////////////////////////////
    //                                                                          //
    // This program is the confidential and proprietary product of Application  //
    // Solutions (Electronics & Vision) Limited and Valeo Vision Systems.       //
    // Any unauthorised use, reproduction or transfer of this program is        //
    // strictly prohibited.                                                     //
    // Copyright 2011 Application Solutions (Electronics & Vision) Limited and  //
    // Valeo Vision Systems. (Subject to limited distribution and restricted    //
    // disclosure only.) All rights reserved.                                   //
    //                                                                          //
    //////////////////////////////////////////////////////////////////////////////
    
    //---------------------------------------------------------------------------
    
    
    //---------------------------------------------------------------------------
    
    //---------------------------------------------------------------------------
    // Includes
    //---------------------------------------------------------------------------
    //Investigated and found no reason for this warning Looks like Lint has some issue with this,so finally agreed suppress it.
    /*lint -save -esym(1960,7-3-1) agreed suppression Required Rule 7-3-1, Violates MISRA C++ 2008 Required Rule 7-3-1, Global declaration*/
    namespace dma {
    
    
    //---------------------------------------------------------------------------
    // Forward Declarations
    //---------------------------------------------------------------------------
    typedef  uint8_t DMA_PRIORITY;
    
    const DMA_PRIORITY	DMA_PRIORITY_0 = 0;
    const DMA_PRIORITY	DMA_PRIORITY_1 = 1;
    const DMA_PRIORITY	DMA_PRIORITY_2 = 2;
    const DMA_PRIORITY	DMA_PRIORITY_3 = 3;
    
    //---------------------------------------------------------------------------
    //! \class      DmaIListener
    //!
    //! \brief		Interface to be implemented by dma listeners.
    //!
    class DmaIListener
    {
    public:
    	virtual
    	~DmaIListener(
    		void
    	) {
    	}
    
    	virtual void
    	dmaCallback(
    		bool result
    	) = 0;
    };
    
    //---------------------------------------------------------------------------
    //! \class      DmaListener
    //!
    //! \brief		Template to create dma listeners.
    //!
    
    template <typename T>
    class DmaListener : public DmaIListener
    {
    protected:
    	typedef void (T::*TClbk)(bool result);
    
    public:
    
    	DmaListener(
    		T       *object,
    		TClbk   runFnc
    	) :
    		m_object(object), m_dmaCallback(runFnc) {
    	}
    
    	virtual
    	~DmaListener(
    		void
    	) {
    		m_object = 0;
    	}
    
    	virtual void
    	dmaCallback(
    		bool result
    	) {
    		(m_object->*m_dmaCallback)(result);
    	}
    
    private:
    	T       *m_object;
    	TClbk	m_dmaCallback;
    };
    
    //---------------------------------------------------------------------------
    //! \class	IChannel
    //!
    //! \brief	Base class for DMA channel resources.
    //!
    class IChannel
    {
    public:
    	IChannel(
    		void
    	) {
    		;
    	}
    
    	virtual
    	~IChannel(
    		void
    	) {
    		;
    	}
    
    	//---------------------------------------------------------------------------
    	//! \brief	Create a channel
    	//!
    	//! \param[in]	listener		Pointer to the DMA listener object if provided
    	//!
    	//! \return		true if successfully created
    	//!
    
    	virtual bool
    	create(
    		DMA_PRIORITY    dmaPri,
    		DmaIListener    *listener
    	) = 0;
    
    	//---------------------------------------------------------------------------
    	//! \brief	Create a channel
    	//!
    	//! \param[in]	listener		Pointer to the DMA listener object if provided
    	//!
    	//! \return		true if successfully created
    	//!
    
    	virtual bool
    	create(
    		void
    	) = 0;
    
    	//---------------------------------------------------------------------------
    	//! \brief	Destroy a channel
    	//!
    	//! \return		true if successfully destroyed
    	//!
    	virtual void
    	destroy(
    		void
    	) = 0;
    
    	//---------------------------------------------------------------------------
    	//! \brief	Configures 2D -> 1D DMA transfer
    	//!
    	//! \param[in]	numVectors	    Number of elements in 2D transfers
    	//! \param[in]	srcStride	    Number of bytes between start of source vector 'v'
    	//!								and start of source vector 'v+1'
    	//!
    	virtual void
    	configure2D1D(
    		uint16_t    numVectors,
    		int16_t     srcStride
    	) = 0;
    
    	//---------------------------------------------------------------------------
    	//! \brief	Configures 1D -> 2D DMA transfer
    	//!
    	//! \param[in]	numVectors	    Number of elements in 2D transfers
    	//! \param[in]	dstStride	    Number of bytes between start of destination vector 'v'
    	//!								and start of destination vector 'v+1'
    	//!
    	virtual void
    	configure1D2D(
    		uint16_t    numVectors,
    		int16_t     dstStride
    	) = 0;
    
    	//---------------------------------------------------------------------------
    	//! \brief	Configures 2D -> 2D DMA transfer
    	//!
    	//! \param[in]	numVectors	    Number of elements in 2D transfers
    	//! \param[in]	srcStride	    Number of bytes between start of source vector 'v'
    	//!								and start of source vector 'v+1'
    	//! \param[in]	dstStride	    Number of bytes between start of destination vector 'v'
    	//!								and start of destination vector 'v+1'
    	//!
    	virtual void
    	configure2D2D(
    		uint16_t    numVectors,
    		int16_t     srcStride,
    		int16_t     dstStride
    	) = 0;
    
    	//---------------------------------------------------------------------------
    	//! \brief	Configures and starts 1D DMA transfer
    	//!
    	//! \param[in]	dst				Destination address of the DMA transfer
    	//! \param[in]	src				Source address of the DMA transfer
    	//! \param[in]	vectorSize		Number of bytes to transfer
    	//!
    	//! \return		true if successfully started
    	//!
    	virtual bool
    	start(
    		void		*dst,
    		const void	*src,
    		uint16_t	vectorSize
    	) = 0;
    
    	//---------------------------------------------------------------------------
    	//! \brief	Configures and starts 2D -> 1D DMA transfer
    	//!
    	//! \param[in]	dst				Destination address of the DMA transfer
    	//! \param[in]	src				Source address of the DMA transfer
    	//! \param[in]	vectorSize		Number of consecutive bytes in each element (1D vector)
    	//! \param[in]	numVectors	    Number of elements in 2D transfers
    	//! \param[in]	srcStride	    Number of bytes between start of source vector 'v'
    	//!								and start of source vector 'v+1'
    	//!
    	//! \return		true if successfully started
    	//!
    	virtual bool
    	start2D1D(
    		void		*dst,
    		void		*src,
    		uint16_t	vectorSize,
    		uint16_t	numVectors,
    		int16_t		srcStride
    	) {
    		configure2D1D(numVectors, srcStride);
    		return start(dst, src, vectorSize);
    	}
    
    	//---------------------------------------------------------------------------
    	//! \brief	Configures and starts 1D -> 2D DMA transfer
    	//!
    	//! \param[in]	dst				Destination address of the DMA transfer
    	//! \param[in]	src				Source address of the DMA transfer
    	//! \param[in]	vectorSize		Number of consecutive bytes in each element (1D vector)
    	//! \param[in]	numVectors	    Number of elements in 2D transfers
    	//! \param[in]	dstStride	    Number of bytes between start of destination vector 'v'
    	//!								and start of destination vector 'v+1'
    	//!
    	//! \return		true if successfully started
    	//!
    	virtual bool
    	start1D2D(
    		void		*dst,
    		void		*src,
    		uint16_t	vectorSize,
    		uint16_t	numVectors,
    		int16_t		dstStride
    	) {
    		configure1D2D(numVectors, dstStride);
    		return start(dst, src, vectorSize);
    	}
    
    	//---------------------------------------------------------------------------
    	//! \brief	Configures and starts 2D -> 2D DMA transfer
    	//!
    	//! \param[in]	dst				Destination address of the DMA transfer
    	//! \param[in]	src				Source address of the DMA transfer
    	//! \param[in]	vectorSize		Number of consecutive bytes in each element (1D vector)
    	//! \param[in]	numVectors	    Number of elements in 2D transfers
    	//! \param[in]	srcStride	    Number of bytes between start of source vector 'v'
    	//!								and start of source vector 'v+1'
    	//! \param[in]	dstStride	    Number of bytes between start of destination vector 'v'
    	//!								and start of destination vector 'v+1'
    	//!
    	//! \return		true if successfully started
    	//!
    	virtual bool
    	start2D2D(
    		void		*dst,
    		void		*src,
    		uint16_t	vectorSize,
    		uint16_t	numVectors,
    		int16_t		srcStride,
    		int16_t		dstStride
    	) {
    		configure2D2D(numVectors, srcStride, dstStride);
    		return start(dst, src, vectorSize);
    	}
    
    	//---------------------------------------------------------------------------
    	//! \brief	Waits for completion of DMA transfer on the channel
    	//!
    	//! \note	This is a blocking function
    	//!
    	virtual void
    	wait(
    		void
    	) = 0;
    
    	//---------------------------------------------------------------------------
    	//! \brief	Checks availability of DMA channel
    	//!
    	//! \return		true if no occurring/pending transfer on the channel
    	//!
    	virtual bool
    	complete(
    		void
    	) = 0;
    
    protected:
    
    private:
    	// Describe reason for private data
    };
    
    //---------------------------------------------------------------------------
    // Inline Functions
    //---------------------------------------------------------------------------
    } // namespace dma //
    /*lint -restore */
    //---------------------------------------------------------------------------
    
    //---------------------------------------------------------------------------
    // End of File
    //---------------------------------------------------------------------------
    #line 31 "D:\\pkg\\proj1747_ford_p702_soc_mib\\2_install\\application_lvds_tda2px_ti_c66_h_r\\dma\\dmachannel.h"
    
    #line 38 "D:\\pkg\\proj1747_ford_p702_soc_mib\\2_install\\application_lvds_tda2px_ti_c66_h_r\\dma\\dmachannel.h"
    
    //---------------------------------------------------------------------------
    // Typedefs
    //---------------------------------------------------------------------------
    
    //---------------------------------------------------------------------------
    // Forward declarations
    //---------------------------------------------------------------------------
    
    
    namespace dma {
    class LldEdmaChannel;
    
    //---------------------------------------------------------------------------
    //! \class  DmaChannel
    //!
    //! \brief  TI LLD EDMA3 implementation.
    //!
    class DmaChannel : public IChannel
    {
    public:
    	DmaChannel(
    		void
    	);
    	virtual
    	~DmaChannel();
    
    	static void
    	init(
    		void
    	);
    
    	virtual bool
    	create(
    		DMA_PRIORITY    dmaPri,
    		DmaIListener    *listener
    	);
    
    	virtual bool
    	create(
    		void
    	);
    
    	virtual void
    	destroy(
    		void
    	);
    
    	virtual void
    	configure2D1D(
    		uint16_t    numVectors,
    		int16_t     srcStride
    	);
    
    	virtual void
    	configure1D2D(
    		uint16_t    numVectors,
    		int16_t     dstStride
    	);
    
    	virtual void
    	configure2D2D(
    		uint16_t    numVectors,
    		int16_t     srcStride,
    		int16_t     dstStride
    	);
    
    	virtual bool
    	start(
    		void        *dst,
    		const void	*src,
    		uint16_t    vectorSize
    	);
    
    	bool
    	startFast(
    		void        *dst,
    		void        *src,
    		uint16_t    vectorSize
    	);
    
    	bool
    	startFrameSet(
    		void        *dst,
    		void        *src,
    		uint32_t    dstLen,
    		uint32_t    srcLen
    	);
    
    	virtual void
    	wait(
    		void
    	);
    
    	virtual bool
    	complete(
    		void
    	);
    
    	static void
    	waitAll(
    		void
    	);
    
    private:
    	SYS_DISABLE_COPY_OPERATOR(DmaChannel)
    	LldEdmaChannel *lldEdmaChannel;
    };
    } //namespace dma
    
    
    
    
    
    //---------------------------------------------------------------------------
    
    //---------------------------------------------------------------------------
    // End of File
    //---------------------------------------------------------------------------
    #line 31 "D:\\pkg\\proj1747_ford_p702_soc_mib\\P2_algs\\od3d_alg\\od3d_wrapper\\source\\ROI_Extract\\source\\OdExtractChannel.h"
    #line 1 "D:\\dev\\ti\\ccsv8\\tools\\compiler\\c6000_7.4.2\\include\\string.h"
    /*****************************************************************************/
    /* string.h   v7.4.2                                                         */
    /*                                                                           */
    /* Copyright (c) 1993-2012 Texas Instruments Incorporated                    */
    /* http://www.ti.com/                                                        */
    /*                                                                           */
    /*  Redistribution and  use in source  and binary forms, with  or without    */
    /*  modification,  are permitted provided  that the  following conditions    */
    /*  are met:                                                                 */
    /*                                                                           */
    /*     Redistributions  of source  code must  retain the  above copyright    */
    /*     notice, this list of conditions and the following disclaimer.         */
    /*                                                                           */
    /*     Redistributions in binary form  must reproduce the above copyright    */
    /*     notice, this  list of conditions  and the following  disclaimer in    */
    /*     the  documentation  and/or   other  materials  provided  with  the    */
    /*     distribution.                                                         */
    /*                                                                           */
    /*     Neither the  name of Texas Instruments Incorporated  nor the names    */
    /*     of its  contributors may  be used to  endorse or  promote products    */
    /*     derived  from   this  software  without   specific  prior  written    */
    /*     permission.                                                           */
    /*                                                                           */
    /*  THIS SOFTWARE  IS PROVIDED BY THE COPYRIGHT  HOLDERS AND CONTRIBUTORS    */
    /*  "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 THE COPYRIGHT    */
    /*  OWNER OR CONTRIBUTORS 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.     */
    /*                                                                           */
    /*****************************************************************************/
    
    
    
    
    
    
    //----------------------------------------------------------------------------
    // <cstring> IS RECOMMENDED OVER <string.h>.  <string.h> IS PROVIDED FOR
    // COMPATIBILITY WITH C AND THIS USAGE IS DEPRECATED IN C++
    //----------------------------------------------------------------------------
    extern "C" namespace std
    {
    
     
    
    
    
    
    
    
    
    
    
    #line 1 "D:\\dev\\ti\\ccsv8\\tools\\compiler\\c6000_7.4.2\\include\\linkage.h"
    /*****************************************************************************/
    /* linkage.h   v7.4.2                                                        */
    /*                                                                           */
    /* Copyright (c) 1998-2012 Texas Instruments Incorporated                    */
    /* http://www.ti.com/                                                        */
    /*                                                                           */
    /*  Redistribution and  use in source  and binary forms, with  or without    */
    /*  modification,  are permitted provided  that the  following conditions    */
    /*  are met:                                                                 */
    /*                                                                           */
    /*     Redistributions  of source  code must  retain the  above copyright    */
    /*     notice, this list of conditions and the following disclaimer.         */
    /*                                                                           */
    /*     Redistributions in binary form  must reproduce the above copyright    */
    /*     notice, this  list of conditions  and the following  disclaimer in    */
    /*     the  documentation  and/or   other  materials  provided  with  the    */
    /*     distribution.                                                         */
    /*                                                                           */
    /*     Neither the  name of Texas Instruments Incorporated  nor the names    */
    /*     of its  contributors may  be used to  endorse or  promote products    */
    /*     derived  from   this  software  without   specific  prior  written    */
    /*     permission.                                                           */
    /*                                                                           */
    /*  THIS SOFTWARE  IS PROVIDED BY THE COPYRIGHT  HOLDERS AND CONTRIBUTORS    */
    /*  "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 THE COPYRIGHT    */
    /*  OWNER OR CONTRIBUTORS 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.     */
    /*                                                                           */
    /*****************************************************************************/
    
    
    
    
    
    /*--------------------------------------------------------------------------*/
    /* Define _CODE_ACCESS ==> how to call RTS functions                        */
    /*--------------------------------------------------------------------------*/
    #line 52 "D:\\dev\\ti\\ccsv8\\tools\\compiler\\c6000_7.4.2\\include\\linkage.h"
    
    /*--------------------------------------------------------------------------*/
    /* Define _DATA_ACCESS ==> how to access RTS global or static data          */
    /*--------------------------------------------------------------------------*/
    
    /*--------------------------------------------------------------------------*/
    /* Define _DATA_ACCESS_NEAR ==> some C6000 RTS data must always be near     */
    /*--------------------------------------------------------------------------*/
    
    
    /*--------------------------------------------------------------------------*/
    /* Define _IDECL ==> how inline functions are declared                      */
    /*--------------------------------------------------------------------------*/
    #line 76 "D:\\dev\\ti\\ccsv8\\tools\\compiler\\c6000_7.4.2\\include\\linkage.h"
    
    /*--------------------------------------------------------------------------*/
    /* If compiling with non-TI compiler (e.g. GCC), nullify any TI-specific    */
    /* language extensions.                                                     */
    /*--------------------------------------------------------------------------*/
    #line 99 "D:\\dev\\ti\\ccsv8\\tools\\compiler\\c6000_7.4.2\\include\\linkage.h"
    
    #line 61 "D:\\dev\\ti\\ccsv8\\tools\\compiler\\c6000_7.4.2\\include\\string.h"
    
    
    
    extern "C"  size_t  strlen(const char *_string);
    
    extern "C"  char *strcpy(char *_dest, const char *_src);
    extern "C"  char *strncpy(char *_to, const char *_from, size_t _n);
    extern "C"  char *strcat(char *_string1, const char *_string2);
    extern "C"  char *strncat(char *_to, const char *_from, size_t _n);
    extern "C"  char *strchr(const char *_string, int _c);
    extern "C"  char *strrchr(const char *_string, int _c);
    
    extern "C"  int  strcmp(const char *_string1, const char *_string2);
    extern "C"  int  strncmp(const char *_string1, const char *_string2, size_t _n);
    
     int     strcoll(const char *_string1, const char *_string2);
     size_t  strxfrm(char *_to, const char *_from, size_t _n);
     char   *strpbrk(const char *_string, const char *_chs);
     size_t  strspn(const char *_string, const char *_chs);
     size_t  strcspn(const char *_string, const char *_chs);
     char   *strstr(const char *_string1, const char *_string2);
     char   *strtok(char *_str1, const char *_str2);
     char   *strerror(int _errno);
    
     void   *memmove(void *_s1, const void *_s2, size_t _n);
     void   *memcpy(void *_s1, const void *_s2, size_t _n);
    
    extern "C"  int     memcmp(const void *_cs, const void *_ct, size_t _n);
    extern "C"  void   *memchr(const void *_cs, int _c, size_t _n);
    
     void   *memset(void *_mem, int _ch, size_t _n);
    
    
    
    } /* extern "C" namespace std */
    
    
    #line 285 "D:\\dev\\ti\\ccsv8\\tools\\compiler\\c6000_7.4.2\\include\\string.h"
    
    
    
    
    using std::size_t;
    using std::strlen;
    using std::strcpy;
    using std::strncpy;
    using std::strcat;
    using std::strncat;
    using std::strchr;
    using std::strrchr;
    //using std::strcmp;
    using std::strncmp;
    using std::strcoll;
    using std::strxfrm;
    using std::strpbrk;
    using std::strspn;
    using std::strcspn;
    using std::strstr;
    using std::strtok;
    using std::strerror;
    using std::memmove;
    using std::memcpy;
    using std::memcmp;
    using std::memchr;
    using std::memset;
    
    
    
    
    #line 32 "D:\\pkg\\proj1747_ford_p702_soc_mib\\P2_algs\\od3d_alg\\od3d_wrapper\\source\\ROI_Extract\\source\\OdExtractChannel.h"
    
    //---------------------------------------------------------------------------
    // Defines
    //---------------------------------------------------------------------------
    
    //---------------------------------------------------------------------------
    //! \class      OdDmaChannel
    //!
    //! \brief
    //!
    //! \invariant
    //!
    class OdDmaChannel
    {
    public:
    
        OdDmaChannel(void)
    	{
    		m_pDma = new dma::DmaChannel();
    		m_pDma->create();
    	}
    
        virtual ~OdDmaChannel(void)
    	{
    	    m_pDma->destroy();
    		delete m_pDma;
    	}
    
        void
        startTransfer2D1D(
            void            *dst,
            void            *src,
            unsigned short  elementSize,
            unsigned short  numElements,
            short           srcElemIndex
        ) {
            m_pDma->start2D1D(dst, src, elementSize, numElements, srcElemIndex);
        }
    
        void
        startTransfer1D2D(
            void            *dst,
            void            *src,
            unsigned short  elementSize,
            unsigned short  numElements,
            short           dstElemIndex
        ) {
            m_pDma->start1D2D(dst, src, elementSize, numElements, dstElemIndex);
        }
    
        void
        wait() {
            m_pDma->wait();
        }
    
        bool
        complete() {
            return m_pDma->complete();
        }
    
    private:
        dma::DmaChannel         *m_pDma;
    };
    
    //---------------------------------------------------------------------------
    //! \class      OdMemcpyChannel
    //!
    //! \brief
    //!
    //! \invariant
    //!
    class OdMemcpyChannel
    {
    public:
        OdMemcpyChannel() {
        }
    
        virtual
        ~OdMemcpyChannel() {
        }
    
        bool
        create(
            void
        ) const {
            return true;
        }
    
        void
        destroy(
            void
        ) const {
        }
    
        //! \brief	configures and starts 1D DMA transfer
        //!
        //! \param[in]	dst				Destination address of the DMA transfer
        //! \param[in]	src				Source address of the DMA transfer
        //! \param[in]	size			Number of bytes to transfer
        void
        startTransfer(
            void            *dst,
            const void      *src,
            unsigned short  size
        ) const {
            if (0 != dst) {
                if (0 != src) {
                    memcpy(dst, src, size);
                }
            }
        }
    
        //! \brief	configures and starts 2D -> 1D DMA transfer
        //!
        //! \param[in]	dst				Destination address of the DMA transfer
        //! \param[in]	src				Source address of the DMA transfer
        //! \param[in]	elemSize		Number of consecutive bytes in each element (1D vector)
        //! \param[in]	numElements     Number of elements in 2D transfers
        //! \param[in]	srcElemIndex    Offset in number of bytes from beginning of
        //!								each element to the beginning of the next element
        void
        startTransfer2D1D(
            void            *dst,
            void            *src,
            unsigned short  elemSize,
            unsigned short  numElements,
            short           srcElemIndex
        ) const {
            if (0 != dst) {
                if (0 != src) {
                    char    *srcElem    = (char *) src;
                    char    *dstElem    = (char *) dst;
                    for (int e = 0; e < numElements; e++) {
                        memcpy(dstElem, srcElem, elemSize);
                        srcElem += srcElemIndex;
                        dstElem += elemSize;
                    }
                }
            }
        }
    
        //! \brief	configures and starts 1D -> 2D DMA transfer
        //!
        //! \param[in]	dst				Destination address of the DMA transfer
        //! \param[in]	src				Source address of the DMA transfer
        //! \param[in]	elemSize		Number of consecutive bytes in each element (1D vector)
        //! \param[in]	numElements     Number of elements in 2D transfers
        //! \param[in]	dstElemIndex    Offset in number of bytes from beginning of
        //!								each element to the beginning of the next element
    	//! return none
        void
        startTransfer1D2D(
            void            *dst,
            void            *src,
            unsigned short  elemSize,
            unsigned short  numElements,
            short           dstElemIndex
        ) const {
            if (0 != dst) {
                if (0 != src) {
                    char    *srcElem    = (char *) src;
                    char    *dstElem    = (char *) dst;
                    for (int e = 0; e < numElements; e++) {
                        memcpy(dstElem, srcElem, elemSize);
                        srcElem += elemSize;
                        dstElem += dstElemIndex;
                    }
                }
            }
        }
    
        void
        wait() const {
        }
    
    
    	//! \brief	Return complete
    	//!
    	//!	\return true
        bool
        complete() const {
            return true;
        }
    
    
    	//! \brief	configures DMA transfer
    	//!
    	//! \param[in]	dst				Destination address of the DMA transfer
    	//! \param[in]	src				Source address of the DMA transfer
    	//! \param[in]	elemSize		Number of consecutive bytes in each element (1D vector)
    	//! return none
        void
        configureTransfer(
            void            *dst,
            const void      *src,
            unsigned short  size
        ) const {
            (void) dst;
            if (0 != dst) {
                if (0 != src) {
                    (void) size;
                    //do nothing
                }
            }
        }
    
    
    	//! \brief	Starts fast transfer
    	//!
    	//! \param[in]	dst				Destination address of the DMA transfer
    	//! \param[in]	src				Source address of the DMA transfer
    	//! \param[in]	elemSize		Number of consecutive bytes in each element (1D vector)
    	//! return none
        void
        startFastTransfer(
            void            *dst,
            const void      *src,
            unsigned short  size
        ) const {
            startTransfer(dst, src, size);
        }
    };
    
    //---------------------------------------------------------------------------
    
    //---------------------------------------------------------------------------
    // End of File
    //---------------------------------------------------------------------------
    
    #line 4 "D:/pkg/proj1747_ford_p702_soc_mib/P2_algs/od3d_alg/od3d_wrapper/source/ROI_Extract/source\\dummy_OdExtractChannel.cpp"
    #line 3 "vcast_preprocess.24120.0.cpp"
    

  • Something went wrong.  The two files attached to your last post are the same as the file attached to your previous post.

    Thanks and regards,

    -George