⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cofflib.cpp

📁 TMS320F2808的完整驱动测试程序源码
💻 CPP
📖 第 1 页 / 共 4 页
字号:
        {
            Next = Current->next;
            free( Current );
        }
    }
    pCoffHndl->FileInfo->str_head = ( STRTAB *)NULL;
}
/*F***************************************************************************
* NAME:   void swap4byte(void * addr) 
*
* DESCRIPTION:  Swap the order of bytes in a long.
*
* INPUTS:
*   PARAMETERS:
*
*   GLOBALS:
*
* OUTPUTS:
*   PARAMETERS:
*       
*   GLOBALS:
*
*   RETURN:                     
*       
* NOTES:
*   
*F***************************************************************************/
void 
CoffLib::swap4byte(void * addr)
{
    unsigned long *value = (unsigned long *)addr;
    unsigned long temp1, temp2, temp3, temp4;

    temp1 = (*value)       & 0xFF;
    temp2 = (*value >> 8)  & 0xFF;
    temp3 = (*value >> 16) & 0xFF;
    temp4 = (*value >> 24) & 0xFF;

    *value = (temp1 << 24) | (temp2 << 16) | (temp3 << 8) | temp4;
}
/*F***************************************************************************
* NAME:  void swap2byte(void * addr)  
*
* DESCRIPTION: Swap the order of bytes in a short.
*
* INPUTS:
*   PARAMETERS:
*
*   GLOBALS:
*
* OUTPUTS:
*   PARAMETERS:
*       
*   GLOBALS:
*
*   RETURN:                     
*       
* NOTES:
*   
*F***************************************************************************/
void 
CoffLib::swap2byte(void * addr)
{
    unsigned short *value = (unsigned short *)addr;
    unsigned short temp1,temp2;

    temp1 = temp2 = *value;
    *value = ((temp2 & 0xFF) << 8) | ((temp1 >> 8) & 0xFF);
}
/*F***************************************************************************
* NAME:    
*
* DESCRIPTION:
*
* INPUTS:
*   PARAMETERS:
*
*   GLOBALS:
*
* OUTPUTS:
*   PARAMETERS:
*       
*   GLOBALS:
*
*   RETURN:                     
*       
* NOTES:
*   
*F***************************************************************************/

unsigned long
CoffLib::LOCTOBYTE( COFF_HNDL pCoffHndl, unsigned long wrd_size )
{
    switch(pCoffHndl->FileInfo->device_id)
    {
        case TI_MAGIC_340   : return (wrd_size>>3);     /* BIT ADDRESS UNITS   */
        case TI_MAGIC_370   : return (wrd_size);        /* BYTE ADDRESS UNITS  */
        case TI_MAGIC_DSP   : return (wrd_size<<1);     /* 2-BYTE ADDRESS UNITS*/
        case TI_MAGIC_C30   : return (wrd_size<<2);     /* 4-BYTE ADDRESS UNITS*/
        case TI_MAGIC_MVP   : return (wrd_size);        /* BYTE ADDRESS UNITS  */
        case TI_MAGIC_C16   : return (wrd_size);        /* BYTE ADDRESS UNITS  */
        case TI_MAGIC_ARM   : return (wrd_size);        /* 1-BYTE ADDRESS UNITS*/
        case TI_MAGIC_LEAD  : return (wrd_size<<1);     /* 2-BYTE ADDRESS UNITS*/
        case TI_MAGIC_LEAD3 : return (wrd_size);        /* 2-BYTE ADDRESS UNITS*/
        case TI_MAGIC_ANKOOR: return (wrd_size<<1);     /* 2-BYTE ADDRESS UNITS*/      
        case TI_MAGIC_C60   : return (wrd_size);        /* BYTE ADDRESS UNITS  */
        case TI_MAGIC_380   : /* NOT SUPPORTED - FALLTHROUGH TO DEFAULT        */
        default          : /* THIS IS ACTUALLY AN ERROR - UNSUPPORTED DEVICE*/
                           return ( 0 );
    }
}
/*F***************************************************************************
* NAME:    
*
* DESCRIPTION:
*
* INPUTS:
*   PARAMETERS:
*
*   GLOBALS:
*
* OUTPUTS:
*   PARAMETERS:
*       
*   GLOBALS:
*
*   RETURN:                     
*       
* NOTES:
*   
*F***************************************************************************/

