diff --git a/bsp/w60x/.gitignore b/bsp/w60x/.gitignore index fff054f999..7221bde019 100644 --- a/bsp/w60x/.gitignore +++ b/bsp/w60x/.gitignore @@ -5,6 +5,7 @@ *.bin *.hex *.axf +*.exe *.pdb *.idb *.ilk diff --git a/bsp/w60x/makeimg.bat b/bsp/w60x/makeimg.bat index 15d5e6dc82..ade6439350 100644 --- a/bsp/w60x/makeimg.bat +++ b/bsp/w60x/makeimg.bat @@ -12,30 +12,39 @@ @rem if debug_info=1, Debugging Print Information will be turned on set debug_info=0 +@rem if make_fal=1, Partition tables are put into firmware +set make_fal=0 @rem Setting firmware output directory set out_path=.\Bin @rem Setting the bin file path set bin_file=.\rtthread.bin +@rem Setting winnermicro libraries path +set wmlib_path=.\packages\wm_libraries- +@rem Setting the 1M flash layout file +set layout_1M_file=. +@rem Setting the 2M flash layout file +set layout_2M_file=. +@rem Setting the makeimg by adding rtt flash original fls +set makeimg_new_fls=. +@rem find winnermicro libraries full path +for /f "delims=" %%i in ('dir /ad /b /s %wmlib_path%*') do (set wmlib_path_full=%%i) @rem Setting the version.txt file path -set version_file=.\tools\version.txt +set version_file=%wmlib_path_full%\Tools\version.txt @rem Setting the secboot.img file path -set secboot_file=.\tools\secboot.img +set secboot_file=%wmlib_path_full%\Tools\secboot.img @rem Setting the wm_gzip.exe file path -set wm_gzip_file=.\tools\wm_gzip.exe +set wm_gzip_file=%wmlib_path_full%\Tools\wm_gzip.exe @rem Setting the makeimg.exe file path -set makeimg_file=.\tools\makeimg.exe +set makeimg_file=%wmlib_path_full%\Tools\makeimg.exe @rem Setting the makeimg_all.exe file path -set makeimg_all_file=.\tools\makeimg_all.exe +set makeimg_all_file=%wmlib_path_full%\Tools\makeimg_all.exe @rem Prepare to generate firmware + +@rem Get the full path if "%out_path:~0,1%" == "." (set out_path=%~dp0%out_path%) if "%bin_file:~0,1%" == "." (set bin_file=%~dp0%bin_file%) -if "%version_file:~0,1%" == "." (set version_file=%~dp0%version_file%) -if "%secboot_file:~0,1%" == "." (set secboot_file=%~dp0%secboot_file%) -if "%wm_gzip_file:~0,1%" == "." (set wm_gzip_file=%~dp0%wm_gzip_file%) -if "%makeimg_file:~0,1%" == "." (set makeimg_file=%~dp0%makeimg_file%) -if "%makeimg_all_file:~0,1%" == "." (set makeimg_all_file=%~dp0%makeimg_all_file%) @rem Create output folder if not exist "%out_path%" (md "%out_path%") @@ -63,14 +72,14 @@ if not "%debug_info%"=="0" (echo bin_file_name:%bin_file_name% & echo bin_name:% echo makeimg 1M Flash... @rem Start making 1M flash firmware -set file_pos=_1M +set file_pos_1M=_1M @rem Create command parameters set wm_gzip_cmd="%out_path%\%bin_file_name%" -set makeimg_img_cmd="%out_path%\%bin_file_name%" "%out_path%\%bin_name%%file_pos%.img" 0 0 "%out_path%\%version_file_name%" 90000 10100 -set makeimg_gz_img_cmd="%out_path%\%bin_file_name%.gz" "%out_path%\%bin_name%_GZ%file_pos%.img" 0 1 "%out_path%\%version_file_name%" 90000 10100 "%out_path%\%bin_file_name%" -set makeimg_sec_img_cmd="%out_path%\%bin_file_name%" "%out_path%\%bin_name%_SEC%file_pos%.img" 0 0 "%out_path%\%version_file_name%" 90000 10100 -set makeimg_all_cmd="%out_path%\%secboot_file_name%" "%out_path%\%bin_name%%file_pos%.img" "%out_path%\%bin_name%%file_pos%.FLS" +set makeimg_img_cmd="%out_path%\%bin_file_name%" "%out_path%\%bin_name%%file_pos_1M%.img" 0 0 "%out_path%\%version_file_name%" 90000 10100 +set makeimg_gz_img_cmd="%out_path%\%bin_file_name%.gz" "%out_path%\%bin_name%_GZ%file_pos_1M%.img" 0 1 "%out_path%\%version_file_name%" 90000 10100 "%out_path%\%bin_file_name%" +set makeimg_sec_img_cmd="%out_path%\%bin_file_name%" "%out_path%\%bin_name%_SEC%file_pos_1M%.img" 0 0 "%out_path%\%version_file_name%" 90000 10100 +set makeimg_all_cmd="%out_path%\%secboot_file_name%" "%out_path%\%bin_name%%file_pos_1M%.img" "%out_path%\%bin_name%%file_pos_1M%.FLS" @rem Print command Information if not "%debug_info%"=="0" (echo wm_gzip %wm_gzip_cmd%) @@ -87,20 +96,20 @@ if not "%debug_info%"=="0" (echo makeimg_all %makeimg_all_cmd%) "%makeimg_all_file%" %makeimg_all_cmd% @rem Delete temporary files -if exist "%out_path%\%bin_name%%file_pos%.img" (del "%out_path%\%bin_name%%file_pos%.img") +if exist "%out_path%\%bin_name%%file_pos_1M%.img" (del "%out_path%\%bin_name%%file_pos_1M%.img") if exist "%out_path%\%bin_file_name%.gz" (del "%out_path%\%bin_file_name%.gz") @rem Start making 2M flash firmware echo makeimg 2M Flash... -set file_pos=_2M +set file_pos_2M=_2M @rem Create command parameters set wm_gzip_cmd="%out_path%\%bin_file_name%" -set makeimg_img_cmd="%out_path%\%bin_file_name%" "%out_path%\%bin_name%%file_pos%.img" 3 0 "%out_path%\%version_file_name%" 90000 10100 -set makeimg_gz_img_cmd="%out_path%\%bin_file_name%.gz" "%out_path%\%bin_name%_GZ%file_pos%.img" 3 1 "%out_path%\%version_file_name%" 90000 10100 "%out_path%\%bin_file_name%" -set makeimg_sec_img_cmd="%out_path%\%bin_file_name%" "%out_path%\%bin_name%_SEC%file_pos%.img" 3 0 "%out_path%\%version_file_name%" 90000 10100 -set makeimg_all_cmd="%out_path%\%secboot_file_name%" "%out_path%\%bin_name%%file_pos%.img" "%out_path%\%bin_name%%file_pos%.FLS" +set makeimg_img_cmd="%out_path%\%bin_file_name%" "%out_path%\%bin_name%%file_pos_2M%.img" 3 0 "%out_path%\%version_file_name%" 100000 10100 +set makeimg_gz_img_cmd="%out_path%\%bin_file_name%.gz" "%out_path%\%bin_name%_GZ%file_pos_2M%.img" 3 1 "%out_path%\%version_file_name%" 100000 10100 "%out_path%\%bin_file_name%" +set makeimg_sec_img_cmd="%out_path%\%bin_file_name%" "%out_path%\%bin_name%_SEC%file_pos_2M%.img" 3 0 "%out_path%\%version_file_name%" 100000 10100 +set makeimg_all_cmd="%out_path%\%secboot_file_name%" "%out_path%\%bin_name%%file_pos_2M%.img" "%out_path%\%bin_name%%file_pos_2M%.FLS" @rem Print command Information if not "%debug_info%"=="0" (echo wm_gzip %wm_gzip_cmd%) @@ -117,8 +126,35 @@ if not "%debug_info%"=="0" (echo makeimg_all %makeimg_all_cmd%) "%makeimg_all_file%" %makeimg_all_cmd% @rem Delete temporary files -if exist "%out_path%\%bin_name%%file_pos%.img" (del "%out_path%\%bin_name%%file_pos%.img") +if exist "%out_path%\%bin_name%%file_pos_2M%.img" (del "%out_path%\%bin_name%%file_pos_2M%.img") if exist "%out_path%\%bin_file_name%.gz" (del "%out_path%\%bin_file_name%.gz") +@rem Partition tables are put into firmware +if not "%make_fal%"=="1" ( goto end) + +@rem Get the full path +if "%layout_1M_file:~0,1%" == "." (set layout_1M_file=%~dp0%layout_1M_file%) +if "%layout_2M_file:~0,1%" == "." (set layout_2M_file=%~dp0%layout_2M_file%) +if "%makeimg_new_fls:~0,1%" == "." (set makeimg_new_fls=%~dp0%makeimg_new_fls%) + +@rem Check whether the file exists +if not exist "%layout_1M_file%" (echo makeimg err! No makeimg file found: "%layout_1M_file%" & goto end) +if not exist "%layout_2M_file%" (echo makeimg err! No makeimg file found: "%layout_2M_file%" & goto end) +if not exist "%makeimg_new_fls%" (echo makeimg err! No makeimg file found: "%makeimg_new_fls%" & goto end) + +@rem Create command parameters to new fls +set makeimg_new_cmd_1M="%out_path%\%bin_name%%file_pos_1M%.FLS" "%layout_1M_file%" "%out_path%\%bin_name%_layout%file_pos_1M%.FLS" +@rem Execute generation fls cmd +"%makeimg_new_fls%" %makeimg_new_cmd_1M% + +@rem Create command parameters to new fls +set makeimg_new_cmd_2M="%out_path%\%bin_name%%file_pos_2M%.FLS" "%layout_2M_file%" "%out_path%\%bin_name%_layout%file_pos_2M%.FLS" +@rem Execute generation fls cmd +"%makeimg_new_fls%" %makeimg_new_cmd_2M% + +@rem Delete temporary files +if exist "%out_path%\%bin_name%_1M.FLS" (del "%out_path%\%bin_name%%file_pos_1M%.FLS") +if exist "%out_path%\%bin_name%_2M.FLS" (del "%out_path%\%bin_name%%file_pos_2M%.FLS") + :end echo end diff --git a/bsp/w60x/makeimg.py b/bsp/w60x/makeimg.py index 790000a085..277ad872d5 100644 --- a/bsp/w60x/makeimg.py +++ b/bsp/w60x/makeimg.py @@ -9,21 +9,20 @@ import platform # if debug_info=True, Debugging Print Information will be turned on debug_info=False +# if make_fal=True, Partition tables are put into firmware +make_fal=False # Setting firmware output directory out_path='./Bin' # Setting the bin file path bin_file='./rtthread.bin' - -# Setting the version.txt file path -version_file='./tools' + '/version.txt' -# Setting the secboot.img file path -secboot_file='./tools' + '/secboot.img' -# Setting the wm_gzip.exe file path -wm_gzip_file='./tools' + '/wm_gzip.exe' -# Setting the makeimg.exe file path -makeimg_file='./tools' + '/makeimg.exe' -# Setting the makeimg_all.exe file path -makeimg_all_file='./tools' + '/makeimg_all.exe' +# Setting winnermicro libraries path +wmlib_path='./packages/wm_libraries-' +# Setting the 1M flash layout file +layout_1M_file='.' +# Setting the 2M flash layout file +layout_2M_file='.' +# Setting the makeimg by adding rtt flash original fls +makeimg_new_fls='.' def execute_command(cmdstring, cwd=None, shell=True): """Execute the system command at the specified address.""" @@ -82,11 +81,27 @@ def do_makeimg(tool_path, param): execute_command(str) +def get_wmlib_path_full(path): + (_wmlib_path,_wmlib_name) = os.path.split(path) + files = os.listdir(_wmlib_path) + for f in files: + if _wmlib_name in f: + return _wmlib_path + '/' + f + return path + if __name__=='__main__': - # Get the execution file name - wm_gzip_file = get_exec_path(wm_gzip_file) - makeimg_file = get_exec_path(makeimg_file) - makeimg_all_file = get_exec_path(makeimg_all_file) + # find winnermicro libraries full path + wmlib_path_full = get_wmlib_path_full(wmlib_path) + # Setting the version.txt file path + version_file=wmlib_path_full + '/Tools/version.txt' + # Setting the secboot.img file path + secboot_file=wmlib_path_full + '/Tools/secboot.img' + # Setting the wm_gzip.exe file path + wm_gzip_file=wmlib_path_full + '/Tools/wm_gzip.exe' + # Setting the makeimg.exe file path + makeimg_file=wmlib_path_full + '/Tools/makeimg.exe' + # Setting the makeimg_all.exe file path + makeimg_all_file=wmlib_path_full + '/Tools/makeimg_all.exe' # Get absolute path out_path = os.path.abspath(out_path).replace('\\', '/'); @@ -109,23 +124,23 @@ if __name__=='__main__': if not is_exists('wm_gzip', wm_gzip_file): exit(0) if not is_exists('makeimg', makeimg_file): exit(0) if not is_exists('makeimg_all', makeimg_all_file): exit(0) - + # Get File Names and File Extensions (bin_file_path,bin_file_name) = os.path.split(bin_file) (bin_name,bin_extend) = os.path.splitext(bin_file_name) (version_file_path,version_file_name) = os.path.split(version_file) (secboot_file_path,secboot_file_name) = os.path.split(secboot_file) - + # print debug Information if debug_info: print('bin_file_name:' + bin_file_name + 'bin_name:' + bin_name + 'bin_extend:' + bin_extend + 'version_file_name:' + version_file_name + 'secboot_file_name:' + secboot_file_name) print('makeimg 1M Flash...') - file_pos='_1M' + file_pos_1M='_1M' gzip_param = "\"" + out_path + '/' + bin_file_name + "\"" - make_img_param = "\"" + out_path + '/' + bin_file_name + "\"" + ' ' + "\"" + out_path + '/' + bin_name + file_pos + '.img' + "\"" + ' 0' + ' 0' + ' ' + "\"" + out_path + '/' + version_file_name + "\"" + ' 90000' + ' 10100' - make_GZ_param = "\"" + out_path + '/' + bin_file_name + '.gz' + "\"" + ' ' + "\"" + out_path + '/' + bin_name + '_GZ' + file_pos + '.img' +"\"" + ' 0' + ' 1' + ' ' + "\"" + out_path + '/' + version_file_name + "\"" + ' 90000' + ' 10100' + ' ' + "\"" + out_path + '/' + bin_file_name + "\"" - make_SEC_param = "\"" + out_path + '/' + bin_file_name + "\"" + ' ' + "\"" + out_path + '/' + bin_name + '_SEC' + file_pos + '.img' + "\"" + ' 0' + ' 0' + ' ' + "\"" + out_path + '/' + version_file_name + "\"" + ' 90000' + ' 10100' - make_FLS_param = "\"" + out_path + '/' + secboot_file_name + "\"" + ' ' + "\"" + out_path + '/' + bin_name + file_pos + '.img' + "\"" + ' ' + "\"" + out_path + '/' + bin_name + file_pos + '.FLS' + "\"" + make_img_param = "\"" + out_path + '/' + bin_file_name + "\"" + ' ' + "\"" + out_path + '/' + bin_name + file_pos_1M + '.img' + "\"" + ' 0' + ' 0' + ' ' + "\"" + out_path + '/' + version_file_name + "\"" + ' 90000' + ' 10100' + make_GZ_param = "\"" + out_path + '/' + bin_file_name + '.gz' + "\"" + ' ' + "\"" + out_path + '/' + bin_name + '_GZ' + file_pos_1M + '.img' +"\"" + ' 0' + ' 1' + ' ' + "\"" + out_path + '/' + version_file_name + "\"" + ' 90000' + ' 10100' + ' ' + "\"" + out_path + '/' + bin_file_name + "\"" + make_SEC_param = "\"" + out_path + '/' + bin_file_name + "\"" + ' ' + "\"" + out_path + '/' + bin_name + '_SEC' + file_pos_1M + '.img' + "\"" + ' 0' + ' 0' + ' ' + "\"" + out_path + '/' + version_file_name + "\"" + ' 90000' + ' 10100' + make_FLS_param = "\"" + out_path + '/' + secboot_file_name + "\"" + ' ' + "\"" + out_path + '/' + bin_name + file_pos_1M + '.img' + "\"" + ' ' + "\"" + out_path + '/' + bin_name + file_pos_1M + '.FLS' + "\"" if debug_info: print('gzip_param' + gzip_param) @@ -140,7 +155,7 @@ if __name__=='__main__': do_makeimg(makeimg_file, make_SEC_param) do_makeimg(makeimg_all_file, make_FLS_param) - rm_file = out_path + '/' + bin_name + file_pos + '.img' + rm_file = out_path + '/' + bin_name + file_pos_1M + '.img' if os.path.exists(rm_file): os.remove(rm_file) rm_file = out_path + '/' + bin_file_name + '.gz' @@ -148,12 +163,12 @@ if __name__=='__main__': os.remove(rm_file) print('makeimg 2M Flash...') - file_pos='_2M' + file_pos_2M='_2M' gzip_param = "\"" + out_path + '/' + bin_file_name + "\"" - make_img_param = "\"" + out_path + '/' + bin_file_name + "\"" + ' ' + "\"" + out_path + '/' + bin_name + file_pos + '.img' + "\"" + ' 3' + ' 0' + ' ' + "\"" + out_path + '/' + version_file_name + "\"" + ' 90000' + ' 10100' - make_GZ_param = "\"" + out_path + '/' + bin_file_name + '.gz' + "\"" + ' ' + "\"" + out_path + '/' + bin_name + '_GZ' + file_pos + '.img' +"\"" + ' 3' + ' 1' + ' ' + "\"" + out_path + '/' + version_file_name + "\"" + ' 90000' + ' 10100' + ' ' + "\"" + out_path + '/' + bin_file_name + "\"" - make_SEC_param = "\"" + out_path + '/' + bin_file_name + "\"" + ' ' + "\"" + out_path + '/' + bin_name + '_SEC' + file_pos + '.img' + "\"" + ' 3' + ' 0' + ' ' + "\"" + out_path + '/' + version_file_name + "\"" + ' 90000' + ' 10100' - make_FLS_param = "\"" + out_path + '/' + secboot_file_name + "\"" + ' ' + "\"" + out_path + '/' + bin_name + file_pos + '.img' + "\"" + ' ' + "\"" + out_path + '/' + bin_name + file_pos + '.FLS' + "\"" + make_img_param = "\"" + out_path + '/' + bin_file_name + "\"" + ' ' + "\"" + out_path + '/' + bin_name + file_pos_2M + '.img' + "\"" + ' 3' + ' 0' + ' ' + "\"" + out_path + '/' + version_file_name + "\"" + ' 100000' + ' 10100' + make_GZ_param = "\"" + out_path + '/' + bin_file_name + '.gz' + "\"" + ' ' + "\"" + out_path + '/' + bin_name + '_GZ' + file_pos_2M + '.img' +"\"" + ' 3' + ' 1' + ' ' + "\"" + out_path + '/' + version_file_name + "\"" + ' 100000' + ' 10100' + ' ' + "\"" + out_path + '/' + bin_file_name + "\"" + make_SEC_param = "\"" + out_path + '/' + bin_file_name + "\"" + ' ' + "\"" + out_path + '/' + bin_name + '_SEC' + file_pos_2M + '.img' + "\"" + ' 3' + ' 0' + ' ' + "\"" + out_path + '/' + version_file_name + "\"" + ' 100000' + ' 10100' + make_FLS_param = "\"" + out_path + '/' + secboot_file_name + "\"" + ' ' + "\"" + out_path + '/' + bin_name + file_pos_2M + '.img' + "\"" + ' ' + "\"" + out_path + '/' + bin_name + file_pos_2M + '.FLS' + "\"" if debug_info: print('gzip_param' + gzip_param) @@ -168,11 +183,32 @@ if __name__=='__main__': do_makeimg(makeimg_file, make_SEC_param) do_makeimg(makeimg_all_file, make_FLS_param) - rm_file = out_path + '/' + bin_name + file_pos + '.img' + rm_file = out_path + '/' + bin_name + file_pos_2M + '.img' if os.path.exists(rm_file): os.remove(rm_file) rm_file = out_path + '/' + bin_file_name + '.gz' if os.path.exists(rm_file): os.remove(rm_file) + if make_fal: + # Get absolute path + layout_1M_file = os.path.abspath(layout_1M_file).replace('\\', '/'); + layout_2M_file = os.path.abspath(layout_2M_file).replace('\\', '/'); + makeimg_new_fls = os.path.abspath(makeimg_new_fls).replace('\\', '/'); + + # Create command parameters to new fls + makeimg_new_cmd="\"" + out_path + '/' + bin_name + file_pos_1M + '.FLS' + "\"" + ' ' + "\"" + layout_1M_file + "\"" + ' ' + "\"" + out_path + '/'+ bin_name + '_layout' + file_pos_1M+'.FLS' +"\"" + do_makeimg(makeimg_new_fls, makeimg_new_cmd) + + makeimg_new_cmd="\"" + out_path + '/' + bin_name + file_pos_2M + '.FLS' + "\"" + ' ' + "\"" + layout_2M_file + "\"" + ' ' + "\"" + out_path + '/'+ bin_name + '_layout' + file_pos_2M+'.FLS' +"\"" + do_makeimg(makeimg_new_fls, makeimg_new_cmd) + + # Delete temporary files + rm_file = out_path + '/' + bin_name + file_pos_1M + '.FLS' + if os.path.exists(rm_file): + os.remove(rm_file) + rm_file = out_path + '/' + bin_name + file_pos_2M + '.FLS' + if os.path.exists(rm_file): + os.remove(rm_file) + print('end') \ No newline at end of file diff --git a/bsp/w60x/tools/library.zip b/bsp/w60x/tools/library.zip deleted file mode 100644 index 6944caf04d..0000000000 Binary files a/bsp/w60x/tools/library.zip and /dev/null differ diff --git a/bsp/w60x/tools/makeimg b/bsp/w60x/tools/makeimg deleted file mode 100644 index e6990951de..0000000000 Binary files a/bsp/w60x/tools/makeimg and /dev/null differ diff --git a/bsp/w60x/tools/makeimg.py b/bsp/w60x/tools/makeimg.py deleted file mode 100644 index 471b6122c8..0000000000 --- a/bsp/w60x/tools/makeimg.py +++ /dev/null @@ -1,137 +0,0 @@ -# -*- coding:utf-8 -*- -# -# W600 make img script -# Copyright (c) 2018 Winner Micro Electronic Design Co., Ltd. -# All rights reserved. -# -# image header structure -# -------------------------------------------------------------------------------------------- -# | magic number(4B) | image type(2B)| zip type(2B) | run image addr(4B) | run image len(4B) | -# -------------------------------------------------------------------------------------------- -# | run image crc(4B) | update image addr(4B) | update image len(4B) | update image crc(4B) | -# --------------------------------------------------------------------------------------------- -# | update no(4B) | ver(16B) | -# --------------------------------------------------------------------------------------------- -# | run code | -# --------------------------------------------------------------------------------------------- -# - -import sys -import os -import struct -from zlib import crc32 - -magic_no = 0xA0FFFF9F - -def main(argv): - if(len(argv) < 8): - print("param cnt error") - print("param 0: .py") - print("param 1: input .bin file.(uncompressed file or compressed file)") - print("param 2: output file") - print("param 3: image type ,0:old param user image,1:reserved,2:secboot,3: new param user image") - print("param 4: compressed type,0:uncompressed file,1.compressed file") - print("param 5: firmware version file") - print("param 6: input image storage address") - print("param 7: input image running address") - print("param 8: input original image file") - raise Exception("param cnt error!") - - # version - try: - f_ver = open(argv[5], "r+") - except IOError: - print("not find %s file" % argv[5]) - raise - else: - version = f_ver.readline(20) - p = version.rfind('.') - if p == -1: - version = '1.0.00' - newversion = '1.0.01' - else: - newversion = version[:p+1] - ver = int(version[p+1:]) + 1 - newversion = newversion + '{:0>2d}'.format(ver) - #print(newversion) - if len(newversion) < 16: - newversion = newversion + '\0' * (16 - len(newversion)) - #print(len(newversion), newversion) - else: - newversion = newversion[:15] + '\0' - f_ver.close() - - # bin file crc - try: - f_bin = open(argv[1], mode='rb') - except IOError: - print("not find %s file" % argv[1]) - raise - else: - bin_data = f_bin.read() - bin_len = os.path.getsize(argv[1]) - bin_crc = crc32(bin_data) ^ (0xFFFFFFFF) - # print(hex(bin_crc)) - - magic = struct.pack('