mirror of
https://github.com/espressif/ESP8266_RTOS_SDK.git
synced 2025-07-15 08:32:42 +08:00
Welcome to join us.
This is esp iot sdk RTOS initial version.
This commit is contained in:
71
tools/gen_appbin.py
Normal file
71
tools/gen_appbin.py
Normal file
@ -0,0 +1,71 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# Copyright (c) 2010 Espressif System
|
||||
#
|
||||
# grab user_start() address and pass it to genflashbin program
|
||||
#
|
||||
|
||||
import string
|
||||
import sys
|
||||
import os
|
||||
import re
|
||||
|
||||
if len(sys.argv) != 3:
|
||||
print 'Usage: gen_appbin.py eagle.app.out version'
|
||||
sys.exit(0)
|
||||
|
||||
elf_file = sys.argv[1]
|
||||
ver = sys.argv[2]
|
||||
#print elf_file
|
||||
|
||||
cmd = 'xt-nm -g ' + elf_file + ' > eagle.app.sym'
|
||||
#print cmd
|
||||
os.system(cmd)
|
||||
|
||||
fp = file('./eagle.app.sym')
|
||||
if fp is None:
|
||||
print "open sym file error\n"
|
||||
exit
|
||||
|
||||
lines = fp.readlines()
|
||||
|
||||
fp.close()
|
||||
|
||||
entry_addr = None
|
||||
p = re.compile('(\w*)(\sT\s)(call_user_start)$')
|
||||
for line in lines:
|
||||
m = p.search(line)
|
||||
if m != None:
|
||||
entry_addr = m.group(1)
|
||||
#entry_addr = int(entry_addr, 16)
|
||||
print entry_addr
|
||||
|
||||
if entry_addr is None:
|
||||
print 'no entry point!!'
|
||||
exit
|
||||
|
||||
data_start_addr = '0'
|
||||
p = re.compile('(\w*)(\sA\s)(_data_start)$')
|
||||
for line in lines:
|
||||
m = p.search(line)
|
||||
if m != None:
|
||||
data_start_addr = m.group(1)
|
||||
print data_start_addr
|
||||
|
||||
rodata_start_addr = '0'
|
||||
p = re.compile('(\w*)(\sA\s)(_rodata_start)$')
|
||||
for line in lines:
|
||||
m = p.search(line)
|
||||
if m != None:
|
||||
rodata_start_addr = m.group(1)
|
||||
print rodata_start_addr
|
||||
|
||||
cmd = 'genflashbin%s eagle.app.%s.text.bin '%(ver, ver)+entry_addr+' eagle.app.%s.data.bin '%(ver)+ data_start_addr+' eagle.app.%s.rodata.bin '%(ver)+rodata_start_addr
|
||||
|
||||
print cmd
|
||||
os.system(cmd)
|
||||
|
||||
cmd = 'mv eagle.app.flash.bin eagle.app.%s.flash.bin'%(ver)
|
||||
|
||||
print cmd
|
||||
os.system(cmd)
|
Reference in New Issue
Block a user