Hi there, after having made the legOS kernel about 2k fatter, i
experience strange problems with dll.
Uploading a fat application that mostly consists of an 8k initialised
array works as before, i also can start the application. Trying to
upload the same monster a 2nd time to slot 1 makes the RCX hang
immediately. After enabling the debugging output in program.c, the
second upload is rejected as should be. Some further experiments showed,
that it's sufficient to add one line of code to packet_consumer(), line
206:
lnp_addressing_write(msg,8,packet_src,0);
} else {
memset(prog+nr,0,sizeof(program_t));
cputs("FAIL");
^^^^^^^^^^^^^^
}
if the cputs("FAIL") is there, dll works correctly and rejects the 2nd
upload, if not, the RCX hangs. -- really mysterious to me !
Trying to upload the fat application to slot 0 and a smaller program to
slot 1 works, but if i upload a 3rd small program to slot 2, the RCX
hangs again after trying to start that program.
Currently, i have no good idea what could be wrong here, and how to
proceed debugging. Maybe some kind of stack corruption happens ?
|