nuttx/configs/ez80f910200zco/README.txt
Gregory Nutt 4e98980045 Add initial support for the MakerLisp eZ80 board. Ref: https://makerlisp.com/
Squashed commit of the following:

    configs/makerlisp:  Update comments about use of serial console.

    configs/makerlisp:  Add LED support, remove vestiges of button support (the board has no user buttons).  Add support for SPI-based MMC/SD card slot.

    arch/z80/src/ez80:  Fix some link problems.

    libs/libc/syslog/lib_syslog.c:  The ZDS-II toolchain does not declare va_coy in stdarg.h.  I think that the use of va_copy in vsyslog() is no necessary.

    configs/makerlisp:  Initial configuration directories cloned from ez80f910200zco with little more than naming changes.
2019-06-04 11:12:17 -06:00

177 lines
6.3 KiB
Plaintext

README.txt
^^^^^^^^^^
ZDS-II Compiler Versions
^^^^^^^^^^^^^^^^^^^^^^^^
Different configurations have been build for this board using ZDS-11
Versions 4.11.0, 4.11.1, and 5.1.1 You have to check the files */Make.defs
to see how the build is configured: Check the definitions of
ZDSVERSION (if present) and ZDSINSTALLDIR.
NOTE: Different versions of the ZDS-II compiler may also require
different versions of .linkcmd and .zdsproj files as well.
Version 4.11.0
The 5.1.1 version of the ZDS-II tools are currently configured for
all ez80 boards. However, it is the older version 4.11.0 that this code
has been verified against.
Although it compiles without error, the 4.11.0 compiler generates
bad code on one of the files, mm/mm_initialize.c. Below is a simple work-
around.
--- mm/mm_initialize.c.SAVE 2008-02-13 08:06:46.833857700 -0600
+++ mm/mm_initialize.c 2008-02-13 08:07:26.367608900 -0600
@@ -94,8 +94,11 @@
{
int i;
+#if 0 /* DO NOT CHECK IN */
CHECK_ALLOCNODE_SIZE;
CHECK_FREENODE_SIZE;
+#endif
/* Set up global variables */
UPDATE: I don't know if 4.11.1 has this same problem (I bet not since
I submitted the bug to ZiLOG), but I have permanently worked around the
above problem for all ZiLOG compilers.
Version 5.1.1
On June 22, 2011 I verified that these configurations build successfully
with the 5.1.1 ZDS-II version. On November 12, 2012, all of the configurations
were converted to use 5.1.1, but have not been verified on a running target.
The above kludge for 4.11.0 is not required with 5.1.1.
Paths were also updated that are specific to a 32-bit toolchain running on
a 64 bit windows platform. Change to a different toolchain, you will need
to modify the versioning in Make.defs; if you want to build on a different
platform, you will need to change the path the ZDS binaries in that
files as well as in your PATH environment variable.
Version 5.2.1
On January 31, 2016, I tried ZDS-II version 5.2.1. I believe that I have
all of the changes in place to support that version. At compile time,
however, I encountered compiler internal errors. I did not pursue that
build any further.
Version 5.3.0
I started verification using 5.30 on June 2, 2019. To use this toolchain,
I had to suppress the gmtime() and gmtimer() because these were causing an
internal compiler error:
time\lib_gmtimer.c
P2: Internal Error(0xB47E59):
Please contact Technical Support
This is the change to suppress building these files:
diff --git a/libs/libc/time/Make.defs b/libs/libc/time/Make.defs
index 5c9b746778..8327e287f4 100644
--- a/libs/libc/time/Make.defs
+++ b/libs/libc/time/Make.defs
@@ -44,7 +44,7 @@ ifdef CONFIG_LIBC_LOCALTIME
CSRCS += lib_localtime.c lib_asctime.c lib_asctimer.c lib_ctime.c
CSRCS += lib_ctimer.c
else
-CSRCS += lib_mktime.c lib_gmtime.c lib_gmtimer.c
+CSRCS += lib_mktime.c # lib_gmtime.c lib_gmtimer.c
ifdef CONFIG_TIME_EXTENDED
CSRCS += lib_dayofweek.c lib_asctime.c lib_asctimer.c lib_ctime.c
CSRCS += lib_ctimer.c
And this:
stdlib\lib_strtof.c
stdlib\lib_strtof.c (76,36) : WARNING (32) Division by zero encountered
stdlib\lib_strtof.c (102,36) : WARNING (32) Division by zero encountered
Which can be worked around by removing it from the build
The consequence is, of course, that these interfaces will not be available
to applications.
Alternatively, you can use 'make -i' to build the system. The above
errors will occur, but will not stop the build (unless the failed build
objects are brought into the link). The has the negative side effects
that (1) the archives will always be rebuild in the directories where
the error occur, and (2) you might miss other, real compilation error
since these will no longer stop the compilation.
Other Versions
If you use any version of ZDS-II other than 5.1.1, 5.2.1, or 5.3.0 or
if you install ZDS-II at any location other than the default location,
you will have to modify three files: (1) arch/arm/z80/src/ez80/Kconfig,
(2) configs/ez80f910200zco/scripts/Make.defs and, perhaps, (3)
arch/z80/src/ez80/Toolchain.defs.
Configurations
^^^^^^^^^^^^^^
Common Configuration Notes
--------------------------
1. src/ and include/
These directories contain common logic for all ez80f910200zco
configurations.
2. Variations on the basic ez80f910200zco configuration are maintained
in subdirectories. To configure any specific configuration, do the
following steps:
tools/configure.sh ez80f910200zco/<sub-directory>
make
Where <sub-directory> is the specific board configuration that you
wish to build. The available board-specific configurations are
summarized in the following paragraph.
Use configure.bat instead of configure.sh if you are building in a
native Windows environment.
3. This configuration uses the mconf-based configuration tool. To
change this configurations using that tool, you should:
a. Build and install the kconfig-mconf tool. See nuttx/README.txt
see additional README.txt files in the NuttX tools repository.
b. Execute 'make menuconfig' in nuttx/ in order to start the
reconfiguration process.
Configuration Subdirectories
----------------------------
dhcpd:
This builds the DCHP server using the examples/dhcpd application
(for execution from FLASH.) See apps/examples/README.txt for information
about the dhcpd example.
httpd:
This builds the uIP web server example using the examples/webserver application
(for execution from FLASH). See apps/examples/README.txt for information
about httpd.
nsh:
This configuration builds the NuttShell (NSH). That code can be
found in examples/nsh. For more information see: examples/nsh/README.txt
and Documentation/NuttShell.html.
nettest:
This configuration is used for testing the eZ80F91 EMAC driver. It
builds examples/nettest. See examples/README.txt for more information
about nettest.
poll:
This configuration is also used for testing the eZ80F91 EMAC driver. It
builds examples/poll. See examples/README.txt for more information
about the poll test.
Check out any README.txt files in these <sub-directory>s.