> 1. First, I use addr2line to find out the source code:
> $ addr2line -e memcheck-arm-linux -a 0x380869FC
> 0x380869fc
> ~/valgrind-3.11.0/coregrind/m_dispatch/dispatch-arm-linux.S:71
>
> 2. Then, I check the source code at line 71 is:
> fmxr fpscr, r4
>
> 3. Then, I search ARM assembly document:
> 6.7.14. FMRX, FMXR, and FMSTAT
> Transfer contents between an ARM register and a VFP system register.
>
> 4. However, this CPU hi3535 seems don't support VFP, because the Makefile in 
> my SDK use
> armv7a_soft instead of armv7a_vfp glibc runtime library

The minimum hardware which valgrind assumes and requires is armv7 with VFP
(vector floating point.)
The ability to function without floating point would be a new feature for 
valgrind.
Valgrind would have to notice that the chip lacks VFP, then avoid using it,
and give an error if the target software used FP instructions.

You could enter a Request For Enhancement using the bug reporting tool
   http://valgrind.org/support/bug_reports.html
Give the explicit example of your chip, and any others that you know that lack 
FP
but otherwise are armv7.

Meanwhile, use some other hardware to run your software under valgrind.
Most embedded devices have a subroutine library which maps logical functionality
to the actual hardware.  So make a substitute library which maps that
functionality to a hardware device which valgrind does support, such as
a RaspberyyPi model B+ version 2 (1GB RAM, 4CPU, VFP, NEON, ...).



------------------------------------------------------------------------------
_______________________________________________
Valgrind-users mailing list
Valgrind-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/valgrind-users

Reply via email to