[En-Nut-Discussion] Complete newbie...
Czerteak
czerteak at email.cz
Sat Aug 16 18:20:13 CEST 2003
Hi everybody,
I'm a complete Ethernut newbie -> I need some help :-)
I'm experiencing following problem: I have a simple circuit (kind of
write-only-memory) connected directly to the address and data bus. Therefore,
I should be simply allowed to communicate with it just by writing to specific
memory location (which is hard-coded in the circuit to the value of 0xe0 -
the other 8 bits are handled by the circuit, so the functional range is
0xe000 to 0xe0ff). Everything work as expected BUT there are some strange
things happening.
When I write to the mem (f. ex. *((int*)(void *)0xe000 = 128), it works but
after some time (about a second) there is another write to the same place,
which sets each bit to 1. When writing to 0xe001, the same thing happens a
few seconds later. I'm 100% it's not me who does the writes. My opinion is
that there is some other thread (the NutOS's one) doing this. When I added
the endless loop just after the memory write (to make everything freeze until
reset), the value stays there so I assume it's really caused by something
which is out of my control.
Is there a way to restrict NutOS to write to specific memory location? Or, do
you think it's something else? I've read most of the documentation and even
the sources but I didn't find anything... :-(
One more thing, the same all-one set happens when the Ethernut gets reset,
which is bad, too... :-(
Since I'm a real Ethernut noob, I expect further questions and I'm looking
forward for ANY help. I can even provide the source code...
Thanks...
Radek Podgorny
(alias Czerteak)
More information about the En-Nut-Discussion
mailing list