demonstrates SYNC_2V mode. More...
#include "local.h"
#include <assert.h>
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <fcntl.h>
#include <sys/ioctl.h>
#include <sys/mman.h>
#include <sys/stat.h>
#include <sys/time.h>
#include <sys/types.h>
#include <unistd.h>
#include <popt.h>
#include "acq32ioctl.h"
#include "acq32busprot.h"
#include "llif.h"
#include "llprotocol.h"
#include "llcontrol.h"
#include "x86timer.h"
#include "llcontrol-core.h"
Go to the source code of this file.
Defines | |
#define | FLAVOR "ACQ196" |
#define | SAMPLE_SIZE (96*2) |
#define | EACHBBB (dac_buf[icard].bbb) |
#define | EACHDAC_BASE (EACHBBB + LLCV2_AO_HSBS) |
#define | EACHDAC_BASE16 ((u16*)EACHDAC_BASE) |
#define | V2SETDACS(src, icard) memcpy(EACHDAC_BASE, (src)+(icard)*32, DAC_SAMPLE_SIZE) |
#define | OFFSET 0 |
Functions | |
static void | sync_2v_updateTstats (u32 cmd, struct Card *card, struct TimingStats *tstats) |
updates timing stats from embedded host buffer data | |
static u32 | card_sync_2v_WaitDmaDone (struct Card *card) |
void | appEnterLLC_SYNC_2V (int icard, struct MU *mu, struct TestDescription *td) |
set up LLCV2_INIT buffer and enter mode. | |
int | runSYNC_2V (struct TestDescription *td, int soft_clock) |
runs the test SYNC_2V mode. |
demonstrates SYNC_2V mode.
Definition in file llcontrol-sync2v-core.c.
#define EACHBBB (dac_buf[icard].bbb) |
#define EACHDAC_BASE (EACHBBB + LLCV2_AO_HSBS) |
#define EACHDAC_BASE16 ((u16*)EACHDAC_BASE) |
#define FLAVOR "ACQ196" |
Definition at line 67 of file llcontrol-sync2v-core.c.
#define OFFSET 0 |
Referenced by runSYNC_2V(), runSYNC_2VAO32(), and runSYNC_ECM().
#define SAMPLE_SIZE (96*2) |
#define V2SETDACS | ( | src, | ||
icard | ||||
) | memcpy(EACHDAC_BASE, (src)+(icard)*32, DAC_SAMPLE_SIZE) |
Referenced by runSYNC_2V(), runSYNC_2VAO32(), and runSYNC_ECM().
void appEnterLLC_SYNC_2V | ( | int | icard, | |
struct MU * | mu, | |||
struct TestDescription * | td | |||
) |
set up LLCV2_INIT buffer and enter mode.
Buffer set up as 4K block at offset 0
set up for single 4K buffer
uses V2 synchronization
Definition at line 90 of file llcontrol-sync2v-core.c.
References TestDescription::arg, TestDescription::cards, TestDescription::channels, TestDescription::clkpos, commandModifiers(), TestDescription::ARG::divisor, EACHBUF, enterLLC_SYNC_ECM(), getBusAddr(), getVaddr(), TestDescription::internal_loopback, LLCV2_AI_HSBT, llcv2_hb_offset, PRINTF, short, Card::sync_2v_offset_status_hsbt, Card::tlatch, TestDescription::trpos, updateTstats, and waitDmaDone.
Referenced by runTest().
Definition at line 82 of file llcontrol-sync2v-core.c.
References Card::buf, getVaddr(), llv2WaitDmaDone_2v(), Card::mbx, Card::sync_2v_offset_status_hsbt, and Card::tlatch.
int runSYNC_2V | ( | struct TestDescription * | td, | |
int | soft_clock | |||
) |
runs the test SYNC_2V mode.
PSEUDO-CODE:
(b.2)
Definition at line 127 of file llcontrol-sync2v-core.c.
References DAC_COUNT, TestDescription::decimation, TestDescription::do_work, doApplicationWork(), EACHBBB, EACHBUF, EACHCARD, EACHDAC_BASE, EACHDAC_BASE16, EACHMBX, TestDescription::feedback, TestDescription::feedback_channel, FIRSTBUF, FIRSTMBX, FOREACHCARD, FOREACHCARD_MARK_TIME, G_quit, getBusAddr(), getMboxPollcount(), getVaddr(), TestDescription::hardware_gate_off, icard, TestDescription::iter, TestDescription::iterations, LLC_CSR_M_ARM, LLC_CSR_M_SOFTCLOCK, LLC_MAKE_DECIM, llCounterRunning(), LLCV2_AO_HSBS, llSetCmd(), llSetTlatch(), llv2InitDmaDone(), MARK_TIME, memset32(), TestDescription::min_latency_test, OFFSET, POLLALERT, PRINTF, TestDescription::stats_buf, TimingStats::target_poll, td_get_next_dac_data(), TimingStats::tlatch, TestDescription::tlog, TestDescription::update_dacs, updateTargetAddr(), updateTimingStats(), updateTstats, V2SETDACS, and waitDmaDone.
Referenced by runTest().
static void sync_2v_updateTstats | ( | u32 | cmd, | |
struct Card * | card, | |||
struct TimingStats * | tstats | |||
) | [static] |
updates timing stats from embedded host buffer data
Definition at line 71 of file llcontrol-sync2v-core.c.
References Card::buf, getVaddr(), LLC_GET_TCYCLE, LLC_SYNC2V_IN_MBOX0, LLC_SYNC2V_IN_MBOX2, LLC_SYNC2V_IN_TINST, llv2_extend32(), Card::sync_2v_offset_status_hsbt, TimingStats::tinst, and TimingStats::tprocess.