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

📄 1553_junk_bm-5_bu.h

📁 BU-65550M2-605 PCMCIA card (1553) 的驱动程序源代码
💻 H
字号:
// file bu.h
// include file for BU-65550M2-605 PCMCIA card (1553) software
//

typedef volatile unsigned short vint16;
typedef          unsigned short  int16;
typedef volatile unsigned long  vint32;
typedef          unsigned long   int32;

#define TRUE 1
#define FALSE 0

#define OK 1
#define KO 0

#define CMD256    0x0000
#define CMD1024   0x0800
#define CMD4096   0x1000
#define CMD16384  0x1800

#define DATA512   0x0700
#define DATA1024  0x0600
#define DATA2048  0x0500
#define DATA4096  0x0400
#define DATA8192  0x0300
#define DATA16384 0x0200
#define DATA32768 0x0100
#define DATA65536 0x0000

#define BU_TIMETAG_2         0x0280  // 2 uS
#define BU_TIMETAG_4         0x0200  // 4 uS
#define BU_TIMETAG_8         0x0180  // 8 uS
#define BU_TIMETAG_16        0x0100  // 16 uS
#define BU_TIMETAG_32        0x0080  // 32 uS
#define BU_TIMETAG_64        0x0000  // 64 uS
#define BU_TIMETAG_TEST      0x0300  // test clock
#define BU_TIMETAG_EXT_CLOCK 0x0380  // external clock

#define IRQ_ALL                      0xFFFF
#define IRQ_MASTER                   0x8000
#define IRQ_RAM_PARITY_ERROR         0x4000
#define IRQ_TRANSMITTER_TIMEOUT      0x2000
#define IRQ_BC_RT_CMD_STK_ROLLOVR    0x1000
#define IRQ_MT_CMD_STACK_ROLLOVR     0x0800
#define IRQ_MT_DTA_STACK_ROLLOVR     0x0400
#define IRQ_HANDSHAKE_FAILURE        0x0200
#define IRQ_BC_RETRY                 0x0100
#define IRQ_RT_ADDR_PARITY_ERROR     0x0080
#define IRQ_TIMETAG_ROLLOVR          0x0040
#define IRQ_RT_CIRC_BUFFR_ROLLOVR    0x0020
#define IRQ_RT_BC_MESSAGE_INT        0x0010
#define IRQ_BC_END_OF_FRAME          0x0008
#define IRQ_RT_BC_MT_FORMAT_ERROR    0x0004
#define IRQ_STATUS_SET_MODE_INT_TRIG 0x0002
#define IRQ_END_OF_MESSAGE           0x0001

typedef struct {
  vint16 interrupt_mask;
  vint16 config_1;
  vint16 config_2;
  vint16 start_reset;
  vint16 control_word;
  vint16 time_tag;
  vint16 interrupt_status;
  vint16 config_3;
  vint16 config_4;
  vint16 config_5;
  vint16 data_stack_pointer;
  vint16 bc_frame_time;
  vint16 bc_message_time;
  vint16 mt_trigger;
  vint16 rt_status;
  vint16 rt_bit;
} reg_t;

#define command_stack_pointer start_reset

typedef struct {
  vint16 block_status;
  vint16 time_tag;               
  vint16 data_pointer;
  vint16 command_word;
} desc_t;

typedef struct {
  desc_t stack_A[64];                  // 000   0x000
  vint16 rt_cmd_pointer_A;             // 256   0x100
  vint16 reserved_1;                   // 257   0x101
  vint16 mt_cmd_pointer_A;             // 258   0x102
  vint16 mt_dat_pointer_A;             // 259   0x103
  vint16 rt_cmd_pointer_B;             // 260   0x104
  vint16 reserved_2;                   // 261   0x105
  vint16 mt_cmd_pointer_B;             // 262   0x106
  vint16 mt_dat_pointer_B;             // 263   0x107
  vint16 mode_code_interrupt[8];       // 264   0x108
  vint16 mode_code_data[48];           // 272   0x110
  vint16 rt_lookup_table_A[128];       // 320   0x140
  vint16 rt_lookup_table_B[128];       // 448   0x1c0
  vint16 busy_lookup[8];               // 576   0x240
  vint16 unused_1[24];                 // 584   0x248
  vint16 data_block_s[32];             // 608   0x260
  vint16 mt_lookup_table[128];         // 640   0x280
  vint16 command_illegal[256];         // 768   0x300
  desc_t mt_cmd_A[64];                 //1024   0x400
  desc_t mt_cmd_B[64];                 //1280   0x500
  vint16 unused_2[512];                //1536   0x600
  vint16 mt_dat_A[1024];               //2048   0x800
  vint16 mt_dat_B[1024];               //3072   0xc00
} mem_t;

⌨️ 快捷键说明

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