[En-Nut-Discussion] NutOS Upgrade, was: NutGetMillis in Uart ISR

Hugo Simon hugo.simon at gmx.de
Tue Nov 13 22:10:37 CET 2007


Hi

>If you open the wrong .conf file you may operate on the wrong
base-directory
>i.e. within the wrong Ethernut version.
I doublechcecked this.

But I have found a great missunderstanding what I have.
I thought the Includefiles used are in nut/include, these are empty. But the
one in nutbld/include are right.

The question is now, which ones are used if I make an application. Maybe I
have something wrong her in my installation.

Since the makedefs file in the application folder look like this:

  # Do not edit! Automatically generated on Sun Nov 11 11:10:50 2007

  top_srcdir = c:/entwickl/ethernut-4.4.0/nut
  top_blddir = c:/entwickl/ethernut-4.4.0/nutbld
  top_appdir = C:/Entwickl/ethernut-4.4.0/nutapp

  LIBDIR = c:/entwickl/ethernut-4.4.0/nutbld/lib
  INCFIRST=$(INCPRE)$(top_blddir)/include
  include $(top_appdir)/NutConf.mk
  include $(top_srcdir)/app/Makedefs.avr-gcc
  include $(top_srcdir)/app/Makeburn.avr-dude

it seems that the right ones are used. To be shure I put a printf("%i",
FOPEN_MAX); in the source. It gives 16, so it seems right. But the __iob
structure's size is only 0x10:

.data          0x0080095c       0x10
c:/entwickl/ethernut-4.4.0/nutbld/lib\libnutcrt.a(fopen.o)
                0x0080095c                __iob

Maybe it's the wrong parameter. Can I somehow output the current open
streams?

I looked where __iob is defined:

FILE *__iob[FOPEN_MAX] = { (FILE *) 1, (FILE *) 2, (FILE *) 3 };

I cannot see how this could become 0x10=16 bytes in size, or is the mapfile
in words? But also then: since one element of __iob seems to have three
pointers in it, the size should be a multiple of three. Am I wrong?



This is the output of my app when I load the page with Mozilla:

[42] Streams low
[40] Streams low
[39] Streams low
[42] No stream
[40] No stream
[39] No stream

Thank you for help

Thorsten




More information about the En-Nut-Discussion mailing list