diff --git a/linux_install b/linux_install index ef061b343f..e8fe527693 100755 --- a/linux_install +++ b/linux_install @@ -37,11 +37,11 @@ pushd $ROOTDIR ROOTDIR=$PWD LOGFILE=$ROOTDIR/linux_install.log ERRORFILE=$ROOTDIR/linux_install.err -GCC4ARM_VERSION=gcc-arm-none-eabi-4_7-2012q4 -GCC4ARM_FILENAME=gcc-arm-none-eabi-4_7-2012q4-20121208-linux.tar.bz2 -GCC4ARM_URL=https://launchpad.net/gcc-arm-embedded/4.7/4.7-2012-q4-major/+download/$GCC4ARM_FILENAME +GCC4ARM_VERSION=gcc-arm-none-eabi-4_8-2014q1 +GCC4ARM_FILENAME=gcc-arm-none-eabi-4_8-2014q1-20140314-linux.tar.bz2 +GCC4ARM_URL=https://launchpad.net/gcc-arm-embedded/4.8/4.8-2014-q1-update/+download/$GCC4ARM_FILENAME GCC4ARM_TAR=$ROOTDIR/$GCC4ARM_FILENAME -GCC4ARM_MD5=475c3283253b872bb576020844046cf2 +GCC4ARM_MD5=72b0d06ae16b303c25fd70b2883d3950 GCC4ARM_EXTRACT=$ROOTDIR/$GCC4ARM_VERSION GCC4ARM_DIR=$ROOTDIR/gcc-arm-none-eabi GCC4ARM_BINDIR=$GCC4ARM_DIR/bin diff --git a/mac_install b/mac_install index 9c123ceba9..e74b6a75ed 100755 --- a/mac_install +++ b/mac_install @@ -37,11 +37,11 @@ pushd $ROOTDIR ROOTDIR=$PWD LOGFILE=$ROOTDIR/mac_install.log ERRORFILE=$ROOTDIR/mac_install.err -GCC4ARM_VERSION=gcc-arm-none-eabi-4_7-2012q4 -GCC4ARM_FILENAME=gcc-arm-none-eabi-4_7-2012q4-20121208-mac.tar.bz2 -GCC4ARM_URL=https://launchpad.net/gcc-arm-embedded/4.7/4.7-2012-q4-major/+download/$GCC4ARM_FILENAME +GCC4ARM_VERSION=gcc-arm-none-eabi-4_8-2014q1 +GCC4ARM_FILENAME=gcc-arm-none-eabi-4_8-2014q1-20140314-mac.tar.bz2 +GCC4ARM_URL=https://launchpad.net/gcc-arm-embedded/4.8/4.8-2014-q1-update/+download/$GCC4ARM_FILENAME GCC4ARM_TAR=$ROOTDIR/$GCC4ARM_FILENAME -GCC4ARM_MD5=fcfe3aecbfe77c1e5985845fbe722aac +GCC4ARM_MD5=5d34d95a53ba545f1585b9136cbb6805 GCC4ARM_EXTRACT=$ROOTDIR/$GCC4ARM_VERSION GCC4ARM_DIR=$ROOTDIR/gcc-arm-none-eabi GCC4ARM_BINDIR=$GCC4ARM_DIR/bin diff --git a/mri/mri.ar b/mri/mri.ar index b3a47fe317..6b32dbe6c0 100644 Binary files a/mri/mri.ar and b/mri/mri.ar differ diff --git a/mri/mri.h b/mri/mri.h index 3e0c83d050..c93b12391d 100644 --- a/mri/mri.h +++ b/mri/mri.h @@ -20,7 +20,9 @@ #include /* Used to insert hardcoded breakpoint into user's code. */ -#define __debugbreak() do { __asm volatile ("bkpt #0"); } while (0) +#ifndef __debugbreak + #define __debugbreak() { __asm volatile ("bkpt #0"); } +#endif /* Error strings that can be returned to GDB. */ #define MRI_ERROR_INVALID_ARGUMENT "E01" /* Encountered error when parsing command arguments. */ @@ -91,12 +93,12 @@ int __mriPlatform_CommUartIndex(void); #ifndef MRI_VERSION_STRING -#define MRI_BRANCH "https://github.com/adamgreen/mri/tree/version_0.5" +#define MRI_BRANCH "https://github.com/adamgreen/mri/tree/version_0.6" #define MRI_VERSION_MAJOR 0 -#define MRI_VERSION_MINOR 5 -#define MRI_VERSION_BUILD 20130120 -#define MRI_VERSION_SUBBUILD 1 +#define MRI_VERSION_MINOR 6 +#define MRI_VERSION_BUILD 20140515 +#define MRI_VERSION_SUBBUILD 2 #define MRI_STR(X) MRI_STR2(X) #define MRI_STR2(X) #X diff --git a/src/modules/robot/Conveyor.cpp b/src/modules/robot/Conveyor.cpp index d1f3ce7ac1..4b6f9e279f 100644 --- a/src/modules/robot/Conveyor.cpp +++ b/src/modules/robot/Conveyor.cpp @@ -69,10 +69,9 @@ void Conveyor::on_module_loaded(){ void Conveyor::on_idle(void* argument){ if (queue.tail_i != gc_pending) { - if (queue.is_empty()) + if (queue.is_empty()) { __debugbreak(); - else - { + }else{ // Cleanly delete block Block* block = queue.tail_ref(); // block->debug(); diff --git a/win_install.cmd b/win_install.cmd old mode 100755 new mode 100644 index 1e3d0c83a5..6fafcbb847 --- a/win_install.cmd +++ b/win_install.cmd @@ -1,5 +1,5 @@ @echo off -rem Copyright 2012 Adam Green (http://mbed.org/users/AdamGreen/) +rem Copyright 2013 Adam Green (http://mbed.org/users/AdamGreen/) rem rem Licensed under the Apache License, Version 2.0 (the "License"); rem you may not use this file except in compliance with the License. @@ -19,26 +19,18 @@ setlocal set ROOTDIR=%~dp0 set LOGFILE=%ROOTDIR%win_install.log set ERRORFILE=%ROOTDIR%win_install.err - -set GCC4ARM_FILENAME=gcc-arm-none-eabi-4_7-2012q4-20121208-linux.tar.bz2 -set GCC4ARM_URL=https://launchpad.net/gcc-arm-embedded/4.7/4.7-2012-q4-major/+download/%GCC4ARM_FILENAME% +set GCC4ARM_VERSION=gcc-arm-none-eabi-4_8-2014q1 +set GCC4ARM_FILENAME=gcc-arm-none-eabi-4_8-2014q1-20140314-win32.zip +set GCC4ARM_URL=https://launchpad.net/gcc-arm-embedded/4.8/4.8-2014-q1-update/+download/%GCC4ARM_FILENAME% set GCC4ARM_TAR=%ROOTDIR%%GCC4ARM_FILENAME% -set GCC4ARM_MD5=%ROOTDIR%build\win32\gcc-arm-none-eabi.md5 -set GCC4ARM_VERSION=gcc-arm-none-eabi-4_7-2012q4 -set GCC4ARM_EXTRACT=%ROOTDIR%%GCC4ARM_VERSION% +set GCC4ARM_MD5=09c19b3248863074f5498a88f31bee16 +set GCC4ARM_MD5_FILENAME=%ROOTDIR%gcc-arm-none-eabi.md5 set GCC4ARM_DIR=%ROOTDIR%gcc-arm-none-eabi set GCC4ARM_BINDIR=%GCC4ARM_DIR%\bin -set GCC4ARM_LIBEXEC=%GCC4ARM_DIR%\lib\gcc\arm-none-eabi\4.7.3 -set WINBIN_URL=https://github.com/adamgreen/GCC-ARM-Embedded-20121208/tarball/master -set WINBIN_TAR=%ROOTDIR%GCC-ARM-Embedded-20121208.tar.gz - -set WINBIN_MD5=%ROOTDIR%build\win32\GCC-ARM-Embedded.md5 -set WINBIN_BASEDIR=%ROOTDIR%GCC-ARM-Embedded -set WINBIN_DIR=%WINBIN_BASEDIR%\win32 -set OUR_MAKE=%ROOTDIR%build\win32\make.exe +set OUR_MAKE=%ROOTDIR%external\win32\make.exe set BUILDENV_CMD=%GCC4ARM_BINDIR%\buildenv.cmd set BUILDSHELL_CMD=%ROOTDIR%BuildShell.cmd -set ERROR_ENCOUNTERED=0 +set BUILDSHELL_DEBUG_CMD=%ROOTDIR%BuildShellDebug.cmd rem Make sure that we are running with current directory set to where this @@ -50,67 +42,56 @@ echo Logging install results to %LOGFILE% echo %DATE% %TIME% Starting %0 %*>%LOGFILE% echo Downloading GNU Tools for ARM Embedded Processors... -echo %DATE% %TIME% Executing build\win32\curl -kL0 %GCC4ARM_URL%>>%LOGFILE% -build\win32\curl -kL0 %GCC4ARM_URL% >%GCC4ARM_TAR% -if errorlevel 1 goto ExitOnError - -echo Validating md5 signature of Code Sourcery G++ Lite... -call :RunAndLog build\win32\md5sum --check %GCC4ARM_MD5% -if errorlevel 1 goto ExitOnError - -echo Downloading Windows GCC binaries from github... -echo %DATE% %TIME% Executing build\win32\curl -kL0 %WINBIN_URL%>>%LOGFILE% -build\win32\curl -kL0 %WINBIN_URL% >%WINBIN_TAR% +echo %DATE% %TIME% Executing external\win32\curl -kL0 %GCC4ARM_URL%>>%LOGFILE% +external\win32\curl -kL0 %GCC4ARM_URL% >%GCC4ARM_TAR% if errorlevel 1 goto ExitOnError -echo Validating md5 signature of Windows GCC binaries... -call :RunAndLog build\win32\md5sum --check %WINBIN_MD5% +echo Validating md5 signature of GNU Tools for ARM Embedded Processors... +echo %GCC4ARM_MD5% *%GCC4ARM_FILENAME%>%GCC4ARM_MD5_FILENAME% +call :RunAndLog external\win32\md5sum --check %GCC4ARM_MD5_FILENAME% if errorlevel 1 goto ExitOnError +del "%GCC4ARM_MD5_FILENAME%" echo Extracting GNU Tools for ARM Embedded Processors... -call :RunAndLog rd /s /q %GCC4ARM_EXTRACT% call :RunAndLog rd /s /q %GCC4ARM_DIR% -call :RunAndLog build\win32\bsdtar xf %GCC4ARM_TAR% -if errorlevel 1 goto ExitOnError -call :RunAndLog move %GCC4ARM_EXTRACT% %GCC4ARM_DIR% -if errorlevel 1 goto ExitOnError - -echo Extracting Windows GCC binaries... -call :RunAndLog rd /s /q %WINBIN_BASEDIR% -call :RunAndLog build\win32\bsdtar xf %WINBIN_TAR% -for /d %%i in (adamgreen-GCC-ARM-Embedded-*) do call :RunAndLog move %%i %WINBIN_BASEDIR% -if errorlevel 1 goto ExitOnError - -echo Installing Windows binaries... -call :RunAndLog del /q %GCC4ARM_BINDIR%\* -call :RunAndLog copy %WINBIN_DIR%\arm-none-eabi-* %GCC4ARM_BINDIR%\ +call :RunAndLog md %GCC4ARM_DIR% if errorlevel 1 goto ExitOnError -for %%i in (as g++ ld objcopy ranlib ar c++ gcc nm objdump strip) do call :CopyGccFile %%i -if "%ERROR_ENCOUNTERED%"=="1" goto ExitOnError -call :RunAndLog xcopy /eiy %WINBIN_DIR%\libexec %GCC4ARM_LIBEXEC% +call :RunAndLog cd %GCC4ARM_DIR% +call :RunAndLog ..\external\win32\bsdtar xf %GCC4ARM_TAR% if errorlevel 1 goto ExitOnError +call :RunAndLog cd .. echo Creating helper scripts... echo @echo off>%BUILDENV_CMD% echo REM Uncomment next line and set destination drive to match mbed device>>%BUILDENV_CMD% echo REM SET LPC_DEPLOY=copy PROJECT.bin f:\>>%BUILDENV_CMD% echo.>>%BUILDENV_CMD% -echo SET PATH=%%~dp0;%%~dp0..\..\build\win32;%%PATH%%>>%BUILDENV_CMD% +echo SET PATH=%%~dp0;%%~dp0..\..\external\win32;%%PATH%%>>%BUILDENV_CMD% rem echo @cmd.exe /K %%~dp0\gcc-arm-none-eabi\bin\buildenv.cmd>%BUILDSHELL_CMD% +rem +echo @cmd.exe /K "set GCC4MBED_TYPE=Debug& %%~dp0\gcc-arm-none-eabi\bin\buildenv.cmd">%BUILDSHELL_DEBUG_CMD% + +rem Place GNU Tool for ARM Embedded Processors in the path before building gcc4mbed code. +set path=%GCC4ARM_BINDIR%;%ROOTDIR%external\win32;%PATH% + +echo Performing a clean build of the gcc4mbed samples... +call :RunAndLog %OUR_MAKE% clean +if errorlevel 1 goto ExitOnError +call :RunAndLog %OUR_MAKE% +if errorlevel 1 goto ExitOnError echo Cleaning up intermediate files... -call :RunAndLog rd /s /q %WINBIN_BASEDIR% -call :RunAndLog del /f %WINBIN_TAR% call :RunAndLog del /f %GCC4ARM_TAR% echo ************************************************************************** -echo To build Smoothie, you will first need to run the following batch +echo To build gcc4mbed samples, you will first need to run the following batch echo file so that your environment variables are set correctly: echo %BUILDSHELL_CMD% echo You will want to run this each time you start a new Command Prompt. You echo can simply double-click on this batch file from Explorer to launch a -echo Command Prompt that has been properly initialized for building. +echo Command Prompt that has been properly initialized for building gcc4mbed +echo based code. echo ************************************************************************** rem Restore current directory and exit batch file on success. @@ -128,17 +109,9 @@ goto :EOF -rem Copies a file between GCC directories where one has arm-none-eabi prefix and the other doesn't -:CopyGccFile -call :RunAndLog del "%GCC4ARM_DIR%\arm-none-eabi\bin\%1" -call :RunAndLog copy /y "%GCC4ARM_BINDIR%\arm-none-eabi-%1.exe" "%GCC4ARM_DIR%\arm-none-eabi\bin\%1.exe" -if errorlevel 1 set ERROR_ENCOUNTERED=1 -goto :EOF - - rem Exits the batch file due to error. -rem Make sure that any stderr text ends up in win_install.log and the restore -rem the current dictory before forcing an early exit. +rem Make sure that any stderr text ends up in win_install.log and then restore +rem the current directory before forcing an early exit. :ExitOnError type %ERRORFILE% >>%LOGFILE% echo %DATE% %TIME% Failure forced early exit>>%LOGFILE% @@ -148,4 +121,4 @@ type %LOGFILE% :Exit del %ERRORFILE% popd -pause \ No newline at end of file +pause