build_release.bat 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. ::编译前准备工作
  2. @echo off
  3. setlocal enabledelayedexpansion
  4. set line=0
  5. for /f %%a in ('wmic cpu get numberofcores') do (
  6. set /a line+=1
  7. if !line!==2 set A=%%a
  8. )
  9. set /a CPU_LINE=%A%+%A%
  10. set CROSS_TOOL_WIN32_PATH=D:\gcc-mcu
  11. set CROSS_TOOL_PATH=%CROSS_TOOL_WIN32_PATH:\=/%
  12. set PATH=%CROSS_TOOL_WIN32_PATH%\bin;%PATH%
  13. REM debug属性标记
  14. REM set __DEBUG__=true
  15. REM 获取项目路径
  16. set PROJ_DIR=%cd:\=/%
  17. set CUR_DIR=%cd%
  18. REM 获取项目名称
  19. for /f %%i in ("%cd%") do set PROJ_NAME=%%~ni
  20. REM 获取代码根目录
  21. cd ../..
  22. set ROOT_PATH=%cd:\=/%
  23. set TOP_PATH=%cd%
  24. REM 进入第一个makefile的目录project
  25. cd %CUR_DIR%/../../compilation
  26. set BUILD_PATH=%TOP_PATH%\build\%PROJ_NAME%\release
  27. set HEX_PATH=%TOP_PATH%\hex\%PROJ_NAME%\release
  28. if not exist %HEX_PATH% (mkdir %HEX_PATH%)
  29. make cleanall
  30. if not exist %BUILD_PATH% (mkdir %BUILD_PATH%)
  31. make all 2>%BUILD_PATH%\build_error.log
  32. if %errorlevel% == 0 (
  33. @echo build ok
  34. ) else (
  35. type %BUILD_PATH%\build_error.log
  36. )
  37. REM make all
  38. if not exist %BUILD_PATH%\bootloader.hex (
  39. echo bootloader.hex file not exist
  40. goto end
  41. )
  42. if not exist %BUILD_PATH%\app.hex (
  43. echo app.hex file not exist
  44. goto end
  45. )
  46. if exist %BUILD_PATH%\all.hex (
  47. del %BUILD_PATH%\all.hex
  48. )
  49. for /f "delims=" %%i in (%BUILD_PATH%\bootloader.hex) do (
  50. if "%%i"==":00000001FF" (
  51. goto add_bl_done
  52. ) else (
  53. @echo %%i>>%BUILD_PATH%\all.hex
  54. )
  55. )
  56. :add_bl_done
  57. type %BUILD_PATH%\app.hex >> %BUILD_PATH%\all.hex
  58. copy %BUILD_PATH%\bootloader.bin %HEX_PATH%\bootloader.bin
  59. copy %BUILD_PATH%\app.bin %HEX_PATH%\app.bin
  60. copy %CUR_DIR%\info.json %HEX_PATH%\info.json
  61. copy %CUR_DIR%\soc_download.exe %HEX_PATH%\soc_download.exe
  62. :end
  63. ::回到当前项目目录
  64. cd %CUR_DIR%
  65. del %HEX_PATH%\LuatOS-SoC_%PROJ_NAME%.soc
  66. 7za.exe a "%HEX_PATH%\LuatOS-SoC_%PROJ_NAME%.soc" "%HEX_PATH%\*.*"
  67. pause