> > > Are you able to run this script with the latest simulavr?
> >
> > As soon as
> >
> > > I try to call either floating or fixed point routines, I am getting
> > > errors:
> > >
> > > rm: cannot remove `core_avr_dump.core': No such file or directory

Hi,
I have try the latest simulavr: the same error in result.

1. The latest simulavr is partially broken: the run of first
test (__addsf3) is failed with 'atmega8' target with message:

   devsupp.c:321: ERROR: reference vdev hasn't been created yet

The 'at90s8515' target is OK.
(Eric, I will look this in details.  I am interesting in
simulavr usage).

2. My script was too poor in extracting of clock number.
The format of this line is changed in comparison to 0.1.2.1
version, this leads to wrong result, like 7 cycles.  I have
correct this (in attach): '[0-9]+ clock cycles'.

Now you can run the latest simulavr with 'at90s8515' target
only (MCU_LIST), or you can install simulavr-0.1.2.1 with
the patch (in attach).  The critical is only 1 part of patch:
where the division by zero is excluded.

Regards,
Dmitry.

Attachment: bench-libm.sh
Description: application/shellscript

diff -Naur simulavr-0.1.2.1/doc/Makefile.in simulavr-20061216/doc/Makefile.in
--- simulavr-0.1.2.1/doc/Makefile.in	2004-01-19 09:58:29.000000000 +1000
+++ simulavr-20061216/doc/Makefile.in	2006-12-16 15:50:26.000000000 +1000
@@ -472,7 +472,7 @@
 html: $(info_TEXINFOS) $(TARGET_DOX_HTML)
 	mkdir -p html
 	texi2html -split_node $(srcdir)/$(info_TEXINFOS)
-	mv *.html html
+	mv *.html html || mv simulavr/*.html html
 	if test -f html/simulavr.html ; then \
 	   cp html/simulavr.html html/index.html ; \
 	else \
diff -Naur simulavr-0.1.2.1/src/avrcore.c simulavr-20061216/src/avrcore.c
--- simulavr-0.1.2.1/src/avrcore.c	2004-01-02 13:01:01.000000000 +1000
+++ simulavr-20061216/src/avrcore.c	2006-12-16 15:48:34.000000000 +1000
@@ -1006,7 +1006,8 @@
        somewhere else. */
 
     /* Execute the asynchronous callbacks */
-    avr_core_async_cb_exec (core);
+    if (core->async_cb)
+        avr_core_async_cb_exec (core);
 
     /* Check interrupts here. If the previous instruction was a reti, then we
        need to delay handling of any pending IRQs until after the next
@@ -1070,10 +1071,11 @@
     avr_message ("Run time was %lld.%03lld seconds.\n", run_time / 1000,
                  run_time % 1000);
     avr_message ("Executed %lld instructions.\n", cnt);
-    avr_message ("   %lld insns/sec\n", (cnt * 1000) / run_time);
+    avr_message ("   %lld insns/sec\n",
+                 run_time ? (cnt * 1000) / run_time : 0LL);
     avr_message ("Executed %lld clock cycles.\n", avr_core_CK_get (core));
     avr_message ("   %lld clks/sec\n",
-                 (avr_core_CK_get (core) * 1000) / run_time);
+                 run_time ? (avr_core_CK_get (core) * 1000) / run_time : 0LL);
 }
 
 /** \brief Sets the simulated CPU back to its initial state.
diff -Naur simulavr-0.1.2.1/src/disp-vcd/vcd.h simulavr-20061216/src/disp-vcd/vcd.h
--- simulavr-0.1.2.1/src/disp-vcd/vcd.h	2002-11-17 10:29:20.000000000 +1000
+++ simulavr-20061216/src/disp-vcd/vcd.h	2006-12-16 15:48:34.000000000 +1000
@@ -47,7 +47,7 @@
 /* Interface for disp.c */
 int vcd_write_header( void );
 
-inline int vcd_set_clock( unsigned int c );
+int vcd_set_clock( unsigned int c );
 int vcd_write_clock( void );
 
 int vcd_bind_io_reg_shortcut( char *io_reg_name, int io_reg_addr );
_______________________________________________
AVR-libc-dev mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/avr-libc-dev

Reply via email to