Subversion Repositories shark

Compare Revisions

Ignore whitespace Rev 1378 → Rev 1379

/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__"