summary refs log tree commit diff stats
path: root/results/scraper/launchpad-without-comments/657006
diff options
context:
space:
mode:
Diffstat (limited to 'results/scraper/launchpad-without-comments/657006')
-rw-r--r--results/scraper/launchpad-without-comments/65700644
1 files changed, 44 insertions, 0 deletions
diff --git a/results/scraper/launchpad-without-comments/657006 b/results/scraper/launchpad-without-comments/657006
new file mode 100644
index 000000000..7817d1e3b
--- /dev/null
+++ b/results/scraper/launchpad-without-comments/657006
@@ -0,0 +1,44 @@
+arm v7M - svc insn doesn't trigger PendSV handler
+
+The svc instruction doesn't work as expected.
+
+-> qemu 0.13.0 rc1 (git)
+
+Test : demo with freeRTOS (for example FreeRTOS-6.0.5/Demo/CORTEX_LM3S811_GCC) with the card lm3s811evb.
+
+If we start the scheduler, it will call that function (__attribute__ (( naked ))) :
+
+void vPortStartFirstTask( void )
+
+{
+
+	__asm volatile(
+
+					" ldr r0, =0xE000ED08 	\n" /* Use the NVIC offset register to locate the stack. */
+
+					" ldr r0, [r0] 			\n"
+
+					" ldr r0, [r0] 			\n"
+
+					" msr msp, r0			\n" /* Set the msp back to the start of the stack. */
+
+					" svc 0					\n" /* System call to start first task. */
+
+				);
+
+}
+
+The 4 first lines in asm work fine. The scv 0 call will rise the right interrupt in qemu (line 151, in arm_gic.c, best_irq = 15). However, it will never call the PendSV Handler (xPortPendSVHandler here). This function is recorded in the nvic vector.
+Next, (after the svc), the processor will execute the line after in code (this is a naked function) so the next function written after vPortStartFirstTask in the code.
+
+
+command line :
+console 1 : qemu-system-arm -M lm3s6965evb -kernel gcc/RTOSDemo.axf -s -S
+console 2 : arm-none-eabi-gdb -ex "target remote localhost:1234" gcc/RTOSDemo.axf
+
+arm-none-eabi from http://www.codesourcery.com/sgpp/lite/arm/portal/release1294
+Same error with another project with arm-elf
+
+processor : arm cortex m3
+
+host : gentoo (2.6.35-r9) (without kqemu)
\ No newline at end of file