📄 hw_acces.h
字号:
/****************************************************************************/
/* includes */
/****************************************************************************/
#include "..\_hc_core\isr.h"
/****************************************************************************/
/* constants */
/****************************************************************************/
#define ISA_BASE_ADDR 0x290
#define DEFAULT_HC_IRQ_NUM 10
// Following is ISA bus access speed calclations
#define BIT_TIME_IN_A_FRAME 12000.00
#define FRAME_FREQUENCY 1e3 // Hz
#define ISA_BUS_FREQUENCY 8e6 // Hz
#define ISA_BUS_PIO_BUS_CYCLE 12.00
#define ISA_BUS_PIO_BUS_CYCLE_PER_BYTE (ISA_BUS_PIO_BUS_CYCLE / 2.00)
#define ISA_BUS_PIO_FREQUENCY_PER_BYTE (ISA_BUS_FREQUENCY / ISA_BUS_PIO_BUS_CYCLE_PER_BYTE)
#define ISA_BUS_PIO_MAX_ACCESS_IN_A_FRAME (ISA_BUS_PIO_FREQUENCY_PER_BYTE / FRAME_FREQUENCY)
#define ISA_PIO_ACCESS_IN_BIT_TIME_PER_BYTE (BIT_TIME_IN_A_FRAME / ISA_BUS_PIO_MAX_ACCESS_IN_A_FRAME)
/****************************************************************************/
/* global vars */
/****************************************************************************/
extern unsigned int g_ISA_base_address;
extern unsigned int g_1161_Hc_command_address;
extern unsigned int g_1161_Hc_data_address;
extern unsigned char g_Hc_IRQ_num;
extern unsigned char g_is_PCI;
/****************************************************************************/
/* function prototypes */
/****************************************************************************/
/*********
********** IO port access functions
*********/
unsigned int get_ISA_base_address( void );
void read_register_burst_char( unsigned short register_address, unsigned char *data, unsigned short length );
void write_register_burst_char( unsigned short register_address, unsigned char *data, unsigned short length );
unsigned long read_register32( unsigned short register_address );
unsigned short read_register16( unsigned short register_address );
void write_register32( unsigned short register_address, unsigned long value );
void write_register16( unsigned short register_address, unsigned short value );
/*********
********** IO port access initialization
*********/
void io_port_access_initialization( void );
void isr_hw_disable( void );
void isr_hw_enable( void );
/*********
********** ISR install/restore functions
*********/
isrPtr install_isr( int irq_num, isrPtr new_vector );
void restore_isr( int irq_num, isrPtr old_vector );
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -