z20x: Performance Improvements

- boards/z80/ez80/z20x/scripts/z20x_*.linkcmd:  Reduce from 4 to 1 wait state.  That i sufficient because of the slow clocking of the eZ80F92
  - boards/z80/ez80/z20x/src/w25_main.c:  Replace CRC algorithm with simple, less time consuming check sum.
  - boards/z80/ez80/z20x/configs/nsh:  Rename the nsh_ram configuration to just nsh
  - boards/z80/ez80/z80x/configs/hello: Add simpler program to make debugging the loader easier.
This commit is contained in:
Gregory Nutt 2020-03-13 10:45:12 -06:00 committed by Abdelatif Guettouche
parent da57a7d6aa
commit ef604f8d43
22 changed files with 868 additions and 21 deletions

View File

@ -204,7 +204,25 @@ Common Configuration Notes
Configuration Subdirectories
----------------------------
nsh_ram:
hello:
This is a minimal "Hello, World!" program that runs out of RAM. It is
a small program that is really useful only for testing the bootloader.
NOTES:
1. Debugging from RAM
You can debug from RAM version using ZDS-II as follows:
a. Connect to the debugger,
b. Reset, Go, and Break. This will initialize the external RAM
c. Break and Load the nuttx.lod file
c. Set the PC to 0x050000
d. Single step a few times to make sure things look good, then
e. Go
nsh:
This configuration builds the NuttShell (NSH). That code can be
found in apps/system/nsh and apps/system/nshlib.. For more
@ -290,14 +308,14 @@ Configuration Subdirectories
NOTE: The is no card detect signal so the microSD card must be
placed in the card slot before the system is started.
3. Debugging the RAM version
3. Debugging from RAM
You can debug the all RAM version using ZDS-II as follows:
You can debug from RAM version using ZDS-II as follows:
a. Connect to the debugger,
b. Reset, Go, and Break. This will initialize the external RAM
c. Break and Load the nuttx.lod file
c. Set the PC to 0x040000
c. Set the PC to 0x050000
d. Single step a few times to make sure things look good, then
e. Go
@ -375,4 +393,4 @@ Configuration Subdirectories
2. Booting large programs from the serial FLASH is unbearably slow;
you will think that the system is simply not booting at all. There
is probably some bug contributing to this probably (maybe the timer
interrupt rate?)
interrupt rate?)

View File

@ -0,0 +1,13 @@
README.txt
^^^^^^^^^^
hello.zdsproj is a simple ZDS-II project that will allow you
to use the ZDS-II debugger.
hello.zfpproj is a simple project that will allow you to use the Smart Flash
Programming. NOTE: As of this writing this project does not work, probably
due to RAM configuration in the project. Use ZDS-II instead as is described
in the upper README.txt file
hello_ram.ztgt is the target file that accompanies the project files. This
one is identical to boards/scripts/z20x_ram.ztgt.
hello_flash.ztgt is the target file that accompanies the project files. This
one is identical to boards/scripts/z20x_flash.ztgt.

View File

@ -0,0 +1,42 @@
#
# This file is autogenerated: PLEASE DO NOT EDIT IT.
#
# You can use "make menuconfig" to make any modifications to the installed .config file.
# You can then do "make savedefconfig" to generate a new defconfig file that includes your
# modifications.
#
CONFIG_ARCH="z80"
CONFIG_ARCH_BOARD="z20x"
CONFIG_ARCH_BOARD_Z20X=y
CONFIG_ARCH_CHIP="ez80"
CONFIG_ARCH_CHIP_EZ80=y
CONFIG_ARCH_CHIP_EZ80F92=y
CONFIG_ARCH_STACKDUMP=y
CONFIG_ARCH_Z80=y
CONFIG_BOARD_LOOPSPERMSEC=1250
CONFIG_BOOT_RUNFROMEXTSRAM=y
CONFIG_DISABLE_ENVIRON=y
CONFIG_DISABLE_MQUEUE=y
CONFIG_DISABLE_PTHREAD=y
CONFIG_EXAMPLES_HELLO=y
CONFIG_EZ80_UART1=y
CONFIG_HOST_WINDOWS=y
CONFIG_MAX_TASKS=16
CONFIG_MAX_WDOGPARMS=2
CONFIG_NFILE_DESCRIPTORS=8
CONFIG_NFILE_STREAMS=8
CONFIG_PREALLOC_TIMERS=4
CONFIG_PREALLOC_WDOGS=8
CONFIG_PTHREAD_STACK_DEFAULT=1024
CONFIG_RAM_SIZE=65536
CONFIG_SDCLONE_DISABLE=y
CONFIG_START_DAY=12
CONFIG_START_MONTH=3
CONFIG_START_YEAR=2020
CONFIG_UART1_BAUD=2400
CONFIG_UART1_BITS=0
CONFIG_UART1_RXBUFSIZE=64
CONFIG_UART1_SERIAL_CONSOLE=y
CONFIG_UART1_TXBUFSIZE=64
CONFIG_USER_ENTRYPOINT="hello_main"
CONFIG_WDOG_INTRESERVE=1

View File

@ -0,0 +1,260 @@
<project type="Executable" project-type="Standard" configuration="Debug" created-by="d:5.3.0:19052909" modified-by="d:5.3.0:19052909" ZDSII="ZDSII - eZ80Acclaim! 5.3.3 (Build 19083001)">
<cpu>eZ80F91</cpu>
<!-- file information -->
<files>
</files>
<!-- configuration information -->
<configurations>
<configuration name="Debug" >
<tools>
<tool name="Assembler">
<options>
<option name="define" type="string" change-action="assemble">_EZ80ACCLAIM!=1,_SIMULATE=1</option>
<option name="include" type="string" change-action="assemble"></option>
<option name="list" type="boolean" change-action="none">true</option>
<option name="listmac" type="boolean" change-action="none">false</option>
<option name="name" type="boolean" change-action="none">true</option>
<option name="pagelen" type="integer" change-action="none">0</option>
<option name="pagewidth" type="integer" change-action="none">80</option>
<option name="quiet" type="boolean" change-action="none">true</option>
<option name="sdiopt" type="boolean" change-action="compile">true</option>
</options>
</tool>
<tool name="Compiler">
<options>
<option name="padbranch" type="string" change-action="compile">Off</option>
<option name="define" type="string" change-action="compile">_DEBUG,_EZ80F91,_EZ80ACCLAIM!,_SIMULATE</option>
<option name="genprintf" type="boolean" change-action="compile">true</option>
<option name="keepasm" type="boolean" change-action="none">false</option>
<option name="keeplst" type="boolean" change-action="none">false</option>
<option name="list" type="boolean" change-action="none">false</option>
<option name="listinc" type="boolean" change-action="none">false</option>
<option name="modsect" type="boolean" change-action="compile">false</option>
<option name="optspeed" type="boolean" change-action="compile">false</option>
<option name="promote" type="boolean" change-action="compile">true</option>
<option name="reduceopt" type="boolean" change-action="compile">false</option>
<option name="stdinc" type="string" change-action="compile"></option>
<option name="usrinc" type="string" change-action="compile"></option>
<option name="watch" type="boolean" change-action="none">false</option>
<option name="multithread" type="boolean" change-action="compile">false</option>
</options>
</tool>
<tool name="Debugger">
<options>
<option name="target" type="string" change-action="rebuild">eZ80DevPlatform_F91_Flash</option>
<option name="debugtool" type="string" change-action="none">Simulator</option>
<option name="usepageerase" type="boolean" change-action="none">true</option>
</options>
</tool>
<tool name="FlashProgrammer">
<options>
<option name="erasebeforeburn" type="boolean" change-action="none">false</option>
<option name="eraseinfopage" type="boolean" change-action="none">false</option>
<option name="enableinfopage" type="boolean" change-action="none">false</option>
<option name="includeserial" type="boolean" change-action="none">false</option>
<option name="offset" type="integer" change-action="none">0</option>
<option name="snenable" type="boolean" change-action="none">false</option>
<option name="sn" type="string" change-action="none">0</option>
<option name="snsize" type="integer" change-action="none">0</option>
<option name="snstep" type="integer" change-action="none">0</option>
<option name="snstepformat" type="integer" change-action="none">0</option>
<option name="snaddress" type="string" change-action="none">0</option>
<option name="snformat" type="integer" change-action="none">0</option>
<option name="snbigendian" type="boolean" change-action="none">true</option>
<option name="singleval" type="string" change-action="none">0</option>
<option name="singlevalformat" type="integer" change-action="none">0</option>
<option name="usepageerase" type="boolean" change-action="none">false</option>
<option name="useinfopage" type="boolean" change-action="none">false</option>
</options>
</tool>
<tool name="General">
<options>
<option name="warn" type="boolean" change-action="none">true</option>
<option name="debug" type="boolean" change-action="assemble">true</option>
<option name="debugcache" type="boolean" change-action="none">true</option>
<option name="igcase" type="boolean" change-action="assemble">false</option>
<option name="outputdir" type="string" change-action="compile">.\Debug\</option>
</options>
</tool>
<tool name="Librarian">
<options>
<option name="outfile" type="string" change-action="build">.\Debug\hello.lib</option>
</options>
</tool>
<tool name="Linker">
<options>
<option name="directives" type="string" change-action="build"></option>
<option name="createnew" type="boolean" change-action="build">true</option>
<option name="exeform" type="string" change-action="build">OMF695,INTEL32</option>
<option name="linkctlfile" type="string" change-action="build"></option>
<option name="map" type="boolean" change-action="none">true</option>
<option name="maxhexlen" type="integer" change-action="build">64</option>
<option name="objlibmods" type="string" change-action="build"></option>
<option name="of" type="string" change-action="build">.\Debug\hello</option>
<option name="quiet" type="boolean" change-action="none">true</option>
<option name="relist" type="boolean" change-action="build">false</option>
<option name="startuptype" type="string" change-action="build">Standard</option>
<option name="startuplnkcmds" type="boolean" change-action="build">true</option>
<option name="usecrun" type="boolean" change-action="build">true</option>
<option name="warnoverlap" type="boolean" change-action="none">true</option>
<option name="xref" type="boolean" change-action="none">true</option>
<option name="undefisfatal" type="boolean" change-action="none">true</option>
<option name="warnisfatal" type="boolean" change-action="none">false</option>
<option name="sort" type="string" change-action="none">name</option>
<option name="padhex" type="boolean" change-action="build">false</option>
<option name="fplib" type="string" change-action="build">Real</option>
<option name="useadddirectives" type="boolean" change-action="build">false</option>
<option name="linkconfig" type="string" change-action="build">Standard</option>
<option name="flashinfo" type="string" change-action="build">000000-0001FF</option>
<option name="ram" type="string" change-action="build">B7E000-B7FFFF</option>
<option name="rom" type="string" change-action="build">000000-03FFFF</option>
<option name="extio" type="string" change-action="build">000000-00FFFF</option>
<option name="intio" type="string" change-action="build">000000-0000FF</option>
</options>
</tool>
<tool name="Middleware">
<options>
<option name="usezsl" type="boolean" change-action="rebuild">false</option>
<option name="zslports" type="string" change-action="rebuild"></option>
<option name="zsluarts" type="string" change-action="rebuild"></option>
<option name="userzk" type="boolean" change-action="rebuild">false</option>
<option name="rzkconfigpi" type="boolean" change-action="rebuild">true</option>
<option name="rzkconfigmini" type="boolean" change-action="rebuild">false</option>
<option name="rzkcomps" type="string" change-action="rebuild"></option>
</options>
</tool>
</tools>
</configuration>
<configuration name="Release" >
<tools>
<tool name="Assembler">
<options>
<option name="define" type="string" change-action="assemble">_EZ80ACCLAIM!=1,_SIMULATE=1</option>
<option name="include" type="string" change-action="assemble"></option>
<option name="list" type="boolean" change-action="none">true</option>
<option name="listmac" type="boolean" change-action="none">false</option>
<option name="name" type="boolean" change-action="none">true</option>
<option name="pagelen" type="integer" change-action="none">0</option>
<option name="pagewidth" type="integer" change-action="none">80</option>
<option name="quiet" type="boolean" change-action="none">true</option>
<option name="sdiopt" type="boolean" change-action="compile">true</option>
</options>
</tool>
<tool name="Compiler">
<options>
<option name="padbranch" type="string" change-action="compile">Off</option>
<option name="define" type="string" change-action="compile">NDEBUG,_EZ80F91,_EZ80ACCLAIM!,_SIMULATE</option>
<option name="genprintf" type="boolean" change-action="compile">true</option>
<option name="keepasm" type="boolean" change-action="none">false</option>
<option name="keeplst" type="boolean" change-action="none">false</option>
<option name="list" type="boolean" change-action="none">false</option>
<option name="listinc" type="boolean" change-action="none">false</option>
<option name="modsect" type="boolean" change-action="compile">false</option>
<option name="optspeed" type="boolean" change-action="compile">false</option>
<option name="promote" type="boolean" change-action="compile">true</option>
<option name="reduceopt" type="boolean" change-action="compile">false</option>
<option name="stdinc" type="string" change-action="compile"></option>
<option name="usrinc" type="string" change-action="compile"></option>
<option name="watch" type="boolean" change-action="none">false</option>
<option name="multithread" type="boolean" change-action="compile">false</option>
</options>
</tool>
<tool name="Debugger">
<options>
<option name="target" type="string" change-action="rebuild">eZ80DevPlatform_F91_Flash</option>
<option name="debugtool" type="string" change-action="none">Simulator</option>
<option name="usepageerase" type="boolean" change-action="none">true</option>
</options>
</tool>
<tool name="FlashProgrammer">
<options>
<option name="erasebeforeburn" type="boolean" change-action="none">false</option>
<option name="eraseinfopage" type="boolean" change-action="none">false</option>
<option name="enableinfopage" type="boolean" change-action="none">false</option>
<option name="includeserial" type="boolean" change-action="none">false</option>
<option name="offset" type="integer" change-action="none">0</option>
<option name="snenable" type="boolean" change-action="none">false</option>
<option name="sn" type="string" change-action="none">0</option>
<option name="snsize" type="integer" change-action="none">0</option>
<option name="snstep" type="integer" change-action="none">0</option>
<option name="snstepformat" type="integer" change-action="none">0</option>
<option name="snaddress" type="string" change-action="none">0</option>
<option name="snformat" type="integer" change-action="none">0</option>
<option name="snbigendian" type="boolean" change-action="none">true</option>
<option name="singleval" type="string" change-action="none">0</option>
<option name="singlevalformat" type="integer" change-action="none">0</option>
<option name="usepageerase" type="boolean" change-action="none">false</option>
<option name="useinfopage" type="boolean" change-action="none">false</option>
</options>
</tool>
<tool name="General">
<options>
<option name="warn" type="boolean" change-action="none">true</option>
<option name="debug" type="boolean" change-action="assemble">false</option>
<option name="debugcache" type="boolean" change-action="none">false</option>
<option name="igcase" type="boolean" change-action="assemble">false</option>
<option name="outputdir" type="string" change-action="compile">.\Release\</option>
</options>
</tool>
<tool name="Librarian">
<options>
<option name="outfile" type="string" change-action="build">.\Release\hello.lib</option>
</options>
</tool>
<tool name="Linker">
<options>
<option name="directives" type="string" change-action="build"></option>
<option name="createnew" type="boolean" change-action="build">true</option>
<option name="exeform" type="string" change-action="build">OMF695,INTEL32</option>
<option name="linkctlfile" type="string" change-action="build"></option>
<option name="map" type="boolean" change-action="none">true</option>
<option name="maxhexlen" type="integer" change-action="build">64</option>
<option name="objlibmods" type="string" change-action="build"></option>
<option name="of" type="string" change-action="build">.\Release\hello</option>
<option name="quiet" type="boolean" change-action="none">true</option>
<option name="relist" type="boolean" change-action="build">false</option>
<option name="startuptype" type="string" change-action="build">Standard</option>
<option name="startuplnkcmds" type="boolean" change-action="build">true</option>
<option name="usecrun" type="boolean" change-action="build">true</option>
<option name="warnoverlap" type="boolean" change-action="none">true</option>
<option name="xref" type="boolean" change-action="none">true</option>
<option name="undefisfatal" type="boolean" change-action="none">true</option>
<option name="warnisfatal" type="boolean" change-action="none">false</option>
<option name="sort" type="string" change-action="none">name</option>
<option name="padhex" type="boolean" change-action="build">false</option>
<option name="fplib" type="string" change-action="build">Real</option>
<option name="useadddirectives" type="boolean" change-action="build">false</option>
<option name="linkconfig" type="string" change-action="build">Standard</option>
<option name="flashinfo" type="string" change-action="build">000000-0001FF</option>
<option name="ram" type="string" change-action="build">B7E000-B7FFFF</option>
<option name="rom" type="string" change-action="build">000000-03FFFF</option>
<option name="extio" type="string" change-action="build">000000-00FFFF</option>
<option name="intio" type="string" change-action="build">000000-0000FF</option>
</options>
</tool>
<tool name="Middleware">
<options>
<option name="usezsl" type="boolean" change-action="rebuild">false</option>
<option name="zslports" type="string" change-action="rebuild"></option>
<option name="zsluarts" type="string" change-action="rebuild"></option>
<option name="userzk" type="boolean" change-action="rebuild">false</option>
<option name="rzkconfigpi" type="boolean" change-action="rebuild">true</option>
<option name="rzkconfigmini" type="boolean" change-action="rebuild">false</option>
<option name="rzkcomps" type="string" change-action="rebuild"></option>
</options>
</tool>
</tools>
</configuration>
</configurations>
<!-- watch information -->
<watch-elements>
</watch-elements>
<!-- breakpoint information -->
<breakpoints>
</breakpoints>
</project>

View File

@ -0,0 +1,315 @@
<project type="Standard" project-type="Standard" configuration="Debug" created-by="{{build_number}}" modified-by="{{build_number}}">
<cpu>eZ80F92</cpu>
<!-- file information -->
<files>
<file filter-key="flash">..\..\..\nuttx.hex</file>
</files>
<!-- configuration information -->
<configurations>
<configuration name="Debug" >
<tools>
<tool name="Assembler">
<options>
<option name="debug" type="boolean" change-action="assemble">true</option>
<option name="define" type="string" change-action="assemble">_EZ80ACCLAIM!=1</option>
<option name="genobj" type="boolean" change-action="assemble">true</option>
<option name="igcase" type="boolean" change-action="assemble">false</option>
<option name="include" type="string" change-action="assemble"></option>
<option name="list" type="boolean" change-action="none">true</option>
<option name="listmac" type="boolean" change-action="none">false</option>
<option name="name" type="boolean" change-action="none">true</option>
<option name="pagelen" type="integer" change-action="none">56</option>
<option name="pagewidth" type="integer" change-action="none">80</option>
<option name="quiet" type="boolean" change-action="none">true</option>
<option name="sdiopt" type="boolean" change-action="assemble">true</option>
<option name="warn" type="boolean" change-action="none">true</option>
<option name="zmasm" type="boolean" change-action="assemble">false</option>
</options>
</tool>
<tool name="Compiler">
<options>
<option name="alias" type="boolean" change-action="compile">true</option>
<option name="asm" type="boolean" change-action="none">true</option>
<option name="bitfieldsize" type="integer" change-action="rebuild">24</option>
<option name="charsize" type="integer" change-action="rebuild">8</option>
<option name="const" type="string" change-action="compile">RAM</option>
<option name="debug" type="boolean" change-action="compile">true</option>
<option name="define" type="string" change-action="compile">_EZ80F92,_EZ80ACCLAIM!</option>
<option name="doublesize" type="integer" change-action="rebuild">32</option>
<option name="expmac" type="boolean" change-action="none">false</option>
<option name="floatsize" type="integer" change-action="rebuild">32</option>
<option name="fplib" type="boolean" change-action="compile">false</option>
<option name="genprintf" type="boolean" change-action="compile">true</option>
<option name="globalcopy" type="boolean" change-action="compile">false</option>
<option name="globalcse" type="boolean" change-action="compile">false</option>
<option name="globalfold" type="boolean" change-action="compile">false</option>
<option name="intrinsic" type="boolean" change-action="compile">true</option>
<option name="intsize" type="integer" change-action="rebuild">24</option>
<option name="intsrc" type="boolean" change-action="none">true</option>
<option name="jmpopt" type="boolean" change-action="compile">false</option>
<option name="keepasm" type="boolean" change-action="none">false</option>
<option name="keeplst" type="boolean" change-action="none">false</option>
<option name="list" type="boolean" change-action="none">false</option>
<option name="listinc" type="boolean" change-action="none">false</option>
<option name="localcopy" type="boolean" change-action="compile">true</option>
<option name="localcse" type="boolean" change-action="compile">true</option>
<option name="localfold" type="boolean" change-action="compile">true</option>
<option name="longsize" type="integer" change-action="rebuild">32</option>
<option name="loopopt" type="boolean" change-action="compile">false</option>
<option name="maxerrs" type="integer" change-action="none">50</option>
<option name="modsect" type="boolean" change-action="compile">false</option>
<option name="optspeed" type="boolean" change-action="compile">false</option>
<option name="peephole" type="boolean" change-action="compile">true</option>
<option name="promote" type="boolean" change-action="compile">true</option>
<option name="quiet" type="boolean" change-action="none">true</option>
<option name="sdiopt" type="boolean" change-action="compile">false</option>
<option name="shortsize" type="integer" change-action="rebuild">16</option>
<option name="stdinc" type="string" change-action="compile"></option>
<option name="strict" type="boolean" change-action="compile">true</option>
<option name="usrinc" type="string" change-action="compile"></option>
<option name="watch" type="boolean" change-action="none">false</option>
</options>
</tool>
<tool name="Debugger">
<options>
<option name="target" type="string" change-action="rebuild">hello_flash</option>
<option name="debugtool" type="string" change-action="none">USBSmartCable</option>
<option name="debugtoolnames" type="string" change-action="none">ZPAKII</option>
<option name="SmartEthernetNumbers" type="string" change-action="none">ZPAKII</option>
<option name="USBSerialNumbers" type="string" change-action="none"></option>
</options>
</tool>
<tool name="FlashProgrammer">
<options>
<option name="erasebeforeburn" type="boolean" change-action="none">true</option>
<option name="pageerasebeforeburn" type="boolean" change-action="none">false</option>
<option name="eraseinfopage" type="boolean" change-action="none">false</option>
<option name="enableinfopage" type="boolean" change-action="none">false</option>
<option name="usenvds" type="boolean" change-action="none">false</option>
<option name="includeserial" type="boolean" change-action="none">false</option>
<option name="offset" type="integer" change-action="none">0</option>
<option name="errorhandling" type="integer" change-action="none">0</option>
<option name="AutoClose" type="boolean" change-action="none">true</option>
<option name="DisableWarning" type="boolean" change-action="none">false</option>
<option name="DisableWarningOnFRP" type="boolean" change-action="none">false</option>
<option name="snenable" type="boolean" change-action="none">true</option>
<option name="sn" type="string" change-action="none">000000000000000000000000</option>
<option name="snsize" type="integer" change-action="none">1</option>
<option name="snstep" type="integer" change-action="none">000000000000000000000001</option>
<option name="snstepformat" type="integer" change-action="none">0</option>
<option name="snaddress" type="string" change-action="none">0</option>
<option name="snformat" type="integer" change-action="none">0</option>
<option name="snbigendian" type="boolean" change-action="none">true</option>
<option name="singleval" type="string" change-action="none">000000000000000000000000</option>
<option name="singlevalformat" type="integer" change-action="none">0</option>
<option name="autoselect" type="boolean" change-action="none">true</option>
<option name="includeoptionbits" type="boolean" change-action="none">false</option>
</options>
</tool>
<tool name="General">
<options>
<option name="outputdir" type="string" change-action="compile">.</option>
<option name="tempath" type="string" change-action="none"></option>
</options>
</tool>
<tool name="Librarian">
<options>
<option name="outfile" type="string" change-action="build"></option>
<option name="warn" type="boolean" change-action="none">false</option>
</options>
</tool>
<tool name="Linker">
<options>
<option name="directives" type="string" change-action="build"></option>
<option name="createnew" type="integer" change-action="build">0</option>
<option name="customlnkflag" type="integer" change-action="build">0</option>
<option name="debug" type="boolean" change-action="build">true</option>
<option name="exeform" type="string" change-action="build">OMF695,INTEL32</option>
<option name="extio" type="string" change-action="build">000000-00FFFF</option>
<option name="flashinfo" type="string" change-action="build">000000-0001FF</option>
<option name="igcase" type="boolean" change-action="build">false</option>
<option name="intio" type="string" change-action="build">000000-0000FF</option>
<option name="linkctlfile" type="string" change-action="build"></option>
<option name="map" type="boolean" change-action="none">true</option>
<option name="maxhexlen" type="integer" change-action="build">64</option>
<option name="linkconfig" type="integer" change-action="build">1</option>
<option name="objlibmods" type="string" change-action="build"></option>
<option name="of" type="string" change-action="build">.\hello</option>
<option name="quiet" type="boolean" change-action="none">false</option>
<option name="ram" type="string" change-action="build">B7E000-B7FFFF</option>
<option name="relist" type="boolean" change-action="build">false</option>
<option name="rom" type="string" change-action="build">000000-01FFFF</option>
<option name="startup" type="string" change-action="build"></option>
<option name="startuptype" type="integer" change-action="build">1</option>
<option name="usebootdirectives" type="boolean" change-action="build">false</option>
<option name="usecrun" type="boolean" change-action="build">true</option>
<option name="warn" type="boolean" change-action="none">true</option>
<option name="warnoverlap" type="boolean" change-action="none">false</option>
<option name="xref" type="boolean" change-action="none">false</option>
</options>
</tool>
<tool name="Middleware">
<options>
<option name="usezsl" type="boolean" change-action="rebuild">false</option>
<option name="zslports" type="string" change-action="rebuild"></option>
<option name="zsluarts" type="string" change-action="rebuild"></option>
</options>
</tool>
</tools>
</configuration>
<configuration name="Release" >
<tools>
<tool name="Assembler">
<options>
<option name="debug" type="boolean" change-action="assemble">false</option>
<option name="define" type="string" change-action="assemble">_EZ80ACCLAIM!=1</option>
<option name="genobj" type="boolean" change-action="assemble">true</option>
<option name="igcase" type="boolean" change-action="assemble">false</option>
<option name="include" type="string" change-action="assemble"></option>
<option name="list" type="boolean" change-action="none">true</option>
<option name="listmac" type="boolean" change-action="none">false</option>
<option name="name" type="boolean" change-action="none">true</option>
<option name="pagelen" type="integer" change-action="none">56</option>
<option name="pagewidth" type="integer" change-action="none">80</option>
<option name="quiet" type="boolean" change-action="none">true</option>
<option name="sdiopt" type="boolean" change-action="assemble">true</option>
<option name="warn" type="boolean" change-action="none">true</option>
<option name="zmasm" type="boolean" change-action="assemble">false</option>
</options>
</tool>
<tool name="Compiler">
<options>
<option name="alias" type="boolean" change-action="compile">true</option>
<option name="asm" type="boolean" change-action="none">true</option>
<option name="bitfieldsize" type="integer" change-action="rebuild">24</option>
<option name="charsize" type="integer" change-action="rebuild">8</option>
<option name="const" type="string" change-action="compile">RAM</option>
<option name="debug" type="boolean" change-action="compile">false</option>
<option name="define" type="string" change-action="compile">_EZ80F92,_EZ80ACCLAIM!</option>
<option name="doublesize" type="integer" change-action="rebuild">32</option>
<option name="expmac" type="boolean" change-action="none">false</option>
<option name="floatsize" type="integer" change-action="rebuild">32</option>
<option name="fplib" type="boolean" change-action="compile">false</option>
<option name="genprintf" type="boolean" change-action="compile">true</option>
<option name="globalcopy" type="boolean" change-action="compile">true</option>
<option name="globalcse" type="boolean" change-action="compile">true</option>
<option name="globalfold" type="boolean" change-action="compile">true</option>
<option name="intrinsic" type="boolean" change-action="compile">true</option>
<option name="intsize" type="integer" change-action="rebuild">24</option>
<option name="intsrc" type="boolean" change-action="none">true</option>
<option name="jmpopt" type="boolean" change-action="compile">true</option>
<option name="keepasm" type="boolean" change-action="none">false</option>
<option name="keeplst" type="boolean" change-action="none">false</option>
<option name="list" type="boolean" change-action="none">false</option>
<option name="listinc" type="boolean" change-action="none">false</option>
<option name="localcopy" type="boolean" change-action="compile">true</option>
<option name="localcse" type="boolean" change-action="compile">true</option>
<option name="localfold" type="boolean" change-action="compile">true</option>
<option name="longsize" type="integer" change-action="rebuild">32</option>
<option name="loopopt" type="boolean" change-action="compile">true</option>
<option name="maxerrs" type="integer" change-action="none">50</option>
<option name="modsect" type="boolean" change-action="compile">false</option>
<option name="optspeed" type="boolean" change-action="compile">false</option>
<option name="peephole" type="boolean" change-action="compile">true</option>
<option name="promote" type="boolean" change-action="compile">true</option>
<option name="quiet" type="boolean" change-action="none">true</option>
<option name="sdiopt" type="boolean" change-action="compile">true</option>
<option name="shortsize" type="integer" change-action="rebuild">16</option>
<option name="stdinc" type="string" change-action="compile"></option>
<option name="strict" type="boolean" change-action="compile">true</option>
<option name="usrinc" type="string" change-action="compile"></option>
<option name="watch" type="boolean" change-action="none">false</option>
</options>
</tool>
<tool name="Debugger">
<options>
<option name="target" type="string" change-action="rebuild">hello_flash</option>
<option name="debugtool" type="string" change-action="none">USBSmartCable</option>
<option name="debugtoolnames" type="string" change-action="none">ZPAKII</option>
<option name="SmartEthernetNumbers" type="string" change-action="none">ZPAKII</option>
<option name="USBSerialNumbers" type="string" change-action="none"></option>
</options>
</tool>
<tool name="FlashProgrammer">
<options>
<option name="erasebeforeburn" type="boolean" change-action="none">false</option>
<option name="pageerasebeforeburn" type="boolean" change-action="none">false</option>
<option name="eraseinfopage" type="boolean" change-action="none">false</option>
<option name="enableinfopage" type="boolean" change-action="none">false</option>
<option name="usenvds" type="boolean" change-action="none">false</option>
<option name="includeserial" type="boolean" change-action="none">false</option>
<option name="offset" type="integer" change-action="none">0</option>
<option name="errorhandling" type="integer" change-action="none">0</option>
<option name="AutoClose" type="boolean" change-action="none">true</option>
<option name="DisableWarning" type="boolean" change-action="none">false</option>
<option name="DisableWarningOnFRP" type="boolean" change-action="none">false</option>
<option name="snenable" type="boolean" change-action="none">false</option>
<option name="sn" type="string" change-action="none">0</option>
<option name="snsize" type="integer" change-action="none">0</option>
<option name="snstep" type="integer" change-action="none">1</option>
<option name="snstepformat" type="integer" change-action="none">0</option>
<option name="snaddress" type="string" change-action="none">0</option>
<option name="snformat" type="integer" change-action="none">0</option>
<option name="snbigendian" type="boolean" change-action="none">true</option>
<option name="singleval" type="string" change-action="none">0</option>
<option name="singlevalformat" type="integer" change-action="none">0</option>
<option name="autoselect" type="boolean" change-action="none">true</option>
<option name="includeoptionbits" type="boolean" change-action="none">false</option>
</options>
</tool>
<tool name="General">
<options>
<option name="outputdir" type="string" change-action="compile">.</option>
<option name="tempath" type="string" change-action="none"></option>
</options>
</tool>
<tool name="Librarian">
<options>
<option name="outfile" type="string" change-action="build"></option>
<option name="warn" type="boolean" change-action="none">false</option>
</options>
</tool>
<tool name="Linker">
<options>
<option name="directives" type="string" change-action="build"></option>
<option name="createnew" type="integer" change-action="build">0</option>
<option name="customlnkflag" type="integer" change-action="build">0</option>
<option name="debug" type="boolean" change-action="build">false</option>
<option name="exeform" type="string" change-action="build">OMF695,INTEL32</option>
<option name="extio" type="string" change-action="build">000000-00FFFF</option>
<option name="flashinfo" type="string" change-action="build">000000-0001FF</option>
<option name="igcase" type="boolean" change-action="build">false</option>
<option name="intio" type="string" change-action="build">000000-0000FF</option>
<option name="linkctlfile" type="string" change-action="build"></option>
<option name="map" type="boolean" change-action="none">true</option>
<option name="maxhexlen" type="integer" change-action="build">64</option>
<option name="linkconfig" type="integer" change-action="build">1</option>
<option name="objlibmods" type="string" change-action="build"></option>
<option name="of" type="string" change-action="build">.\hello</option>
<option name="quiet" type="boolean" change-action="none">false</option>
<option name="ram" type="string" change-action="build">B7E000-B7FFFF</option>
<option name="relist" type="boolean" change-action="build">false</option>
<option name="rom" type="string" change-action="build">000000-01FFFF</option>
<option name="startup" type="string" change-action="build"></option>
<option name="startuptype" type="integer" change-action="build">1</option>
<option name="usebootdirectives" type="boolean" change-action="build">false</option>
<option name="usecrun" type="boolean" change-action="build">true</option>
<option name="warn" type="boolean" change-action="none">true</option>
<option name="warnoverlap" type="boolean" change-action="none">false</option>
<option name="xref" type="boolean" change-action="none">false</option>
</options>
</tool>
<tool name="Middleware">
<options>
<option name="usezsl" type="boolean" change-action="rebuild">false</option>
<option name="zslports" type="string" change-action="rebuild"></option>
<option name="zsluarts" type="string" change-action="rebuild"></option>
</options>
</tool>
</tools>
</configuration>
</configurations>
</project>

View File

@ -0,0 +1,6 @@
nsh.hex
nsh.map
nsh.lod
nsh.wsp
*.asm
Debug

View File

@ -9,5 +9,5 @@ nsh.zfpproj is a simple project that will allow you to use the Smart Flash
in the upper README.txt file
nsh_ram.ztgt is the target file that accompanies the project files. This
one is identical to boards/scripts/z20x_ram.ztgt.
nsh_ram.ztgt is the target file that accompanies the project files. This
nsh_flash.ztgt is the target file that accompanies the project files. This
one is identical to boards/scripts/z20x_flash.ztgt.

View File

@ -0,0 +1,69 @@
<?xml version="1.0" encoding="UTF-8"?>
<Target name="eZ80F920300KITG_Flash" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Schemas/target.tsd" xsi:type="TargetEZ80">
<Clock>
<PLL>
<changeFrequencyOnReset>true</changeFrequencyOnReset>
<chargePumpFreq>1f4</chargePumpFreq>
<clockLockCriteria>8</clockLockCriteria>
<oscFrequency>20000000</oscFrequency>
</PLL>
<clockType>PLL</clockType>
<frequency>20000000</frequency>
</Clock>
<ControlReg>
<pc>0</pc>
<splStackPtr>140000</splStackPtr>
<spsStackPtr>FFFF</spsStackPtr>
<useAdlMode>true</useAdlMode>
</ControlReg>
<ExtFlash>
<device />
<externalAddress>200000</externalAddress>
<externalAutoSelect>false</externalAutoSelect>
<externalRamLower>040000</externalRamLower>
<externalRamUpper>0BFFFF</externalRamUpper>
<manufacturer />
<units>1</units>
<usingExternal>false</usingExternal>
<usingInternal>true</usingInternal>
</ExtFlash>
<Memory>
<ChipSelects>
<CS0>
<busMode>0</busMode>
<controlRegister>8</controlRegister>
<lower>4</lower>
<upper>B</upper>
</CS0>
<CS1>
<busMode>0</busMode>
<controlRegister>0</controlRegister>
<lower>0</lower>
<upper>0</upper>
</CS1>
<CS2>
<busMode>0</busMode>
<controlRegister>0</controlRegister>
<lower>0</lower>
<upper>0</upper>
</CS2>
<CS3>
<busMode>0</busMode>
<controlRegister>0</controlRegister>
<lower>0</lower>
<upper>0</upper>
</CS3>
</ChipSelects>
<Internal>
<mapFlashToPage>0</mapFlashToPage>
<mapRamToPage>AF</mapRamToPage>
<useFlashRam>true</useFlashRam>
<useInternalDataRam>true</useInternalDataRam>
<useMaccRam>false</useMaccRam>
</Internal>
<waitStates>4</waitStates>
</Memory>
<cpu>EZ80F92</cpu>
<schemaVersion>1.0.1</schemaVersion>
<version>1.00</version>
</Target>

View File

@ -0,0 +1,69 @@
<?xml version="1.0" encoding="UTF-8"?>
<Target name="eZ80F920300KITG_RAM" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Schemas/target.tsd" xsi:type="TargetEZ80">
<Clock>
<PLL>
<changeFrequencyOnReset>true</changeFrequencyOnReset>
<chargePumpFreq>1f4</chargePumpFreq>
<clockLockCriteria>8</clockLockCriteria>
<oscFrequency>20000000</oscFrequency>
</PLL>
<clockType>PLL</clockType>
<frequency>20000000</frequency>
</Clock>
<ControlReg>
<pc>0</pc>
<splStackPtr>100000</splStackPtr>
<spsStackPtr>ffff</spsStackPtr>
<useAdlMode>true</useAdlMode>
</ControlReg>
<ExtFlash>
<device />
<externalAddress>200000</externalAddress>
<externalAutoSelect>false</externalAutoSelect>
<externalRamLower>000000</externalRamLower>
<externalRamUpper>FFFFF</externalRamUpper>
<manufacturer />
<units>1</units>
<usingExternal>false</usingExternal>
<usingInternal>true</usingInternal>
</ExtFlash>
<Memory>
<ChipSelects>
<CS0>
<busMode>0</busMode>
<controlRegister>8</controlRegister>
<lower>0</lower>
<upper>7</upper>
</CS0>
<CS1>
<busMode>0</busMode>
<controlRegister>0</controlRegister>
<lower>0</lower>
<upper>0</upper>
</CS1>
<CS2>
<busMode>0</busMode>
<controlRegister>0</controlRegister>
<lower>0</lower>
<upper>0</upper>
</CS2>
<CS3>
<busMode>0</busMode>
<controlRegister>0</controlRegister>
<lower>0</lower>
<upper>0</upper>
</CS3>
</ChipSelects>
<Internal>
<mapFlashToPage>0</mapFlashToPage>
<mapRamToPage>AF</mapRamToPage>
<useFlashRam>false</useFlashRam>
<useInternalDataRam>true</useInternalDataRam>
<useMaccRam>false</useMaccRam>
</Internal>
<waitStates>4</waitStates>
</Memory>
<cpu>EZ80F92</cpu>
<schemaVersion>1.0.1</schemaVersion>
<version>1.00</version>
</Target>

View File

@ -14,7 +14,9 @@ CONFIG_ARCH_CHIP_EZ80F92=y
CONFIG_ARCH_STACKDUMP=y
CONFIG_ARCH_Z80=y
CONFIG_BOARD_LOOPSPERMSEC=1250
CONFIG_DISABLE_ENVIRON=y
CONFIG_DISABLE_MQUEUE=y
CONFIG_DISABLE_PTHREAD=y
CONFIG_EZ80_SPI=y
CONFIG_EZ80_UART1=y
CONFIG_FS_WRITABLE=y

View File

@ -177,9 +177,9 @@
<option name="includeserial" type="boolean" change-action="none">false</option>
<option name="offset" type="integer" change-action="none">0</option>
<option name="snenable" type="boolean" change-action="none">false</option>
<option name="sn" type="string" change-action="none">0</option>
<option name="snsize" type="integer" change-action="none">0</option>
<option name="snstep" type="integer" change-action="none">0</option>
<option name="sn" type="string" change-action="none">000000000000000000000000</option>
<option name="snsize" type="integer" change-action="none">1</option>
<option name="snstep" type="integer" change-action="none">000000000000000000000000</option>
<option name="snstepformat" type="integer" change-action="none">0</option>
<option name="snaddress" type="string" change-action="none">0</option>
<option name="snformat" type="integer" change-action="none">0</option>
@ -258,4 +258,4 @@
<breakpoints>
</breakpoints>
</project>
</project>

View File

@ -68,7 +68,7 @@ DEFINE __CS3_CTL_INIT_PARAM = $00
DEFINE __CS3_BMC_INIT_PARAM = $00
DEFINE __RAM_CTL_INIT_PARAM = $80
DEFINE __RAM_ADDR_U_INIT_PARAM = $AF
DEFINE __FLASH_CTL_INIT_PARAM = $88
DEFINE __FLASH_CTL_INIT_PARAM = $28
DEFINE __FLASH_ADDR_U_INIT_PARAM = $00
define _SYS_CLK_FREQ = 20000000

View File

@ -65,7 +65,7 @@ DEFINE __CS3_CTL_INIT_PARAM = $00
DEFINE __CS3_BMC_INIT_PARAM = $00
DEFINE __RAM_CTL_INIT_PARAM = $80
DEFINE __RAM_ADDR_U_INIT_PARAM = $AF
DEFINE __FLASH_CTL_INIT_PARAM = $88
DEFINE __FLASH_CTL_INIT_PARAM = $28
DEFINE __FLASH_ADDR_U_INIT_PARAM = $00
define _SYS_CLK_FREQ = 20000000

View File

@ -72,7 +72,7 @@ DEFINE __CS3_CTL_INIT_PARAM = $00
DEFINE __CS3_BMC_INIT_PARAM = $00
DEFINE __RAM_CTL_INIT_PARAM = $80
DEFINE __RAM_ADDR_U_INIT_PARAM = $AF
DEFINE __FLASH_CTL_INIT_PARAM = $88
DEFINE __FLASH_CTL_INIT_PARAM = $28
DEFINE __FLASH_ADDR_U_INIT_PARAM = $00
define _SYS_CLK_FREQ = 20000000

View File

@ -75,7 +75,7 @@ DEFINE __CS3_CTL_INIT_PARAM = $00
DEFINE __CS3_BMC_INIT_PARAM = $00
DEFINE __RAM_CTL_INIT_PARAM = $80
DEFINE __RAM_ADDR_U_INIT_PARAM = $AF
DEFINE __FLASH_CTL_INIT_PARAM = $88
DEFINE __FLASH_CTL_INIT_PARAM = $28
DEFINE __FLASH_ADDR_U_INIT_PARAM = $00
define _SYS_CLK_FREQ = 20000000

View File

@ -143,7 +143,9 @@ static int w25_read_hex(FAR uint24_t *len)
return ret;
}
printf("Successfully loaded the Intel HEX file into memory...\n");
printf("Intel HEX file into memory loaded into RAM...\n");
fflush(stdout);
*len = memoutstream.public.nput;
return OK;
}
@ -220,6 +222,7 @@ static int w25_write_binary(FAR const struct prog_header_s *hdr)
printf("Writing %lu bytes to the W25 Serial FLASH\n",
(unsigned long)hdr->len);
fflush(stdout);
ret = w25_write(fd, (FAR const void *)PROGSTART, hdr->len);
if (ret < 0)
@ -323,6 +326,10 @@ static int w25_read_binary(FAR struct prog_header_s *hdr)
* CRC after loaded to memory.
*/
printf("Reading %lu bytes from the W25 Serial FLASH\n",
(unsigned long)hdr->len);
fflush(stdout);
ret = w25_read(fd, (FAR void *)PROGSTART, hdr->len);
if (ret < 0)
{
@ -343,11 +350,12 @@ errout:
*
****************************************************************************/
static uint24_t w25_crc24(uint32_t len)
static uint24_t w25_crc24(uint24_t len)
{
#if 0 /* Very slow */
FAR const uint8_t *src = (FAR const uint8_t *)PROGSTART;
uint32_t crc = 0;
int i;
uint24_t i;
int j;
/* Loop for each byte in the binary image */
@ -370,6 +378,52 @@ static uint24_t w25_crc24(uint32_t len)
}
return (uint24_t)crc;
#else
FAR const uint24_t *src = (FAR const uint24_t *)PROGSTART;
uint24_t chksum = 0;
uint24_t remaining;
/* Loop for each uint24_t in the binary image */
for (remaining = len;
remaining >= sizeof(uint24_t);
remaining -= sizeof(uint24_t))
{
uint24_t val = *src++;
/* Simple checksum */
chksum += val;
}
/* Handle trailing partial uint24_t's (assumes little endian) */
if (remaining > 0)
{
uint24_t val = *src;
switch (remaining)
{
case 1:
val &= 0x0000ff;
break;
case 2:
val &= 0x00ffff;
break;
default: /* Shouldn't happen */
val = 0;
break;
}
/* Simple checksum */
chksum += val;
}
return chksum;
#endif
}
/****************************************************************************
@ -396,16 +450,15 @@ static int w25_read_verify(void)
return ret;
}
printf("Verifying %lu bytes in the W25 Serial FLASH\n",
(unsigned long)hdr.len);
printf("Verifying %lu bytes in RAM\n", (unsigned long)hdr.len);
fflush(stdout);
/* Compare CRCs */
crc = w25_crc24(hdr.len);
if (crc == hdr.crc)
{
printf("Successfully verified %lu bytes in the W25 Serial FLASH\n",
(unsigned long)hdr.len);
printf("Successfully verified %lu bytes\n", (unsigned long)hdr.len);
}
else
{