1@REM *************************************************************************** 2@REM 3@REM Builds/Cleans/Tests all examples 4@REM 5@REM Call this script without parameters for usage help. 6@REM 7@REM *************************************************************************** 8 9@ECHO OFF 10 11SETLOCAL ENABLEEXTENSIONS 12SETLOCAL ENABLEDELAYEDEXPANSION 13 14SET SCRIPT_NAME=%~n0%~x0 15CALL :DBG_MSG "SCRIPT_NAME: %SCRIPT_NAME%" 16SET "AZRTOS_TEST_DIR=%~dp0" 17CALL :DBG_MSG "AZRTOS_TEST_DIR: %AZRTOS_TEST_DIR%" 18SET "AZRTOS_REPO_DIR=%~dp0..\." 19CALL :DBG_MSG "AZRTOS_REPO_DIR: %AZRTOS_REPO_DIR%" 20 21CALL :DBG_MSG "Parsing parameters..." 22IF /I "%1" EQU "" GOTO PRINT_USAGE_AND_EXIT 23IF /I "%1" EQU "BUILD" SET FLAG_DO_WHAT=BUILD 24IF /I "%1" EQU "CLEAN" SET FLAG_DO_WHAT=CLEAN 25IF /I "%1" EQU "TEST" SET FLAG_DO_WHAT=TEST 26IF "%FLAG_DO_WHAT%"=="" GOTO PRINT_USAGE_AND_EXIT 27CALL :DBG_MSG "FLAG_DO_WHAT: %FLAG_DO_WHAT%" 28SHIFT 29IF /I "%1" EQU "" GOTO PRINT_USAGE_AND_EXIT 30IF /I "%1" EQU "TX" SET FLAG_DO_WHICH=TX 31IF /I "%1" EQU "TXM" SET FLAG_DO_WHICH=TXM 32IF "%FLAG_DO_WHICH%"=="" GOTO PRINT_USAGE_AND_EXIT 33CALL :DBG_MSG "FLAG_DO_WHICH: %FLAG_DO_WHICH%" 34SET FLAG_GHS=0 35SET FLAG_IAR=0 36SET FLAG_AC5=0 37SET FLAG_AC6=0 38SET FLAG_KUV=0 39SET FLAG_GNU=0 40CALL :DBG_MSG "Parsing groups..." 41:PARSE_GROUP_PARAMS 42SHIFT 43IF /I "%1" EQU "" GOTO GROUP_PARAMS_PARSED 44IF /I "%1" EQU "ALL" ( 45 SET FLAG_IAR=1 46 SET FLAG_GHS=1 47 SET FLAG_AC5=1 48 SET FLAG_AC6=1 49 SET FLAG_KUV=1 50 SET FLAG_GNU=1 51) 52IF /I "%1" EQU "IAR" SET FLAG_IAR=1 53IF /I "%1" EQU "GHS" SET FLAG_GHS=1 54IF /I "%1" EQU "AC5" SET FLAG_AC5=1 55IF /I "%1" EQU "AC6" SET FLAG_AC6=1 56IF /I "%1" EQU "KUV" SET FLAG_KUV=1 57IF /I "%1" EQU "GNU" SET FLAG_GNU=1 58GOTO PARSE_GROUP_PARAMS 59CALL :DBG_MSG "Groups parsed." 60:GROUP_PARAMS_PARSED 61CALL :DBG_MSG "FLAG_IAR: %FLAG_IAR%" 62CALL :DBG_MSG "FLAG_GHS: %FLAG_GHS%" 63CALL :DBG_MSG "FLAG_AC5: %FLAG_AC5%" 64CALL :DBG_MSG "FLAG_AC6: %FLAG_AC6%" 65CALL :DBG_MSG "FLAG_KUV: %FLAG_KUV%" 66CALL :DBG_MSG "FLAG_GNU: %FLAG_GNU%" 67CALL :DBG_MSG "Parameters parsed." 68 69IF %FLAG_IAR% EQU 1 ( 70 CALL azrtos_setenv_iar.bat 71 IF %ERRORLEVEL% NEQ 0 GOTO :SETENV_ERROR 72) 73IF %FLAG_GHS% EQU 1 ( 74 CALL azrtos_setenv_ghs.bat 75 IF %ERRORLEVEL% NEQ 0 GOTO :SETENV_ERROR 76) 77IF %FLAG_AC5% EQU 1 ( 78 CALL azrtos_setenv_ac5.bat 79 IF %ERRORLEVEL% NEQ 0 GOTO :SETENV_ERROR 80) 81IF %FLAG_AC6% EQU 1 ( 82 CALL azrtos_setenv_ac6.bat 83 IF %ERRORLEVEL% NEQ 0 GOTO :SETENV_ERROR 84) 85IF %FLAG_KUV% EQU 1 ( 86 CALL azrtos_setenv_kuv.bat 87 IF %ERRORLEVEL% NEQ 0 GOTO :SETENV_ERROR 88) 89IF %FLAG_GNU% EQU 1 ( 90 CALL azrtos_setenv_gnu.bat 91 IF %ERRORLEVEL% NEQ 0 GOTO :SETENV_ERROR 92) 93IF "%FLAG_DO_WHAT%" EQU "TEST" ( 94 IF %FLAG_GNU% EQU 1 ( 95 CALL azrtos_setenv_arm_dbg.bat 96 ) 97) 98 99SET LOGFILE=%AZRTOS_REPO_DIR%\test\azrtos_do_all.log 100CALL :DBG_MSG "LOGFILE: %LOGFILE%" 101 102SET /A DIR_COUNT=0 103SET /A DIR_SUCCESS_COUNT=0 104SET /A DIR_ERROR_COUNT=0 105 106IF %FLAG_DO_WHICH%==TX ( 107 IF %FLAG_IAR%==1 ( 108 CALL :DO_DIR IAR CORTEX_M0 %AZRTOS_REPO_DIR%\ports\cortex_m0\iar\example_build 109 CALL :DO_DIR IAR CORTEX_M3 %AZRTOS_REPO_DIR%\ports\cortex_m3\iar\example_build 110 CALL :DO_DIR IAR CORTEX_M4 %AZRTOS_REPO_DIR%\ports\cortex_m4\iar\example_build 111 CALL :DO_DIR IAR CORTEX_M7 %AZRTOS_REPO_DIR%\ports\cortex_m7\iar\example_build 112 REM CALL :DO_DIR IAR CORTEX_M23 %AZRTOS_REPO_DIR%\ports\cortex_m23\iar\example_build 113 REM CALL :DO_DIR IAR CORTEX_M33 %AZRTOS_REPO_DIR%\ports\cortex_m33\iar\example_build 114 CALL :DO_DIR IAR CORTEX_R4 %AZRTOS_REPO_DIR%\ports\cortex_r4\iar\example_build 115 CALL :DO_DIR IAR CORTEX_R5 %AZRTOS_REPO_DIR%\ports\cortex_r5\iar\example_build 116 CALL :DO_DIR IAR CORTEX_A5 %AZRTOS_REPO_DIR%\ports\cortex_a5\iar\example_build 117 CALL :DO_DIR IAR CORTEX_A7 %AZRTOS_REPO_DIR%\ports\cortex_a7\iar\example_build 118 CALL :DO_DIR IAR CORTEX_A8 %AZRTOS_REPO_DIR%\ports\cortex_a8\iar\example_build 119 CALL :DO_DIR IAR CORTEX_A9 %AZRTOS_REPO_DIR%\ports\cortex_a9\iar\example_build 120 CALL :DO_DIR IAR CORTEX_A15 %AZRTOS_REPO_DIR%\ports\cortex_a15\iar\example_build 121 CALL :DO_DIR IAR CORTEX_ARM9 %AZRTOS_REPO_DIR%\ports\arm9\iar\example_build 122 CALL :DO_DIR IAR CORTEX_ARM11 %AZRTOS_REPO_DIR%\ports\arm11\iar\example_build 123 REM CALL :DO_DIR IAR RISC_V32 %AZRTOS_REPO_DIR%\ports\risc-v32\iar\example_build 124 ) 125 IF %FLAG_GHS%==1 ( 126 CALL :DO_DIR GHS CORTEX_M3 %AZRTOS_REPO_DIR%\ports\cortex_m3\ghs\example_build 127 CALL :DO_DIR GHS CORTEX_M4 %AZRTOS_REPO_DIR%\ports\cortex_m4\ghs\example_build 128 CALL :DO_DIR GHS CORTEX_M7 %AZRTOS_REPO_DIR%\ports\cortex_m7\ghs\example_build 129 CALL :DO_DIR GHS CORTEX_R4 %AZRTOS_REPO_DIR%\ports\cortex_r4\ghs\example_build 130 CALL :DO_DIR GHS CORTEX_R5 %AZRTOS_REPO_DIR%\ports\cortex_r5\ghs\example_build 131 CALL :DO_DIR GHS CORTEX_R7 %AZRTOS_REPO_DIR%\ports\cortex_r7\ghs\example_build 132 CALL :DO_DIR GHS CORTEX_A5 %AZRTOS_REPO_DIR%\ports\cortex_a5\ghs\example_build 133 CALL :DO_DIR GHS CORTEX_A7 %AZRTOS_REPO_DIR%\ports\cortex_a7\ghs\example_build 134 CALL :DO_DIR GHS CORTEX_A8 %AZRTOS_REPO_DIR%\ports\cortex_a8\ghs\example_build 135 CALL :DO_DIR GHS CORTEX_A9 %AZRTOS_REPO_DIR%\ports\cortex_a9\ghs\example_build 136 ) 137 IF %FLAG_AC5%==1 ( 138 CALL :DO_DIR AC5 CORTEX_M4 %AZRTOS_REPO_DIR%\ports\cortex_m4\ac5\example_build 139 ) 140 IF %FLAG_AC6%==1 ( 141 CALL :DO_DIR AC6 CORTEX_M0 %AZRTOS_REPO_DIR%\ports\cortex_m0\ac6\example_build 142 CALL :DO_DIR AC6 CORTEX_M3 %AZRTOS_REPO_DIR%\ports\cortex_m3\ac6\example_build 143 CALL :DO_DIR AC6 CORTEX_M4 %AZRTOS_REPO_DIR%\ports\cortex_m4\ac6\example_build 144 CALL :DO_DIR AC6 CORTEX_M7 %AZRTOS_REPO_DIR%\ports\cortex_m7\ac6\example_build 145 REM CALL :DO_DIR AC6 CORTEX_M23 %AZRTOS_REPO_DIR%\ports\cortex_m23\ac6\example_build 146 REM CALL :DO_DIR AC6 CORTEX_M33 %AZRTOS_REPO_DIR%\ports\cortex_m33\ac6\example_build 147 CALL :DO_DIR AC6 CORTEX_R4 %AZRTOS_REPO_DIR%\ports\cortex_r4\ac6\example_build 148 CALL :DO_DIR AC6 CORTEX_R5 %AZRTOS_REPO_DIR%\ports\cortex_r5\ac6\example_build 149 CALL :DO_DIR AC6 CORTEX_A5X %AZRTOS_REPO_DIR%\ports\cortex_a5x\ac6\example_build 150 CALL :DO_DIR AC6 CORTEX_A7 %AZRTOS_REPO_DIR%\ports\cortex_a7\ac6\example_build 151 CALL :DO_DIR AC6 CORTEX_A8 %AZRTOS_REPO_DIR%\ports\cortex_a8\ac6\example_build 152 CALL :DO_DIR AC6 CORTEX_A9 %AZRTOS_REPO_DIR%\ports\cortex_a9\ac6\example_build 153 CALL :DO_DIR AC6 CORTEX_A15 %AZRTOS_REPO_DIR%\ports\cortex_a15\ac6\example_build 154 ) 155 IF %FLAG_KUV%==1 ( 156 CALL :DO_DIR KUV CORTEX_M3 %AZRTOS_REPO_DIR%\ports\cortex_m3\keil\example_build 157 CALL :DO_DIR KUV CORTEX_M4 %AZRTOS_REPO_DIR%\ports\cortex_m4\keil\example_build 158 ) 159 IF %FLAG_GNU%==1 ( 160 CALL :DO_DIR GNU CORTEX_M0 %AZRTOS_REPO_DIR%\ports\cortex_m0\gnu\example_build 161 CALL :DO_DIR GNU CORTEX_M3 %AZRTOS_REPO_DIR%\ports\cortex_m3\gnu\example_build 162 CALL :DO_DIR GNU CORTEX_M4 %AZRTOS_REPO_DIR%\ports\cortex_m4\gnu\example_build 163 CALL :DO_DIR GNU CORTEX_M7 %AZRTOS_REPO_DIR%\ports\cortex_m7\gnu\example_build 164 REM CALL :DO_DIR GNU CORTEX_M23 %AZRTOS_REPO_DIR%\ports\cortex_m23\gnu\example_build 165 REM CALL :DO_DIR GNU CORTEX_M33 %AZRTOS_REPO_DIR%\ports\cortex_m33\gnu\example_build 166 CALL :DO_DIR GNU CORTEX_R4 %AZRTOS_REPO_DIR%\ports\cortex_r4\gnu\example_build 167 CALL :DO_DIR GNU CORTEX_R5 %AZRTOS_REPO_DIR%\ports\cortex_r5\gnu\example_build 168 CALL :DO_DIR GNU CORTEX_A5 %AZRTOS_REPO_DIR%\ports\cortex_a5\gnu\example_build 169 CALL :DO_DIR GNU CORTEX_A7 %AZRTOS_REPO_DIR%\ports\cortex_a7\gnu\example_build 170 CALL :DO_DIR GNU CORTEX_A8 %AZRTOS_REPO_DIR%\ports\cortex_a8\gnu\example_build 171 CALL :DO_DIR GNU CORTEX_A9 %AZRTOS_REPO_DIR%\ports\cortex_a9\gnu\example_build 172 CALL :DO_DIR GNU CORTEX_A15 %AZRTOS_REPO_DIR%\ports\cortex_a15\gnu\example_build 173 REM CALL :DO_DIR GNU CORTEX_A35 %AZRTOS_REPO_DIR%\ports\cortex_a35\gnu\example_build 174 ) 175) 176IF %FLAG_DO_WHICH%==TXM ( 177 IF %FLAG_IAR%==1 ( 178 SET CURRENT_TOOLCHAIN=IAR 179 CALL :DO_DIR IAR CORTEX_M3 %AZRTOS_REPO_DIR%\ports_module\cortex-m3\iar\example_build 180 CALL :DO_DIR IAR CORTEX_M4 %AZRTOS_REPO_DIR%\ports_module\cortex-m4\iar\example_build 181 CALL :DO_DIR IAR CORTEX_M7 %AZRTOS_REPO_DIR%\ports_module\cortex-m7\iar\example_build 182 CALL :DO_DIR IAR CORTEX_R4 %AZRTOS_REPO_DIR%\ports_module\cortex-r4\iar\example_build 183 ) 184 IF %FLAG_AC5%==1 ( 185 CALL :DO_DIR AC5 CORTEX_M3 %AZRTOS_REPO_DIR%\ports_module\cortex-m3\ac5\example_build 186 CALL :DO_DIR AC5 CORTEX_M4 %AZRTOS_REPO_DIR%\ports_module\cortex-m4\ac5\example_build 187 CALL :DO_DIR AC5 CORTEX_M7 %AZRTOS_REPO_DIR%\ports_module\cortex-m7\ac5\example_build 188 CALL :DO_DIR AC5 CORTEX_A7 %AZRTOS_REPO_DIR%\ports_module\cortex-a7\ac5\example_build 189 ) 190 IF %FLAG_AC6%==1 ( 191 CALL :DO_DIR AC6 CORTEX_M3 %AZRTOS_REPO_DIR%\ports_module\cortex-m3\ac6\example_build 192 CALL :DO_DIR AC6 CORTEX_M4 %AZRTOS_REPO_DIR%\ports_module\cortex-m4\ac6\example_build 193 CALL :DO_DIR AC6 CORTEX_M7 %AZRTOS_REPO_DIR%\ports_module\cortex-m7\ac6\example_build 194 CALL :DO_DIR AC6 CORTEX_R4 %AZRTOS_REPO_DIR%\ports_module\cortex-r4\ac6\example_build 195 ) 196 IF %FLAG_KUV%==1 ( 197 CALL :DO_DIR KUV CORTEX_M4 %AZRTOS_REPO_DIR%\ports_module\cortex-m4\keil\example_build 198 ) 199 IF %FLAG_GNU%==1 ( 200 CALL :DO_DIR GNU CORTEX_M3 %AZRTOS_REPO_DIR%\ports_module\cortex-m3\gnu\example_build 201 CALL :DO_DIR GNU CORTEX_M4 %AZRTOS_REPO_DIR%\ports_module\cortex-m4\gnu\example_build 202 CALL :DO_DIR GNU CORTEX_M7 %AZRTOS_REPO_DIR%\ports_module\cortex-m7\gnu\example_build 203 ) 204) 205CALL :DBG_MSG "All operations called." 206 207CALL :DBG_MSG "Printing results." 208CALL :OUT_MSG "INFO: %FLAG_DO_WHAT% results:" 209CALL :OUT_MSG "INFO: %DIR_COUNT% total." 210CALL :OUT_MSG "INFO: %DIR_SUCCESS_COUNT% completed successfully." 211IF "%DIR_ERROR_COUNT%" NEQ "0" CALL :OUT_MSG "ERROR: %DIR_ERROR_COUNT% failed." 212CALL :OUT_MSG "INFO: Ending %FLAG_DO_WHAT% on %DATE% at %TIME%." 213EXIT /B 0 214 215 216:PRINT_USAGE_AND_EXIT 217ECHO. 218ECHO Usage: 219ECHO %SCRIPT_NAME% {build^|clean^|test} {tx^|txm} [[group] [[group] [...]]] 220ECHO Performs the selected operation on ThreadX or ThreadX Modules examples in one or more groups, 221ECHO where group is one of the following: 222ECHO ALL -- ALL examples 223ECHO IAR -- IAR Embedded Workbench examples 224ECHO GHS -- Green Hills Software examples 225ECHO AC5 -- ARM Developer Studio 5 examples 226ECHO AC6 -- ARM Developer Studio 6 examples 227ECHO KUV -- KEIL uVision 228ECHO GNU -- GNU Compiler Collection 229ECHO If no parameters are passed usage information is displayed. 230ECHO Outputs a report to standard output. 231ECHO Creates a log file with all output. 232ECHO. 233EXIT /B 0 234 235 236:SETENV_ERROR 237CALL :OUT_MSG "ERROR: failed to set the environment" 238EXIT 1 239 240 241:DO_DIR 242SET "CURRENT_TOOLCHAIN=%~1" 243SET "CURRENT_PLATFORM=%~2" 244SET "CURRENT_DIRECTORY=%~3" 245CALL :DBG_MSG "CURRENT_DIRECTORY: %CURRENT_DIRECTORY%" 246IF NOT EXIST %CURRENT_DIRECTORY% ( 247 EXIT /B 1 248 CALL :OUT_MSG "ERROR: Directory doesn't exist: CURRENT_DIRECTORY" 249) 250PUSHD %CURRENT_DIRECTORY% 251IF /I "%FLAG_DO_WHAT%" EQU "BUILD" SET CURRENT_SCRIPT=%AZRTOS_REPO_DIR%\test\azrtos_build_%FLAG_DO_WHICH%_%CURRENT_TOOLCHAIN%.bat 252IF /I "%FLAG_DO_WHAT%" EQU "CLEAN" SET CURRENT_SCRIPT=%AZRTOS_REPO_DIR%\test\azrtos_clean_%FLAG_DO_WHICH%_%CURRENT_TOOLCHAIN%.bat 253IF /I "%FLAG_DO_WHAT%" EQU "TEST" SET CURRENT_SCRIPT=%AZRTOS_REPO_DIR%\test\azrtos_test_%FLAG_DO_WHICH%_%CURRENT_TOOLCHAIN%_%CURRENT_PLATFORM%.bat 254IF DEFINED DEBUG ECHO DEBUG: %CURRENT_SCRIPT% 255IF NOT EXIST %CURRENT_SCRIPT% ( 256 CALL :OUT_MSG "ERROR: script does not exist: %CURRENT_SCRIPT%" 257) ELSE ( 258 CALL :OUT_MSG "INFO: STARTING: %FLAG_DO_WHAT%: %CD% - %DATE% %TIME%" 259 SET /A DIR_COUNT+=1 260 CALL %CURRENT_SCRIPT% >> %LOGFILE% 2>&1 261 IF %ERRORLEVEL% EQU 0 ( 262 CALL :OUT_MSG "INFO: SUCCESS: %FLAG_DO_WHAT%: %CD% - %DATE% %TIME%" 263 SET /A DIR_SUCCESS_COUNT+=1 264 ) ELSE ( 265 CALL :OUT_MSG "ERROR: %FLAG_DO_WHAT%: %CD% - %DATE% %TIME%" 266 SET /A DIR_ERROR_COUNT+=1 267 ) 268 POPD 269) 270EXIT /B 0 271 272 273:DBG_MSG 274IF DEFINED AZRTOS_DEBUG (ECHO DEBUG: %~1) 275EXIT /B 0 276 277 278:OUT_MSG 279ECHO %~1 280IF DEFINED LOGFILE (ECHO %~1 > %LOGFILE%) 281EXIT /B 0 282