Subversion Repositories shark

Compare Revisions

Ignore whitespace Rev 1379 → Rev 1378

/demos/trunk/jumpball/demo.h
18,11 → 18,11
 
/**
------------
CVS : $Id: demo.h,v 1.5 2004-04-17 17:16:46 giacomo Exp $
CVS : $Id: demo.h,v 1.4 2004-03-28 09:14:17 pj Exp $
 
File: $File$
Revision: $Revision: 1.5 $
Last update: $Date: 2004-04-17 17:16:46 $
Revision: $Revision: 1.4 $
Last update: $Date: 2004-03-28 09:14:17 $
------------
**/
 
50,15 → 50,10
#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
71,7 → 66,7
400 - Pentium 2 400 MHz
133 - Pentium 1 133 MHz
*/
#define CPU 400
#define CPU 1300
 
/*
*
126,7 → 121,8
*
*/
 
extern PID shutdown_task_PID;
/* graphic mutex... */
extern mutex_t mutex;
 
/* useful colors... */
extern int white;
141,6 → 137,8
char *itoa(int n, char *s);
int myrand(int x);
 
 
 
/*
*
* JETCONTROL stuffs
162,6 → 160,9
#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.4 2004-04-17 17:16:46 giacomo Exp $
CVS : $Id: ball.c,v 1.3 2003-05-05 09:21:55 pj Exp $
 
File: $File$
Revision: $Revision: 1.4 $
Last update: $Date: 2004-04-17 17:16:46 $
Revision: $Revision: 1.3 $
Last update: $Date: 2003-05-05 09:21:55 $
------------
**/
 
125,12 → 125,11
x = x0 + vx * tx;
}
 
task_nopreempt();
mutex_lock(&mutex);
grx_disc(ox, oy, R, 0);
task_preempt();
 
ox = x;
oy = BALL_Y - y;
mutex_unlock(&mutex);
 
if (ballexit && i!=0xFFFF) {
npc--;
137,9 → 136,9
return 0;
}
 
task_nopreempt();
mutex_lock(&mutex);
grx_disc(ox, oy, R, i);
task_preempt();
mutex_unlock(&mutex);
 
my_delay();
 
172,7 → 171,7
itoa(npc,palla_str+5);
 
soft_task_default_model(mp);
soft_task_def_level(mp,2);
soft_task_def_level(mp,1);
soft_task_def_ctrl_jet(mp);
soft_task_def_arg(mp, (void *)rgb16(r,g,b));
soft_task_def_group(mp, BALL_GROUP);
206,8 → 205,7
pid = task_create("pallaEDF", palla, &mp, NULL);
if (pid == NIL) {
sys_shutdown_message("Could not create task <pallaEDF>");
task_activate(shutdown_task_PID);
return;
sys_end();
}
else
task_activate(pid);
222,6 → 220,8
{
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,14 → 235,12
k.flag = 0;
k.scan = KEY_SPC;
k.ascii = ' ';
k.status = KEY_PRESSED;
keyb_hook(k,ballfun,FALSE);
keyb_hook(k,ballfun);
 
k.flag = 0;
k.scan = KEY_BKS;
k.ascii = ' ';
k.status = KEY_PRESSED;
keyb_hook(k,killball,FALSE);
keyb_hook(k,killball);
}
 
/*--------------------------------------------------------------*/
/demos/trunk/jumpball/rrn.c
18,11 → 18,11
 
/**
------------
CVS : $Id: rrn.c,v 1.2 2004-04-17 17:16:47 giacomo Exp $
CVS : $Id: rrn.c,v 1.1 2003-05-01 19:43:17 pj Exp $
 
File: $File$
Revision: $Revision: 1.2 $
Last update: $Date: 2004-04-17 17:16:47 $
Revision: $Revision: 1.1 $
Last update: $Date: 2003-05-01 19:43:17 $
------------
**/
 
54,33 → 54,35
#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;
}
 
90,7 → 92,18
 
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.2 2004-04-17 17:16:47 giacomo Exp $
CVS : $Id: rrp.c,v 1.1 2003-05-01 19:43:17 pj Exp $
 
