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

📄 evm6xdll.h

📁 DSP6000开发板QuickStartpdf文档
💻 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;

    /* DSP boot mode definition */
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 + -