Subject:
|
Re: light sensor problem?
|
Newsgroups:
|
lugnet.robotics.rcx.legos
|
Date:
|
Fri, 28 Jul 2000 15:50:05 GMT
|
Viewed:
|
1951 times
|
| |
| |
Michael Obenland <obenland@t-online.de> wrote:
> Can you please tell me where to find this documentation?
http://graphics.stanford.edu/~kekoa/rcx/#Rom
In particular, scroll down to "notes on addresses" and "notes on routines".
The routines for the firmware start at 0x8000. The routines for the ROM
start at 0x3ae. Ultimately, both kinds of routines are important to
figuring out how the firmware does things.
The documentation is very low-level and might seem overwhelming. It was
written as the information was discovered, and is organized mainly by
address, not by function. I never got around to writing it up in a way
that would be easy to understand.
A good place to start would be at 0x8000, the firmware entry point. Then
you can move on to the firmware "handlers" -- routines that manage groups
of functionality (sensors, motors, byte codes, etc.) as seen by the
firmware. This would be the top-down approach.
Another good place to start is with the h8/300 hardware manual. Since it
can be hard to find at Hitachi's site (they seem to move it every so
often), you can grab a copy as:
http://graphics.stanford.edu/~kekoa/rcx/h8300_hwman.pdf.gz
The manual can help you to understand the interrupt handlers in the ROM,
which are important to understanding exactly "how the firmware does
things". This would be the bottom-up approach.
The ROM uses a straightforward interrupt model to do all of its
asynchronous device management. It has short interrupt handlers for serial
transmission and a/d completion, and does almost everything else (sounds,
motors, start a/d conversion, etc.) in a timer interrupt that is run every
1 ms. This is unlike LegOS, which (if I remember correctly from the last
time I checked) does a lot of its device management based on preemtive
scheduling of threads, or by doing things complete in non-timer interrupt
handlers (e.g. the a/d conversions). It is interesting at least to think
about the differences, as they can lead to inconsistent behavior between
the firmware and LegOS, e.g. as we are seeing with the a/d conversions.
-Kekoa
|
|
Message is in Reply To:
26 Messages in This Thread:
- Entire Thread on One Page:
- Nested:
All | Brief | Compact | Dots
Linear:
All | Brief | Compact
|
|
|
|