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

📄 coffloader.h

📁 TMS320F2808的完整驱动测试程序源码
💻 H
字号:
/*
 *  Copyright 2003 by Spectrum Digital Incorporated.
 *  All rights reserved. Property of Spectrum Digital Incorporated.
 */

// CoffLoader.h

#ifndef _LOADER_H_
#define _LOADER_H_

    #include "stdafx.h"
    #include "sdti.h"
    #include "process.h"
	#include "coff.h"
	#include "coffdefs.h"
	#include "cofflib.h"


    #define CSTRING_TO_PCHAR            (char*)(LPCTSTR)

	struct SYMBOL
	{
	   char          * symname;        /* Symbol name                          */
	   unsigned long   symaddr;        /* Symbol memory address                */
	   unsigned long   sympage;        /* Symbol page                          */
	   unsigned long   symval;         /* Symbol value @symaddr   */
	   unsigned long   symtype;		   /* Derived type */
	   unsigned long   symsclass;      /* Storage class */
	   unsigned long   symnumaux;      /* Num aux entries */
	};

	struct symbol_l
	{
	   struct SYMBOL   *s;          /* Symbol pointed to by this list elem  */
	   struct symbol_l *next;       /* Next symbol in list                  */
	};

    typedef struct symbol_l SYMBOL_L;

    struct swbp_symbol
    {
        struct SYMBOL      *s;      /* The symbol */
        unsigned           id;      /* Id for the breakpoint */
        struct swbp_symbol *prev;   /* Previous sybmbol */
        struct swbp_symbol *next;   /* Next in list */
    };
     
    typedef struct swbp_symbol SWBP_SYMBOL;

    #define REALMODE_POLITE TRUE
    #define REALMODE_RUDE   FALSE

    class CoffLoader{
    public:
        CoffLoader( );                // Constructor
		~CoffLoader();
        void LoadGeneric( LPVOID lpParam );
        void Message( CString MsgString );
		void ErrMsg( CString MsgString );

    protected:

        // Connection
        BOOL OpenConnection( void );
        BOOL CloseConnection(void);
        BOOL CheckConnection(void);

        // Coff support
        BOOL LoadCoff( );               // Load Coff file
        BOOL LoadRawData( );            // Write data onto processor
        int  BytesPerDataSize(struct SYMBOL * s);

  	    struct SYMBOL * FindSymbol(char * name);
		BOOL DeleteSymbolList( void );
		BOOL BuildSymbolTable( void );

        // Basic run control
		BOOL CheckEvents( void );
		BOOL DoReset( void );	
		void InitEvent( void ); 
		BOOL WaitForHaltEvent( void );
		BOOL RunTarget( void );
        BOOL StepTarget( DWORD Count );
		BOOL RunTargetTillDone( void );
        BOOL GoMain( void );
		BOOL HaltTarget( void );
        BOOL EnableRealtimeMode();
        BOOL DisableRealtimeMode( void );
        BOOL SwitchRealtimeMode( BOOL Polite );

        // Memory access functions
        BOOL ReadFromSymbol( char *pSymbol, DWORD *pVal );
        BOOL WriteToSymbol( char *pSymbol, DWORD *pVal );
        BOOL WriteMemory( MEM_TADDR Addr, 
						  MEM_SPACE Space, 
						  TREG_16 * pData, 
						  DWORD     Count  );
        BOOL ReadMemory(  MEM_TADDR Addr, 
						  MEM_SPACE Space, 
						  TREG_16 * pData, 
						  DWORD     Count  );

        // Register access functions
        BOOL WriteRegister( char * RegName, DWORD *pReg ); 
        BOOL ReadRegister(  char * RegName, DWORD *pReg ); 


        // Breakpoints
        SWBP_SYMBOL * FindSwbp( char * name );
        BOOL DeleteSwbpList( void );
        BOOL AddSwbp( char * name );
        BOOL DeleteSwbp( char * name );

        BOOL RealtimeDemo();


        BOOL     m_verboseError;
		BOOL     m_verboseMessage;
		BOOL     m_SciLoopBack;
		BOOL     m_CanLoopBack;
		BOOL     m_I2CLoopBack;

        SD_TARGET_INTERFACE* m_pSdti_Intf;// SD Target Interface
        SDTI_HNDL            m_Sdti_Hndl; // SDTI handle
        BOOL                 m_isConnected; // Do we have a connection

        COFF_HNDL m_coffHndl;           // Coff File Handle
        COFF_OPTS m_coffOpts;           // Coff File Options
        CoffLib*  m_coffLib;            // Coff Lib Object

        CString m_entryPoint;           // Code entry point
        BOOL    m_useAltEntry;          // Code entry point selector

        CWnd*   m_mainWindow;           // Main dialog window
        CString m_workingDirectory;     // Current working directory 
        
        CString m_driverPathName;       // Driver path and name
        CString m_driverPath;           // Driver path name
        CString m_driverName;           // Driver file name
        CString m_coffFileName;         // COFF file name
        CString m_targetPath;           // Target Board Path
        CString m_boardName;            // Board file name
        CString m_BoardFile;            // Board file path\name

        CString m_procFamily;           // SDTI processor family name, TMS320C27XX
		                                // SDTI uses the original processor family
        CString m_procName;             // Board file processor cpu name, cpu_0
        CString m_procAddr;             // Processor emulation address
        int     m_bytesPerWord;         // Processor's bytes per Word setting

		// Symbol table support
		long            m_numSymbols;
		TI_SYMENT		m_sym;
		TI_AUXENT		m_aux; 
		SYMBOL_L *      m_symlist; 
        SWBP_SYMBOL *   m_swbplist;

		DWORD           m_ExecTimeoutMs;
		TEVT_STAT_DESC  m_Evt;
        BOOL            m_isRealTimeAllowed;
    };


#endif

⌨️ 快捷键说明

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