StrongEd and SparkFS problems on CortexA8
Uwe Kall (215) 120 posts |
SparkFS and StrongEd do not work any more on my BBrev6, though they used to in an earlier version. I tested several programs and may have accidentally overwritten some important module in my boot structure. Could somebody please confirm that both still run on the latest rom image? Error messages are: StrongEd: abort on data transfer at &00042E7C SparkFS: reports “Handle is either illegal or has been closed” when packing files bigger that 200k. Unpacking also has problems. Thank you. I hope it’s just me <:-> |
Fred Graute (114) 645 posts |
Does StrongED produce a StrongDump file when aborting? If it does, could you please send it to me so that I can check if it’s a problem at StrongED’s end. Thanks. |
Uwe Kall (215) 120 posts |
I sent you the StrongDump file to the casema address. Having to use !SrcEdit feels really bad after getting used to StrongEd :-). Thanks and good luck. If I can check or test anything please let me know. |
Fred Graute (114) 645 posts |
Thanks for the StrongDump file. I’ve had a look at it and I can’t see anything wrong with StrongED. The abort is in an STR but the address used is both valid and word-aligned. There was one oddity though, the StrongDump contains a copy of the exception registers. All registers look normal except for user_r13 and user_r14 which both point into ROM space. Somehow they must have been corrupted, either before or after being written to the exception area. It might be useful to know when/why this happens. I can’t offer any direct assistance (no BeagleBoard) but if anything needs adding to StrongED (eg debug output) then I’d be happy to help. |
Steffen Huber (91) 1953 posts |
Just tried it out and I get the same error Uwe got with Jeffrey’s latest ROM image (2010-08-14). The one before also gives that error (2010-07-20). The one I originally used however lets StrongEd work just fine (2010-05-05). So either later RISC OS versions are broken, or StrongEd uses code that gets away with previous OS versions. I guess this is one for Jeffrey to analyze :-( |
Uwe Kall (215) 120 posts |
Hmm, I’ll try to find it anyway. I have have found out that StrongEd does work when certain things happen. Just when I tried to generate the StrongDump file, StrongEd suddenly worked. But I had tested some programs going weird the evening before and left the board running, and even the TaskManager Icon was missing. After rebooting, the problem was back and I could generate the StrongDump file. I did not think of generating a module listing when StrongEd worked though – that was probably a big mistake. |
Jeffrey Lee (213) 6048 posts |
I had a look at this last night. It looks like it’s another fun issue to do with the interaction of AMBControl and the cache/TLB op abort handler. Specifically, this is what seems to be happening:
While looking at the code last night I realised the cache/TLB op check wasn’t re-entrant (after all, it should never trigger an abort itself), which is why the register dump wasn’t showing the right values for R13 & R14. So I fixed it to preserve all registers, but I forgot about DFAR & DFSR, which is why I was still having problems. A quick test now confirms that if I also make it preserve DFAR & DFSR then everything works (or at least StrongED does; I haven’t tried SparkFS), so when I get home tonight I’ll do a bit more testing, check in my fixes, and upload a ROM image (I need to grab the latest changes from CVS, and make sure I haven’t got any debug code knocking around) |
Jeffrey Lee (213) 6048 posts |
The fix is now in CVS, although at some point I should probably try and work out why the ‘impossible’ data abort was triggering in the first place. |
Tank (53) 375 posts |
I can confirm that StrongEd loads fine with your changes made and a rebuild. P.S it looks like Jeffrey has his own page in the Wiki !! |
Trevor Johnson (329) 1645 posts |
|