File: $File$
Revision: $Revision: 1.2 $
Last update: $Date: 2004-04-17 17:16:47 $
Revision: $Revision: 1.1 $
Last update: $Date: 2003-05-01 19:43:17 $
------------
**/
 
46,7 → 46,6
*/
 
#include "kernel/kern.h"
#include "modules/intdrive.h"
#include "modules/edf.h"
#include "modules/rr.h"
#include "modules/rrsoft.h"
55,31 → 54,32
#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();
 
CABS_register_module();
PI_register_module();
 
return TICK;
}
90,7 → 90,18
 
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.5 2004-04-17 17:16:46 giacomo Exp $
CVS : $Id: demo.c,v 1.4 2003-05-01 19:43:16 pj Exp $
 
File: $File$
Revision: $Revision: 1.5 $
Last update: $Date: 2004-04-17 17:16:46 $
Revision: $Revision: 1.4 $
Last update: $Date: 2003-05-01 19:43:16 $
------------
**/
 
49,7 → 49,12
#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;
56,75 → 61,8
int red;
int gray;
 
PID shutdown_task_PID = -1;
void app_mutex_init(mutex_t *m);
 
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" );
197,9 → 135,17
#endif
}
 
void my_close(void *arg)
{
grx_close();
kern_printf("my_close\n");
}
 
 
void endfun(KEY_EVT *k)
{
task_activate(shutdown_task_PID);
cprintf("Ending...\n");
sys_end();
}
 
void zerofun(KEY_EVT *k)
210,38 → 156,43
 
int main(int argc, char **argv)
{
int modenum;
 
KEY_EVT k;
 
srand(4);
 
version();
 
set_shutdown_task();
 
device_drivers_init();
 
srand(4);
 
keyb_set_map(itaMap);
k.flag = CNTR_BIT;
k.scan = KEY_C;
k.ascii = 'c';
k.status = KEY_PRESSED;
keyb_hook(k,endfun,FALSE);
keyb_hook(k,endfun);
k.flag = CNTL_BIT;
k.scan = KEY_C;
k.ascii = 'c';
k.status = KEY_PRESSED;
keyb_hook(k,endfun,FALSE);
keyb_hook(k,endfun);
k.flag = ALTL_BIT;
k.scan = KEY_C;
k.ascii = 'c';
k.status = KEY_PRESSED;
keyb_hook(k,zerofun,FALSE);
keyb_hook(k,zerofun);
k.flag = 0;
k.scan = KEY_ENT;
k.ascii = 13;
k.status = KEY_PRESSED;
keyb_hook(k,endfun,FALSE);
keyb_hook(k,endfun);
 
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.2 2004-04-17 17:16:47 giacomo Exp $
CVS : $Id: ern.c,v 1.1 2003-05-01 19:43:16 pj Exp $
 
File: $File$
Revision: $Revision: 1.2 $
Last update: $Date: 2004-04-17 17:16:47 $
Revision: $Revision: 1.1 $
Last update: $Date: 2003-05-01 19:43:16 $
------------
**/
 
46,7 → 46,6
*/
 
#include "kernel/kern.h"
#include "modules/intdrive.h"
#include "modules/edf.h"
#include "modules/rr.h"
#include "modules/rrsoft.h"
55,32 → 54,34
#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;
}
 
90,7 → 91,18
 
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/jetctrl.c
18,11 → 18,11
 
/**
------------
CVS : $Id: jetctrl.c,v 1.3 2004-04-17 17:16:47 giacomo Exp $
CVS : $Id: jetctrl.c,v 1.2 2003-05-01 19:43:17 pj Exp $
 
File: $File$
Revision: $Revision: 1.3 $
Last update: $Date: 2004-04-17 17:16:47 $
Revision: $Revision: 1.2 $
Last update: $Date: 2003-05-01 19:43:17 $
------------
**/
 
75,6 → 75,7
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,
81,6 → 82,7
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;
 
103,13 → 105,17
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();
151,6 → 157,7
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);
163,6 → 170,7
JET_SLIDE_X+JET_SLIDE_WIDTH, JET_Y_NAME+20+i*8, black);
i++;
}
mutex_unlock(&mutex);
task_endcycle();
}
}
193,7 → 201,7
PID p3, p4, p5;
 
