We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
This code works properly on real device, so I know it works, but in RVDS emulator it does not work.
That same build runs without any issues with the debugger, but from profiler it has this problem.
I had to rewrite (provide my own implementations) of memcmp, memcpy etc, otherwise I wasn't able to use profiler at all
This code works on real devices, I build it with GCC ...
I have handcoded neon code and I wanted to profile the code to see what kind of improvement it gives me,
CFG = --arm --cpu=6K -Otime -g
It's quite possible for invalid code to work on one target or with one compiler or at one optimization level and not work on another target or another compiler or another optimization level. It's also quite possible that code is fine and you've encountered problems with the tools.
I think the "ARM Profiler WARNING" can be ignored for the time being; it's just telling you that the call chain information will be incomplete. I don't think it's having any effect on the execution You may be able to avoid the warning by disabliing data compression at link-time (I vaguely remember data decompression bogusly causing this warning).
Do you mean that you can run (without profiling) the same image on the RTSM with no problem but when you try to profile it on the RTSM (without rebuilding) it has the exceptions problem?
Unfortunately I don't think it's possible to debug during the profile run to find out what is causing the exception. It might be worthwhile trying to include exception handlers that emit a message to find out which exception is happening and what the registers are (especially R14) when it happens.
What happened when you used the versions of memcmp, etc. that are supplied with the tools?
Do you mean you can build it with gcc on run it sucessfully on a real ARM target?Have you tried running and/or profiling the gcc-built version on the RTSM?Are you using your version of memcmp, etc. with the gcc-built version?
The profiler may be able to help (after the exceptions problem is resolved) but the RTSM does not accurately model the timing of NEON instructions and memory access (and it is only approximate for others). It is accurate about the number of times a function/instruction was executed.I don't see the -O3 -- is it somewhere else?Have you contacted ARM support (sw-support@arm.com) about this problem?