FEZ Cerberus Firmware Build Error

Hello.

I’m trying to build the FEZ Cerberus firmware for Discovery4.
But everytime I get a compilation error…

My setup:
NETMF PK 4.2 QFE2
GHI sources from http://ghiopensource.codeplex.com/
Keil MDK Standard 4.54
VS 2010 SP1
Win 8 Pro x64

Compile commands:
setenv_mdk.cmd 4.54 c:\keil\arm
msbuild /p:flavor=release;memory=FLASH Solutions\FEZCerberus\dotNetMF.proj

The error is in MicroFrameworkPK_v4_2\DeviceCode\GHI\Configuration\dotNetMF.proj and MicroFrameworkPK_v4_2\DeviceCode\GHI\l
ibraries\GHI.OSHW.Hardware\Native\dotNetMF.proj

"d:\MicroFrameworkPK_v4_2\Solutions\FEZCerberus\dotNetMF.proj" (domyślny element docelowy) (1)->
"d:\MicroFrameworkPK_v4_2\Solutions\FEZCerberus\TinyCLR\TinyCLR.proj" (element docelowy Build) (123) ->
"d:\MicroFrameworkPK_v4_2\DeviceCode\GHI\libraries\GHI.OSHW.Hardware\Native\dotNetMF.proj" (element docelowy Build) (137) ->
(element docelowy ArmCompileCPP) ->
  d:\MicroFrameworkPK_v4_2\tools\targets\Microsoft.SPOT.System.MDK.targets(262,4): error MSB3073: The command ""c:\keil\arm\bin40\armcc.exe"  --cpp
--diag_suppress 2874,111,161,550,C3011 --diag_suppress 66,161,230,1293 --split_sections  -DMDK_V3_1 -DARM_V3_1 -Id:\MicroFrameworkPK_v4_2\DeviceCode
-Id:\MicroFrameworkPK_v4_2\DeviceCode\pal\rtip -Id:\MicroFrameworkPK_v4_2\DeviceCode\pal\rtip\rtpcore -Id:\MicroFrameworkPK_v4_2\devicecode\pal\rtip\
tinyclr --feedback d:\MicroFrameworkPK_v4_2\tools\make\Feedback\FEZCerberus_MDK4.54.feedback -DTINYCLR_ENABLE_SOURCELEVELDEBUGGING  -DCOMPILE_THUMB2
 -DVERSION_MAJOR=4 -DVERSION_MINOR=2 -DVERSION_BUILD=0 -DVERSION_REVISION=0 -DOEMSYSTEMINFOSTRING="\"Copyright GHI Electronics, LLC\"" -DPLATFORM_ARM
_FEZCerberus  -DTARGETLOCATION_FLASH  -DLITTLE_ENDIAN  -DPLATFORM_NO_CLR_TRACE=1 -DTINYCLR_NO_IL_INLINE=1   --thumb --apcs=interwork   --cpu Cortex-M
4.fp --littleend  --no_debug --dwarf2 --no_debug_macros -O2 --inline -Otime --no_autoinline   -DNDEBUG  -Ic:\keil\arm\RV31\INC -Id:\MicroFrameworkPK_
v4_2\DeviceCode\Targets\Native\Interop\GHI_OSHW_Hardware -Id:\MicroFrameworkPK_v4_2\DeviceCode\include -Id:\MicroFrameworkPK_v4_2\DeviceCode\Cores\ar
m -Id:\MicroFrameworkPK_v4_2\Support\Include   -Id:\MicroFrameworkPK_v4_2\crypto\inc  -Id:\MicroFrameworkPK_v4_2\CLR\Include -Id:\MicroFrameworkPK_v4
_2\CLR\Libraries\CorLib -Id:\MicroFrameworkPK_v4_2\CLR\Libraries\SPOT -Id:\MicroFrameworkPK_v4_2\CLR\Libraries\SPOT_Hardware -Id:\MicroFrameworkPK_v4
_2\CLR\Libraries\SPOT_Graphics -Id:\MicroFrameworkPK_v4_2\CLR\Libraries\SPOT_Net -Id:\MicroFrameworkPK_v4_2\CLR\Libraries\SPOT_Net_Security -Id:\Micr
oFrameworkPK_v4_2\Solutions\FEZCerberus -Id:\MicroFrameworkPK_v4_2\devicecode\Targets\Native\STM32F4 -Id:\MicroFrameworkPK_v4_2\DeviceCode\Cores\arm
-Id:\MicroFrameworkPK_v4_2\DeviceCode\Cores\arm\Include -Id:\MicroFrameworkPK_v4_2\DeviceCode -Id:\MicroFrameworkPK_v4_2\DeviceCode\Include -Id:\Micr
oFrameworkPK_v4_2\DeviceCode\Targets\Native\STM32F4\FEZCerberus -Id:\MicroFrameworkPK_v4_2\Support\Include -Id:\MicroFrameworkPK_v4_2\DeviceCode\incl
ude -Id:\MicroFrameworkPK_v4_2\CLR\include -Id:\MicroFrameworkPK_v4_2\Crypto\inc    -o d:\MicroFrameworkPK_v4_2\BuildOutput\THUMB2\MDK4.54\le\FLASH\r
elease\FEZCerberus\obj\DeviceCode\Targets\Native\Interop\GHI_OSHW_Hardware\HAL_GHI_OSHW_Hardware_LCDController.obj -c d:\MicroFrameworkPK_v4_2\Device
Code\GHI\libraries\GHI.OSHW.Hardware\Native\HAL_GHI_OSHW_Hardware_LCDController.cpp  " exited with code 1. [d:\MicroFrameworkPK_v4_2\DeviceCode\GHI\l
ibraries\GHI.OSHW.Hardware\Native\dotNetMF.proj]


"d:\MicroFrameworkPK_v4_2\Solutions\FEZCerberus\dotNetMF.proj" (domyślny element docelowy) (1)->
"d:\MicroFrameworkPK_v4_2\Solutions\FEZCerberus\TinyCLR\TinyCLR.proj" (element docelowy Build) (123) ->
"d:\MicroFrameworkPK_v4_2\DeviceCode\GHI\Configuration\dotNetMF.proj" (element docelowy Build) (142) ->
  d:\MicroFrameworkPK_v4_2\tools\targets\Microsoft.SPOT.System.MDK.targets(262,4): error MSB3073: The command ""c:\keil\arm\bin40\armcc.exe"  --cpp
--diag_suppress 2874,111,161,550,C3011 --diag_suppress 66,161,230,1293 --split_sections  -DMDK_V3_1 -DARM_V3_1 -Id:\MicroFrameworkPK_v4_2\DeviceCode
-Id:\MicroFrameworkPK_v4_2\DeviceCode\pal\rtip -Id:\MicroFrameworkPK_v4_2\DeviceCode\pal\rtip\rtpcore -Id:\MicroFrameworkPK_v4_2\devicecode\pal\rtip\
tinyclr --feedback d:\MicroFrameworkPK_v4_2\tools\make\Feedback\FEZCerberus_MDK4.54.feedback -DTINYCLR_ENABLE_SOURCELEVELDEBUGGING  -DCOMPILE_THUMB2
 -DVERSION_MAJOR=4 -DVERSION_MINOR=2 -DVERSION_BUILD=0 -DVERSION_REVISION=0 -DOEMSYSTEMINFOSTRING="\"Copyright GHI Electronics, LLC\"" -DPLATFORM_ARM
_FEZCerberus  -DTARGETLOCATION_FLASH  -DLITTLE_ENDIAN  -DPLATFORM_NO_CLR_TRACE=1 -DTINYCLR_NO_IL_INLINE=1   --thumb --apcs=interwork   --cpu Cortex-M
4.fp --littleend  --no_debug --dwarf2 --no_debug_macros -O2 --inline -Otime --no_autoinline   -DNDEBUG  -Ic:\keil\arm\RV31\INC -Id:\MicroFrameworkPK_
v4_2\DeviceCode\GHI\Configuration -Id:\MicroFrameworkPK_v4_2\DeviceCode\include -Id:\MicroFrameworkPK_v4_2\DeviceCode\Cores\arm -Id:\MicroFrameworkPK
_v4_2\Support\Include   -Id:\MicroFrameworkPK_v4_2\crypto\inc  -Id:\MicroFrameworkPK_v4_2\CLR\Include -Id:\MicroFrameworkPK_v4_2\CLR\Libraries\CorLib
 -Id:\MicroFrameworkPK_v4_2\CLR\Libraries\SPOT -Id:\MicroFrameworkPK_v4_2\CLR\Libraries\SPOT_Hardware -Id:\MicroFrameworkPK_v4_2\CLR\Libraries\SPOT_G
raphics -Id:\MicroFrameworkPK_v4_2\CLR\Libraries\SPOT_Net -Id:\MicroFrameworkPK_v4_2\CLR\Libraries\SPOT_Net_Security -Id:\MicroFrameworkPK_v4_2\Solut
ions\FEZCerberus -Id:\MicroFrameworkPK_v4_2\devicecode\Targets\Native\STM32F4 -Id:\MicroFrameworkPK_v4_2\DeviceCode\Cores\arm -Id:\MicroFrameworkPK_v
4_2\DeviceCode\Cores\arm\Include -Id:\MicroFrameworkPK_v4_2\DeviceCode -Id:\MicroFrameworkPK_v4_2\DeviceCode\Include -Id:\MicroFrameworkPK_v4_2\Devic
eCode\Targets\Native\STM32F4\FEZCerberus -Id:\MicroFrameworkPK_v4_2\Support\Include -Id:\MicroFrameworkPK_v4_2\DeviceCode\include -Id:\MicroFramework
PK_v4_2\CLR\include -Id:\MicroFrameworkPK_v4_2\Crypto\inc    -o d:\MicroFrameworkPK_v4_2\BuildOutput\THUMB2\MDK4.54\le\FLASH\release\FEZCerberus\obj\
DeviceCode\GHI\Configuration\OSHW_Configuration.obj -c d:\MicroFrameworkPK_v4_2\DeviceCode\GHI\Configuration\OSHW_Configuration.cpp  " exited with co
de 1. [d:\MicroFrameworkPK_v4_2\DeviceCode\GHI\Configuration\dotNetMF.proj]

Welcome to the forum!

I think that is the final summary that tells you that build failed. There should be more information about why that command failed when it was actually executed. You can log the whole output to a file or just execute that command only.

Ok, i’ve managed to build it on other computer… probably something was wrong with the other setup…

My question is how to build different versione of the firmware ?
Ethernet and non Ethernet ?

You do this by changing stub Ethernet libraries with the real one in the project file. You will also need to adjust the scatter file to accommodate the difference in size.

Here is a link to old thread:

https://www.ghielectronics.com/community/forum/topic?id=10282

Thanks for the quick answer, i’ve also found out why there was build errors.

I had the PK on drive D:\ and there are includes to absolute paths with drive C:\ in cerb source code… so moving to drive C: solved the problem.

Excellent! Yeah, GHI needs to fix these and make them relative paths.