Subversion Repositories shark

Compare Revisions

Regard whitespace Rev 1511 → Rev 1512

/demos/trunk/advtimer/initfile.c
7,6 → 7,7
*
* Authors :
* Giacomo Guidi <giacomo@gandalf.sssup.it>
* Mauro Marinoni
* (see the web pages for full authors list)
*
* ReTiS Lab (Scuola Superiore S.Anna - Pisa - Italy)
46,6 → 47,7
#include "drivers/shark_linuxc26.h"
#include "drivers/shark_input26.h"
#include "drivers/shark_keyb26.h"
#include "drivers/shark_cpu26.h"
 
/*+ sysyem tick in us +*/
#define TICK 0
129,6 → 131,10
LINUXC26_register_module();
 
CPU26_init();
 
CPU26_DVS_init();
 
INPUT26_init();
 
keyb_def_ctrlC(kparms, NULL);
/demos/trunk/advtimer/advtimer.c
41,6 → 41,7
#include "ll/i386/advtimer.h"
 
#include "drivers/shark_keyb26.h"
#include "drivers/shark_cpu26.h"
 
#define UPDATE_PERIOD 10000
#define UPDATE_WCET 1000
48,6 → 49,11
extern unsigned int clk_per_msec;
extern unsigned int apic_clk_per_msec;
 
int freq_number = 0;
int cur_frequency = 0;
int cur_freq_number = 0;
int dvs_status = 0;
 
TASK Update(void *arg)
{
struct timespec actual_timer;
58,6 → 64,33
signed long long start,end,res;
struct timespec s_test,startts,endts;
 
/* Get the DVS status */
int i;
char dvs_frequencies[1000];
 
dvs_status = CPU26_DVS_status();
 
if (dvs_status > 0) {
 
printf_xy(0,11,WHITE,"Dynamic Frequency Scaling Supported");
printf_xy(0,12,WHITE,"Press \"q\" to raise or \"a\" to lower CPU freq");
 
CPU26_show_frequencies(dvs_frequencies);
freq_number = CPU26_get_frequencies(cpu26_freqs);
printf_xy(0,13,WHITE,"Supported Frequencies [ %s: %d ]",dvs_frequencies,freq_number);
cur_frequency = CPU26_get_cur_frequency();
printf_xy(0,14,WHITE,"Current Frequency [ %10d ]",cur_frequency);
 
for (i=0;i<freq_number;i++)
if (cpu26_freqs[i] == cur_frequency) break;
cur_freq_number = i;
 
} else {
 
printf_xy(0,11,WHITE,"Dynamic Frequency Scaling NOT Supported");
 
}
 
task_nopreempt();
 
num_delay = tot_delay = mean_delay = 0;
110,6 → 143,9
 
printf_xy(0,9,WHITE,"Timer Access Delay: %12ld ns",mean_delay);
if (dvs_status > 0)
printf_xy(0,14,WHITE,"Current Frequency [ %10d ]",CPU26_get_cur_frequency());
task_endcycle();
 
}
132,6 → 168,25
sys_end();
}
void up_freq(KEY_EVT* e)
{
 
if (dvs_status > 0) {
cur_freq_number++;
if (cur_freq_number >= freq_number) cur_freq_number--;
CPU26_set_frequency(cpu26_freqs[cur_freq_number],DVS_RELATION_H);
}
}
 
void down_freq(KEY_EVT* e)
{
if (dvs_status > 0) {
cur_freq_number--;
if (cur_freq_number < 0) cur_freq_number++;
CPU26_set_frequency(cpu26_freqs[cur_freq_number],DVS_RELATION_L);
}
}
int main(int argc, char **argv)
{
145,6 → 200,18
k.status = KEY_PRESSED;
keyb_hook(k,program_key_end,FALSE);
 
k.flag = 0;
k.scan = KEY_Q;
k.ascii = 'q';
k.status = KEY_PRESSED;
keyb_hook(k,up_freq,FALSE);
 
k.flag = 0;
k.scan = KEY_A;
k.ascii = 'a';
k.status = KEY_PRESSED;
keyb_hook(k,down_freq,FALSE);
 
set_screen();
hard_task_default_model(mp);
/demos/trunk/advtimer/makefile
13,5 → 13,5
 
# Text applications
advtimer:
make -f $(SUBMAKE) APP=advtimer INIT= OTHEROBJS="initfile.o" SHARKOPT="__LINUXC26__ __PCI__ __INPUT__"
make -f $(SUBMAKE) APP=advtimer INIT= OTHEROBJS="initfile.o" SHARKOPT="__LINUXC26__ __PCI__ __CPU__ __INPUT__"