02-21-2017, 11:01 PM (This post was last modified: 02-21-2017 11:06 PM by Claudio L..)
Post: #559
 Claudio L. Senior Member Posts: 1,681 Joined: Dec 2013
(02-21-2017 08:47 PM)TheKaneB Wrote:  Hi,
I've seen some tutorials on the website about setting up the toolchain for development.
Is the info still relevant?

Is it possible to build the firmware myself? I'd like to do some experiments on it.
I'm fluent with C, C++ and ARMv4 assembly, so don't spare the technical details

Thanks!
Antonio

Actually it's quite easy.

Most of it is overkill for MacOSX, if you use Ubuntu or an Ubuntu VM things are much simpler.
Let me copy/paste some better steps that got lost around post #400 in this thread:

The steps are quite simple, the following should work on any Linux/FreeBSD:

* git clone the repository with:
Code:
git clone https://git.code.sf.net/p/newrpl/sources newrpl
* Install gcc or Clang compiler.
* Install Qt with Qt Creator (for easier coding).
* Install arm-none-eabi-gcc and arm-none-eabi-binutils
* Install libelf-devel package (if it's not already installed).
* Open Qt Creator, first you need to build the tools: go to the newrpl/tools directory and open the project elf2rom, choose the "Release" version, edit the make steps to add a "make install" step at the end.
* Do a build-all, look at the output to make sure the executable was copied properly.
* Now do the same with the other tools.
* Now go back to the main directory, open the project newrpl-comp.pro. Same thing (select Release, add a make install step, then build-all).
* Now close all, open newrpl-fw.pro, edit the .pro file as needed to change the folders where you have arm-none-eabi-gcc (they change according to version, look at the file).
* Hit build and everything should work fine, if there are no errors, you should see the last line "Binary newrplfw.bin written".

If you have any questions, just ask here!

EDIT: Since you know armv4t assembler, in the build directory you'll find newrplfw.elf that corresponds to the .bin ROM file. I always use:
arm-none-eabi-objdump -D newrplfw.elf > newrplfw.diss
to get the full ROM disassembly, useful when you get CPU exceptions.
 « Next Oldest | Next Newest »