[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