?? evm6xdll.h
字號:
/****************************************************************************/
/* File: evm6xdll.h */
/* */
/* Purpose: This is the public header file for the C6x EVM DLL */
/* */
/* Copyright (c) 1998, DNA Enterprises, Inc. */
/****************************************************************************/
#ifndef _EVM6X_DLL_H_
#define _EVM6X_DLL_H_
/* DSP board type definition */
typedef enum {
TYPE_UNKNOWN = 0,
TYPE_EVM,
TYPE_MCEVM
} EVM6XDLL_BOARD_TYPE, *PEVM6XDLL_BOARD_TYPE;
typedef enum {
NO_BOOT = 0,
HPI_BOOT,
ROM8_BOOT,
ROM16_BOOT,
ROM32_BOOT,
NO_BOOT_MAP0,
HPI_BOOT_MAP0,
ROM8_BOOT_MAP0,
ROM16_BOOT_MAP0,
ROM32_BOOT_MAP0
} EVM6XDLL_BOOT_MODE, *PEVM6XDLL_BOOT_MODE;
/* DSP clock mode definitions */
typedef enum {
DSP_CLOCK_NORMAL = 0,
DSP_CLOCK_SBSRAM,
DSP_CLOCK_BX1,
DSP_CLOCK_AX1
} EVM6XDLL_CLOCK_MODE, *PEVM6XDLL_CLOCK_MODE;
/* DSP Endian configuration */
typedef enum {
LITTLE_ENDIAN_MODE = 0,
BIG_ENDIAN_MODE
} EVM6XDLL_ENDIAN_MODE, *PEVM6XDLL_ENDIAN_MODE;
/* Mailbox message definition */
typedef ULONG EVM6XDLL_MESSAGE, *PEVM6XDLL_MESSAGE;
// This defines the base name of the event signalled on incoming mailbox
// interrupts. The relative index value of the target EVM board must be
// appended, i.e. ...Dev0, ...Dev1, ...Dev2, etc.
// Application code will use this name in the Win32 OpenEvent() call
// before using the Win32 WaitForSingleObject() call.
#define EVM6X_GLOBAL_MESSAGE_EVENT_BASE_NAME "Evm6xMessageEventDev"
/* fixup T/F defines */
#undef FALSE
#undef TRUE
#define FALSE ((BOOLEAN)0)
#define TRUE ((BOOLEAN)1)
#undef DLL32_ENTRY
#ifdef evm6xdll_c
/* export function, for building DLL */
#define DLL32_ENTRY __declspec(dllexport)
#else
/* import function, for using DLL */
#define DLL32_ENTRY __declspec(dllimport)
#endif
#ifdef __cplusplus
extern "C" {
#endif
/* all DLL function definitions */
DLL32_ENTRY HANDLE evm6x_open(int board_index, BOOL exclusive_flag);
DLL32_ENTRY BOOL evm6x_close(HANDLE h_device);
DLL32_ENTRY BOOL evm6x_board_type(HANDLE h_device,
PEVM6XDLL_BOARD_TYPE p_board_type, PULONG p_rev_id);
DLL32_ENTRY BOOL evm6x_reset_board(HANDLE h_device);
DLL32_ENTRY BOOL evm6x_reset_dsp(HANDLE h_device, EVM6XDLL_BOOT_MODE mode);
DLL32_ENTRY BOOL evm6x_unreset_dsp(HANDLE h_device);
DLL32_ENTRY BOOL evm6x_read(HANDLE h_device,
PULONG p_buffer, PULONG p_length);
DLL32_ENTRY BOOL evm6x_write(HANDLE h_device,
PULONG p_buffer, PULONG p_length);
DLL32_ENTRY BOOL evm6x_abort_read(HANDLE h_device);
DLL32_ENTRY BOOL evm6x_abort_write(HANDLE h_device);
DLL32_ENTRY BOOL evm6x_coff_load(HANDLE h_device, LPVOID lp_hpi,
char *filename, BOOL verbose_flag,
BOOL clear_bss_flag, BOOL dump_flag);
DLL32_ENTRY BOOL evm6x_coff_display( char *filename,
BOOL clear_bss_flag, BOOL dump_flag);
DLL32_ENTRY LPVOID evm6x_hpi_open(HANDLE h_device);
DLL32_ENTRY BOOL evm6x_hpi_close(LPVOID h_hpi_map);
DLL32_ENTRY BOOL evm6x_hpi_read(LPVOID h_hpi_map, PULONG p_buffer,
PULONG p_length, ULONG src_addr);
DLL32_ENTRY BOOL evm6x_hpi_write(LPVOID h_hpi_map, PULONG p_buffer,
PULONG p_length, ULONG dest_addr);
DLL32_ENTRY BOOL evm6x_hpi_read_single(LPVOID h_hpi_map, LPVOID p_data,
int i_size, ULONG src_addr);
DLL32_ENTRY BOOL evm6x_hpi_write_single(LPVOID h_hpi_map, ULONG ul_data,
int i_size, ULONG dest_addr);
DLL32_ENTRY BOOL evm6x_hpi_fill(LPVOID h_hpi_map, ULONG fill_value,
PULONG p_length, ULONG dest_addr);
DLL32_ENTRY BOOL evm6x_hpi_generate_int(LPVOID h_hpi_map);
DLL32_ENTRY BOOL evm6x_send_message(HANDLE h_device,
PEVM6XDLL_MESSAGE p_message);
DLL32_ENTRY BOOL evm6x_retrieve_message(HANDLE h_device,
PEVM6XDLL_MESSAGE p_message);
DLL32_ENTRY BOOL evm6x_clear_message_event(HANDLE h_device);
DLL32_ENTRY BOOL evm6x_nvram_read(HANDLE h_device,
USHORT offset, PUCHAR p_data);
DLL32_ENTRY BOOL evm6x_nvram_write(HANDLE h_device,
USHORT offset, UCHAR data);
DLL32_ENTRY BOOL evm6x_set_timeout(HANDLE h_device, ULONG timeout);
DLL32_ENTRY BOOL evm6x_generate_nmi_int(HANDLE h_device);
DLL32_ENTRY BOOL evm6x_set_board_config(HANDLE h_device,
EVM6XDLL_CLOCK_MODE e_clock_mode,
EVM6XDLL_ENDIAN_MODE e_endian_mode,
ULONG user_bits);
DLL32_ENTRY BOOL evm6x_init_emif(HANDLE h_device, LPVOID lp_hpi);
DLL32_ENTRY BOOL evm6x_cpld_read_all(HANDLE h_device, PULONG p_reg_array);
#ifdef __cplusplus
}
#endif
#endif /* _EVM6X_DLL_H_ */
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -