build_debug.bat 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  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. if "%1" == "" (
  11. set make_target=app
  12. ) else (
  13. set make_target=%1
  14. )
  15. set CROSS_TOOL_WIN32_PATH=D:\gcc-arm-none-eabi-10.3-2021.10
  16. set CROSS_TOOL_PATH=%CROSS_TOOL_WIN32_PATH:\=/%
  17. set PATH=%CROSS_TOOL_WIN32_PATH%\bin;%PATH%
  18. REM debug属性标记
  19. set __DEBUG__=true
  20. REM 获取项目路径
  21. set PROJ_DIR=%cd:\=/%
  22. set CUR_DIR=%cd%
  23. REM 获取项目名称
  24. for /f %%i in ("%cd%") do set PROJ_NAME=%%~ni
  25. REM 获取代码根目录
  26. cd ../..
  27. set ROOT_PATH=%cd:\=/%
  28. set TOP_PATH=%cd%
  29. set BUILD_PATH=%TOP_PATH%\build\%PROJ_NAME%\debug
  30. set HEX_PATH=%TOP_PATH%\hex\%PROJ_NAME%\debug
  31. if not exist %HEX_PATH% (mkdir %HEX_PATH%)
  32. if not exist %BUILD_PATH% (mkdir %BUILD_PATH%)
  33. REM 进入第一个makefile的目录project
  34. cd %CUR_DIR%/../../compilation
  35. set BUILD_PATH=%TOP_PATH%\build\%PROJ_NAME%\debug
  36. if exist %BUILD_PATH%\build_error.log (
  37. del %BUILD_PATH%\build_error.log
  38. )
  39. make %make_target% 2>%BUILD_PATH%\build_error.log
  40. if %errorlevel% == 0 (
  41. @echo build ok
  42. ) else (
  43. type %BUILD_PATH%\build_error.log
  44. )
  45. REM make all
  46. if not exist %BUILD_PATH%\bootloader.hex (
  47. echo bootloader.hex file not exist
  48. goto end
  49. )
  50. if not exist %BUILD_PATH%\app.hex (
  51. echo app.hex file not exist
  52. goto end
  53. )
  54. if exist %BUILD_PATH%\all.hex (
  55. del %BUILD_PATH%\all.hex
  56. )
  57. for /f "delims=" %%i in (%BUILD_PATH%\bootloader.hex) do (
  58. if "%%i"==":00000001FF" (
  59. goto add_bl_done
  60. ) else (
  61. echo %%i>>%BUILD_PATH%\all.hex
  62. )
  63. )
  64. :add_bl_done
  65. type %BUILD_PATH%\app.hex >> %BUILD_PATH%\all.hex
  66. copy %BUILD_PATH%\bootloader.bin %HEX_PATH%\bootloader.bin
  67. copy %BUILD_PATH%\app.bin %HEX_PATH%\app.bin
  68. copy %CUR_DIR%\info.json %HEX_PATH%\info.json
  69. copy %CUR_DIR%\soc_download.exe %HEX_PATH%\soc_download.exe
  70. :end
  71. ::回到当前项目目录
  72. cd %CUR_DIR%
  73. del %HEX_PATH%\LuatOS-SoC_%PROJ_NAME%.soc
  74. 7za.exe a "%HEX_PATH%\LuatOS-SoC_%PROJ_NAME%.soc" "%HEX_PATH%\*.*"
  75. pause