soft_task_default_model(m3);
soft_task_def_level(m3,2);
soft_task_def_level(m3,1);
soft_task_def_period(m3, PERIOD_JETCTRL);
soft_task_def_met(m3, WCET_JETCTRL);
soft_task_def_ctrl_jet(m3);
202,11 → 210,11
if (p3 == -1) {
sys_shutdown_message("Could not create task <jetctrl> errno=%d",
errno);
task_activate(shutdown_task_PID);
sys_end();
}
 
soft_task_default_model(m4);
soft_task_def_level(m4,2);
soft_task_def_level(m4,1);
soft_task_def_period(m4, PERIOD_JETDUMMY);
soft_task_def_met(m4, WCET_JETDUMMY);
soft_task_def_group(m4, 1);
216,11 → 224,11
if (p4 == -1) {
sys_shutdown_message("Could not create task <jetdummy> errno=%d",
errno);
task_activate(shutdown_task_PID);
sys_end();
}
 
soft_task_default_model(m5);
soft_task_def_level(m5,2);
soft_task_def_level(m5,1);
soft_task_def_period(m5, PERIOD_JETSLIDE);
soft_task_def_met(m5, WCET_JETSLIDE);
soft_task_def_group(m5, 1);
230,7 → 238,7
if (p5 == -1) {
sys_shutdown_message("Could not create task <jetslide> errno=%d",
errno);
task_activate(shutdown_task_PID);
sys_end();
}
}
 
/demos/trunk/jumpball/ecp.c
18,11 → 18,11
 
/**
------------
CVS : $Id: ecp.c,v 1.2 2004-04-17 17:16:46 giacomo Exp $
CVS : $Id: ecp.c,v 1.1 2003-05-01 19:43:16 pj Exp $
 
File: $File$
Revision: $Revision: 1.2 $
Last update: $Date: 2004-04-17 17:16:46 $
Revision: $Revision: 1.1 $
Last update: $Date: 2003-05-01 19:43:16 $
------------
**/
 
46,7 → 46,6
*/
 
#include "kernel/kern.h"
#include "modules/intdrive.h"
#include "modules/edf.h"
#include "modules/cbs.h"
#include "modules/rr.h"
55,30 → 54,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);
EDF_register_level(EDF_ENABLE_ALL);
CBS_register_level(CBS_ENABLE_ALL, 1);
CBS_register_level(CBS_ENABLE_ALL, 0);
 
RR_register_level(RRTICK, RR_MAIN_YES, mb);
dummy_register_level();
 
SEM_register_module();
CABS_register_module();
PI_register_module();
 
return TICK;
}
89,7 → 89,18
 
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/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="__LINUXC26__ __NEWPCI__ __INPUT__ __FB__"
make -f $(SUBMAKE) APP=ecp INIT= OTHEROBJS="demo.o ball.o jetctrl.o" OTHERINCL= SHARKOPT="__OLDCHAR__ __GRX__"
 
ern:
make -f $(SUBMAKE) APP=ern INIT= OTHEROBJS="demo.o ball.o jetctrl.o" OTHERINCL= SHARKOPT="__LINUXC26__ __NEWPCI__ __INPUT__ __FB__"
make -f $(SUBMAKE) APP=ern INIT= OTHEROBJS="demo.o ball.o jetctrl.o" OTHERINCL= SHARKOPT="__OLDCHAR__ __GRX__"
 
rrp:
make -f $(SUBMAKE) APP=rrp INIT= OTHEROBJS="demo.o ball.o jetctrl.o" OTHERINCL= SHARKOPT="__LINUXC26__ __NEWPCI__ __INPUT__ __FB__"
make -f $(SUBMAKE) APP=rrp INIT= OTHEROBJS="demo.o ball.o jetctrl.o" OTHERINCL= SHARKOPT="__OLDCHAR__ __GRX__"
 
rrn:
make -f $(SUBMAKE) APP=rrn INIT= OTHEROBJS="demo.o ball.o jetctrl.o" OTHERINCL= SHARKOPT="__LINUXC26__ __NEWPCI__ __INPUT__ __FB__"
make -f $(SUBMAKE) APP=rrn INIT= OTHEROBJS="demo.o ball.o jetctrl.o" OTHERINCL= SHARKOPT="__OLDCHAR__ __GRX__"