📄 coffloader.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 + -