aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Davidsaver <mdavidsaver@gmail.com>2015-11-28 18:43:45 -0500
committerMichael Davidsaver <mdavidsaver@gmail.com>2015-11-28 18:43:45 -0500
commit6f925a6994f28856ff704697ec3847f10d75067c (patch)
treea0665b398d9eafa8d75622642e18b7531ed8d258
parent223fb1997c9af04aa5da3ed3ceed6642e39099d5 (diff)
drop broken test2
-rw-r--r--Makefile2
-rw-r--r--test2.c107
2 files changed, 0 insertions, 109 deletions
diff --git a/Makefile b/Makefile
index 75493e7..045b81f 100644
--- a/Makefile
+++ b/Makefile
@@ -13,7 +13,6 @@ LDFLAGS=-static
CFLAGS+=-Os
all: test1-kern.bin
-all: test2-kern.bin
all: test3-kern.bin
all: test4-kern.bin
all: test5-kern.bin
@@ -26,7 +25,6 @@ all: test11-kern.bin
all: test12-kern.bin
test1-kern.elf: cortexm.ld common.ld setup.o init-m.o test1.o
-test2-kern.elf: cortexm.ld common.ld setup.o init-m.o test2.o
test3-kern.elf: cortexm.ld common.ld setup.o init-m.o test3.o
test4-kern.elf: cortexm.ld common.ld setup.o init-m.o test4.o
test5-kern.elf: cortexm.ld common.ld setup.o init-m.o test5.o
diff --git a/test2.c b/test2.c
deleted file mode 100644
index 2cf26aa..0000000
--- a/test2.c
+++ /dev/null
@@ -1,107 +0,0 @@
-/* Test exception escalation in armv7-m
- */
-#include "armv7m.h"
-
-static int test;
-
-void hard(uint32_t *sp)
-{
- uint32_t temp;
- switch(test) {
- case 0:
- __asm__ ("ldr %0, =recover0" : "=r"(temp) ::);
- puts("2. HardFault\n");
- break;
- case 1:
- __asm__ ("ldr %0, =recover1" : "=r"(temp) ::);
- puts("5. HardFault\n");
- break;
- case 3:
- __asm__ ("ldr %0, =recover4" : "=r"(temp) ::);
- puts("12. HardFault\n");
- break;
- default:
- puts("HardFault Fail\n");
- abort();
- }
- sp[6] = temp;
-}
-
-void usage(uint32_t *sp)
-{
- uint32_t temp;
- switch(test) {
- case 2:
- __asm__ ("ldr %0, =recover2" : "=r"(temp) ::);
- puts("8. UsageFault\n");
- break;
- case 3:
- puts("11. UsageFault\n");
- __asm__ ("ldr %0, =recover3" : "=r"(temp) ::);
- __asm__ (".word 0xffff; recover4:" :::);
- puts("13. Back in usage().\n");
- break;
- default:
- puts("Fail\n");
- abort();
- }
- sp[6] = temp;
-}
-
-static __attribute__((naked))
-void hardx(void)
-{
- asm ("mov r0, sp"); // save stack pointer on entry
- asm ("b hard");
-}
-
-static __attribute__((naked))
-void usagex(void)
-{
- asm ("mov r0, sp"); // save stack pointer on entry
- asm ("b usage");
-}
-
-void main(void)
-{
- run_table.hard = hardx;
- run_table.usage = usagex;
- __asm__ ("cpsie f" :::);
- __asm__ ("cpsid i" :::);
- puts("1. Fault to HardFault\n");
- /* this would trigger a usage error, except that
- * UsageFault isn't enabled and
- * PRIMASK are set
- */
- __asm__ (".word 0xffff; recover0:" :::);
- puts("3. Back in main\n");
-
- out32((void*)0xe000ed24, 1<<18); // enable UsageFault with SHCSR
-
- test = 1;
- puts("4. Fault to HardFault\n");
- __asm__ ("cpsid i" :::); /* FAULTMASK auto-cleared when HardFault returns */
- /* this would trigger a usage error, except that
- * FAULTMASK and PRIMASK are set
- */
- __asm__ (".word 0xffff; recover1:" :::);
- puts("6. Back in main\n");
-
- test = 2;
- __asm__ ("cpsie i" :::);
- puts("7. Faulting to UsageFault\n");
- /* This time really trigger UsageFault
- */
- __asm__ (".word 0xffff; recover2:" :::);
- puts("9. Back in main\n");
-
- test = 3;
- puts("10. Faulting to UsageFault then HardFault\n");
- /* This time trigger UsageFault,
- * then fault in UsageFault into HardFault
- */
- __asm__ (".word 0xffff; recover3:" :::);
- puts("14. Back in main 4\n");
-
- puts("Done\n");
-}