I've been thinking about this issue off and on for a couple years now,
and I like a large part of what I see so far, but also want to throw
in some thoughts.

After reading some details on the BAE chip as well as talking to some
embedded designers and thinking about applications, I envisioned
something a bit different and simpler.  I'm coming from the
perspective of a middleware designer, who's most recent "masterpiece"
was a setup where "simpler is better" was the focus, and the results
were pretty surprising (thesis in progress :) ).

My thoughts were to build a sort of 2-stage microprocessor code (open
source so it can be adapted to different chips as needed).  The
"bottom stage" or "boot loader" would contain the base OWFS
communication libraries (including the devices unique ID), and support
for the "fimrware load" function.  The firmware load would allow one
to upload new firmware to the chip.  This firmware is the "phase 2"
code, and would enable functions of the processor as desired.

Specifically, EVERY USER would load a fimrware module that would
configure the remaining capabilities of the microprocessor they want
to use, do whatever control/computation work they want to do, and tell
the "phase 1" fimrware what types of data they're exposing.

I believe this needs to be done in a memory mapped function, and
perhaps it could be as simple as a "configuration block" that OWFS can
read.  This would provide information such as "memory address",
"size", "type", "read/write status", and "plaintext name".  Using
this, OWFS can populate a directory with whatever capabilities that
chip has enabled.

An important detail here is that the chip would NOT expose "all
possible I/O" by default.  As was previously pointed out, there are
often different capabilities of a processor that share pins.  They
can't all be available at all times, and what makes sense is going to
be highly dependent on how its wired.  As such, it seems that its
reasonable to load "custom fimrware" to configure the microprocessor
to do what is needed.  And I'd rather have that functionality.  Even
if it isn't a 2-stage code for the microprocessor, but a framework
that I tweak for my application.  That way, if I am just using the adc
as a thermocouple input, I can tell OWFS that its temperature, and I
can internally convert the reading as appropriate.

I prefer to leave the naming, typing, etc. of data to the entity that
has the greatest authority as to what that data is.  That's why I
belive this responsibility lies with the microprocessor, not OWFS.  I
also try to think about as many of the different application as I can
think of, and then apply the various proposals of how to make it work.
 Then, take the results and look at what result was "simplest" or
"most natural".  Some of the more recent OWFS text-file configuration
and special module-loading sounds like making things overly
complicated...Why configure your device in two places and make sure to
keep them in sync when you can just do it in one and not have a
sync/config issue?

--Jim

------------------------------------------------------------------------------
Download Intel® Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
Owfs-developers mailing list
Owfs-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/owfs-developers

Reply via email to