l2timers.c

来自「sun公司的sparc v8处理器的配置代码。」· C语言 代码 · 共 49 行

C
49
字号
#include "testmod.h"struct timerreg {    volatile unsigned int counter;		/* 0x0 */    volatile unsigned int reload;		/* 0x4 */    volatile unsigned int control;		/* 0x8 */    volatile unsigned int wdog;			/* 0xC */};struct l2timers {    struct timerreg timer[2];    volatile unsigned int scalercnt;		/* 0x00 */    volatile unsigned int scalerload;		/* 0x04 */};#define IRQPEND 0x10l2timers_test(int addr){        struct l2timers *lr = (struct l2timers *) addr;        extern volatile int irqtbl[];        int i, j, pil, ntimers;	report_device(0x04006000);	ntimers = 2;	lr->scalerload = -1;	if (lr->scalercnt == lr->scalercnt) fail(1);/* timer 1 test */	lr->scalerload = 31;	lr->scalercnt = 31;	for (i=0; i<ntimers; i++) lr->timer[i].control = 0; // halt all timers		/* test basic functions */	for (i=0; i<ntimers; i++) {	    report_subtest(i);	    lr->timer[i].counter = 0;	    lr->timer[i].reload = 15;	    lr->timer[i].control = 0x6;	    if (lr->timer[i].counter != 15) fail(3); // check loading	    lr->timer[i].control = 0xf;	    for (j=14; j >= 0; j--) { while (lr->timer[i].counter != j) {}}	    while (lr->timer[i].counter != 15) {}	    lr->timer[i].control = 0;		}}

⌨️ 快捷键说明

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