unsigned long
CoffLib::BYTETOLOC( COFF_HNDL pCoffHndl, unsigned long byte_size )
{
    switch(pCoffHndl->FileInfo->device_id)
    {
        case TI_MAGIC_340   : return (byte_size<<3);    /* BIT ADDRESS UNITS   */
        case TI_MAGIC_370   : return (byte_size);       /* BYTE ADDRESS UNITS  */
        case TI_MAGIC_DSP   : return (byte_size>>1);    /* 2-BYTE ADDRESS UNITS*/
        case TI_MAGIC_C30   : return (byte_size>>2);    /* 4-BYTE ADDRESS UNITS*/
        case TI_MAGIC_MVP   : return (byte_size);       /* BYTE ADDRESS UNITS  */
        case TI_MAGIC_C16   : return (byte_size);       /* BYTE ADDRESS UNITS  */
        case TI_MAGIC_ARM   : return (byte_size);       /* 1-BYTE ADDRESS UNITS*/
        case TI_MAGIC_LEAD  : return (byte_size>>1);    /* 2-BYTE ADDRESS UNITS*/
        case TI_MAGIC_LEAD3 : return (byte_size);       /* 2-BYTE ADDRESS UNITS*/
        case TI_MAGIC_ANKOOR : return (byte_size>>1);   /* 2-BYTE ADDRESS UNITS*/
        case TI_MAGIC_C60   : return (byte_size);       /* BYTE ADDRESS UNITS  */
        case TI_MAGIC_380   : /* NOT SUPPORTED - FALLTHROUGH TO DEFAULT        */
        default          : /* THIS IS ACTUALLY AN ERROR - UNSUPPORTED DEVICE*/
                           return ( 0 );
    }
}
/*F***************************************************************************
* NAME:    
*
* DESCRIPTION:
*
* INPUTS:
*   PARAMETERS:
*
*   GLOBALS:
*
* OUTPUTS:
*   PARAMETERS:
*       
*   GLOBALS:
*
*   RETURN:                     
*       
* NOTES:
*   
*F***************************************************************************/

unsigned long
CoffLib::CINIT_ALIGN( COFF_HNDL pCoffHndl )
{
    switch(pCoffHndl->FileInfo->device_id)
    {
        case TI_MAGIC_340   : return ( 1 );      /* BYTE ALIGNED CINIT RECORDS */
        case TI_MAGIC_370   : return ( 1 );      /* BYTE ALIGNED CINIT RECORDS */
        case TI_MAGIC_DSP   : return ( 1 );      /* BYTE ALIGNED CINIT RECORDS */
        case TI_MAGIC_C30   : return ( 1 );      /* BYTE ALIGNED CINIT RECORDS */
        case TI_MAGIC_MVP   : return ( 4 );      /* WORD ALIGNED CINIT RECORDS */
        case TI_MAGIC_C16   : return ( 1 );      /* BYTE ALIGNED CINIT RECORDS */
        case TI_MAGIC_ARM   : return ( 1 );      /* BYTE ALIGNED CINIT RECORDS */
        case TI_MAGIC_LEAD  : return ( 1 );      /* BYTE ALIGNED CINIT RECORDS */
        case TI_MAGIC_LEAD3 : return ( 1 );      /* BYTE ALIGNED CINIT RECORDS */
        case TI_MAGIC_ANKOOR: return ( 1 );      /* BYTE ALIGNED CINIT RECORDS */
        case TI_MAGIC_C60   : return ( 1 );      /* BYTE ALIGNED CINIT RECORDS */
        case TI_MAGIC_380   : /* NOT SUPPORTED - FALLTHROUGH TO DEFAULT        */
        default          : /* THIS IS ACTUALLY AN ERROR - UNSUPPORTED DEVICE*/
                            return ( 0 );
    }
}
/*F***************************************************************************
* NAME:    
*
* DESCRIPTION:
*
* INPUTS:
*   PARAMETERS:
*
*   GLOBALS:
*
* OUTPUTS:
*   PARAMETERS:
*       
*   GLOBALS:
*
*   RETURN:                     
*       
* NOTES:
*   
*F***************************************************************************/

