> 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