Menu

QP 4.5.04 released

The just released QP 4.5.04 contains the support for ARM Cortex-M4F (FPU). The updated AppNotes "QP and ARM Cortex-M with IAR" and "QP and ARM Cortex-M with GNU" describe all the details of the port and the support for the FPU.

The QP ports to Cortex-M4F, both the cooperative and preemptive QK kernel, fully support the very interesting hardware feature called "lazy stacking" [ARM AN298], which is the default once the FPU is enabled. This feature avoids an increase of interrupt latency by skipping the stacking of floating-point registers, if not required. This feature is described in the ARM Application Note 298
“Cortex-M4(F) Lazy Stacking and Context Switching”, available at:
http://infocenter.arm.com/help/topic/com.arm.doc.dai0298a/DAI0298A_cortex_m4f_lazy_stacking_and_context_switching.pdf

The new QP release contains now the projects for the EK-LM4F120XL board (a.k.a., Stellaris Launchpad). The IAR and Sorcery CodeBench are provided.

NOTE: The embedded toolsets are catching up with ARM Cortex-M4F, but are not quite there yet. For example, to correctly link C++ applications, the latest Sorcery CodeBench 2012.09-85 still needs a patch to link the right version of the ANSI C library for the options (-mcpu=cortex-m4 -mfpu=vfp -mfloat-abi=softfp) required to take advantage of the FPU. You can apply the patch yourself by downloading the attached file specs and copying it into the directory:

\lib\gcc\arm-none-eabi\4.7.2

where stands for the Sourcery CodeBench installation directory.

The IAR EWARM 6.50 builds C and C++ programs correctly, but the "Registers" debugger view does not display the CONTROL register correctly (superficially the CONTROL[2] bit).

Posted by Quantum Leaps 2013-02-12

Log in to post a comment.