Пример #1
0
static uint64_t dsu_readDR(urj_chain_t *chain, int size, uint64_t wdata)
{
  urj_tap_register_t *rwr = urj_tap_register_alloc(size);
  urj_tap_register_t *rrd = urj_tap_register_fill(urj_tap_register_alloc(size), 0);
  uint64_t rdata;
  urj_tap_register_set_value(rwr, wdata);
  urj_tap_capture_dr(chain);
  urj_tap_shift_register(chain, rwr, rrd, URJ_CHAIN_EXITMODE_IDLE);
  rdata = urj_tap_register_get_value(rrd);
  urj_tap_register_free(rwr);
  urj_tap_register_free(rrd);
  return rdata;
}
Пример #2
0
urj_tap_register_t *
urj_tap_register_realloc (urj_tap_register_t *tr, int new_len)
{
    if (!tr)
        return urj_tap_register_alloc (new_len);

    if (new_len < 1)
    {
        urj_error_set (URJ_ERROR_INVALID, "new_len < 1");
        return NULL;
    }

    tr->data = realloc (tr->data, new_len);

    if (!tr->data)
    {
        urj_error_set (URJ_ERROR_OUT_OF_MEMORY, "realloc(%d) fails",
                       new_len);
        return NULL;
    }

    if (tr->len < new_len)
        memset (tr->data + tr->len, 0, (new_len - tr->len));

    tr->len = new_len;

    return tr;
}
Пример #3
0
static void dsu_writeDR(urj_chain_t *chain, int size, uint64_t wdata)
{
  urj_tap_register_t *rwr = urj_tap_register_alloc(size);
  urj_tap_register_set_value(rwr, wdata);
  urj_tap_capture_dr(chain);
  urj_tap_shift_register(chain, rwr, NULL, URJ_CHAIN_EXITMODE_IDLE);
  urj_tap_register_free(rwr);
}
Пример #4
0
static void dsu_writeIR(urj_chain_t *chain, int size, unsigned int val)
{
  urj_tap_register_t *rwr = urj_tap_register_alloc(size);
  urj_tap_register_set_value(rwr, val); 
  urj_tap_capture_ir(chain); 
  urj_tap_shift_register(chain, rwr, NULL, URJ_CHAIN_EXITMODE_IDLE); 
  urj_tap_register_free(rwr);

  /* urj_tap_capture_ir(chain); */
  /* urj_tap_register_set_value(wir, val); */
  /* urj_tap_shift_register(chain, wir, NULL, URJ_CHAIN_EXITMODE_IDLE); */
}
Пример #5
0
urj_tap_register_t *
urj_tap_register_duplicate (const urj_tap_register_t *tr)
{
    if (!tr)
    {
        urj_error_set (URJ_ERROR_INVALID, "tr == NULL");
        return NULL;
    }

    return urj_tap_register_init (urj_tap_register_alloc (tr->len),
                                  urj_tap_register_get_string (tr));
}
Пример #6
0
static void
tmc_print_ids(urj_chain_t *chain, int channel)
{
  urj_tap_register_t *reg = urj_tap_register_alloc(32);

  tmc_init();
  hudi_init();

  tmc_reset_tmc(chain);
 
  printf("DeviceId  = 0x%08x\n", tmc_read_DeviceId(chain));
  printf("PrivateId = 0x%08x\n", tmc_read_PrivateId(chain));
  printf("OptionId  = 0x%08x\n", tmc_read_OptionId(chain));
  printf("ExtraId   = 0x%08x\n", tmc_read_ExtraId(chain));
  printf("ChipId    = 0x%08x\n", tmc_read_chip_id(chain));

  tmc_reset_and_bypass(chain, channel);

  hudi_initialState(chain);
  hudi_printInternalStatus(chain);
  printf("SDSR = 0x%08x\n", hudi_readSDSR(chain));

  urj_tap_register_free(reg);
}
Пример #7
0
void dsu_init(void)
{
  if (dsurir == NULL) dsurir = urj_tap_register_fill(urj_tap_register_alloc(DSU_IR_LEN), 0);
  if (dsuwir == NULL) dsuwir = urj_tap_register_fill(urj_tap_register_alloc(DSU_IR_LEN), 0);
}