nuttx/configs/pjrc-8051
2014-08-24 06:42:11 -06:00
..
include
src More trailing whilespace removal 2014-04-13 16:22:22 -06:00
defconfig Change CONFIG_ADDRENV to CONFIG_ARCH_ADDRENV; change how it is selected -- the architecure must first declare support 2014-08-24 06:42:11 -06:00
Kconfig
Make.defs
README.txt configs/pjrc-8051: Configuration converted to use the kconfig-frontends tools 2014-03-06 10:27:52 -06:00
sdcc-2.6.0.patch Restore trainling whitespace in .patch and .diff files wehre required 2014-04-13 17:12:02 -06:00
setenv.sh

pjrc-8051 README
^^^^^^^^^^^^^^^^

This port uses the PJRC 87C52 development system and the SDCC toolchain.

The PJRC 87C52 development system can be obtained from http://www.pjrc.com/.

The SDCC toolchain is available from http://sdcc.sourceforge.net/.  All
testing has been performed using verison 2.6.0 of the SDDC toolchain.

Building the SDCC toolchain
^^^^^^^^^^^^^^^^^^^^^^^^^^^

The SDCC toolchain is built with the standard configure/make/make install
sequence.  However, some special actions are required to generate libraries
compatible with this build.  First start with the usual steps

  download
  unpack
  cd sdcc
  ./configure
  make

But before installing, we need to apply a patch to the SDCC 2.6.0 source.
WARNING:  This patch is specific to the particular combination of CFLAGS
that are used in the compilation.  If you change Make.defs, then you will
likely have to change the patch as well.

  Apply sdcc-2.6.0.patch
  cd sdcc/device/lib
  make model-mcs51-stack-auto

Then

  cd sdcc
  make install

Status
^^^^^^

On December 9, 2012, I made updates so that the 8051 port could use the
newest SDCC toolchain (a pre-3.2.1 at that time).  However, when I attempted
to build the PJRC-8051 configuration, I got type incompatibility errors
from sched/os_bringup.c.  From what I gather by googling, this is a compiler
bug related to the --stack-auto option.

I have not been successful working around those bugs and I believe that
these are 8051-related bugs in the SDCC toolchain.  This needs to be
revisited with a later version of SDCC.

This configuration was last successfully built and tested with a ca.
2.6.0 SDCC release.  Support for that older toolchain was removed in
NuttX revision -r5423.  If you wanted to used those older toolchains,
you would need to revert to a pre-r5423 revision.