/demos/trunk/pci6025e/test_bms.c |
---|
37,9 → 37,10 |
*/ |
#include <kernel/kern.h> |
#include <drivers/keyb.h> |
#include <drivers/glib.h> |
#include <drivers/shark_keyb26.h> |
#include <drivers/shark_fb26.h> |
#include <drivers/pci6025e/timer.h> |
#include <drivers/pci6025e/dio_ppi.h> |
73,34 → 74,30 |
int main(int argc, char **argv) |
{ |
KEY_EVT k; |
int modenum; |
SOFT_TASK_MODEL show_val_mod; |
HARD_TASK_MODEL gate_action_model; |
sys_atrunlevel(closeEvent, NULL, RUNLEVEL_BEFORE_EXIT); |
k.flag = CNTL_BIT; |
k.scan = KEY_X; |
k.ascii = 'x'; |
keyb_hook(k, endFun); |
k.status = KEY_PRESSED; |
keyb_hook(k, endFun, FALSE); |
k.flag = CNTR_BIT; |
keyb_hook(k, endFun); |
k.status = KEY_PRESSED; |
keyb_hook(k, endFun, FALSE); |
k.flag = 0; |
k.scan = KEY_G; |
k.ascii = 'g'; |
keyb_hook(k, gateEvent); |
k.status = KEY_PRESSED; |
keyb_hook(k, gateEvent, FALSE); |
k.scan = KEY_S; |
k.ascii = 's'; |
keyb_hook(k, showEvent); |
k.status = KEY_PRESSED; |
keyb_hook(k, showEvent, FALSE); |
if(pci_init()==-1){ |
sys = 10; |
sys_end(); |
} |
if(!reMap()){ |
sys = 11; |
sys_end(); |
108,7 → 105,7 |
soft_task_default_model(show_val_mod); |
soft_task_def_aperiodic(show_val_mod); |
soft_task_def_level(show_val_mod, 1); |
soft_task_def_level(show_val_mod, 2); |
soft_task_def_met(show_val_mod, SHOW_MET); |
soft_task_def_wcet(show_val_mod, SHOW_WCET); |
soft_task_def_period(show_val_mod, SHOW_PERIOD); |
127,21 → 124,6 |
sys_end(); |
} |
if(grx_init()==-1){ |
sys = 30; |
sys_end(); |
} |
if( (modenum = grx_getmode(800, 600, 16)) == -1){ |
sys = 31; |
sys_end(); |
} |
if(grx_setmode(modenum) == -1){ |
sys = 32; |
sys_end(); |
} |
drawInterface(); |
DIO_init(); |
171,6 → 153,8 |
void endFun(KEY_EVT *k) |
{ |
closeEvent(NULL); |
sys_end(); |
} |
263,17 → 247,16 |
void closeEvent(void *arg) |
{ |
grx_close(); |
TIM_disarm(2); |
switch(sys){ |
case 0: cprintf("Ok\n"); break; |
case 10: cprintf("No PCI\n"); break; |
case 11: cprintf("No National Board\n"); break; |
case 20: cprintf("task <show val> down\n"); break; |
case 22: cprintf("task <gate action> down\n"); break; |
case 30: cprintf("Cannot initialize grx\n"); break; |
case 31: cprintf("Resolution 800x600x16 not supported\n"); break; |
case 32: cprintf("Cannot sets up graphic envirorment\n"); break; |
default: cprintf("????????????\n"); break; |
case 0: sys_shutdown_message("Ok\n"); break; |
case 10: sys_shutdown_message("No PCI\n"); break; |
case 11: sys_shutdown_message("No National Board\n"); break; |
case 20: sys_shutdown_message("task <show val> down\n"); break; |
case 22: sys_shutdown_message("task <gate action> down\n"); break; |
case 30: sys_shutdown_message("Cannot initialize grx\n"); break; |
case 31: sys_shutdown_message("Resolution 800x600x16 not supported\n"); break; |
case 32: sys_shutdown_message("Cannot sets up graphic envirorment\n"); break; |
default: sys_shutdown_message("????????????\n"); break; |
} |
} |
/demos/trunk/pci6025e/wave.c |
---|
29,10 → 29,11 |
* |
*/ |
#include <kernel/kern.h> |
#include <drivers/shark_fb26.h> |
#include <drivers/shark_keyb26.h> |
#include <drivers/glib.h> |
#include <drivers/keyb.h> |
#include <modules/sem.h> |
#include <drivers/pci6025e/dac.h> |
72,18 → 73,17 |
HARD_TASK_MODEL wave0, wave1; |
HARD_TASK_MODEL video; |
PID wave0_pid, wave1_pid, video_pid; |
int modenum; |
k.flag = CNTR_BIT; |
k.scan = KEY_X; |
k.ascii = 'x'; |
keyb_hook(k, endfun); |
k.status = KEY_PRESSED; |
keyb_hook(k, endfun, FALSE); |
k.flag = CNTL_BIT; |
keyb_hook(k, endfun); |
k.status = KEY_PRESSED; |
keyb_hook(k, endfun, FALSE); |
sys_atrunlevel(close_event, NULL, RUNLEVEL_BEFORE_EXIT); |
hard_task_default_model(wave0); |
hard_task_def_wcet(wave0, WAVE_WCET); |
hard_task_def_mit(wave0, WAVE_PERIOD); |
114,28 → 114,11 |
sys_end(); |
} |
if(pci_init() == -1){ |
sys = 20; |
sys_end(); |
} |
if(!reMap()){ |
sys = 21; |
sys_end(); |
} |
if(grx_init() == -1){ |
sys = 30; |
sys_end(); |
} |
if( (modenum = grx_getmode(800, 600, 16)) == -1 ){ |
sys = 31; |
sys_end(); |
} |
grx_setmode(modenum); |
createWaves(); |
drawInterface(); |
//Analog output section set up |
168,23 → 151,24 |
void endfun(KEY_EVT *k) |
{ |
close_event(NULL); |
sys_end(); |
} |
void close_event(void *arg) |
{ |
grx_close(); |
switch(sys){ |
case 0: cprintf("Regular End!\n"); break; |
case 10: cprintf("Cannot create <wave 0> task!\n"); break; |
case 11: cprintf("Cannot create <wave 1> task!\n"); break; |
case 12: cprintf("Cannot create <video> task!\n"); break; |
case 20: cprintf("No PCI bus found!\n"); break; |
case 21: cprintf("No NATIONAL PCI E-Series board found on PCI bus!\n"); |
case 0: sys_shutdown_message("Regular End!\n"); break; |
case 10: sys_shutdown_message("Cannot create <wave 0> task!\n"); break; |
case 11: sys_shutdown_message("Cannot create <wave 1> task!\n"); break; |
case 12: sys_shutdown_message("Cannot create <video> task!\n"); break; |
case 20: sys_shutdown_message("No PCI bus found!\n"); break; |
case 21: sys_shutdown_message("No NATIONAL PCI E-Series board found on PCI bus!\n"); |
break; |
case 30: cprintf("Cannot start graphic envirorment!\n"); break; |
case 31: cprintf("800x600x16 video mode not supported!\n"); |
default: cprintf("Unknown exit event!\n"); break; |
case 30: sys_shutdown_message("Cannot start graphic envirorment!\n"); break; |
case 31: sys_shutdown_message("800x600x16 video mode not supported!\n"); |
default: sys_shutdown_message("Unknown exit event!\n"); break; |
} |
} |
194,7 → 178,7 |
void createWaves(void) |
{ |
int i; |
WORD value0, value1; |
int value0, value1; |
BYTE direction; |
/* Wave0 |
307,7 → 291,7 |
TASK video_body(int dummy) |
{ |
int i = 0; |
int n_tmp, o_tmp; |
int n_tmp = 0, o_tmp; |
//char buf[10]; |
while(1){ |
/demos/trunk/pci6025e/initfile.c |
---|
1,14 → 1,22 |
/* |
* Filename: Initfile.c |
* Author: Marco Ziglioli (Doctor Stein) |
* Date: (I don't remeber... I'm sorry) |
* Description: this file is the same for every examples in this section |
*/ |
/* This file is part of the S.Ha.R.K. Project - http://shark.sssup.it |
* Project: S.Ha.R.K. |
* |
* Copyright (C) 2001 Marco Ziglioli |
* Coordinators: |
* Giorgio Buttazzo <giorgio@sssup.it> |
* Paolo Gai <pj@gandalf.sssup.it> |
* |
* Authors : |
* Giacomo Guidi <giacomo@gandalf.sssup.it> |
* (see the web pages for full authors list) |
* |
* ReTiS Lab (Scuola Superiore S.Anna - Pisa - Italy) |
* |
* http://www.sssup.it |
* http://retis.sssup.it |
* http://shark.sssup.it |
*/ |
/* |
* This program is free software; you can redistribute it and/or modify |
* it under the terms of the GNU General Public License as published by |
* the Free Software Foundation; either version 2 of the License, or |
25,39 → 33,166 |
* |
*/ |
#include <kernel/kern.h> |
#include <modules/edf.h> |
#include <modules/cbs.h> |
#include <modules/rr.h> |
#include <modules/hartport.h> |
#include <modules/dummy.h> |
#include <modules/sem.h> |
#include "kernel/kern.h" |
#include "modules/intdrive.h" |
#include "modules/edf.h" |
#include "modules/hardcbs.h" |
#include "modules/rr.h" |
#include "modules/dummy.h" |
#include <drivers/keyb.h> |
#include "modules/sem.h" |
#include "modules/hartport.h" |
#include "modules/cabs.h" |
#define TICK 1000 |
#define RRTICK 5000 |
#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 |
/*+ sysyem tick in us +*/ |
#define TICK 0 |
/*+ RR tick in us +*/ |
#define RRTICK 2000 |
/*+ Interrupt Server +*/ |
#define INTDRIVE_Q 1000 |
#define INTDRIVE_T 10000 |
#define INTDRIVE_FLAG 0 |
void call_shutdown_task(void *arg); |
int device_drivers_init(); |
int device_drivers_close(); |
void set_shutdown_task(); |
TASK shutdown_task_body(void *arg); |
PID shutdown_task_PID = -1; |
TIME __kernel_register_levels__(void *arg) |
{ |
struct multiboot_info *mb = (struct multiboot_info *)arg; |
struct multiboot_info *mb = (struct multiboot_info *)arg; |
EDF_register_level(EDF_ENABLE_ALL); |
CBS_register_level(CBS_ENABLE_ALL, 0); |
RR_register_level(RRTICK, RR_MAIN_YES, mb); |
dummy_register_level(); |
INTDRIVE_register_level(INTDRIVE_Q,INTDRIVE_T,INTDRIVE_FLAG); |
EDF_register_level(EDF_ENABLE_ALL); |
HCBS_register_level(HCBS_ENABLE_ALL, 1); |
RR_register_level(RRTICK, RR_MAIN_YES, mb); |
dummy_register_level(); |
return TICK; |
SEM_register_module(); |
CABS_register_module(); |
return TICK; |
} |
TASK __init__(void *arg) |
{ |
struct multiboot_info *mb = (struct multiboot_info *)arg; |
struct multiboot_info *mb = (struct multiboot_info *)arg; |
HARTPORT_init(); |
KEYB_init(NULL); |
HARTPORT_init(); |
__call_main__(mb); |
/* Create the shutdown task. It will be activated at RUNLEVEL |
SHUTDOWN */ |
set_shutdown_task(); |
return (void *)0; |
/* Init the drivers */ |
device_drivers_init(); |
/* Set the shutdown task activation */ |
sys_atrunlevel(call_shutdown_task, NULL, RUNLEVEL_SHUTDOWN); |
__call_main__(mb); |
return (void *)0; |
} |
void set_shutdown_task() { |
/* WARNING: the shutdown task is a background thread. It cannot execute |
if the system is overloaded */ |
NRT_TASK_MODEL nrt; |
nrt_task_default_model(nrt); |
nrt_task_def_system(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(); |
} |
} |
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,"800x600-16"); |
return 0; |
} |
int device_drivers_close() { |
FB26_close(FRAME_BUFFER_DEVICE); |
KEYB26_close(); |
INPUT26_close(); |
return 0; |
} |
#define SHUTDOWN_TIMEOUT_SEC 3 |
void call_shutdown_task(void *arg) |
{ |
struct timespec t; |
sys_gettime(&t); |
t.tv_sec += SHUTDOWN_TIMEOUT_SEC; |
/* Emergency timeout to exit from RUNLEVEL_SHUTDOWN */ |
kern_event_post(&t,(void *)((void *)sys_abort_shutdown),(void *)0); |
task_activate(shutdown_task_PID); |
} |
TASK shutdown_task_body(void *arg) { |
device_drivers_close(); |
sys_shutdown_message("-- S.Ha.R.K. Closed --\n"); |
sys_abort_shutdown(0); |
return NULL; |
} |
/demos/trunk/pci6025e/test_mes.c |
---|
40,9 → 40,10 |
#include <kernel/kern.h> |
#include <drivers/keyb.h> |
#include <drivers/glib.h> |
#include <drivers/shark_keyb26.h> |
#include <drivers/shark_fb26.h> |
#include <drivers/pci6025e/timer.h> |
#include <drivers/pci6025e/dio_ppi.h> |
68,38 → 69,35 |
int main(int argc, char **argv) |
{ |
KEY_EVT k; |
int modenum; |
SOFT_TASK_MODEL show_model; |
HARD_TASK_MODEL gating; |
sys_atrunlevel(closeEvent, NULL, RUNLEVEL_BEFORE_EXIT); |
k.flag = CNTL_BIT; |
k.scan = KEY_X; |
k.ascii = 'x'; |
keyb_hook(k, endFun); |
k.status = KEY_PRESSED; |
keyb_hook(k, endFun, FALSE); |
k.flag = CNTR_BIT; |
keyb_hook(k, endFun); |
k.status = KEY_PRESSED; |
keyb_hook(k, endFun, FALSE); |
k.flag = 0; |
k.scan = KEY_G; |
k.ascii = 'g'; |
keyb_hook(k, gateEvent); |
k.status = KEY_PRESSED; |
keyb_hook(k, gateEvent, FALSE); |
k.scan = KEY_H; |
k.ascii = 'h'; |
keyb_hook(k, gateEvent); |
k.status = KEY_PRESSED; |
keyb_hook(k, gateEvent, FALSE); |
k.scan = KEY_S; |
k.ascii = 's'; |
keyb_hook(k, gateEvent); |
k.status = KEY_PRESSED; |
keyb_hook(k, gateEvent, FALSE); |
if(pci_init()==-1){ |
sys = 10; |
sys_end(); |
} |
if(!reMap()){ |
sys = 11; |
sys_end(); |
106,7 → 104,7 |
} |
soft_task_default_model(show_model); |
soft_task_def_level(show_model, 1); |
soft_task_def_level(show_model, 2); |
soft_task_def_met(show_model, TASK_MET); |
soft_task_def_wcet(show_model, TASK_WCET); |
soft_task_def_aperiodic(show_model); |
132,17 → 130,6 |
sys_end(); |
} |
if(grx_init()==-1){ |
sys = 30; |
sys_end(); |
} |
if( (modenum = grx_getmode(800, 600, 16)) == 0 ){ |
sys = 31; |
sys_end(); |
} |
grx_setmode(modenum); |
drawInterface(); |
//Enable DIO to manage gates |
DIO_init(); |
261,6 → 248,8 |
void endFun(KEY_EVT *k) |
{ |
closeEvent(NULL); |
sys_end(); |
} |
274,17 → 263,16 |
void closeEvent(void *arg) |
{ |
TIM_disarm(2); |
grx_close(); |
switch(sys){ |
case 0: cprintf("OK\n"); break; |
case 10: cprintf("No PCI bus found\n"); break; |
case 11: cprintf("No NATIONAL board found\n"); break; |
case 20: cprintf("task <show value> down!!\n"); break; |
case 21: cprintf("task <C0 gate manage> down!!!\n"); break; |
case 22: cprintf("task <C1 gate manage> down!!!\n"); break; |
case 30: cprintf("Cannot init graphic envirorment\n"); break; |
case 31: cprintf("graphic mode 800x600x16 not supported\n"); break; |
default: cprintf("???????????????\n"); break; |
case 0: sys_shutdown_message("OK\n"); break; |
case 10: sys_shutdown_message("No PCI bus found\n"); break; |
case 11: sys_shutdown_message("No NATIONAL board found\n"); break; |
case 20: sys_shutdown_message("task <show value> down!!\n"); break; |
case 21: sys_shutdown_message("task <C0 gate manage> down!!!\n"); break; |
case 22: sys_shutdown_message("task <C1 gate manage> down!!!\n"); break; |
case 30: sys_shutdown_message("Cannot init graphic envirorment\n"); break; |
case 31: sys_shutdown_message("graphic mode 800x600x16 not supported\n"); break; |
default: sys_shutdown_message("???????????????\n"); break; |
} |
} |
/demos/trunk/pci6025e/test_dac.c |
---|
34,8 → 34,11 |
* |
*/ |
#include <drivers/glib.h> |
#include <drivers/keyb.h> |
#include <kernel/kern.h> |
#include <drivers/shark_fb26.h> |
#include <drivers/shark_keyb26.h> |
#include <drivers/pci6025e/dac.h> |
#define TASK_VOLT_PERIOD 150E3 |
68,36 → 71,37 |
int main(int argc, char **argv) |
{ |
int modenum; |
KEY_EVT k; |
HARD_TASK_MODEL m, d; |
PID pid_m, pid_d; |
sys_atrunlevel(close_event, NULL, RUNLEVEL_BEFORE_EXIT); |
keyb_set_map(itaMap); |
k.flag = CNTR_BIT; |
k.scan = KEY_X; |
k.ascii = 'x'; |
keyb_hook(k, endfun); |
k.status = KEY_PRESSED; |
keyb_hook(k, endfun, FALSE); |
k.flag = CNTL_BIT; |
keyb_hook(k, endfun); |
k.status = KEY_PRESSED; |
keyb_hook(k, endfun, FALSE); |
k.flag = 0; |
k.scan = 78; |
k.ascii = 43; |
keyb_hook(k, inc); |
k.status = KEY_PRESSED; |
keyb_hook(k, inc, FALSE); |
k.flag = 0; |
k.scan = 74; |
k.ascii = 45; |
keyb_hook(k, dec); |
k.status = KEY_PRESSED; |
keyb_hook(k, dec, FALSE); |
k.flag = 0; |
k.scan = KEY_V; |
k.ascii = 'v'; |
keyb_hook(k, change_dac); |
k.status = KEY_PRESSED; |
keyb_hook(k, change_dac, FALSE); |
hard_task_default_model(m); |
hard_task_def_wcet(m, TASK_VOLT_WCET); |
119,29 → 123,12 |
sys_end(); |
} |
//Check if PCI bus is present |
if(pci_init()==-1){ |
sys = 10; |
sys_end(); |
} |
//Check if a NI board is on PCI bus |
//Check if a NI board is on PCI bus |
if(!reMap()){ |
sys = 11; |
sys_end(); |
} |
if(grx_init()==-1){ |
sys = 20; |
sys_end(); |
} |
modenum = grx_getmode(800, 600, 16); |
if(modenum == -1){ |
sys = 21; |
sys_end(); |
} |
grx_setmode(modenum); |
drawInterface(); |
//Analog output section set up |
296,24 → 283,25 |
void close_event(void *arg) |
{ |
grx_close(); |
switch(sys){ |
case 0 : cprintf("Regular End\n"); break; |
case 1 : cprintf("End fun invoked\n"); break; |
case 10: cprintf("Pci bus not found\n"); break; |
case 11: cprintf("No National board found\n"); break; |
case 20: cprintf("Cannot initialize graphic envirorment\n"); break; |
case 21: cprintf("Cannot start envirorment in 800x600x16\n"); break; |
case 30: cprintf("Cannot create task <voltage>\n"); break; |
case 31: cprintf("Canot create task <DAC Check>\n"); break; |
case 40: cprintf("Break on clock end event\n"); break; |
default: cprintf("Unkwon exit event\n"); break; |
case 0 : sys_shutdown_message("Regular End\n"); break; |
case 1 : sys_shutdown_message("End fun invoked\n"); break; |
case 10: sys_shutdown_message("Pci bus not found\n"); break; |
case 11: sys_shutdown_message("No National board found\n"); break; |
case 20: sys_shutdown_message("Cannot initialize graphic envirorment\n"); break; |
case 21: sys_shutdown_message("Cannot start envirorment in 800x600x16\n"); break; |
case 30: sys_shutdown_message("Cannot create task <voltage>\n"); break; |
case 31: sys_shutdown_message("Canot create task <DAC Check>\n"); break; |
case 40: sys_shutdown_message("Break on clock end event\n"); break; |
default: sys_shutdown_message("Unkwon exit event\n"); break; |
} |
} |
void endfun(KEY_EVT *k) |
{ |
sys = 1; |
close_event(NULL); |
sys_end(); |
} |
/demos/trunk/pci6025e/test_ec.c |
---|
43,9 → 43,10 |
*/ |
#include <kernel/kern.h> |
#include <drivers/keyb.h> |
#include <drivers/glib.h> |
#include <drivers/shark_keyb26.h> |
#include <drivers/shark_fb26.h> |
#include <drivers/pci6025e/timer.h> |
#include <drivers/pci6025e/dio_ppi.h> |
78,7 → 79,7 |
KEY_EVT k; |
SOFT_TASK_MODEL show_per_mod, show_aper_mod; |
PID show_per_pid; |
int result, modenum; |
int result; |
DWORD init_val_c0, init_val_c1; |
if(argc >= 3){ |
97,19 → 98,19 |
init_val_c1 = 0x00000000; |
} |
sys_atrunlevel(close_event, NULL, RUNLEVEL_BEFORE_EXIT); |
k.flag = CNTL_BIT; |
k.scan = KEY_X; |
k.ascii = 'x'; |
keyb_hook(k, endfun); |
k.status = KEY_PRESSED; |
keyb_hook(k, endfun, FALSE); |
k.flag = CNTR_BIT; |
keyb_hook(k, endfun); |
k.status = KEY_PRESSED; |
keyb_hook(k, endfun, FALSE); |
soft_task_default_model(show_aper_mod); |
soft_task_def_aperiodic(show_aper_mod); |
soft_task_def_level(show_aper_mod, 1); |
soft_task_def_level(show_aper_mod, 2); |
soft_task_def_period(show_aper_mod, 250000); |
soft_task_def_met(show_aper_mod, 30000); |
soft_task_def_wcet(show_aper_mod, 60000); |
121,19 → 122,22 |
k.flag = 0; |
k.scan = KEY_S; |
k.ascii = 's'; |
keyb_hook(k, show_evt); |
k.status = KEY_PRESSED; |
keyb_hook(k, show_evt, FALSE); |
k.flag = 0; |
k.scan = KEY_G; |
k.ascii = 'g'; |
keyb_hook(k, gate_change); |
k.status = KEY_PRESSED; |
keyb_hook(k, gate_change, FALSE); |
k.scan = KEY_H; |
k.ascii = 'h'; |
keyb_hook(k, gate_change); |
k.status = KEY_PRESSED; |
keyb_hook(k, gate_change, FALSE); |
soft_task_default_model(show_per_mod); |
soft_task_def_level(show_per_mod, 1); |
soft_task_def_level(show_per_mod, 2); |
soft_task_def_met(show_per_mod, 1000); |
soft_task_def_period(show_per_mod, 10000); |
if( (show_per_pid = task_create("Show periodic task", show_per, &show_per_mod, NULL)) == NIL){ |
141,28 → 145,11 |
sys_end(); |
} |
if(pci_init()==-1){ |
sys = 20; |
sys_end(); |
} |
if(!reMap()){ |
sys = 21; |
sys_end(); |
} |
if(grx_init()==-1){ |
sys = 30; |
sys_end(); |
} |
if( (modenum = grx_getmode(800, 600, 16)) == -1){ |
sys = 31; |
sys_end(); |
} |
grx_setmode(modenum); |
drawInterface(); |
//Init DIO lines used to manage counters gates |
314,6 → 301,8 |
void endfun(KEY_EVT *k) |
{ |
close_event(NULL); |
sys_end(); |
} |
348,19 → 337,17 |
void close_event(void *arg) |
{ |
TIM_disarm(2); //Disable both two counters |
grx_close(); |
handler_remove(INT_NO); |
switch(sys){ |
case 0: cprintf("OK\n"); break; |
case 10: cprintf("Task <show aperiodic> down\n"); break; |
case 11: cprintf("Task <show periodic> down\n"); break; |
case 20: cprintf("No PCI bus\n"); break; |
case 21: cprintf("No National board on PCI bus\n"); break; |
case 30: cprintf("No graphic can be initialized\n"); break; |
case 31: cprintf("This graphic mode cannot be supported\n"); break; |
default: cprintf("???????????\n"); break; |
case 0: sys_shutdown_message("OK\n"); break; |
case 10: sys_shutdown_message("Task <show aperiodic> down\n"); break; |
case 11: sys_shutdown_message("Task <show periodic> down\n"); break; |
case 20: sys_shutdown_message("No PCI bus\n"); break; |
case 21: sys_shutdown_message("No National board on PCI bus\n"); break; |
case 30: sys_shutdown_message("No graphic can be initialized\n"); break; |
case 31: sys_shutdown_message("This graphic mode cannot be supported\n"); break; |
default: sys_shutdown_message("???????????\n"); break; |
} |
} |
/demos/trunk/pci6025e/test_ppi.c |
---|
37,8 → 37,9 |
#include <drivers/keyb.h> |
#include <drivers/glib.h> |
#include <drivers/shark_keyb26.h> |
#include <drivers/shark_fb26.h> |
#include <drivers/pci6025e/dio_ppi.h> |
void exit_fun(KEY_EVT *); |
53,19 → 54,17 |
HARD_TASK_MODEL m; |
KEY_EVT k; |
PID pid_m; |
int modenum; |
sys_atrunlevel(close_event, NULL, RUNLEVEL_BEFORE_EXIT); |
keyb_set_map(itaMap); |
k.flag = CNTL_BIT; |
k.scan = KEY_C; |
k.ascii = 'c'; |
keyb_hook(k, exit_fun); |
k.status = KEY_PRESSED; |
keyb_hook(k, exit_fun, FALSE); |
k.flag = CNTR_BIT; |
k.scan = KEY_C; |
k.ascii = 'c'; |
keyb_hook(k, exit_fun); |
k.status = KEY_PRESSED; |
keyb_hook(k, exit_fun, FALSE); |
hard_task_default_model(m); |
hard_task_def_wcet(m, 90000); |
76,29 → 75,15 |
sys_end(); |
} |
//Check if PCI bus is present |
if(pci_init() == -1){ |
system = 20; |
sys_end(); |
} |
//Look for a National board on PCI bus |
//Look for a National board on PCI bus |
if(!reMap()){ |
system = 21; |
sys_end(); |
} |
//Start configuring DIO module |
//Start configuring DIO module |
PPI_init(); |
grx_init(); |
modenum = grx_getmode(640, 480, 16); |
if(modenum == -1){ |
system = 30; |
sys_end(); |
} |
grx_setmode(modenum); |
draw_screen(); |
task_activate(pid_m); |
170,14 → 155,13 |
void close_event(void *arg) |
{ |
grx_close(); |
switch(system){ |
case 0: kern_printf("Regular end\n"); break; |
case 10:kern_printf("Cannot create task 'TEST PPI'\n"); break; |
case 20:kern_printf("Pci bus don't find\n"); break; |
case 21:kern_printf("No National board on PC\n"); break; |
case 30:kern_printf("Cannot start graphic envirorment\n"); break; |
default: kern_printf("Unknown exit\n"); break; |
case 0: sys_shutdown_message("Regular end\n"); break; |
case 10:sys_shutdown_message("Cannot create task 'TEST PPI'\n"); break; |
case 20:sys_shutdown_message("Pci bus don't find\n"); break; |
case 21:sys_shutdown_message("No National board on PC\n"); break; |
case 30:sys_shutdown_message("Cannot start graphic envirorment\n"); break; |
default: sys_shutdown_message("Unknown exit\n"); break; |
} |
} |
184,6 → 168,9 |
void exit_fun(KEY_EVT *k) |
{ |
system = 0; |
close_event(NULL); |
sys_end(); |
} |
/demos/trunk/pci6025e/test_bec.c |
---|
41,9 → 41,10 |
*/ |
#include <kernel/kern.h> |
#include <drivers/keyb.h> |
#include <drivers/glib.h> |
#include <drivers/shark_keyb26.h> |
#include <drivers/shark_fb26.h> |
#include <drivers/pci6025e/timer.h> |
#include <drivers/pci6025e/dio_ppi.h> |
70,7 → 71,7 |
KEY_EVT k; |
SOFT_TASK_MODEL show_per_mod, show_aper_mod; |
PID show_per_pid; |
int result, modenum; |
int result; |
DWORD init_val_c0, init_val_c1; |
if(argc >= 3){ |
89,19 → 90,19 |
init_val_c1 = 0x00000000; |
} |
sys_atrunlevel(close_event, NULL, RUNLEVEL_BEFORE_EXIT); |
k.flag = CNTL_BIT; |
k.scan = KEY_X; |
k.ascii = 'x'; |
keyb_hook(k, endfun); |
k.status = KEY_PRESSED; |
keyb_hook(k, endfun, FALSE); |
k.flag = CNTR_BIT; |
keyb_hook(k, endfun); |
k.status = KEY_PRESSED; |
keyb_hook(k, endfun, FALSE); |
soft_task_default_model(show_aper_mod); |
soft_task_def_aperiodic(show_aper_mod); |
soft_task_def_level(show_aper_mod, 1); |
soft_task_def_level(show_aper_mod, 2); |
soft_task_def_period(show_aper_mod, 250000); |
soft_task_def_met(show_aper_mod, 30000); |
soft_task_def_wcet(show_aper_mod, 60000); |
113,19 → 114,22 |
k.flag = 0; |
k.scan = KEY_S; |
k.ascii = 's'; |
keyb_hook(k, show_evt); |
k.status = KEY_PRESSED; |
keyb_hook(k, show_evt, FALSE); |
k.flag = 0; |
k.scan = KEY_G; |
k.ascii = 'g'; |
keyb_hook(k, gate_change); |
k.status = KEY_PRESSED; |
keyb_hook(k, gate_change, FALSE); |
k.scan = KEY_H; |
k.ascii = 'h'; |
keyb_hook(k, gate_change); |
k.status = KEY_PRESSED; |
keyb_hook(k, gate_change, FALSE); |
soft_task_default_model(show_per_mod); |
soft_task_def_level(show_per_mod, 1); |
soft_task_def_level(show_per_mod, 2); |
soft_task_def_met(show_per_mod, 1000); |
soft_task_def_period(show_per_mod, 10000); |
if( (show_per_pid = task_create("Show periodic task", show_per, &show_per_mod, NULL)) == NIL){ |
133,28 → 137,11 |
sys_end(); |
} |
if(pci_init()==-1){ |
sys = 20; |
sys_end(); |
} |
if(!reMap()){ |
sys = 21; |
sys_end(); |
} |
if(grx_init()==-1){ |
sys = 30; |
sys_end(); |
} |
if( (modenum = grx_getmode(800, 600, 16)) == -1){ |
sys = 31; |
sys_end(); |
} |
grx_setmode(modenum); |
drawInterface(); |
DIO_init(); |
286,6 → 273,8 |
void endfun(KEY_EVT *k) |
{ |
close_event(NULL); |
sys_end(); |
} |
320,17 → 309,16 |
void close_event(void *arg) |
{ |
TIM_disarm(2); //Disable both two counters |
grx_close(); |
switch(sys){ |
case 0: cprintf("OK\n"); break; |
case 10: cprintf("Task <show aperiodic> down\n"); break; |
case 11: cprintf("Task <show periodic> down\n"); break; |
case 20: cprintf("No PCI bus\n"); break; |
case 21: cprintf("No National board on PCI bus\n"); break; |
case 30: cprintf("No graphic can be initialized\n"); break; |
case 31: cprintf("This graphic mode cannot be supported\n"); break; |
default: cprintf("???????????\n"); break; |
case 0: sys_shutdown_message("OK\n"); break; |
case 10: sys_shutdown_message("Task <show aperiodic> down\n"); break; |
case 11: sys_shutdown_message("Task <show periodic> down\n"); break; |
case 20: sys_shutdown_message("No PCI bus\n"); break; |
case 21: sys_shutdown_message("No National board on PCI bus\n"); break; |
case 30: sys_shutdown_message("No graphic can be initialized\n"); break; |
case 31: sys_shutdown_message("This graphic mode cannot be supported\n"); break; |
default: sys_shutdown_message("???????????\n"); break; |
} |
} |
/* End of file: Test_bec.c */ |
/demos/trunk/pci6025e/test_dio.c |
---|
36,8 → 36,11 |
* |
*/ |
#include <drivers/glib.h> |
#include <drivers/keyb.h> |
#include <kernel/kern.h> |
#include <drivers/shark_fb26.h> |
#include <drivers/shark_keyb26.h> |
#include <drivers/pci6025e/dio_ppi.h> |
BYTE system = 0; |
47,25 → 50,22 |
void exit_fun(KEY_EVT *); |
void draw_screen(void); |
int main(int argc, char **argv) |
{ |
HARD_TASK_MODEL m; |
KEY_EVT k; |
PID pid_m; |
int modenum; |
sys_atrunlevel(close_event, NULL, RUNLEVEL_BEFORE_EXIT); |
keyb_set_map(itaMap); |
k.flag = CNTL_BIT; |
k.scan = KEY_C; |
k.ascii = 'c'; |
keyb_hook(k, exit_fun); |
k.status = KEY_PRESSED; |
keyb_hook(k, exit_fun, FALSE); |
k.flag = CNTR_BIT; |
k.scan = KEY_C; |
k.ascii = 'c'; |
keyb_hook(k, exit_fun); |
k.status = KEY_PRESSED; |
keyb_hook(k, exit_fun, FALSE); |
hard_task_default_model(m); |
hard_task_def_wcet(m, 90000); |
76,29 → 76,15 |
sys_end(); |
} |
//Check if PCI bus is present |
if(pci_init() == -1){ |
system = 20; |
sys_end(); |
} |
//Look for a National board on PCI bus |
//Look for a National board on PCI bus |
if(!reMap()){ |
system = 21; |
sys_end(); |
} |
//Start configuring DIO module |
//Start configuring DIO module |
DIO_init(); |
grx_init(); |
modenum = grx_getmode(640, 480, 16); |
if(modenum == -1){ |
system = 30; |
sys_end(); |
} |
grx_setmode(modenum); |
draw_screen(); |
task_activate(pid_m); |
165,14 → 151,12 |
void close_event(void *arg) |
{ |
grx_close(); |
switch(system){ |
case 0: kern_printf("Regular end\n"); break; |
case 10:kern_printf("Cannot create task TEST DIO\n"); break; |
case 20:kern_printf("Pci bus don't find\n"); break; |
case 21:kern_printf("No National board on PC\n"); break; |
case 30:kern_printf("Cannot start graphic envirorment\n"); break; |
default: kern_printf("Unknown exit\n"); break; |
case 0: sys_shutdown_message("Regular end\n"); break; |
case 10:sys_shutdown_message("Cannot create task TEST DIO\n"); break; |
case 21:sys_shutdown_message("No National board on PC\n"); break; |
case 30:sys_shutdown_message("Cannot start graphic envirorment\n"); break; |
default: sys_shutdown_message("Unknown exit\n"); break; |
} |
} |
179,6 → 163,9 |
void exit_fun(KEY_EVT *k) |
{ |
system = 0; |
close_event(NULL); |
sys_end(); |
} |
/demos/trunk/pci6025e/makefile |
---|
14,19 → 14,19 |
include $(BASE)/config/example.mk |
test_dac: |
make -f $(SUBMAKE) APP=test_dac OTHEROBJS=initfile.o SHARKOPT="__6025E__ __OLDCHAR__ __GRX__" |
make -f $(SUBMAKE) APP=test_dac OTHEROBJS=initfile.o SHARKOPT="__LINUXC26__ __PCI__ __6025E__ __INPUT__ __FB__" |
wave: |
make -f $(SUBMAKE) APP=wave OTHEROBJS=initfile.o SHARKOPT="__6025E__ __OLDCHAR__ __GRX__" |
make -f $(SUBMAKE) APP=wave OTHEROBJS=initfile.o SHARKOPT="__LINUXC26__ __PCI__ __6025E__ __INPUT__ __FB__" |
test_dio: |
make -f $(SUBMAKE) APP=test_dio OTHEROBJS=initfile.o SHARKOPT="__6025E__ __OLDCHAR__ __GRX__" |
make -f $(SUBMAKE) APP=test_dio OTHEROBJS=initfile.o SHARKOPT="__LINUXC26__ __PCI__ __6025E__ __INPUT__ __FB__" |
test_ppi: |
make -f $(SUBMAKE) APP=test_ppi OTHEROBJS=initfile.o SHARKOPT="__6025E__ __OLDCHAR__ __GRX__" |
make -f $(SUBMAKE) APP=test_ppi OTHEROBJS=initfile.o SHARKOPT="__LINUXC26__ __PCI__ __6025E__ __INPUT__ __FB__" |
test_ec: |
make -f $(SUBMAKE) APP=test_ec OTHEROBJS=initfile.o SHARKOPT="__6025E__ __OLDCHAR__ __GRX__" |
make -f $(SUBMAKE) APP=test_ec OTHEROBJS=initfile.o SHARKOPT="__LINUXC26__ __PCI__ __6025E__ __INPUT__ __FB__" |
test_bec: |
make -f $(SUBMAKE) APP=test_bec OTHEROBJS=initfile.o SHARKOPT="__6025E__ __OLDCHAR__ __GRX__" |
make -f $(SUBMAKE) APP=test_bec OTHEROBJS=initfile.o SHARKOPT="__LINUXC26__ __PCI__ __6025E__ __INPUT__ __FB__" |
test_mes: |
make -f $(SUBMAKE) APP=test_mes OTHEROBJS=initfile.o SHARKOPT="__6025E__ __OLDCHAR__ __GRX__" |
make -f $(SUBMAKE) APP=test_mes OTHEROBJS=initfile.o SHARKOPT="__LINUXC26__ __PCI__ __6025E__ __INPUT__ __FB__" |
test_bms: |
make -f $(SUBMAKE) APP=test_bms OTHEROBJS=initfile.o SHARKOPT="__6025E__ __OLDCHAR__ __GRX__" |
make -f $(SUBMAKE) APP=test_bms OTHEROBJS=initfile.o SHARKOPT="__LINUXC26__ __PCI__ __6025E__ __INPUT__ __FB__" |