size_t
CoffLib::T_IADDR_SIZE( COFF_HNDL pCoffHndl )
{
    switch(pCoffHndl->FileInfo->device_id)
    {
        case TI_MAGIC_340   : return ( 4 );      /* 4 BYTES PER TARGET CINIT A */
        case TI_MAGIC_370   : return ( 2 );      /* 2 BYTES PER TARGET CINIT A */
        case TI_MAGIC_DSP   : return ( 2 );      /* 2 BYTES PER TARGET CINIT A */
        case TI_MAGIC_C30   : return ( 4 );      /* 4 BYTES PER TARGET CINIT A */
        case TI_MAGIC_MVP   : return ( 4 );      /* 4 BYTES PER TARGET CINIT A */
        case TI_MAGIC_C16   : return ( 2 );      /* 2 BYTES PER TARGET CINIT A */
        case TI_MAGIC_ARM   : return ( 4 );      /* 4 BYTES PER TARGET CINIT A */
        case TI_MAGIC_LEAD  : return ( 2 );      /* 2 BYTES PER TARGET CINIT A */
        case TI_MAGIC_LEAD3 : return ( 3 );      /* 2 BYTES PER TARGET CINIT A */
        case TI_MAGIC_ANKOOR: return ( 2 );      /* 2 BYTES PER TARGET CINIT A */
        case TI_MAGIC_C60   : return ( 4 );      /* 4 BYTES PER TARGET CINIT A */
        case TI_MAGIC_380   : /* NOT SUPPORTED - FALLTHROUGH TO DEFAULT        */
        default          : /* THIS IS ACTUALLY AN ERROR - UNSUPPORTED DEVICE*/
                           return ( 0 );
    }
}
/*F***************************************************************************
* NAME:    
*
* DESCRIPTION:
*
* INPUTS:
*   PARAMETERS:
*
*   GLOBALS:
*
* OUTPUTS:
*   PARAMETERS:
*       
*   GLOBALS:
*
*   RETURN:                     
*       
* NOTES:
*   
*F***************************************************************************/

size_t
CoffLib::T_SIZE_SIZE( COFF_HNDL pCoffHndl)
{
    switch(pCoffHndl->FileInfo->device_id)
    {
        case TI_MAGIC_340   : return ( 2 );      /* 2 BYTES PER CINIT SIZE     */
        case TI_MAGIC_370   : return ( 2 );      /* 2 BYTES PER CINIT SIZE     */
        case TI_MAGIC_DSP   : return ( 2 );      /* 2 BYTES PER CINIT SIZE     */
        case TI_MAGIC_C30   : return ( 4 );      /* 4 BYTES PER CINIT SIZE     */
        case TI_MAGIC_MVP   : return ( 4 );      /* 4 BYTES PER CINIT SIZE     */
        case TI_MAGIC_C16   : return ( 4 );      /* 4 BYTES PER CINIT SIZE     */
        case TI_MAGIC_ARM   : return ( 4 );      /* 4 BYTES PER CINIT SIZE     */
        case TI_MAGIC_LEAD  : return ( 2 );      /* 2 BYTES PER CINIT SIZE     */
        case TI_MAGIC_LEAD3 : return ( 2 );      /* 2 BYTES PER CINIT SIZE     */
        case TI_MAGIC_ANKOOR: return ( 2 );      /* 2 BYTES PER CINIT SIZE     */
        case TI_MAGIC_C60   : return ( 4 );      /* 4 BYTES PER CINIT SIZE     */
        case TI_MAGIC_380   : /* NOT SUPPORTED - FALLTHROUGH TO DEFAULT        */
        default          : /* THIS IS ACTUALLY AN ERROR - UNSUPPORTED DEVICE*/
                           return ( 0 );
    }
}
/*F***************************************************************************
* NAME:    
*
* DESCRIPTION:
*
* INPUTS:
*   PARAMETERS:
*
*   GLOBALS:
*
* OUTPUTS:
*   PARAMETERS:
*       
*   GLOBALS:
*
*   RETURN:                     
*       
* NOTES:
*   
*F***************************************************************************/

size_t
CoffLib::T_ADDR_SIZE( COFF_HNDL pCoffHndl)
{
    switch(pCoffHndl->FileInfo->device_id)
    {
        case TI_MAGIC_340   : return ( 4 );      /* 4 BYTES PER TARGET ADDRESS */
        case TI_MAGIC_370   : return ( 2 );      /* 2 BYTES PER TARGET ADDRESS */
        case TI_MAGIC_DSP   : return ( 2 );      /* 2 BYTES PER TARGET ADDRESS */
        case TI_MAGIC_C30   : return ( 4 );      /* 4 BYTES PER TARGET ADDRESS */
        case TI_MAGIC_MVP   : return ( 4 );      /* 4 BYTES PER TARGET ADDRESS */
        case TI_MAGIC_C16   : return ( 4 );      /* 4 BYTES PER TARGET ADDRESS */
        case TI_MAGIC_ARM   : return ( 4 );      /* 4 BYTES PER TARGET ADDRESS */
        case TI_MAGIC_LEAD  : return ( 2 );      /* 2 BYTES PER TARGET ADDRESS */
        case TI_MAGIC_LEAD3 : return ( 4 );      /* 4 BYTES PER TARGET ADDRESS */
        case TI_MAGIC_ANKOOR: return ( 4 );      /* 4 BYTES PER TARGET ADDRESS */
        case TI_MAGIC_C60   : return ( 4 );      /* 4 BYTES PER TARGET ADDRESS */
        case TI_MAGIC_380   : /* NOT SUPPORTED - FALLTHROUGH TO DEFAULT        */
        default          : /* THIS IS ACTUALLY AN ERROR - UNSUPPORTED DEVICE*/
                           return ( 0 );
    }
}
/*F***************************************************************************
* NAME:    
*
* DESCRIPTION:
*
* INPUTS:
*   PARAMETERS:
*
*   GLOBALS:
*
* OUTPUTS:
*   PARAMETERS:
*       
*   GLOBALS:
*
*   RETURN:                     
*       
* NOTES:
*   
*F***************************************************************************/

