RocketLogger  1.0
pru.c File Reference
#include "pru.h"
+ Include dependency graph for pru.c:

Go to the source code of this file.

Macros

#define _FILE_OFFSET_BITS   64
 

Functions

void * pru_wait_event (void *voidEvent)
 
int pru_wait_event_timeout (unsigned int event, unsigned int timeout)
 
void * map_pru_memory (void)
 
int unmap_pru_memory (void *pru_mmap)
 
void pru_set_state (rl_pru_state state)
 
int pru_init (void)
 
int pru_data_setup (struct pru_data_struct *pru, struct rl_conf *conf, uint32_t avg_factor)
 
int pru_sample (FILE *data, struct rl_conf *conf)
 
void pru_stop (void)
 
void pru_close (void)
 

Variables

pthread_mutex_t waiting = PTHREAD_MUTEX_INITIALIZER
 PRU access mutex. More...
 
pthread_cond_t done = PTHREAD_COND_INITIALIZER
 Notification variable. More...
 

Macro Definition Documentation

#define _FILE_OFFSET_BITS   64

Copyright (c) 2016-2017, ETH Zurich, Computer Engineering Group

Definition at line 5 of file pru.c.

Function Documentation

void* map_pru_memory ( void  )

Map PRU memory into user space

Definition at line 75 of file pru.c.

References ERROR, MMAP_FILE, read_file_value(), and rl_log().

Referenced by pru_sample().

+ Here is the call graph for this function:

void pru_close ( void  )

Disable PRU

Definition at line 582 of file pru.c.

Referenced by hw_close().

int pru_data_setup ( struct pru_data_struct pru,
struct rl_conf conf,
uint32_t  avg_factor 
)
int pru_init ( void  )

PRU initiation

Returns
SUCCESS on success, FAILURE otherwise

Definition at line 139 of file pru.c.

References ERROR, FAILURE, rl_log(), and SUCCESS.

Referenced by hw_init().

+ Here is the call graph for this function:

int pru_sample ( FILE *  data,
struct rl_conf conf 
)

Main PRU sampling function

Parameters
dataFile pointer to data file
confPointer to current rl_conf configuration
Returns
SUCCESS on success, FAILURE otherwise

Definition at line 266 of file pru.c.

References BIN, web_shm::buffer, BUFFER100_SIZE, BUFFER10_SIZE, BUFFER1_SIZE, rl_status::buffer_number, pru_data_struct::buffer_size, buffer_sizes, ceil_div(), rl_file_header::channel, rl_file_lead_in::channel_bin_count, rl_file_lead_in::channel_count, CHANNEL_ENABLED, rl_conf::channels, count_channels(), create_sem(), create_web_shm(), CSV, rl_file_lead_in::data_block_count, DATA_SEM, rl_conf::digital_inputs, DIGITAL_INPUTS_ENABLED, rl_conf::enable_web_server, ERROR, FAILURE, rl_conf::file_format, rl_conf::file_name, handle_data_buffer(), I1H_INDEX, I1L_INDEX, I2H_INDEX, I2L_INDEX, INFO, rl_file_header::lead_in, LIMIT, map_pru_memory(), rl_conf::max_file_size, MAX_PATH_LENGTH, METER, meter_init(), meter_print_buffer(), meter_stop(), MIN_ADC_RATE, MMAP_FILE, rl_conf::mode, NO_FILE, web_shm::num_channels, NUM_CHANNELS, NUM_DIGITAL_INPUTS, NUM_WEB_POINTS, PRU_BUFFER_STATUS_SIZE, PRU_CODE, pru_data_setup(), PRU_DIG_SIZE, PRU_OFF, PRU_TIMEOUT, pru_wait_event_timeout(), read_file_value(), remove_sem(), reset_buffer(), RL_ERROR, rl_log(), RL_RUNNING, rl_file_lead_in::sample_count, pru_data_struct::sample_limit, rl_conf::sample_limit, rl_conf::sample_rate, pru_data_struct::sample_size, rl_status::samples_taken, rl_status::sampling, SAMPLING_ON, sem_id, set_sem(), setup_header(), setup_lead_in(), pru_data_struct::state, rl_status::state, status, store_header_bin(), store_header_csv(), SUCCESS, unmap_pru_memory(), update_header_bin(), update_header_csv(), WAIT_SEM, WARNING, web_data, WEB_RING_BUFFER_COUNT, and write_status().

Referenced by hw_sample().

+ Here is the call graph for this function:

void pru_set_state ( rl_pru_state  state)

Write state to PRU

Parameters
statePRU state to write

Definition at line 129 of file pru.c.

Referenced by pru_stop().

void pru_stop ( void  )

Stop and shut down PRU operation

Definition at line 567 of file pru.c.

References PRU_OFF, pru_set_state(), PRU_TIMEOUT, pru_wait_event_timeout(), RL_ERROR, rl_status::state, and status.

Referenced by hw_close().

+ Here is the call graph for this function:

void* pru_wait_event ( void *  voidEvent)

Wait on PRU event

Parameters
voidEventPRU event to wait on

Definition at line 21 of file pru.c.

References done.

Referenced by pru_wait_event_timeout().

int pru_wait_event_timeout ( unsigned int  event,
unsigned int  timeout 
)

Wrapper for PRU event waiting with time out

Parameters
eventPRU event to wait on
timeoutTime out in seconds
Returns
error code of pthread timedwait function

Definition at line 44 of file pru.c.

References done, pru_wait_event(), and waiting.

Referenced by pru_sample(), and pru_stop().

+ Here is the call graph for this function:

int unmap_pru_memory ( void *  pru_mmap)

Unmap PRU memory from user space

Parameters
pru_mmapPointer to mapped memory
Returns
SUCCESS on success, FAILURE otherwise

Definition at line 106 of file pru.c.

References ERROR, FAILURE, MMAP_FILE, read_file_value(), rl_log(), and SUCCESS.

Referenced by pru_sample().

+ Here is the call graph for this function:

Variable Documentation

pthread_cond_t done = PTHREAD_COND_INITIALIZER

Notification variable.

Definition at line 15 of file pru.c.

Referenced by pru_wait_event(), and pru_wait_event_timeout().

pthread_mutex_t waiting = PTHREAD_MUTEX_INITIALIZER

PRU access mutex.

Definition at line 12 of file pru.c.

Referenced by pru_wait_event_timeout().