Building FEZ Hydra Firmware v4.2.3.2 (Nov. 29, 2012 release)

Hi,

I’m trying to build the FEZ Hydra Firmware v4.2.3.2 (Nov. 29, 2012 release), in particular, the “with Ethernet” version.
I’m trying to locate the GHI codesource to get this version. I’ve tried https://stm32f4.svn.codeplex.com/svn/

I have the build tools (gcc) and the PK. Was able to make a sucessful build with the get latest from above site.
The firmware updates with MFDeploy but the Ethernet doesn’t work. The network interface returns NULL.

When I reflash with the release f/w the Ethernet port works.

I don’t think it’s my build setup but just getting the right code source. Can you tell me how to get that version?

Regards,
Andrew

All that is needed to have the Ethernet firmware versus the non Ethernet is to change the following lines in the TinyCLR.proj file in the TinyCLR directory of the Hydra Solution:


  <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>-->

Just comment out the stubs and uncomment the lwip section.

Hi Aron,

Thanks for the response.
Actually, I was trying to modify the project params in the Fez Hydra and I actually tried what you said!
But I got an error. Something with the .axf file.

Do I need a certain version of gcc? I have gcc 4.2.1 (CodeSourcery) and gcc 4.7.2 (Yargto)?

I played around and to get it to complie without error, I uncommented both. But the result still didn’t work.

Thanks,
Andrew

@ andrew4096 - I use the ARM GCC toolchain to build the Hydra firmware. Yargato works, but I found issues that the managed code ‘Int64’ data type is broken. So I would definitely suggest you go with that.

This is the release I am currently using
https://launchpad.net/gcc-arm-embedded/4.6/4.6-2012-q2-update

Hi andrew4096,

I am unsure about the GCC compiler to use so I would take taylorza’s advice. As for modifying the project params, I am not sure which ones you modified but if you can maybe switch the params back other than the Socket comments in the .proj file and try to do a clean build it might compile correctly.

@ taylorza - Thanks for the suggestion. I tried that version. It’s gcc 4.6.2. However, re-compiling still gave the error. That’s when I started to look at the error. THAT’S when I found the actual problem!

The error (can’t build axf) was the result error. But I had to scroll up to the top top of my dos prompt window to see the source of the error (thank goodness I put 300 lines for screen buffer!).

This is the error:
LASH\release\FEZ_Hydra\bin\tinyclr.axf section .bss' will not fit in regionRELOC_RAM’
c:\gcc4.6.2\bin…\arm-none-eabi\bin\ld.exe: region `RELOC_RAM’ overflowed by 174432 bytes

So tracked down my RELOC_RAM’ param in file scatterfile_tinyclr_gcc.xml in Fez_Hydra\TinyCLR\ and boosted from 0x20000 to 0x80000.
Re-compile worked! (This includes the comment out socket stubs and enabling lwip sockets as Aron said)

Re-flash with new firmware. Ethernet Works!!! (Y) (Y)

Thanks alot for your help guys!

Regards,
Andrew

@ andrew4096 - Great job!

Those build errors are always a pain to find in the output, it is very verbose. I always redirect the build output to a file and have the file open in notepad++ with the monitoring plug-in enabled.