OpenCores
URL https://opencores.org/ocsvn/an-fpga-implementation-of-low-latency-noc-based-mpsoc/an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk

Subversion Repositories an-fpga-implementation-of-low-latency-noc-based-mpsoc

[/] [an-fpga-implementation-of-low-latency-noc-based-mpsoc/] [trunk/] [mpsoc/] [src_c/] [jtag/] [jtag_libusb/] [jconsole.c] - Blame information for rev 38

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 38 alirezamon
#include <stdio.h>
2
#include <stdlib.h>
3
#include <ctype.h>
4
#include <stdint.h>
5
#include <inttypes.h>
6
 
7
 
8
#include <unistd.h>
9
#include "jtag.h"
10
 
11
#define VIR_CTRL        0x0
12
#define VIR_ADDR        0x1
13
#define VIR_DATA        0x2
14
#define VIR_UART        0x7
15
 
16
 
17
#define UPDATE_WB_ADDR  0x7
18
#define UPDATE_WB_WR_DATA  0x6
19
#define UPDATE_WB_RD_DATA  0x5
20
#define RD_WR_STATUS    0x4
21
 
22
int main(int argc, char **argv) {
23
        //unsigned bits;
24
        //unsigned int val;
25
 
26
        //unsigned bits;
27
        uint32_t val;
28
        FILE *fp;
29
 
30
        if (argc != 2) {
31
                fprintf(stderr,"usage: download bin file\n");
32
                return -1;
33
        }
34
        fp = fopen(argv[1],"rb");
35
        if (!fp) return -1;
36
 
37
        if (jtag_open_virtual_device(126))
38
                return -1;
39
 
40
 
41
        int i=0;
42
        unsigned int out;
43
//disable the cpu
44
        jtag_vir(RD_WR_STATUS);
45
        jtag_vdr(32, 0xFFFFFFFF, &out);
46
        printf ("status=%x\n",out);
47
        getchar();
48
//
49
        jtag_vir(UPDATE_WB_WR_DATA);
50
        unsigned char ch;
51
        char cnt=0;
52
        val=0;
53
        ch=fgetc(fp);
54
        while(!feof(fp)){
55
                val<<=8;
56
                val|=ch;
57
                cnt++;
58
                printf("ch=%x\t",ch);
59
                if(cnt==4){
60
                        printf("%d:%x\n",i,val);
61
                        jtag_vdr(32, val, 0);
62
                        val=0;
63
                        cnt=0;
64
                        i++;
65
                }
66
                ch=fgetc(fp);
67
        }
68
        if( cnt>0){
69
                val<<=(8 *(4-cnt));
70
                printf("%d:%x\n",i,val);
71
                jtag_vdr(32, val, 0);
72
 
73
        }
74
 
75
 
76
        getchar();
77
/*
78
        printf ("start=\n");
79
        jtag_vir(UPDATE_WB_ADDR);
80
        jtag_vdr(32, 0, 0);
81
        jtag_vir(UPDATE_WB_WR_DATA);
82
 
83
        for(i=0;i<1000; i++){
84
                //printf ("addr=\n");
85
                //scanf("%x", &val);
86
 
87
                jtag_vdr(32, 2*i, 0);
88
                //jtag_vdr(32, 0, &out);
89
                //printf ("out=%x\n",out);
90
 
91
                printf ("data=\n");
92
                scanf("%x", &val);
93
                jtag_vir(UPDATE_WB_WR_DATA);
94
                jtag_vdr(32, val, 0);
95
 
96
                printf ("data=\n");
97
                scanf("%x", &val);
98
                jtag_vdr(32, val, 0);
99
 
100
                printf ("data=\n");
101
                scanf("%x", &val);
102
                jtag_vdr(32, val, 0);
103
 
104
 
105
        }
106
*/
107
        printf ("done programing\n");
108
        jtag_vir(UPDATE_WB_RD_DATA);
109
        jtag_vdr(32, 0, &out);
110
        for(i=1;i<1001; i++){
111
                jtag_vdr(32, i, &out);
112
                printf ("out[%d]=%x\n",i-1,out);
113
 
114
 
115
        }
116
 
117
        jtag_vir(RD_WR_STATUS);
118
        jtag_vdr(32, 0, &out);
119
        printf ("status=%x\n",out);
120
        for (;;) {
121
                /*
122
                jtag_vdr(9, 0, &bits);
123
                if (bits & 0x100) {
124
                        bits &= 0xFF;
125
                        if ((bits < ' ') || (bits > 127))
126
                                fputc('.', stderr);
127
                        else
128
                                fputc(bits, stderr);
129
                }
130
                */
131
        }
132
 
133
        return 0;
134
}
135
 

powered by: WebSVN 2.1.0

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