mirror of
https://github.com/ioacademy-jikim/debugging
synced 2025-06-11 09:56:29 +00:00
42 lines
686 B
C
42 lines
686 B
C
#include<stdio.h>
|
|
#include<time.h>
|
|
#include<stdlib.h>
|
|
#include<unistd.h>
|
|
|
|
int stck(unsigned long *addr)
|
|
{
|
|
int cc;
|
|
asm volatile ( "stck %0\n"
|
|
"ipm %1\n"
|
|
"srl %1,28\n"
|
|
:"=Q" (*addr), "=d"(cc)::"memory", "cc");
|
|
return cc;
|
|
}
|
|
|
|
unsigned long clockticks_in_msec(unsigned long b, unsigned long a)
|
|
{
|
|
return (b - a) / 4096000UL;
|
|
}
|
|
|
|
int main()
|
|
{
|
|
|
|
int cc;
|
|
unsigned long start, end, diff;
|
|
|
|
cc = stck(&start);
|
|
if (cc)
|
|
printf("cc != 0!\n");
|
|
sleep(1);
|
|
cc = stck(&end);
|
|
if (cc)
|
|
printf("cc != 0!\n");
|
|
diff = clockticks_in_msec(end, start);
|
|
if (diff >= 1000 && diff < 1500)
|
|
printf("OK.....Testcase passed\n");
|
|
else
|
|
printf("FAILED.....Testcase failed\n");
|
|
return 0;
|
|
|
|
}
|