jbg_tmrisr.asm

来自「基于ADI BLACKFIN的jbig压缩和解压缩程序」· 汇编 代码 · 共 97 行

ASM
97
字号
.section program;


.extern _tTicks;

.extern _getr;





_TimerIsr:

	.global _TimerIsr;

	[--sp] = p0;
	
	[--sp] = r0;

	p0 = 0;

	p0.h = _tTicks;
	
	p0.l = _tTicks;
	
	r0 = [p0];
	
	r0 += 1;
	
	[p0] = r0;
	
	r0 = [sp++];
	
	p0 = [sp++];
	
	rti;

_TimerIsr.end:



_SetTimer:

	.global _SetTimer;
	
	[--sp] = p0;
	
	[--sp] = r1;

	p0.h = 0xffe0;
	
	p0.l = 0x2104;
	
	r1 = 0x5f;
	
	[p0] = r1;			// Enable core timer interrupt
	
	p0.l = 0x2018;
	
	r1.h = _TimerIsr;
	
	r1.l = _TimerIsr;
	
	[p0] = r1;			// Set core timer interrupt vector
	
	p0.l = 0x3000;
	
	r1 = 0x1;
	
	[p0] = r1;			// Activate core timer
	
	p0.l = 0x300c;
	
	[p0] = r0;			// Set core timer count
	
	p0.l = 0x3004;
	
	[p0] = r0;			// Set core timer period
	
	p0.l = 0x3008;
	
	r1 = 0;
	
	[p0] = r1;			// Set core timer scale
	
	p0.l = 0x3000;
	
	r1 = 0x7;
	
	[p0] = r1;			// Start timer and enable it auto-reload
	
	r1 = [sp++];
	
	p0 = [sp++];
	
_SetTimer.end:

⌨️ 快捷键说明

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