-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathget_freertos_bin_Win.py
43 lines (38 loc) · 1.26 KB
/
get_freertos_bin_Win.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#!/usr/bin/env python
import sys
import os
def get_freertos_bin(iar_bin, freertos_bin, freertos_offset):
print 'get binary begin'
iar_bin_size = os.path.getsize(iar_bin)
print 'iar bin size: %d' % iar_bin_size
print 'offset: %d' % freertos_offset
freertos_bin_size = iar_bin_size - freertos_offset
if (freertos_bin_size < 0):
print 'Error! parameter offset is invalid'
return -1
print 'freertos bin size: %d' % freertos_bin_size
f_in = open(iar_bin,'rb')
f_out = open(freertos_bin,'wb')
f_in.seek(freertos_offset, 0)
inbytes = f_in.read(freertos_bin_size)
f_out.write(inbytes)
f_in.close()
f_out.close()
print 'get binary done'
return 1
if __name__=='__main__':
retval = 0
freertos_bin = 'freertos.bin'
freertos_offset = ''
if (2>len(sys.argv)):
print('usage: \n\t%s [input file] [offset]' % (sys.argv[0]))
sys.exit(1)
elif (2==len(sys.argv)):
iar_bin = sys.argv[1]
else:
iar_bin = sys.argv[1]
freertos_offset = int(sys.argv[2])
if (freertos_offset == ''):
freertos_offset = 495616
ret_val = get_freertos_bin(iar_bin,freertos_bin,freertos_offset)
sys.exit(retval)