@ Jason - I had a wiki article on the old GHI wiki that a few people used to start building their own firmware using GCC, but that is gone now.
Some of the members here had put together a custom firmware for the Cerberus with build instructions. I have not look at this for a long time, but this might help with step 1 and that is getting the firmware to build.
Once you are familiar with that you can start tweaking the code for the STM32F401. I suspect that you might only need to tweak the scatter file which defines the memory layout, assuming the part you go for has enough flash memory for the build. If not then you might need to start removing functionality.
Also check codeshare I think there are one or two custom build that started out on codeshare, they might have some details on the build process etc.
Honestly it is not very complicated, I got it going the first time by just looking at the code and building a basic understanding of how things fit together. At the time I had very little experience with ARM processors and the tool chain, not that I think I am an expert now, but I knew even less then.
From memory I would have probably take the following steps initially
- Install GCC tool chain (I think I used yaragato at the time, later I used the tool chain maintained by ARM)
- Install porting kit
- Check out the GHI Hyda port (I started with the FEZ Hydra) and overlay it on the porting kit installation (I kept a backup of the porting kit)
- Used TortoiseDiff to see how the Cerberus port changed the Porting kit base code and pieced together what was needed to add new Interop operations etc.
- Created the GCC compatible scatter file, the GHI scatter file is for a commercial compiler. I committed this scatter file to the GHI codeplex repository so that should still be there.
Of course I did the above for the Hydra, I also later did it for the Cerb, but there was more to it, NicholasG had worked out the GCC assembler code etc. which I leveraged.
Hope that helps. Good luck!