size_t
CoffLib::T_DATA_SIZE( COFF_HNDL pCoffHndl)
{
    switch(pCoffHndl->FileInfo->device_id)
    {
        case TI_MAGIC_340   : return ( 2 );      /* 2 BYTES PER TARGET DATA    */
        case TI_MAGIC_370   : return ( 1 );      /* 1 BYTES PER TARGET DATA    */
        case TI_MAGIC_DSP   : return ( 2 );      /* 2 BYTES PER TARGET DATA    */
        case TI_MAGIC_C30   : return ( 4 );      /* 4 BYTES PER TARGET DATA    */
        case TI_MAGIC_MVP   : return ( 4 );      /* 4 BYTES PER TARGET DATA    */
        case TI_MAGIC_C16   : return ( 2 );      /* 2 BYTES PER TARGET DATA    */
        case TI_MAGIC_ARM   : return ( 4 );      /* 4 BYTES PER TARGET DATA    */
        case TI_MAGIC_LEAD  : return ( 2 );      /* 2 BYTES PER TARGET DATA    */
        case TI_MAGIC_LEAD3 : return ( 2 );      /* 2 BYTES PER TARGET DATA    */
        case TI_MAGIC_ANKOOR: return ( 2 );      /* 2 BYTES PER TARGET DATA    */
        case TI_MAGIC_C60   : return ( 4 );      /* 4 BYTES PER TARGET DATA    */
        case TI_MAGIC_380   : /* NOT SUPPORTED - FALLTHROUGH TO DEFAULT        */
        default          : /* THIS IS ACTUALLY AN ERROR - UNSUPPORTED DEVICE*/
                           
            return ( 0 );
    }
}
/*F***************************************************************************
* NAME:    
*
* DESCRIPTION:
*
* INPUTS:
*   PARAMETERS:
*
*   GLOBALS:
*
* OUTPUTS:
*   PARAMETERS:
*       
*   GLOBALS:
*
*   RETURN:                     
*       
* NOTES:
*   
*F***************************************************************************/

size_t
CoffLib::CINIT_WSIZE( COFF_HNDL pCoffHndl)
{
    switch(pCoffHndl->FileInfo->device_id)
    {
        case TI_MAGIC_340   : return ( 2 );      /* 2-BYTES PER DATA ITEM      */
        case TI_MAGIC_370   : return ( 1 );      /* BYTE PER DATA ITEM         */
        case TI_MAGIC_DSP   : return ( 2 );      /* 2-BYTES PER DATA ITEM      */
        case TI_MAGIC_C30   : return ( 4 );      /* 4-BYTES PER DATA ITEM      */
        case TI_MAGIC_MVP   : return ( 1 );      /* BYTE PER DATA ITEM         */
        case TI_MAGIC_C16   : return ( 4 );      /* NOTE! 4-BYTES PER DATA ITEM*/
        case TI_MAGIC_ARM   : return ( 4 );      /* 4-BYTES PER DATA ITEM      */
        case TI_MAGIC_LEAD  : return ( 2 );      /* 2-BYTES PER DATA ITEM      */
        case TI_MAGIC_LEAD3 : return ( 2 );      /* 2-BYTES PER DATA ITEM      */
        case TI_MAGIC_ANKOOR: return ( 2 );      /* 2-BYTES PER DATA ITEM      */
        case TI_MAGIC_C60   : return ( 4 ); 
        case TI_MAGIC_380   : /* NOT SUPPORTED - FALLTHROUGH TO DEFAULT        */
        default          : /* THIS IS ACTUALLY AN ERROR - UNSUPPORTED DEVICE*/
                           return ( 0 );
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -