Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
C
Conv TTL Blocking
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
5
Issues
5
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
Wiki
Wiki
image/svg+xml
Discourse
Discourse
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Projects
Conv TTL Blocking
Commits
35f18779
Commit
35f18779
authored
Sep 23, 2013
by
Theodor-Adrian Stana
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
working on vbcp extension
parent
014c56c3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
144 additions
and
60 deletions
+144
-60
multiboot.py
test/multiboot/multiboot.py
+96
-59
test.py
test/test.py
+47
-0
vbcp.py
test/vbcp/vbcp.py
+1
-1
No files found.
test/multiboot/multiboot.py
View file @
35f18779
...
...
@@ -39,31 +39,58 @@ sys.path.append("../vbcp")
from
vbcp
import
*
def
spi_transfer
(
cs
,
dat
):
retval
=
0
;
ctb
.
write
(
0x90
,
(((
cs
<<
10
)
|
0x100
)
|
dat
))
retval
=
0
wval
=
[]
if
isinstance
(
dat
,
int
):
wval
.
append
(
dat
)
wval
.
append
((
cs
<<
2
)
|
1
)
wval
.
append
(
0
)
wval
.
append
(
0
)
else
:
for
i
in
xrange
(
len
(
dat
)):
wval
.
append
(
dat
[
i
])
wval
.
append
((
cs
<<
2
)
|
1
)
wval
.
append
(
0
)
wval
.
append
(
0
)
ctb
.
write
(
0x90
,
wval
)
while
(
retval
&
(
1
<<
9
)
==
0
):
retval
=
ctb
.
read
(
0x90
)
print
retval
return
retval
&
0xFF
# ctb.write(0x90, [(((cs << 10) | 0x100) | d) for d in dat])
# while (retval & (1 << 9) == 0):
# retval = ctb.read(0x90)
# return retval & 0xFF
def
flash_write
(
addr
,
dat
):
spi_transfer
(
0
,
0
)
spi_transfer
(
1
,
0x06
)
spi_transfer
(
0
,
0
)
spi_transfer
(
1
,
0x02
)
spi_transfer
(
1
,(
addr
&
0xFF0000
)
>>
16
)
spi_transfer
(
1
,(
addr
&
0xFF00
)
>>
8
)
spi_transfer
(
1
,(
addr
&
0xFF
))
for
i
in
range
(
len
(
dat
)):
spi_transfer
(
1
,
dat
[
i
])
spi_transfer
(
1
,[
0x02
,(
addr
&
0xFF0000
)
>>
16
])
spi_transfer
(
1
,[(
addr
&
0xFF00
)
>>
8
,
(
addr
&
0xFF
)])
for
i
in
xrange
(
len
(
dat
)
/
2
):
spi_transfer
(
1
,[
dat
[
i
],
dat
[
i
+
1
]])
spi_transfer
(
0
,
0
)
# spi_transfer(0,0)
# spi_transfer(1,0x06)
# spi_transfer(0,0)
# spi_transfer(1,0x02)
# spi_transfer(1,(addr & 0xFF0000) >> 16)
# spi_transfer(1,(addr & 0xFF00) >> 8)
# spi_transfer(1,(addr & 0xFF))
# for i in range(len(dat)):
# spi_transfer(1,dat[i])
# spi_transfer(0,0)
def
flash_read
(
addr
,
nrbytes
):
ret
=
[]
spi_transfer
(
0
,
0
)
spi_transfer
(
1
,
0x0b
)
spi_transfer
(
1
,(
addr
&
0xFF0000
)
>>
16
)
spi_transfer
(
1
,(
addr
&
0xFF00
)
>>
8
)
spi_transfer
(
1
,(
addr
&
0xFF
))
#spi_transfer(1,0x0b)
#spi_transfer(1,(addr & 0xFF0000) >> 16)
#spi_transfer(1,(addr & 0xFF00) >> 8)
#spi_transfer(1,(addr & 0xFF))
spi_transfer
(
1
,[
0x0b
,
(
addr
&
0xFF0000
)
>>
16
])
spi_transfer
(
1
,[(
addr
&
0xFF00
)
>>
8
,
(
addr
&
0xFF
)])
spi_transfer
(
1
,
0
)
for
i
in
range
(
nrbytes
):
ret
.
append
(
spi_transfer
(
1
,
0
))
...
...
@@ -71,14 +98,15 @@ def flash_read(addr, nrbytes):
return
ret
def
flash_serase
(
addr
):
ret
=
[]
spi_transfer
(
0
,
0
)
spi_transfer
(
1
,
0x06
)
spi_transfer
(
0
,
0
)
spi_transfer
(
1
,
0xd8
)
spi_transfer
(
1
,(
addr
&
0xFF0000
)
>>
16
)
spi_transfer
(
1
,(
addr
&
0xFF00
)
>>
8
)
spi_transfer
(
1
,(
addr
&
0xFF
))
#spi_transfer(1,0xd8)
#spi_transfer(1,(addr & 0xFF0000) >> 16)
#spi_transfer(1,(addr & 0xFF00) >> 8)
#spi_transfer(1,(addr & 0xFF))
spi_transfer
(
1
,[
0xd8
,
(
addr
&
0xFF0000
)
>>
16
])
spi_transfer
(
1
,[(
addr
&
0xFF00
)
>>
8
,
(
addr
&
0xFF
)])
spi_transfer
(
0
,
0
)
def
flash_berase
():
...
...
@@ -152,48 +180,57 @@ if __name__ == "__main__":
rd
=
""
.
join
([
"0x
%02
X "
%
b
for
b
in
rd
])
print
rd
print
"ERASE"
te1
=
time
.
time
()
flash_serase
(
0x0010
)
while
(
flash_rsr
()
&
0x01
):
pass
te2
=
time
.
time
()
print
"erase time:
%2.6
f"
%
(
te2
-
te1
)
print
"WRITE"
f
=
open
(
"conv.txt"
,
'r'
)
addr
=
0
tdat
=
[]
twr
=
[]
twa
=
[]
for
fdata
in
f
:
print
addr
data
=
[]
try
:
t1
=
time
.
time
()
for
i
in
xrange
(
256
):
data
.
append
(
int
(
fdata
[
0
:
2
],
16
))
fdata
=
fdata
[
2
:]
t2
=
time
.
time
()
except
ValueError
:
print
"reached end"
break
finally
:
t3
=
time
.
time
()
flash_write
(
addr
,
data
)
t4
=
time
.
time
()
while
(
flash_rsr
()
&
0x01
):
pass
t5
=
time
.
time
()
addr
+=
256
if
(
addr
==
256
**
2
):
break
;
tdat
.
append
(
t2
-
t1
)
twr
.
append
(
t4
-
t3
)
twa
.
append
(
t5
-
t4
)
#print data
#print len(data)
# print "ERASE"
# te1 = time.time()
# flash_serase(0x0010)
# while (flash_rsr() & 0x01):
# pass
# te2 = time.time()
# print "erase time: %2.6f" % (te2-te1)
# print "WRITE"
# f = open("conv.txt",'r')
# addr = 0
# tdat = []
# twr = []
# twa = []
# te = []
# for fdata in f:
# print addr
# data = []
# if not (addr % 0x10000):
# print 'erase'
# te1 = time.time()
# flash_serase(addr)
# while (flash_rsr() & 0x01):
# pass
# te2 = time.time()
# te.append(te2-te1)
# try:
# t1 = time.time()
# for i in xrange(256):
# data.append(int(fdata[0:2],16))
# fdata = fdata[2:]
# t2 = time.time()
# except ValueError:
# print "reached end"
# break
# finally:
# t3 = time.time()
# flash_write(addr, data)
# t4 = time.time()
# while (flash_rsr() & 0x01):
# pass
# t5 = time.time()
# addr += 256
# if (addr == 256**2):
# break;
# tdat.append(t2-t1)
# twr.append(t4-t3)
# twa.append(t5-t4)
#
# #print data
# #print len(data)
# Close file handle
f
.
close
()
...
...
test/test.py
0 → 100644
View file @
35f18779
def
write
(
addr
,
val
):
reg
=
addr
/
4
+
1
sl
=
0xb6
#(0x40 | ((~slot) & 0x1f)) << 1
print
'
%02
x'
%
sl
cmd
=
"iic4wr
%
x
%
x
%
x
%
s
\r\n
"
%
(
sl
,
(
addr
&
0xff00
)
>>
8
,
addr
&
0xff
,
' '
.
join
(
format
(
b
,
'x'
)
for
b
in
val
))
print
cmd
def
spi_transfer
(
cs
,
dat
):
retval
=
0
wval
=
[]
if
isinstance
(
dat
,
int
):
wval
.
append
(
dat
)
wval
.
append
((
cs
<<
2
)
|
1
)
wval
.
append
(
0
)
wval
.
append
(
0
)
else
:
for
i
in
xrange
(
len
(
dat
)):
wval
.
append
(
dat
[
i
])
wval
.
append
((
cs
<<
2
)
|
1
)
wval
.
append
(
0
)
wval
.
append
(
0
)
write
(
0x90
,
wval
)
# while (retval & (1 << 9) == 0):
# retval = read(0x90)
# return retval & 0xFF
def
flash_write
(
addr
,
dat
):
spi_transfer
(
0
,
0
)
spi_transfer
(
1
,
0x06
)
spi_transfer
(
0
,
0
)
spi_transfer
(
1
,
0x02
)
spi_transfer
(
1
,(
addr
&
0xFF0000
)
>>
16
)
spi_transfer
(
1
,(
addr
&
0xFF00
)
>>
8
)
spi_transfer
(
1
,(
addr
&
0xFF
))
for
i
in
range
(
len
(
dat
)):
spi_transfer
(
1
,
dat
[
i
])
spi_transfer
(
0
,
0
)
if
__name__
==
"__main__"
:
for
addr
in
range
(
0
,
0xf0000
,
256
):
print
'
%
x'
%
addr
if
not
(
addr
%
0x10000
):
print
'erase'
# dat = [1,2]
# spi_transfer(1, dat)
test/vbcp/vbcp.py
View file @
35f18779
...
...
@@ -79,7 +79,7 @@ class VBCP:
reg
=
addr
/
4
+
1
sl
=
(
0x40
|
((
~
self
.
slot
)
&
0x1f
))
<<
1
print
'
%02
x'
%
sl
cmd
=
"iic4wr
%
x
%
x
%
x
%
x
%
x
%
x
%
x
%
x
%
x
%
x
%
x
\r\n
"
%
(
sl
,
(
addr
&
0xff00
)
>>
8
,
addr
&
0xff
,
val
[
0
],
val
[
1
],
val
[
2
],
val
[
3
],
val
[
4
],
val
[
5
],
val
[
6
],
val
[
7
]
)
cmd
=
"iic4wr
%
x
%
x
%
x
%
s
\r\n
"
%
(
sl
,
(
addr
&
0xff00
)
>>
8
,
addr
&
0xff
,
' '
.
join
(
format
(
b
,
'x'
)
for
b
in
val
)
)
print
cmd
#cmd = "writereg %d %d %x\r\n" % (self.slot, reg, val)
self
.
handle
.
send
(
cmd
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment