scs_main.c File Reference

#include "scs_fp_queue.h"
#include "scs_freq.h"
#include "scs_pc_uart.h"
#include "scs_io_uart.h"
#include "scs_timer.h"
#include "scs_vs.h"
#include "scs_events.h"
#include "altera_avalon_pio_regs.h"
#include "system.h"
#include "sys/alt_irq.h"

Functions

void start_capture (void)
 SimCardSniffer Modulo proncipal, une los modulos de la arquitectura, inicializa cada uno y pone en funcionamiento el sistema.
void stop_capture (void)
void get_events (void)
void led_on (void)
void led_off (void)
int main (void)

Variables

scs_fptr new_task
alt_irq_context context
 contexto de interrupciones, es usado para habilitar y deshabilitar todas

Function Documentation

void get_events ( void   ) 

para el envio de eventos al pc, hay que tener cuidado en que se envien mas rapido de lo que se generan de lo contrario, podria quedar esta funcion retornando eventos indefinidamente en esta implementacion, se asume que se generan eventos a una taza mucho menor que la taza de envio por tanto es seguro que esta funcion retorna en un lapso breve. TODO implementar un el control de tiempo de ejecucion de esta funcion para evaluar cuanto permanece en ejecucion TODO este control temporal podria usarse para obligar a salir de la funcion luego de cierto tiempo

envio todos los eventos de frecuencia

envio todos los eventos de cambio de pines

envio todos los eventos de lectura de IO

void led_off ( void   ) 

se supone que se cuenta con un LED_PIO que escribiendo 1s en DATA prende leds.

void led_on ( void   ) 

se supone que se cuenta con un LED_PIO que escribiendo 1s en DATA prende leds.

int main ( void   ) 

inicializacion de la cola de tareas

inicializacion del modulo de gestion de eventos

inicializacion del modulo timer para la generacion de timestamps

inicializacion del modulo de deteccion de frecuencia de CLK

inicializo el modulo de captura de datos

comienzo la captura de datos

captura de reset

inicializacion del modulo de comunicacion con el PCm, se pasa un puntero a la lista de tareas para que se encolen las acciones

el bucle obtine permanentemente las tareas de la cola y las ejecuta

el acceso a las funciones de la cola de tareas debe ser atomico por ello se deshabilitan las irq ya que las taras son asignadas desde las isr la gestion de irq podria ser local a la implementacion de la cola de tareas o se podria hacer un wrapper que agregue esa funcionalidad.

al haber una tarea, se quita de la cola para ejecutar se podria implementar tareas con prioridades modificando el funcionamiento de la cola, haciendo que devuelva la de maayor prioridad

void start_capture ( void   ) 

SimCardSniffer Modulo proncipal, une los modulos de la arquitectura, inicializa cada uno y pone en funcionamiento el sistema.

codigo de las tareas

Gestiona la cola de tareasfunciones de la cola de tareas registros de pio para prender y apagar los leds TODO poner esto en un modulo aparte para hacer portablelista de tareas ejecutables

void stop_capture ( void   ) 


Variable Documentation

alt_irq_context context

contexto de interrupciones, es usado para habilitar y deshabilitar todas


Generated on Mon Sep 15 01:00:59 2008 for SimCardSniffer by  doxygen 1.5.6