📄 evaluator.h
字号:
/* -*-C-*- * * $Revision: $ * $Author: $ * $Date: $ * * Copyright (c) 1996 Advanced RISC Machines Limited. * All Rights Reserved. * * Project: ANGEL * * Title: Wrapper for platform.h et al. */#ifndef evaluator_h#define evaluator_h#include "sizes.h"#include "platform.h"extern const struct angel_DeviceEntry angel_C501UARTSerial[C501UART_NUM_PORTS];extern void Angel_TimerIntHandler(unsigned ident, unsigned data, unsigned empty_stack);extern void angel_C501UARTIntHandler(unsigned int ident, unsigned int data, unsigned int empty_stack);extern void logserial_Reset(int port, int baudvalue);typedef struct { unsigned32 Mode; /* Set to handle interrupt as FIQ */ volatile unsigned32 Pending; /* Set when interrupt triggered / serviced */ unsigned32 Mask; /* Set to disable interrupt */} InterruptController;#define InterruptBitMask (0x1fffff)#define GlobalInterruptBitMask (0x200000)#define AllInterruptBitMask (InterruptBitMask | GlobalInterruptBitMask)#define InterruptBaseAddr ((InterruptController *)INTMOD)__inline voidEnableInterruptMask(unsigned32 mask){ InterruptBaseAddr->Mask &= ~mask;}__inline voidDisableInterruptMask(unsigned32 mask){ InterruptBaseAddr->Mask |= mask;}__inline voidEnableInterruptNum(int intrnum){ InterruptBaseAddr->Mask &= ~(1U << intrnum);}__inline voidDisableInterruptNum(int intrnum){ InterruptBaseAddr->Mask |= 1U << intrnum;}__inline unsigned32ReadEnabledInterrupts(){ return (~(InterruptBaseAddr->Mask) & AllInterruptBitMask);}__inline unsigned32ReadInterruptStatus(){ return InterruptBaseAddr->Pending;}__inline voidClearInterruptStatusMask(unsigned32 mask){ InterruptBaseAddr->Pending |= mask;}#define EVALUATOR_UART0_BASE UART0_BASE#define EVALUATOR_UART1_BASE UART1_BASE#undef DEBUG_COMPORT#define DEBUG_COMPORT EVALUATOR_UART1_BASE#define DEBUG_COMPORT_TX_INT (INT_UART1_TX)#define DEBUG_COMPORT_RX_INT (INT_UART1_RX)#define inb(port) (*((char*)(port)))#define outb(ch,port) (*((char*)(port))) = (ch)/* Macros for logging */#define LOG_GET_STATUS(p) GET_STATUS(p)#define LOG_TX_EMPTY(p) TX_EMPTY(p)#define LOG_TX_READY(s) TX_READY(s)#define LOG_GET_CHAR(p) GET_CHAR(p)#define LOG_PUT_CHAR(p, c) PUT_CHAR(p, c)#define LOG_RX_DATA(s) RX_DATA(s)#define LOG_READ_INTERRUPT(p) 0#define LOG_RX_INTERRUPT 4#define LOG_TX_INTERRUPT 2#endif /* evaluator_h */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -