This is the mail archive of the ecos-discuss@sourceware.org mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Accessing flash memory


In message <20060124082820.GI8395@lunn.ch>, Andrew Lunn writes:
>Reading the documentation is a good place to start:

A followup on this.  I'm finding that there are things I can't even figure out
where to find in the documentation, because I don't already know them to know
where to look.

So, I should check the documentation.  Where should I even start looking?

For instance, imagine that I want a given feature.  How do I find out what
to hand to "ecosconfig add" to get it?  I'll give a couple of specific
examples I've run into:

1.  I want "uint32_t".  This exists in <machine/types.h> in the ecos source
tree.  It doesn't exist in install/include/* in my build tree.  Nothing in
"ecosconfig list" says "<machine/types.h>".  In fact, the word "type" doesn't
occur.  The string uint32_t doesn't occur in the documentation at all.
There's no reference to <types.h> or anything like that.  The ISO specified
<stdint.h> or <inttypes.h> aren't around.  Where should I look?

2.  Undefined references for fileno.  No problem, I search the docs.
I find a note in the docs that it's in the C stdio library.  ecosconfig list
suggests I want "libc_stdio".  I add it.  Nothing changes; I still have
undefined references to fieno.

3.  I want termios (tcsetattr, struct termios).  Where do I look?  Nothing
in the documentation says anything but which features are implemented, and
which aren't.

I am quite open to the notion that there's an obvious way to use the
documentation that I just haven't figured out.  I'm used to using grep for
everything, but in the ecos tree, I haven't found a good way to ask the
question "If I want this file, which I see in the source repository, which
package do I add to get it?"

So what obvious thing am I missing?  If I haven't developed an intimate
familiarity with the build structure and package list, how am I supposed to
find these?  The only occurrence of the string "term" in the output of
"ecosconfig list" is in the description of libc_startup!  There's no "tty",
either.  I tried "add posix", because hey, it's all posix features.  But that
doesn't give me these either.

I assume that there is some way to, given a feature I know eCos has, add it
to my build.  But I can't figure out what it is.  The flash stuff I was
looking for was relatively obvious; "aliases flash" was a good start.  On the
other hand, I'm totally stumped by termios.  There's a few ALL_CAPS_NAMES
with TERMIOS in them in ecos.ecc, but nothing telling me which feature names
to hand to ecosconfig to "correctly" change them.

On careful reading, it appears that the best I can do is carefully read the
descriptions in ecos.ecc; for instance, reading the CYGPKG_IO_SERIAL_TERMIOS
comments suggests that I needed "CYGPKG_IO_FILEIO".  This was somewhat
obfuscated by the use of "0 != x" for booleans instead of just x;
it'd be much easier to read:

CYGPKG_ISOINFRA && CYGPKG_IO_FILEIO && CYGINT_ISO_ERRNO_CODES && CYGINT_ISO_ERRNO

So that gets termios.

Now, let's see.  I want nanosleep.  The documentation refers to it, under the
option "CYGPKG_POSIX_TIMERS".  That's one of the many values that appears to
not be editable directly.  Is it part of a package?  Which package?
"ecosconfig list" doesn't say.

I guess what I'm trying to get at is that, while the documentation is pretty
good at some things, it doesn't even come CLOSE to telling me what to do to
enable a given feature.  The list of features ecosconfig lists is a very
proper subset of the list of features referred to in the manual, and I can't
find anything documenting how to go about turning features on that I want,
except indirectly; maybe I'll get lucky and find a package that requires
a given feature.

The only reference to "time" is the libc_time package which I already have.

So, while I understand that it's very frustrating when someone asks questions
the answers to which can be found in the documentation, in practice, if the
only way to find the answer is to have good recall of the entire
documentation, I'm gonna ask anyway.  There's essentially no indexing on the
single most useful key, which is "I want this feature, you have it, how do I
turn it on".

-s     

-- 
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]