Main Site Documentation

Cerberus MF4.3 + lwIP problem


#1

Hi all!
I’m trying to compile netmf 4.3 for Cerberus board. It works with the original solution for my board, but when I’m change TinyCLR.proj for enable ethernet compilation failed at the end when build library System whith error code 1.
That’s what I’m changing:

<!--<ItemGroup>
    <DriverLibs Include="sockets_pal_stubs.$(LIB_EXT)" />
    <RequiredProjects Include="$(SPOCLIENT)\DeviceCode\PAL\COM\Sockets\stubs\dotNetMF.proj" />
  </ItemGroup>-->
  <ItemGroup>
    <DriverLibs Include="sockets_pal_lwip.$(LIB_EXT)" />
    <RequiredProjects Include="$(SPOCLIENT)\DeviceCode\PAL\COM\Sockets_lwip\dotNetMF.proj" />
  </ItemGroup>

I use netmf-community-ports and embedded arm gcc 4.6.2.
What am I doing wrong?


#2

You should use the /filelogger option to get more info.

msbuild /p:flavor=release /filelogger 

This create a usefull log file.


#3

There is a small problem: I have russian Visual Studio and log is russian too.
I think the problem here:

D:\gcc\bin\..\arm-none-eabi\bin\ld.exe: D:\netmf-community-ports-master\BuildOutput\THUMB2\GCC4.6\le\FLASH\release\FEZCerberus\bin\tinyclr.axf section `ER_FLASH' will not fit in region `LR_FLASH'
  D:\gcc\bin\..\arm-none-eabi\bin\ld.exe: D:\netmf-community-ports-master\BuildOutput\THUMB2\GCC4.6\le\FLASH\release\FEZCerberus\bin\tinyclr.axf section `.bss' will not fit in region `RAM'
  D:\gcc\bin\..\arm-none-eabi\bin\ld.exe: region `LR_FLASH' overflowed by 71968 bytes
  D:\gcc\bin\..\arm-none-eabi\bin\ld.exe: region `RAM' overflowed by 33132 bytes

#4

You will need to update the scatter file and increase the size of the regions that shows the problems (LR_FLASH, RAM).


#5

I move Deploy region on 128k and it’s fix first error.
But I have no idea what should I do with RAM.

  <Set Name="Stack_Bottom"            Value="0x10000000"/>
  <Set Name="Stack_Size"              Value="0x00008000"/>  <!--32k-->
  <Set Name="Heap_Begin"              Value="0x20000000"/>
  <Set Name="Heap_End"                Value="0x2001CDF8"/>  <!--115k-->
  <Set Name="RLP_Region_Begin"        Value="0x2001D000"/>  <!--11k-->
  <!-- Custom heap used for interrupt handler table only -->
  <Set Name="Custom_Heap_Begin"       Value="0x2001FE00"/>
  <Set Name="Custom_Heap_End"         Value="0x2001FFF8"/>

 <LoadRegion Name="RAM" Base="%CCM_Start + Stack_Size%" Size="%CCM_Size - Stack_Size%"/>

If I increase RAM, that decrease Stack.


#6

Check Oberon’s documentation. They show their memory map:


#7

I think you are not using the right version. This memory map is optimized for non ethernet solution.
The scatterfile for gcc should be correct here : https://github.com/NicolasG3/NETMF4.3_Community