UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Visitor kennykoller
Visitor
6,002 Views
Registered: ‎08-13-2015

libc.a That Does Not Use the VFP/NEON Registers

We are attempting to use FreeRTOS along with hardware floating point (VFP) support and C++. I am building with -mfloat-abi=softfp and I have instructed FreeRTOS to save the D0-D31 registers during context switches.

 

A problem is that memcpy/memset/memcmp make use of the NEON/VFP registers for efficiency. This is mentioned on the FreeRTOS site.

 

I took the nonoptimized C implementations of these three functions from the FreeRTOS 8.2.2 distribution and they are selected by the linker rather than those found in libc.a. However when I look through the instructions of the .elf file I still see some vpush from several other library routines.

 

It's not practical to comb through the final binary and re-write each routine. Where may I find a libc.a that does not make use of these registers?

 

0 Kudos
1 Reply
Visitor kennykoller
Visitor
5,998 Views
Registered: ‎08-13-2015

Re: libc.a That Does Not Use the VFP/NEON Registers

Actually, I suppose this will be fine so long as none of those routines are called from an interrupt. memcpy was an issue because some of the FreeRTOS ISR routines called it. Still it'd be nice to have an optimized non VFP library for memcpy etc.

 

0 Kudos