I have upgraded to ChibiOS 17.6.
For anyone interested in trying this:-
• Download and install ChibiOS 17.6.
• Download http://rvanspaa.freehostia.com/ChibiOS17.6_Changes.zip
• ChibiOS17.6_Changes.zip should be extracted to the directory containing the ChibiOS 17.6 directory as the former contains a ChibiOS 17.6 directory itself, and they need to merge. Make sure to overwrite exiting files when extracting ChibiOS17.6_Changes.zip.
• Netbeans with C/C++ add-on may be used to create C/C++ project from existing sources, by pointing to ChibiOS_17.6.0\demos\ARM11-BCM2835-GCC\Makefile, however other cross compilers may also be used. The version of GCC I used is GCC 5.2.1 20151202 (release) [ARM/embedded-5-branch revision 231848], which is quite good, though still appears to have an occasional problem with “atoi”, which is why a very basic version of atoi is included in main.c, called “myatoi”. This always works. If you find a more uptodate version of the tool-chain, then this may no longer be needed. The baremetal GCC can be downloaded from https://developer.arm.com/open-source/g ... ain/gnu-rm
If you just want to see it run, then a binary image has been included in ChibiOS_17.6.0\demos\ARM11-BCM2835-GCC\ch.bin. ch.bin will however normally be created in the ARM11-BCM2835-GCC\build sub-directory.
• Once the ARM11-BCM2835-GCC project has been compiled it creates a binary:- ARM11-BCM2835-GCC\build\ch.bin.
• I use David Welch’s bootloader5 to transfer this binary to the RPi, (sometimes after many retries), with ExtraPutty & Xmodem, however ch.bin can also be renamed to kernel.img and placed directly in the boot directory of the SD card used to boot the RPi. (Make a complete backup of this directory before changing it, so that you have a clean restore point if needed.)
• There is an EXTENDED_SHELL variable in Makefile, which can be either TRUE or FALSE.
• This version of ChibiOS for RPi makes use of the internal caches in the BCM2835, which makes a huge difference in speed of operation (about a factor 10 over the case where no caches are used). For the configuration of the caches, see the function crt1.c: __late_init, thanks primarily to rst & Ultibo from the RPi baremetal forum.
I have attached the results of a test run.
I realize this is far from perfect, but improvements will be made over time. Suggestions in that regard are most welcome.