Merge pull request #89 from sej7278/master
Vastly simplified generating and flashing firmware.
This commit is contained in:
commit
bc33967c16
2
Makefile
2
Makefile
|
@ -136,7 +136,7 @@ endef
|
|||
|
||||
$(BINODIR)/%.bin: $(IMAGEODIR)/%.out
|
||||
@mkdir -p $(BINODIR)
|
||||
$(OBJCOPY) -O binary $< $@
|
||||
../tools/esptool.py elf2image $< -o $(BINODIR)/
|
||||
|
||||
#############################################################
|
||||
# Rules base
|
||||
|
|
|
@ -159,8 +159,10 @@ sinclude $(PDIR)Makefile
|
|||
|
||||
$(BINODIR)/%.bin: $(IMAGEODIR)/%.out
|
||||
@mkdir -p $(BINODIR)
|
||||
$(OBJCOPY) -O binary $< $@
|
||||
../tools/esptool.py elf2image $< -o $(BINODIR)/
|
||||
|
||||
flash:
|
||||
../tools/esptool.py write_flash 0x00000 $(BINODIR)/0x00000.bin 0x10000 $(BINODIR)/0x10000.bin
|
||||
|
||||
.PHONY: FORCE
|
||||
FORCE:
|
||||
|
||||
|
|
|
@ -1,19 +0,0 @@
|
|||
@echo off
|
||||
set BACKPATH=%PATH%
|
||||
set PATH=%BACKPATH%;%CD%\..\tools
|
||||
@echo on
|
||||
|
||||
rem gen_misc.bat
|
||||
rem eagle.app.v6.flash.bin: 0x00000
|
||||
rem eagle.app.v6.irom0text.bin: 0x10000
|
||||
rem esp_init_data_default.bin: 0x7c000
|
||||
rem blank.bin: 0x7e000
|
||||
|
||||
cd ..\bin
|
||||
esptool.py -p com1 write_flash 0x00000 eagle.app.v6.flash.bin 0x10000 eagle.app.v6.irom0text.bin 0x7c000 esp_init_data_default.bin 0x7e000 blank.bin
|
||||
echo ************************* flash end *************************************
|
||||
cd ..\app
|
||||
|
||||
@echo off
|
||||
set PATH=%BACKPATH%
|
||||
@echo on
|
11
app/flash.sh
11
app/flash.sh
|
@ -1,11 +0,0 @@
|
|||
#!/bin/bash -x
|
||||
### gen_misc.sh
|
||||
### eagle.app.v6.flash.bin: 0x00000
|
||||
### eagle.app.v6.irom0text.bin: 0x10000
|
||||
### esp_init_data_default.bin: 0x7c000
|
||||
### blank.bin: 0x7e000
|
||||
|
||||
cd ../bin
|
||||
../../../../../tools/esptool.py --port /dev/ttyUSB0 write_flash 0x00000 eagle.app.v6.flash.bin 0x10000 eagle.app.v6.irom0text.bin 0x7c000 esp_init_data_default.bin 0x7e000 blank.bin
|
||||
echo "************************* flash end *************************************"
|
||||
cd ../app
|
|
@ -1,41 +0,0 @@
|
|||
@echo off
|
||||
set BACKPATH=%PATH%
|
||||
set PATH=%BACKPATH%;%CD%\..\tools
|
||||
@echo on
|
||||
|
||||
make %1
|
||||
|
||||
del /F ..\bin\eagle.app.v6.flash.bin ..\bin\eagle.app.v6.irom0text.bin ..\bin\eagle.app.v6.dump ..\bin\eagle.app.v6.S
|
||||
|
||||
cd .output\eagle\debug\image
|
||||
|
||||
@echo off
|
||||
set OBJDUMP=xt-objdump
|
||||
set OBJCOPY=xt-objcopy
|
||||
if defined XTENSA_CORE (
|
||||
set OBJDUMP=xt-objdump
|
||||
set OBJCOPY=xt-objcopy
|
||||
) else (
|
||||
set OBJDUMP=xtensa-lx106-elf-objdump
|
||||
set OBJCOPY=xtensa-lx106-elf-objcopy
|
||||
)
|
||||
@echo on
|
||||
|
||||
%OBJDUMP% -x -s eagle.app.v6.out > ..\..\..\..\..\bin\eagle.app.v6.dump
|
||||
%OBJDUMP% -S eagle.app.v6.out > ..\..\..\..\..\bin\eagle.app.v6.S
|
||||
|
||||
%OBJCOPY% --only-section .text -O binary eagle.app.v6.out eagle.app.v6.text.bin
|
||||
%OBJCOPY% --only-section .data -O binary eagle.app.v6.out eagle.app.v6.data.bin
|
||||
%OBJCOPY% --only-section .rodata -O binary eagle.app.v6.out eagle.app.v6.rodata.bin
|
||||
%OBJCOPY% --only-section .irom0.text -O binary eagle.app.v6.out eagle.app.v6.irom0text.bin
|
||||
|
||||
gen_appbin.py eagle.app.v6.out v6
|
||||
|
||||
xcopy /y eagle.app.v6.irom0text.bin ..\..\..\..\..\bin\
|
||||
xcopy /y eagle.app.v6.flash.bin ..\..\..\..\..\bin\
|
||||
|
||||
cd ..\..\..\..\
|
||||
|
||||
@echo off
|
||||
set PATH=%BACKPATH%
|
||||
@echo on
|
|
@ -1,25 +0,0 @@
|
|||
#!/bin/bash -x
|
||||
make
|
||||
if [ $? == 0 ];then
|
||||
rm ../bin/eagle.app.v6.flash.bin ../bin/eagle.app.v6.irom0text.bin ../bin/eagle.app.v6.dump ../bin/eagle.app.v6.S
|
||||
|
||||
cd .output/eagle/debug/image
|
||||
|
||||
xtensa-lx106-elf-objdump -x -s eagle.app.v6.out > ../../../../../bin/eagle.app.v6.dump
|
||||
xtensa-lx106-elf-objdump -S eagle.app.v6.out > ../../../../../bin/eagle.app.v6.S
|
||||
|
||||
xtensa-lx106-elf-objcopy --only-section .text -O binary eagle.app.v6.out eagle.app.v6.text.bin
|
||||
xtensa-lx106-elf-objcopy --only-section .data -O binary eagle.app.v6.out eagle.app.v6.data.bin
|
||||
xtensa-lx106-elf-objcopy --only-section .rodata -O binary eagle.app.v6.out eagle.app.v6.rodata.bin
|
||||
xtensa-lx106-elf-objcopy --only-section .irom0.text -O binary eagle.app.v6.out eagle.app.v6.irom0text.bin
|
||||
|
||||
../../../../../tools/gen_appbin.py eagle.app.v6.out v6
|
||||
|
||||
cp eagle.app.v6.irom0text.bin ../../../../../bin/
|
||||
cp eagle.app.v6.flash.bin ../../../../../bin/
|
||||
|
||||
cd ../../../../../
|
||||
|
||||
else
|
||||
echo "make error"
|
||||
fi
|
|
@ -1,41 +0,0 @@
|
|||
@echo off
|
||||
set BACKPATH=%PATH%
|
||||
set PATH=%BACKPATH%;%CD%\..\tools
|
||||
@echo on
|
||||
|
||||
make APP=$1
|
||||
|
||||
rm ..\bin\upgrade\%1.bin
|
||||
|
||||
cd .output\eagle\debug\image\
|
||||
|
||||
@echo off
|
||||
set OBJDUMP=xt-objdump
|
||||
set OBJCOPY=xt-objcopy
|
||||
if defined XTENSA_CORE (
|
||||
set OBJDUMP=xt-objdump
|
||||
set OBJCOPY=xt-objcopy
|
||||
) else (
|
||||
set OBJDUMP=xtensa-lx106-elf-objdump
|
||||
set OBJCOPY=xtensa-lx106-elf-objcopy
|
||||
)
|
||||
@echo on
|
||||
|
||||
%OBJCOPY% --only-section .text -O binary eagle.app.v6.out eagle.app.v6.text.bin
|
||||
%OBJCOPY% --only-section .data -O binary eagle.app.v6.out eagle.app.v6.data.bin
|
||||
%OBJCOPY% --only-section .rodata -O binary eagle.app.v6.out eagle.app.v6.rodata.bin
|
||||
%OBJCOPY% --only-section .irom0.text -O binary eagle.app.v6.out eagle.app.v6.irom0text.bin
|
||||
|
||||
gen_appbin.py eagle.app.v6.out v6
|
||||
|
||||
gen_flashbin.py eagle.app.v6.flash.bin eagle.app.v6.irom0text.bin
|
||||
|
||||
cp eagle.app.flash.bin %1.bin
|
||||
|
||||
xcopy /y %1.bin ..\..\..\..\..\bin\upgrade\
|
||||
|
||||
cd ..\..\..\..\
|
||||
|
||||
@echo off
|
||||
set PATH=%BACKPATH%
|
||||
@echo on
|
|
@ -1,28 +0,0 @@
|
|||
#!/bin/bash -x
|
||||
touch user/user_main.c
|
||||
make APP=$1
|
||||
if [ $? == 0 ];then
|
||||
rm ../bin/upgrade/user$1.bin ../bin/upgrade/user$1.dump ../bin/upgrade/user$1.S
|
||||
|
||||
cd .output/eagle/debug/image/
|
||||
|
||||
xtensa-lx106-elf-objdump -x -s eagle.app.v6.out > ../../../../../bin/upgrade/user$1.dump
|
||||
xtensa-lx106-elf-objdump -S eagle.app.v6.out > ../../../../../bin/upgrade/user$1.S
|
||||
|
||||
xtensa-lx106-elf-objcopy --only-section .text -O binary eagle.app.v6.out eagle.app.v6.text.bin
|
||||
xtensa-lx106-elf-objcopy --only-section .data -O binary eagle.app.v6.out eagle.app.v6.data.bin
|
||||
xtensa-lx106-elf-objcopy --only-section .rodata -O binary eagle.app.v6.out eagle.app.v6.rodata.bin
|
||||
xtensa-lx106-elf-objcopy --only-section .irom0.text -O binary eagle.app.v6.out eagle.app.v6.irom0text.bin
|
||||
|
||||
../../../../../tools/gen_appbin.py eagle.app.v6.out v6
|
||||
|
||||
../../../../../tools/gen_flashbin.py eagle.app.v6.flash.bin eagle.app.v6.irom0text.bin
|
||||
|
||||
cp eagle.app.flash.bin user$1.bin
|
||||
cp user$1.bin ../../../../../bin/upgrade/
|
||||
|
||||
cd ../../../../../
|
||||
|
||||
else
|
||||
echo "make error"
|
||||
fi
|
|
@ -1,77 +0,0 @@
|
|||
#!/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
|
||||
|
||||
if os.getenv('XTENSA_CORE')=='lx106':
|
||||
cmd = 'xt-nm -g ' + elf_file + ' > eagle.app.sym'
|
||||
else:
|
||||
cmd = 'xtensa-lx106-elf-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
|
||||
|
||||
if os.getenv('XTENSA_CORE')=='lx106':
|
||||
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
|
||||
else:
|
||||
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)
|
|
@ -1,33 +0,0 @@
|
|||
#!/usr/bin/python
|
||||
import os
|
||||
import sys
|
||||
import binascii
|
||||
import string
|
||||
|
||||
if len(sys.argv) != 3:
|
||||
print 'Usage: gen_flashbin.py 1.bin 2.bin'
|
||||
sys.exit(0)
|
||||
|
||||
bin1_name = sys.argv[1]
|
||||
bin2_name = sys.argv[2]
|
||||
|
||||
bin1_file = open(bin1_name, 'rb')
|
||||
bin2_file = open(bin2_name, 'rb')
|
||||
|
||||
bin1_len = os.path.getsize(bin1_name)
|
||||
|
||||
bin1 = bin1_file.read()
|
||||
bin2 = bin2_file.read()
|
||||
|
||||
bitlist = ['FF']*(0x10000-bin1_len)
|
||||
bytes = binascii.a2b_hex(''.join(bitlist))
|
||||
|
||||
bitout = open('eagle.app.flash.bin', 'wb')
|
||||
bitout.write(bin1)
|
||||
bitout.write(bytes)
|
||||
bitout.write(bin2)
|
||||
bitout.close()
|
||||
|
||||
bin1_file.close()
|
||||
bin2_file.close()
|
||||
|
Binary file not shown.
Loading…
Reference in New Issue