OpenCores
URL https://opencores.org/ocsvn/ftdi_wb_bridge/ftdi_wb_bridge/trunk

Subversion Repositories ftdi_wb_bridge

[/] [ftdi_wb_bridge/] [trunk/] [sw/] [peek.c] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 ultra_embe
#include <stdio.h>
2
#include <string.h>
3
#include <stdlib.h>
4
#include <unistd.h>
5
#include "ftdi_hw.h"
6
 
7
//-----------------------------------------------------------------
8
// Defines:
9
//-----------------------------------------------------------------
10
#define DEFAULT_FTDI_IFACE  1
11
 
12
//-----------------------------------------------------------------
13
// main:
14
//-----------------------------------------------------------------
15
int main(int argc, char *argv[])
16
{
17
    int err = 0;
18
    int c;
19
    int help = 0;
20
    int ftdi_iface = DEFAULT_FTDI_IFACE;
21
    uint32_t addr = 0xFFFFFFFF;
22
    uint32_t value = 0;
23
    int quiet = 0;
24
 
25
    while ((c = getopt (argc, argv, "a:i:q")) != -1)
26
    {
27
        switch(c)
28
        {
29
            case 'a':
30
                 addr = (uint32_t)strtoul(optarg, NULL, 0);
31
                 break;
32
            case 'i':
33
                 ftdi_iface = (int)strtol(optarg, NULL, 0);
34
                 break;
35
            case 'q':
36
                quiet = 1;
37
                break;
38
            default:
39
                help = 1;
40
                break;
41
        }
42
    }
43
 
44
    if (help || addr == 0xFFFFFFFF)
45
    {
46
        fprintf (stderr,"Usage:\n");
47
        fprintf (stderr,"-a 0xNNNNNNNN     = Address to read\n");
48
        fprintf (stderr,"-i id             = FTDI interface ID (0 = A, 1 = B)\n");
49
        fprintf (stderr,"-q                = Quiet mode (data returned via return value)\n");
50
 
51
        exit(-1);
52
    }
53
 
54
    // Try and communicate with FTDI interface
55
    if (ftdi_hw_init(ftdi_iface) != 0)
56
    {
57
        fprintf(stderr, "ERROR: Could not open FTDI interface, try SUDOing / check connection\n");
58
        exit(-2);
59
    }
60
 
61
    if (ftdi_hw_mem_read_word(addr, &value) != sizeof(value))
62
    {
63
        fprintf(stderr, "ERROR: Could not read from device\n");
64
        err = 1;
65
    }
66
 
67
    if (!quiet)
68
    {
69
        printf("Read 0x%x from 0x%x\n", value, addr);
70
        value = 0;
71
    }
72
 
73
    ftdi_hw_close();
74
 
75
    return err ? -1 : value;
76
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.