One brave developer embarked on a bare-metal project, which he hopes to get back to when he can. Nicholas's posts are listed out in his blog post: The CI20 bare-metal project. His posts are really good and a great starting point into working with this board. This is where I will start working from, reading his posts and building from his knowledge. Thank you very much Nicholas for your project and detailed posts.
This being said, I grabbed crosstool-ng (latest version is 1.22) and built the mips-unknown-elf tools to work with the board in a bare-metal fashion. First you must install crosstool-ng, then you use that to automatically build your tool chain. If you want a list of the supported tool chain samples call crosstool-ng with the list-samples command: ct-ng list-samples. This will print out a list of all the supported tool chain configurations it knows how to build. I knew I wanted mips-unknown-elf, so I called crosstool-ng with the following command: ct-ng mips-unknown-elf and it built a configuration for the bare metal MIPS tool chain. Finally, you tell crosstool-ng to build the tool chain for you with the following command: ct-ng build. I left this to go about it's business while made myself a little adapter board.
The pin out for my existing TTL Serial converter don't match the board's pin out for the dedicated UART header. I don't want to continually reconnect jumper wires from the converter to the board.
I finished this, to notice that the tool chain was completely built, I think I now love crosstool-ng!
The tool chain appears to work, gcc complained about no input files, and gdb informed me that it was compiled to target mips-unknown-elf.
I have the tool chain, adapter for my TTL Serial converter, power adapter and Ethernet cable ready, I can plug it all together and power up the board.
I still need to:
- Create a Bitbucket repository to store the code for this project.
- Setup the build system.
- Setup Doxygen to generate documentation.
- Setup a TFTP server to allow me to boot the board off development code easily.
- Setup scripts for build process to copy the image automatically to the TFTP location.
- Test to make sure board will boot the image from TFTP.