projects
/
my-code
/
pnx.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
6b2243d
)
implemented set ir stuff
master
author
hackbard
<hackbard@sage.physik.uni-augsburg.de>
Mon, 28 Mar 2011 11:33:48 +0000
(13:33 +0200)
committer
hackbard
<hackbard@sage.physik.uni-augsburg.de>
Mon, 28 Mar 2011 11:33:48 +0000
(13:33 +0200)
jtag.c
patch
|
blob
|
history
diff --git
a/jtag.c
b/jtag.c
index
2497cf7
..
9d05d5f
100644
(file)
--- a/
jtag.c
+++ b/
jtag.c
@@
-1,6
+1,7
@@
/*
* jtag.c - basic jtag stuff (good excercise!)
*
/*
* jtag.c - basic jtag stuff (good excercise!)
*
+ * build: gcc -Wall jtag.c -o jtag
* author: hackbard@hackdaworld.org
*
*/
* author: hackbard@hackdaworld.org
*
*/
@@
-164,12
+165,15
@@
int jtag_read_data(u8 *p,int bitlen) {
memset(p,0,bitlen+7/8);
count=0;
memset(p,0,bitlen+7/8);
count=0;
+ printf(" <- ");
while(bitlen) {
in=jtag_clock(0,0);
p[count/8]|=((in&1)<<(count%8));
while(bitlen) {
in=jtag_clock(0,0);
p[count/8]|=((in&1)<<(count%8));
+ printf("%d",p[count/8]&(1<<(count%8))?1:0);
count+=1;
bitlen-=1;
}
count+=1;
bitlen-=1;
}
+ printf("\n");
return 0;
return 0;
@@
-181,11
+185,14
@@
int jtag_write_data(u8 *p,int bitlen) {
count=0;
count=0;
+ printf(" -> ");
while(bitlen) {
while(bitlen) {
- jtag_clock(0,p[count/8]&(1<<count)?1:0);
+ jtag_clock(0,p[count/8]&(1<<(count%8))?1:0);
+ printf("%d",p[count/8]&(1<<(count%8))?1:0);
bitlen-=1;
count+=1;
}
bitlen-=1;
count+=1;
}
+ printf("\n");
return 0;
return 0;
@@
-239,18
+246,20
@@
int jtag_set_ir(char *s,int bitlen) {
}
memset(ir,0,MAXDEV*MAXIRLEN/8*sizeof(u8));
}
memset(ir,0,MAXDEV*MAXIRLEN/8*sizeof(u8));
+ count=0;
- printf("
ir to set
: ");
+ printf("
set ir
: ");
while(bitlen) {
while(bitlen) {
- ir[count/8]|=(s[count]<<(count%8));
- printf("%d",ir[count/8]&(1<<count%8)?1:0);
+ if(s[count]=='1')
+ ir[count/8]|=(1<<(count%8));
+ printf("%d",ir[count/8]&(1<<(count%8))?1:0);
count+=1;
bitlen-=1;
}
printf("\n");
jtag_enter_shift_ir();
count+=1;
bitlen-=1;
}
printf("\n");
jtag_enter_shift_ir();
- jtag_write_data(ir,
bitlen
);
+ jtag_write_data(ir,
count
);
jtag_leave_shift_ir();
return 0;
jtag_leave_shift_ir();
return 0;
@@
-261,7
+270,6
@@
int main(int argc,char **argv) {
t_jtag jtag;
u8 io[256];
t_jtag jtag;
u8 io[256];
- int i;
memset(&jtag,0,sizeof(t_jtag));
memset(&jtag,0,sizeof(t_jtag));
@@
-281,10
+289,6
@@
int main(int argc,char **argv) {
jtag_set_ir("000001000001",12);
jtag_enter_shift_dr();
jtag_read_data(io,64);
jtag_set_ir("000001000001",12);
jtag_enter_shift_dr();
jtag_read_data(io,64);
- for(i=0;i<64;i++) {
- printf("%d",io[i/8]&(1<<(i%8))?1:0);
- }
- printf("\n");
jtag_leave_shift_dr();
return 0;
jtag_leave_shift_dr();
return 0;