/demos/trunk/jumpball/rrn.c |
---|
18,11 → 18,11 |
/** |
------------ |
CVS : $Id: rrn.c,v 1.1 2003-05-01 19:43:17 pj Exp $ |
CVS : $Id: rrn.c,v 1.2 2004-04-17 17:16:47 giacomo Exp $ |
File: $File$ |
Revision: $Revision: 1.1 $ |
Last update: $Date: 2003-05-01 19:43:17 $ |
Revision: $Revision: 1.2 $ |
Last update: $Date: 2004-04-17 17:16:47 $ |
------------ |
**/ |
54,35 → 54,33 |
#include "modules/sem.h" |
#include "modules/hartport.h" |
#include "modules/cabs.h" |
#include "modules/nop.h" |
#include "drivers/keyb.h" |
/*+ sysyem tick in us +*/ |
#define TICK 0 |
/*+ RR tick in us +*/ |
//#define RRTICK 10000 |
#define RRTICK 2000 |
/*+ Interrupt Server +*/ |
#define INTDRIVE_Q 1000 |
#define INTDRIVE_T 10000 |
#define INTDRIVE_FLAG 0 |
TIME __kernel_register_levels__(void *arg) |
{ |
struct multiboot_info *mb = (struct multiboot_info *)arg; |
INTDRIVE_register_level(INTDRIVE_Q,INTDRIVE_T,INTDRIVE_FLAG); |
RR_register_level(RRTICK, RR_MAIN_NO, mb); // this module remains empty!!! |
RRSOFT_register_level(RRTICK, RR_MAIN_NO, mb, RRSOFT_ONLY_HARD|RRSOFT_ONLY_SOFT); |
RR_register_level(RRTICK, RR_MAIN_YES, mb); |
dummy_register_level(); |
SEM_register_module(); |
CABS_register_module(); |
NOP_register_module(); |
return TICK; |
} |
92,18 → 90,7 |
HARTPORT_init(); |
KEYB_init(NULL); |
__call_main__(mb); |
return (void *)0; |
} |
void app_mutex_init(mutex_t *m) |
{ |
NOP_mutexattr_t attr; |
NOP_mutexattr_default(attr); |
mutex_init(m, &attr); |
} |
/demos/trunk/jumpball/rrp.c |
---|
18,11 → 18,11 |
/** |
------------ |
CVS : $Id: rrp.c,v 1.1 2003-05-01 19:43:17 pj Exp $ |
CVS : $Id: rrp.c,v 1.2 2004-04-17 17:16:47 giacomo Exp $ |
File: $File$ |
Revision: $Revision: 1.1 $ |
Last update: $Date: 2003-05-01 19:43:17 $ |
Revision: $Revision: 1.2 $ |
Last update: $Date: 2004-04-17 17:16:47 $ |
------------ |
**/ |
46,6 → 46,7 |
*/ |
#include "kernel/kern.h" |
#include "modules/intdrive.h" |
#include "modules/edf.h" |
#include "modules/rr.h" |
#include "modules/rrsoft.h" |
54,32 → 55,31 |
#include "modules/sem.h" |
#include "modules/hartport.h" |
#include "modules/cabs.h" |
#include "modules/pi.h" |
#include "drivers/keyb.h" |
/*+ sysyem tick in us +*/ |
#define TICK 0 |
/*+ RR tick in us +*/ |
//#define RRTICK 10000 |
#define RRTICK 2000 |
/*+ Interrupt Server +*/ |
#define INTDRIVE_Q 1000 |
#define INTDRIVE_T 10000 |
#define INTDRIVE_FLAG 0 |
TIME __kernel_register_levels__(void *arg) |
{ |
struct multiboot_info *mb = (struct multiboot_info *)arg; |
INTDRIVE_register_level(INTDRIVE_Q,INTDRIVE_T,INTDRIVE_FLAG); |
RRSOFT_register_level(RRTICK, RR_MAIN_NO, mb, RRSOFT_ONLY_HARD); |
RRSOFT_register_level(RRTICK, RR_MAIN_NO, mb, RRSOFT_ONLY_SOFT); |
RR_register_level(RRTICK, RR_MAIN_YES, mb); |
dummy_register_level(); |
SEM_register_module(); |
SEM_register_module(); |
CABS_register_module(); |
PI_register_module(); |
return TICK; |
} |
90,18 → 90,7 |
HARTPORT_init(); |
KEYB_init(NULL); |
__call_main__(mb); |
return (void *)0; |
} |
void app_mutex_init(mutex_t *m) |
{ |
PI_mutexattr_t attr; |
PI_mutexattr_default(attr); |
mutex_init(m, &attr); |
} |
/demos/trunk/jumpball/demo.c |
---|
18,11 → 18,11 |
/** |
------------ |
CVS : $Id: demo.c,v 1.4 2003-05-01 19:43:16 pj Exp $ |
CVS : $Id: demo.c,v 1.5 2004-04-17 17:16:46 giacomo Exp $ |
File: $File$ |
Revision: $Revision: 1.4 $ |
Last update: $Date: 2003-05-01 19:43:16 $ |
Revision: $Revision: 1.5 $ |
Last update: $Date: 2004-04-17 17:16:46 $ |
------------ |
**/ |
49,12 → 49,7 |
#include <kernel/func.h> |
#include <string.h> |
#include <stdlib.h> |
#include <drivers/keyb.h> |
#include <drivers/glib.h> |
/* graphic mutex... */ |
mutex_t mutex; |
/* useful colors... */ |
int white; |
int black; |
61,8 → 56,75 |
int red; |
int gray; |
void app_mutex_init(mutex_t *m); |
PID shutdown_task_PID = -1; |
int device_drivers_close() { |
FB26_close(FRAME_BUFFER_DEVICE); |
KEYB26_close(); |
INPUT26_close(); |
return 0; |
} |
int device_drivers_init() { |
int res; |
KEYB_PARMS kparms = BASE_KEYB; |
LINUXC26_register_module(); |
PCI26_init(); |
INPUT26_init(); |
keyb_def_ctrlC(kparms, NULL); |
KEYB26_init(&kparms); |
FB26_init(); |
res = FB26_open(FRAME_BUFFER_DEVICE); |
if (res) { |
cprintf("Error: Cannot open graphical mode\n"); |
KEYB26_close(); |
INPUT26_close(); |
sys_end(); |
} |
FB26_use_grx(FRAME_BUFFER_DEVICE); |
FB26_setmode(FRAME_BUFFER_DEVICE,"640x480-16"); |
return 0; |
} |
TASK shutdown_task_body(void *arg) { |
device_drivers_close(); |
sys_shutdown_message("-- S.Ha.R.K. Closed --\n"); |
sys_end(); |
return NULL; |
} |
void set_shutdown_task() { |
NRT_TASK_MODEL nrt; |
nrt_task_default_model(nrt); |
shutdown_task_PID = task_create("Shutdown Task",shutdown_task_body,&nrt,NULL); |
if (shutdown_task_PID == NIL) { |
sys_shutdown_message("Error: Cannot create shutdown task\n"); |
sys_end(); |
} |
} |
static void version( void ) |
{ |
cprintf( "S.Ha.R.K. Jumpball Demo 1.0\n" ); |
135,17 → 197,9 |
#endif |
} |
void my_close(void *arg) |
{ |
grx_close(); |
kern_printf("my_close\n"); |
} |
void endfun(KEY_EVT *k) |
{ |
cprintf("Ending...\n"); |
sys_end(); |
task_activate(shutdown_task_PID); |
} |
void zerofun(KEY_EVT *k) |
156,43 → 210,38 |
int main(int argc, char **argv) |
{ |
int modenum; |
KEY_EVT k; |
version(); |
set_shutdown_task(); |
device_drivers_init(); |
srand(4); |
version(); |
keyb_set_map(itaMap); |
k.flag = CNTR_BIT; |
k.scan = KEY_C; |
k.ascii = 'c'; |
keyb_hook(k,endfun); |
k.status = KEY_PRESSED; |
keyb_hook(k,endfun,FALSE); |
k.flag = CNTL_BIT; |
k.scan = KEY_C; |
k.ascii = 'c'; |
keyb_hook(k,endfun); |
k.status = KEY_PRESSED; |
keyb_hook(k,endfun,FALSE); |
k.flag = ALTL_BIT; |
k.scan = KEY_C; |
k.ascii = 'c'; |
keyb_hook(k,zerofun); |
k.status = KEY_PRESSED; |
keyb_hook(k,zerofun,FALSE); |
k.flag = 0; |
k.scan = KEY_ENT; |
k.ascii = 13; |
keyb_hook(k,endfun); |
k.status = KEY_PRESSED; |
keyb_hook(k,endfun,FALSE); |
sys_atrunlevel(my_close, NULL, RUNLEVEL_BEFORE_EXIT); |
grx_init(); |
modenum = grx_getmode(640, 480, 16); |
grx_setmode(modenum); |
/* init the graphic mutex */ |
app_mutex_init(&mutex); |
/* useful colors ... */ |
white = rgb16(255,255,255); |
black = rgb16(0,0,0); |
/demos/trunk/jumpball/ern.c |
---|
18,11 → 18,11 |
/** |
------------ |
CVS : $Id: ern.c,v 1.1 2003-05-01 19:43:16 pj Exp $ |
CVS : $Id: ern.c,v 1.2 2004-04-17 17:16:47 giacomo Exp $ |
File: $File$ |
Revision: $Revision: 1.1 $ |
Last update: $Date: 2003-05-01 19:43:16 $ |
Revision: $Revision: 1.2 $ |
Last update: $Date: 2004-04-17 17:16:47 $ |
------------ |
**/ |
46,6 → 46,7 |
*/ |
#include "kernel/kern.h" |
#include "modules/intdrive.h" |
#include "modules/edf.h" |
#include "modules/rr.h" |
#include "modules/rrsoft.h" |
54,34 → 55,32 |
#include "modules/sem.h" |
#include "modules/hartport.h" |
#include "modules/cabs.h" |
#include "modules/nop.h" |
#include "drivers/keyb.h" |
/*+ sysyem tick in us +*/ |
#define TICK 0 |
/*+ RR tick in us +*/ |
//#define RRTICK 10000 |
#define RRTICK 2000 |
/*+ Interrupt Server +*/ |
#define INTDRIVE_Q 1000 |
#define INTDRIVE_T 10000 |
#define INTDRIVE_FLAG 0 |
TIME __kernel_register_levels__(void *arg) |
{ |
struct multiboot_info *mb = (struct multiboot_info *)arg; |
INTDRIVE_register_level(INTDRIVE_Q,INTDRIVE_T,INTDRIVE_FLAG); |
EDF_register_level(EDF_ENABLE_ALL); |
RRSOFT_register_level(RRTICK, RR_MAIN_NO, mb, RRSOFT_ONLY_HARD|RRSOFT_ONLY_SOFT); |
RR_register_level(RRTICK, RR_MAIN_YES, mb); |
dummy_register_level(); |
SEM_register_module(); |
CABS_register_module(); |
NOP_register_module(); |
return TICK; |
} |
91,18 → 90,7 |
HARTPORT_init(); |
KEYB_init(NULL); |
__call_main__(mb); |
return (void *)0; |
} |
void app_mutex_init(mutex_t *m) |
{ |
NOP_mutexattr_t attr; |
NOP_mutexattr_default(attr); |
mutex_init(m, &attr); |
} |
/demos/trunk/jumpball/ecp.c |
---|
18,11 → 18,11 |
/** |
------------ |
CVS : $Id: ecp.c,v 1.1 2003-05-01 19:43:16 pj Exp $ |
CVS : $Id: ecp.c,v 1.2 2004-04-17 17:16:46 giacomo Exp $ |
File: $File$ |
Revision: $Revision: 1.1 $ |
Last update: $Date: 2003-05-01 19:43:16 $ |
Revision: $Revision: 1.2 $ |
Last update: $Date: 2004-04-17 17:16:46 $ |
------------ |
**/ |
46,6 → 46,7 |
*/ |
#include "kernel/kern.h" |
#include "modules/intdrive.h" |
#include "modules/edf.h" |
#include "modules/cbs.h" |
#include "modules/rr.h" |
54,31 → 55,30 |
#include "modules/sem.h" |
#include "modules/hartport.h" |
#include "modules/cabs.h" |
#include "modules/pi.h" |
#include "drivers/keyb.h" |
/*+ sysyem tick in us +*/ |
#define TICK 0 |
/*+ RR tick in us +*/ |
//#define RRTICK 10000 |
#define RRTICK 2000 |
/*+ Interrupt Server +*/ |
#define INTDRIVE_Q 1000 |
#define INTDRIVE_T 10000 |
#define INTDRIVE_FLAG 0 |
TIME __kernel_register_levels__(void *arg) |
{ |
struct multiboot_info *mb = (struct multiboot_info *)arg; |
INTDRIVE_register_level(INTDRIVE_Q,INTDRIVE_T,INTDRIVE_FLAG); |
EDF_register_level(EDF_ENABLE_ALL); |
CBS_register_level(CBS_ENABLE_ALL, 0); |
CBS_register_level(CBS_ENABLE_ALL, 1); |
RR_register_level(RRTICK, RR_MAIN_YES, mb); |
dummy_register_level(); |
SEM_register_module(); |
CABS_register_module(); |
PI_register_module(); |
return TICK; |
} |
89,18 → 89,7 |
HARTPORT_init(); |
KEYB_init(NULL); |
__call_main__(mb); |
return (void *)0; |
} |
void app_mutex_init(mutex_t *m) |
{ |
PI_mutexattr_t attr; |
PI_mutexattr_default(attr); |
mutex_init(m, &attr); |
} |
/demos/trunk/jumpball/jetctrl.c |
---|
18,11 → 18,11 |
/** |
------------ |
CVS : $Id: jetctrl.c,v 1.2 2003-05-01 19:43:17 pj Exp $ |
CVS : $Id: jetctrl.c,v 1.3 2004-04-17 17:16:47 giacomo Exp $ |
File: $File$ |
Revision: $Revision: 1.2 $ |
Last update: $Date: 2003-05-01 19:43:17 $ |
Revision: $Revision: 1.3 $ |
Last update: $Date: 2004-04-17 17:16:47 $ |
------------ |
**/ |
75,7 → 75,6 |
TIMESPEC_ASSIGN(&last, &now); |
last_dummy = now_dummy; |
mutex_lock(&mutex); |
grx_line(JET_DUMMY_X+x,JET_DUMMY_Y, |
JET_DUMMY_X+x,JET_DUMMY_Y+height ,black); |
grx_line(JET_DUMMY_X+x,JET_DUMMY_Y+height, |
82,7 → 81,6 |
JET_DUMMY_X+x,JET_DUMMY_Y+JET_DUMMY_HEIGHT,white); |
grx_line(JET_DUMMY_X+(x+1)%JET_DUMMY_WIDTH,JET_DUMMY_Y, |
JET_DUMMY_X+(x+1)%JET_DUMMY_WIDTH,JET_DUMMY_Y+JET_DUMMY_HEIGHT,255); |
mutex_unlock(&mutex); |
x = (x+1)%JET_DUMMY_WIDTH; |
105,17 → 103,13 |
if (jet_getstat(i, &sum, &max, &n, NULL) != -1) { |
if (!n) n=1; |
sprintf(st, "%6d %6d %10s", (int)sum/n, (int)max, proc_table[i].name); |
mutex_lock(&mutex); |
grx_text(st, 384, JET_Y_NAME+16+printed*8, gray, black); |
mutex_unlock(&mutex); |
printed++; |
} |
} |
while (printed<JET_NTASK) { |
mutex_lock(&mutex); |
grx_text(" ", |
384, JET_Y_NAME+16+printed*8, gray, black); |
mutex_unlock(&mutex); |
printed++; |
} |
task_endcycle(); |
157,7 → 151,6 |
slides[i] = (int)( (((float)total[i])/max) * JET_SLIDE_WIDTH); |
// print the data |
mutex_lock(&mutex); |
for (i=0; i<JET_NTASK; i++) { |
grx_box(JET_SLIDE_X, JET_Y_NAME+16+i*8, |
JET_SLIDE_X+slides[i], JET_Y_NAME+23+i*8, gray); |
170,7 → 163,6 |
JET_SLIDE_X+JET_SLIDE_WIDTH, JET_Y_NAME+20+i*8, black); |
i++; |
} |
mutex_unlock(&mutex); |
task_endcycle(); |
} |
} |
201,7 → 193,7 |
PID p3, p4, p5; |
soft_task_default_model(m3); |
soft_task_def_level(m3,1); |
soft_task_def_level(m3,2); |
soft_task_def_period(m3, PERIOD_JETCTRL); |
soft_task_def_met(m3, WCET_JETCTRL); |
soft_task_def_ctrl_jet(m3); |
210,11 → 202,11 |
if (p3 == -1) { |
sys_shutdown_message("Could not create task <jetctrl> errno=%d", |
errno); |
sys_end(); |
task_activate(shutdown_task_PID); |
} |
soft_task_default_model(m4); |
soft_task_def_level(m4,1); |
soft_task_def_level(m4,2); |
soft_task_def_period(m4, PERIOD_JETDUMMY); |
soft_task_def_met(m4, WCET_JETDUMMY); |
soft_task_def_group(m4, 1); |
224,11 → 216,11 |
if (p4 == -1) { |
sys_shutdown_message("Could not create task <jetdummy> errno=%d", |
errno); |
sys_end(); |
task_activate(shutdown_task_PID); |
} |
soft_task_default_model(m5); |
soft_task_def_level(m5,1); |
soft_task_def_level(m5,2); |
soft_task_def_period(m5, PERIOD_JETSLIDE); |
soft_task_def_met(m5, WCET_JETSLIDE); |
soft_task_def_group(m5, 1); |
238,7 → 230,7 |
if (p5 == -1) { |
sys_shutdown_message("Could not create task <jetslide> errno=%d", |
errno); |
sys_end(); |
task_activate(shutdown_task_PID); |
} |
} |
/demos/trunk/jumpball/demo.h |
---|
18,11 → 18,11 |
/** |
------------ |
CVS : $Id: demo.h,v 1.4 2004-03-28 09:14:17 pj Exp $ |
CVS : $Id: demo.h,v 1.5 2004-04-17 17:16:46 giacomo Exp $ |
File: $File$ |
Revision: $Revision: 1.4 $ |
Last update: $Date: 2004-03-28 09:14:17 $ |
Revision: $Revision: 1.5 $ |
Last update: $Date: 2004-04-17 17:16:46 $ |
------------ |
**/ |
50,10 → 50,15 |
#include <kernel/types.h> |
#include <kernel/descr.h> |
#include <math.h> |
#include <drivers/glib.h> |
#include <drivers/keyb.h> |
#include <drivers/shark_linuxc26.h> |
#include <drivers/shark_pci26.h> |
#include <drivers/shark_input26.h> |
#include <drivers/shark_keyb26.h> |
#include <drivers/shark_fb26.h> |
#define FRAME_BUFFER_DEVICE 0 |
/* Subparts */ |
#define JET_ON |
#define BALL_ON |
66,7 → 71,7 |
400 - Pentium 2 400 MHz |
133 - Pentium 1 133 MHz |
*/ |
#define CPU 1300 |
#define CPU 400 |
/* |
* |
121,8 → 126,7 |
* |
*/ |
/* graphic mutex... */ |
extern mutex_t mutex; |
extern PID shutdown_task_PID; |
/* useful colors... */ |
extern int white; |
137,8 → 141,6 |
char *itoa(int n, char *s); |
int myrand(int x); |
/* |
* |
* JETCONTROL stuffs |
160,9 → 162,6 |
#define JET_SLIDE_WIDTH 50 |
#define JET_SLIDE_X 576 |
/* |
* |
* BALL stuffs |
/demos/trunk/jumpball/ball.c |
---|
18,11 → 18,11 |
/** |
------------ |
CVS : $Id: ball.c,v 1.3 2003-05-05 09:21:55 pj Exp $ |
CVS : $Id: ball.c,v 1.4 2004-04-17 17:16:46 giacomo Exp $ |
File: $File$ |
Revision: $Revision: 1.3 $ |
Last update: $Date: 2003-05-05 09:21:55 $ |
Revision: $Revision: 1.4 $ |
Last update: $Date: 2004-04-17 17:16:46 $ |
------------ |
**/ |
125,11 → 125,12 |
x = x0 + vx * tx; |
} |
mutex_lock(&mutex); |
task_nopreempt(); |
grx_disc(ox, oy, R, 0); |
task_preempt(); |
ox = x; |
oy = BALL_Y - y; |
mutex_unlock(&mutex); |
if (ballexit && i!=0xFFFF) { |
npc--; |
136,9 → 137,9 |
return 0; |
} |
mutex_lock(&mutex); |
task_nopreempt(); |
grx_disc(ox, oy, R, i); |
mutex_unlock(&mutex); |
task_preempt(); |
my_delay(); |
171,7 → 172,7 |
itoa(npc,palla_str+5); |
soft_task_default_model(mp); |
soft_task_def_level(mp,1); |
soft_task_def_level(mp,2); |
soft_task_def_ctrl_jet(mp); |
soft_task_def_arg(mp, (void *)rgb16(r,g,b)); |
soft_task_def_group(mp, BALL_GROUP); |
205,7 → 206,8 |
pid = task_create("pallaEDF", palla, &mp, NULL); |
if (pid == NIL) { |
sys_shutdown_message("Could not create task <pallaEDF>"); |
sys_end(); |
task_activate(shutdown_task_PID); |
return; |
} |
else |
task_activate(pid); |
220,8 → 222,6 |
{ |
grx_text("Noise", 0, 45 /*BALL_Y-BALL_HEIGHT-15*/, rgb16(0,0,255), black); |
grx_line(0,55,383,55,red); |
//grx_line(0,BALL_Y-BALL_HEIGHT-6,383,BALL_Y-BALL_HEIGHT-6,red); |
grx_rect(BALL_XMIN-R-1, BALL_Y-BALL_HEIGHT-R-1, |
BALL_XMAX+R+1, BALL_Y+R+1, rgb16(0,200,0)); |
} |
235,12 → 235,14 |
k.flag = 0; |
k.scan = KEY_SPC; |
k.ascii = ' '; |
keyb_hook(k,ballfun); |
k.status = KEY_PRESSED; |
keyb_hook(k,ballfun,FALSE); |
k.flag = 0; |
k.scan = KEY_BKS; |
k.ascii = ' '; |
keyb_hook(k,killball); |
k.status = KEY_PRESSED; |
keyb_hook(k,killball,FALSE); |
} |
/*--------------------------------------------------------------*/ |
/demos/trunk/jumpball/makefile |
---|
12,13 → 12,13 |
include $(BASE)/config/example.mk |
ecp: |
make -f $(SUBMAKE) APP=ecp INIT= OTHEROBJS="demo.o ball.o jetctrl.o" OTHERINCL= SHARKOPT="__OLDCHAR__ __GRX__" |
make -f $(SUBMAKE) APP=ecp INIT= OTHEROBJS="demo.o ball.o jetctrl.o" OTHERINCL= SHARKOPT="__LINUXC26__ __NEWPCI__ __INPUT__ __FB__" |
ern: |
make -f $(SUBMAKE) APP=ern INIT= OTHEROBJS="demo.o ball.o jetctrl.o" OTHERINCL= SHARKOPT="__OLDCHAR__ __GRX__" |
make -f $(SUBMAKE) APP=ern INIT= OTHEROBJS="demo.o ball.o jetctrl.o" OTHERINCL= SHARKOPT="__LINUXC26__ __NEWPCI__ __INPUT__ __FB__" |
rrp: |
make -f $(SUBMAKE) APP=rrp INIT= OTHEROBJS="demo.o ball.o jetctrl.o" OTHERINCL= SHARKOPT="__OLDCHAR__ __GRX__" |
make -f $(SUBMAKE) APP=rrp INIT= OTHEROBJS="demo.o ball.o jetctrl.o" OTHERINCL= SHARKOPT="__LINUXC26__ __NEWPCI__ __INPUT__ __FB__" |
rrn: |
make -f $(SUBMAKE) APP=rrn INIT= OTHEROBJS="demo.o ball.o jetctrl.o" OTHERINCL= SHARKOPT="__OLDCHAR__ __GRX__" |
make -f $(SUBMAKE) APP=rrn INIT= OTHEROBJS="demo.o ball.o jetctrl.o" OTHERINCL= SHARKOPT="__LINUXC26__ __NEWPCI__ __INPUT__ __FB__" |