📄 arm.h
字号:
/*************************************************************************
Copyright (c) 1999 Mentor Graphics Corporation.
IMPORTANT - USE OF THIS SOFTWARE IS SUBJECT TO LICENSE RESTRICTIONS
CAREFULLY READ THE LICENSE AGREEMENT BEFORE USING THE SOFTWARE
*************************************************************************/
/*Revisions of ARM.H:
* 1.1 P.Cumming 10.5.96 Undefined VMC_PROBE_INTERRUPT functions removed
* 1.2 A. Thompson 23/1/97 Pointer size macro generalised - it's not 2 on the ARM!
*/
/* disable,enable,halt,restore*/
/* ARM specific inline functions */
#include "cpu.h"
#define INTPROC void
/*
* The following MACRO determines if an address is alligned at a
* pointer boundary.
*/
#define POINTER_SIZE (sizeof(void *))
#define not_pointer_aligned(addr) ((addr) % POINTER_SIZE)
extern char vmc_intr_count, *vmc_irqstk, *vmc_fiqstk;
#define vmc_thread_mode() (vmc_intr_count == 0)
#define stack_align(x) (((int) (x)) & ~3)
extern void vmc_proc_init(void);
#define disable(x) x = cpu_interrupt_disable()
#define restore(x) cpu_interrupt_restore(x)
#define enable() cpu_interrupt_enable()
#define interrupt_window(ps) cpu_interrupt_window(ps)
#define pause()
#ifdef _MRI
#define halt() asm("\tillegal")
#else
/*
#define halt() __asm __volatile("illegal")
*/
#define halt()
#endif
/*
* Stack frame of thread on thread creation
*/
#define SVCMode 0x13
struct vmc_frame{
int cpsr;
int r4;
int r5;
int r6;
int r7;
int r8;
int r9;
int r10;
int r11;
void (*startup_pc)(void);
int task_arg;
void (*return_pc)(void);
void (*task_pc)(void *);
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -