In message <[EMAIL PROTECTED]>, 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
