hi guys, I've spent some time over the week working on symbian. I now have my "TuneHelper" sequencer playing-ish music on the phone. playing-ish because it seems Beatnik (the audio API) has some issues I haven't sorted out yet... However the complicated part of the app (the sequencer) works like a charm! Anyway, stuff I discovered: + realloc() is buggy! it works, but doesn't accept NULL as first parameter, as the POSIX version does. Buyer beware! :-) + threads/mutex/semaphore All that works splendidly, I managed to convert my pthread wrapper to a symbian-thread-wrapper in very short order. One thing to remember is that each thread can have it's own address space ("Heap") but you can also create it sharing the main process one (which makes porting easier). + Alignment problems So, in the mass of code I ported, I was bound to have at least one alignment problem. it came up as an optimisation I had which did like this: *((unsigned long*)dst) = *((unsigned long*)src) thats suposed to be much faster than doing a loop for only 4 bytes. However, THAT crashes on ARM. Don't do it :-) + Debugging I had to sort out a way to debug on the device, so it fell back onto the good ol printf. However since the P900 has no concole, it launches a SEPARATE app that display what you printf(). HOWEVER that app has no interface and is fullscreen, and it is VERY hard to exit from it : you have to use the internet and/or camera button to launch another app, then click back the application you debug. it's very annoying. What I did was install "SMAN" which came up handy sinc eit can reconfigure the "internet" button to launch itself, and it has a file manager/task manager and all : VERY handy tool! Next problem with printf debugging is that the "STDOUT" process quits if your thread crahses, so you don't have time to see at which line it stopped! For that I had to install an exception handler with a mask of 0xffffffff in the crashing thread, and do a Sleep(1) there. the thred WON'T quit, but you'll have time to read the STDOUT output, then quit the whole app with SMAN. Now for THE macro, to use and abuse to find where you crash: #define TRACE(w) printf("%s %d\n", #w, __LINE__); + Tools So far the tools are OK, however I have problems with the .AIF and .MBM generation, it seems tit calls the perl copy() with wrong arguments and it makes the build fail, I need to trace it to see what is happening exactly. yuck. Michel -- Linux yawn 2.6.3 #71 Sat Feb 21 13:25:49 GMT 2004 i686